@elastic/eui 86.0.0 → 87.1.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 (413) hide show
  1. package/dist/eui_charts_theme.js +7589 -7237
  2. package/dist/eui_charts_theme.js.map +1 -1
  3. package/dist/eui_theme_dark.css +0 -182
  4. package/dist/eui_theme_dark.min.css +1 -1
  5. package/dist/eui_theme_light.css +0 -182
  6. package/dist/eui_theme_light.min.css +1 -1
  7. package/es/components/accordion/accordion.js +82 -35
  8. package/es/components/auto_sizer/index.js +1 -1
  9. package/es/components/basic_table/basic_table.js +49 -34
  10. package/es/components/basic_table/in_memory_table.js +30 -11
  11. package/es/components/basic_table/pagination_bar.js +16 -11
  12. package/es/components/bottom_bar/bottom_bar.js +9 -2
  13. package/es/components/breadcrumbs/breadcrumb.js +219 -42
  14. package/es/components/breadcrumbs/breadcrumbs.js +162 -2
  15. package/es/components/code/code_block_virtualized.js +25 -17
  16. package/es/components/collapsible_nav_beta/collapsible_nav_beta.js +206 -12
  17. package/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +17 -2
  18. package/es/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.js +70 -0
  19. package/es/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.styles.js +32 -0
  20. package/es/components/collapsible_nav_beta/collapsible_nav_button/index.js +9 -0
  21. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +138 -0
  22. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.styles.js +39 -0
  23. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +111 -0
  24. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +184 -0
  25. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +38 -0
  26. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/index.js +9 -0
  27. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +6 -6
  28. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +1 -1
  29. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +32 -23
  30. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +4 -4
  31. package/es/components/collapsible_nav_beta/context.js +14 -0
  32. package/es/components/color_picker/color_palette_picker/color_palette_picker.js +1 -1
  33. package/es/components/control_bar/control_bar.js +162 -2
  34. package/es/components/datagrid/body/data_grid_body.js +17 -31
  35. package/es/components/datagrid/body/data_grid_body_custom.js +17 -31
  36. package/es/components/datagrid/body/data_grid_body_virtualized.js +17 -31
  37. package/es/components/datagrid/body/data_grid_cell.js +30 -62
  38. package/es/components/datagrid/body/header/data_grid_header_cell.js +16 -6
  39. package/es/components/datagrid/body/header/data_grid_header_row.js +16 -6
  40. package/es/components/datagrid/data_grid.js +32 -10
  41. package/es/components/datagrid/utils/data_grid_pagination.js +9 -6
  42. package/es/components/datagrid/utils/in_memory.js +16 -6
  43. package/es/components/date_picker/date_picker_range.js +5 -2
  44. package/es/components/date_picker/super_date_picker/date_popover/date_popover_button.js +1 -1
  45. package/es/components/date_picker/super_date_picker/super_date_picker.a11y.js +1 -1
  46. package/es/components/date_picker/super_date_picker/super_date_picker.js +10 -4
  47. package/es/components/date_picker/super_date_picker/super_update_button.js +5 -2
  48. package/es/components/empty_prompt/empty_prompt.js +0 -1
  49. package/es/components/filter_group/filter_group.a11y.js +2 -2
  50. package/es/components/flyout/flyout.js +9 -7
  51. package/es/components/flyout/flyout_body.js +15 -3
  52. package/es/components/focus_trap/focus_trap.js +91 -13
  53. package/es/components/form/range/dual_range.js +33 -6
  54. package/es/components/form/range/range.js +31 -6
  55. package/es/components/form/super_select/super_select.js +1 -1
  56. package/es/components/header/header.a11y.js +1 -5
  57. package/es/components/header/header.js +4 -9
  58. package/es/components/header/header.styles.js +6 -4
  59. package/es/components/header/header_alert/header_alert.js +14 -6
  60. package/es/components/header/header_alert/header_alert.styles.js +21 -0
  61. package/es/components/header/header_breadcrumbs/header_breadcrumbs.js +162 -2
  62. package/es/components/header/header_links/header_links.js +14 -19
  63. package/es/components/header/header_links/header_links.styles.js +41 -0
  64. package/es/components/header/header_section/header_section.js +7 -11
  65. package/es/components/header/header_section/header_section.styles.js +38 -0
  66. package/es/components/header/header_section/header_section_item.js +12 -16
  67. package/es/components/header/header_section/header_section_item.styles.js +16 -0
  68. package/es/components/header/header_section/header_section_item_button.js +9 -2
  69. package/es/components/header/header_section/header_section_item_button.styles.js +44 -0
  70. package/es/components/list_group/list_group.js +6 -1
  71. package/es/components/list_group/list_group_item.js +25 -9
  72. package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +11 -1
  73. package/es/components/page/page_header/page_header_content.js +162 -2
  74. package/es/components/page/page_sidebar/page_sidebar.js +2 -2
  75. package/es/components/page/page_template.js +8 -1
  76. package/es/components/page_template/page_template.js +13 -5
  77. package/es/components/popover/input_popover.js +24 -9
  78. package/es/components/popover/popover.js +4 -6
  79. package/es/components/portal/portal.js +44 -14
  80. package/es/components/provider/component_defaults/component_defaults.js +73 -0
  81. package/es/components/provider/component_defaults/index.js +9 -0
  82. package/es/components/provider/index.js +2 -1
  83. package/es/components/provider/provider.js +5 -1
  84. package/es/components/selectable/selectable_list/selectable_list.js +97 -79
  85. package/es/components/steps/step.styles.js +2 -1
  86. package/es/components/steps/step_horizontal.styles.js +2 -1
  87. package/es/components/steps/step_number.styles.js +3 -2
  88. package/es/components/table/table_pagination/index.js +4 -1
  89. package/es/components/table/table_pagination/table_pagination.js +24 -15
  90. package/es/components/table/table_pagination/table_pagination_defaults.js +32 -0
  91. package/es/components/tool_tip/icon_tip.js +7 -5
  92. package/es/components/tool_tip/tool_tip.js +8 -15
  93. package/es/components/tool_tip/tool_tip_anchor.js +5 -14
  94. package/es/components/tour/tour_step.js +2 -7
  95. package/eui.d.ts +2459 -2129
  96. package/i18ntokens.json +188 -116
  97. package/lib/components/accordion/accordion.js +82 -35
  98. package/lib/components/auto_sizer/index.js +11 -7
  99. package/lib/components/basic_table/basic_table.js +49 -34
  100. package/lib/components/basic_table/in_memory_table.js +31 -12
  101. package/lib/components/basic_table/pagination_bar.js +18 -14
  102. package/lib/components/bottom_bar/bottom_bar.js +9 -2
  103. package/lib/components/breadcrumbs/breadcrumb.js +219 -42
  104. package/lib/components/breadcrumbs/breadcrumbs.js +14 -2
  105. package/lib/components/code/code_block_virtualized.js +25 -17
  106. package/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +216 -17
  107. package/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +22 -9
  108. package/lib/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.js +80 -0
  109. package/lib/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.styles.js +37 -0
  110. package/lib/components/collapsible_nav_beta/collapsible_nav_button/index.js +12 -0
  111. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +148 -0
  112. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.styles.js +45 -0
  113. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +117 -0
  114. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +194 -0
  115. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +44 -0
  116. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/index.js +12 -0
  117. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +6 -6
  118. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +1 -1
  119. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +35 -23
  120. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +4 -4
  121. package/lib/components/collapsible_nav_beta/context.js +21 -0
  122. package/lib/components/color_picker/color_palette_picker/color_palette_picker.js +1 -1
  123. package/lib/components/control_bar/control_bar.js +14 -2
  124. package/lib/components/datagrid/body/data_grid_body.js +17 -31
  125. package/lib/components/datagrid/body/data_grid_body_custom.js +17 -31
  126. package/lib/components/datagrid/body/data_grid_body_virtualized.js +17 -31
  127. package/lib/components/datagrid/body/data_grid_cell.js +30 -62
  128. package/lib/components/datagrid/body/header/data_grid_header_cell.js +16 -6
  129. package/lib/components/datagrid/body/header/data_grid_header_row.js +16 -6
  130. package/lib/components/datagrid/data_grid.js +32 -10
  131. package/lib/components/datagrid/utils/data_grid_pagination.js +8 -5
  132. package/lib/components/datagrid/utils/in_memory.js +16 -6
  133. package/lib/components/date_picker/date_picker_range.js +5 -2
  134. package/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.js +1 -1
  135. package/lib/components/date_picker/super_date_picker/super_date_picker.a11y.js +1 -1
  136. package/lib/components/date_picker/super_date_picker/super_date_picker.js +10 -4
  137. package/lib/components/date_picker/super_date_picker/super_update_button.js +5 -2
  138. package/lib/components/empty_prompt/empty_prompt.js +4 -5
  139. package/lib/components/filter_group/filter_group.a11y.js +2 -2
  140. package/lib/components/flyout/flyout.js +9 -7
  141. package/lib/components/flyout/flyout_body.js +15 -3
  142. package/lib/components/focus_trap/focus_trap.js +92 -14
  143. package/lib/components/form/range/dual_range.js +33 -6
  144. package/lib/components/form/range/range.js +14 -6
  145. package/lib/components/form/super_select/super_select.js +1 -1
  146. package/lib/components/header/header.a11y.js +1 -5
  147. package/lib/components/header/header.js +4 -9
  148. package/lib/components/header/header.styles.js +6 -4
  149. package/lib/components/header/header_alert/header_alert.js +13 -5
  150. package/lib/components/header/header_alert/header_alert.styles.js +28 -0
  151. package/lib/components/header/header_breadcrumbs/header_breadcrumbs.js +14 -2
  152. package/lib/components/header/header_links/header_links.js +13 -166
  153. package/lib/components/header/header_links/header_links.styles.js +46 -0
  154. package/lib/components/header/header_section/header_section.js +7 -11
  155. package/lib/components/header/header_section/header_section.styles.js +43 -0
  156. package/lib/components/header/header_section/header_section_item.js +12 -16
  157. package/lib/components/header/header_section/header_section_item.styles.js +23 -0
  158. package/lib/components/header/header_section/header_section_item_button.js +9 -2
  159. package/lib/components/header/header_section/header_section_item_button.styles.js +49 -0
  160. package/lib/components/list_group/list_group.js +6 -1
  161. package/lib/components/list_group/list_group_item.js +24 -9
  162. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +11 -1
  163. package/lib/components/page/page_header/page_header_content.js +14 -2
  164. package/lib/components/page/page_sidebar/page_sidebar.js +1 -1
  165. package/lib/components/page/page_template.js +8 -1
  166. package/lib/components/page_template/page_template.js +13 -5
  167. package/lib/components/popover/input_popover.js +23 -8
  168. package/lib/components/popover/popover.js +4 -6
  169. package/lib/components/portal/portal.js +48 -17
  170. package/lib/components/provider/component_defaults/component_defaults.js +83 -0
  171. package/lib/components/provider/component_defaults/index.js +16 -0
  172. package/lib/components/provider/index.js +14 -1
  173. package/lib/components/provider/provider.js +5 -1
  174. package/lib/components/selectable/selectable_list/selectable_list.js +97 -79
  175. package/lib/components/steps/step.styles.js +2 -1
  176. package/lib/components/steps/step_horizontal.styles.js +2 -1
  177. package/lib/components/steps/step_number.styles.js +3 -2
  178. package/lib/components/table/table_pagination/index.js +14 -1
  179. package/lib/components/table/table_pagination/table_pagination.js +24 -15
  180. package/lib/components/table/table_pagination/table_pagination_defaults.js +38 -0
  181. package/lib/components/tool_tip/icon_tip.js +7 -5
  182. package/lib/components/tool_tip/tool_tip.js +9 -16
  183. package/lib/components/tool_tip/tool_tip_anchor.js +5 -13
  184. package/optimize/es/components/accordion/accordion.js +82 -35
  185. package/optimize/es/components/auto_sizer/index.js +1 -1
  186. package/optimize/es/components/basic_table/basic_table.js +41 -32
  187. package/optimize/es/components/basic_table/in_memory_table.js +14 -10
  188. package/optimize/es/components/basic_table/pagination_bar.js +16 -11
  189. package/optimize/es/components/breadcrumbs/breadcrumb.js +58 -41
  190. package/optimize/es/components/code/code_block_virtualized.js +25 -17
  191. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.js +154 -12
  192. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +17 -2
  193. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.js +62 -0
  194. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.styles.js +32 -0
  195. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_button/index.js +9 -0
  196. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +62 -0
  197. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.styles.js +39 -0
  198. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +36 -0
  199. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +98 -0
  200. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +38 -0
  201. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/index.js +9 -0
  202. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +1 -1
  203. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +23 -14
  204. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +4 -4
  205. package/optimize/es/components/collapsible_nav_beta/context.js +14 -0
  206. package/optimize/es/components/datagrid/data_grid.js +9 -1
  207. package/optimize/es/components/datagrid/utils/data_grid_pagination.js +9 -6
  208. package/optimize/es/components/date_picker/date_picker_range.js +5 -2
  209. package/optimize/es/components/date_picker/super_date_picker/super_date_picker.a11y.js +1 -1
  210. package/optimize/es/components/filter_group/filter_group.a11y.js +2 -2
  211. package/optimize/es/components/flyout/flyout.js +9 -7
  212. package/optimize/es/components/flyout/flyout_body.js +4 -2
  213. package/optimize/es/components/focus_trap/focus_trap.js +13 -8
  214. package/optimize/es/components/form/range/dual_range.js +7 -4
  215. package/optimize/es/components/form/range/range.js +5 -4
  216. package/optimize/es/components/header/header.a11y.js +1 -5
  217. package/optimize/es/components/header/header.js +4 -5
  218. package/optimize/es/components/header/header.styles.js +6 -4
  219. package/optimize/es/components/header/header_alert/header_alert.js +14 -6
  220. package/optimize/es/components/header/header_alert/header_alert.styles.js +21 -0
  221. package/optimize/es/components/header/header_links/header_links.js +11 -11
  222. package/optimize/es/components/header/header_links/header_links.styles.js +41 -0
  223. package/optimize/es/components/header/header_section/header_section.js +7 -11
  224. package/optimize/es/components/header/header_section/header_section.styles.js +38 -0
  225. package/optimize/es/components/header/header_section/header_section_item.js +12 -11
  226. package/optimize/es/components/header/header_section/header_section_item.styles.js +16 -0
  227. package/optimize/es/components/header/header_section/header_section_item_button.js +9 -2
  228. package/optimize/es/components/header/header_section/header_section_item_button.styles.js +44 -0
  229. package/optimize/es/components/list_group/list_group_item.js +16 -8
  230. package/optimize/es/components/page/page_sidebar/page_sidebar.js +2 -2
  231. package/optimize/es/components/page_template/page_template.js +13 -5
  232. package/optimize/es/components/popover/input_popover.js +13 -8
  233. package/optimize/es/components/popover/popover.js +2 -3
  234. package/optimize/es/components/portal/portal.js +17 -12
  235. package/optimize/es/components/provider/component_defaults/component_defaults.js +50 -0
  236. package/optimize/es/components/provider/component_defaults/index.js +9 -0
  237. package/optimize/es/components/provider/index.js +2 -1
  238. package/optimize/es/components/provider/provider.js +5 -1
  239. package/optimize/es/components/selectable/selectable_list/selectable_list.js +97 -79
  240. package/optimize/es/components/steps/step.styles.js +2 -1
  241. package/optimize/es/components/steps/step_horizontal.styles.js +2 -1
  242. package/optimize/es/components/steps/step_number.styles.js +3 -2
  243. package/optimize/es/components/table/table_pagination/index.js +4 -1
  244. package/optimize/es/components/table/table_pagination/table_pagination.js +18 -15
  245. package/optimize/es/components/table/table_pagination/table_pagination_defaults.js +29 -0
  246. package/optimize/es/components/tool_tip/tool_tip.js +3 -13
  247. package/optimize/es/components/tool_tip/tool_tip_anchor.js +4 -8
  248. package/optimize/lib/components/accordion/accordion.js +82 -35
  249. package/optimize/lib/components/auto_sizer/index.js +11 -7
  250. package/optimize/lib/components/basic_table/basic_table.js +41 -32
  251. package/optimize/lib/components/basic_table/in_memory_table.js +21 -17
  252. package/optimize/lib/components/basic_table/pagination_bar.js +18 -14
  253. package/optimize/lib/components/breadcrumbs/breadcrumb.js +58 -41
  254. package/optimize/lib/components/code/code_block_virtualized.js +25 -17
  255. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +156 -11
  256. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +22 -9
  257. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.js +72 -0
  258. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.styles.js +37 -0
  259. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_button/index.js +12 -0
  260. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +72 -0
  261. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.styles.js +45 -0
  262. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +42 -0
  263. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +108 -0
  264. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +44 -0
  265. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/index.js +12 -0
  266. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +1 -1
  267. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +26 -14
  268. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +4 -4
  269. package/optimize/lib/components/collapsible_nav_beta/context.js +21 -0
  270. package/optimize/lib/components/datagrid/data_grid.js +9 -1
  271. package/optimize/lib/components/datagrid/utils/data_grid_pagination.js +8 -5
  272. package/optimize/lib/components/date_picker/date_picker_range.js +5 -2
  273. package/optimize/lib/components/date_picker/super_date_picker/super_date_picker.a11y.js +1 -1
  274. package/optimize/lib/components/filter_group/filter_group.a11y.js +2 -2
  275. package/optimize/lib/components/flyout/flyout.js +9 -7
  276. package/optimize/lib/components/flyout/flyout_body.js +4 -2
  277. package/optimize/lib/components/focus_trap/focus_trap.js +14 -9
  278. package/optimize/lib/components/form/range/dual_range.js +7 -4
  279. package/optimize/lib/components/form/range/range.js +5 -4
  280. package/optimize/lib/components/header/header.a11y.js +1 -5
  281. package/optimize/lib/components/header/header.js +4 -5
  282. package/optimize/lib/components/header/header.styles.js +6 -4
  283. package/optimize/lib/components/header/header_alert/header_alert.js +13 -5
  284. package/optimize/lib/components/header/header_alert/header_alert.styles.js +28 -0
  285. package/optimize/lib/components/header/header_links/header_links.js +11 -11
  286. package/optimize/lib/components/header/header_links/header_links.styles.js +46 -0
  287. package/optimize/lib/components/header/header_section/header_section.js +7 -11
  288. package/optimize/lib/components/header/header_section/header_section.styles.js +43 -0
  289. package/optimize/lib/components/header/header_section/header_section_item.js +12 -11
  290. package/optimize/lib/components/header/header_section/header_section_item.styles.js +23 -0
  291. package/optimize/lib/components/header/header_section/header_section_item_button.js +9 -2
  292. package/optimize/lib/components/header/header_section/header_section_item_button.styles.js +49 -0
  293. package/optimize/lib/components/list_group/list_group_item.js +16 -8
  294. package/optimize/lib/components/page/page_sidebar/page_sidebar.js +1 -1
  295. package/optimize/lib/components/page_template/page_template.js +13 -5
  296. package/optimize/lib/components/popover/input_popover.js +12 -7
  297. package/optimize/lib/components/popover/popover.js +2 -3
  298. package/optimize/lib/components/portal/portal.js +22 -15
  299. package/optimize/lib/components/provider/component_defaults/component_defaults.js +61 -0
  300. package/optimize/lib/components/provider/component_defaults/index.js +16 -0
  301. package/optimize/lib/components/provider/index.js +14 -1
  302. package/optimize/lib/components/provider/provider.js +5 -1
  303. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +97 -79
  304. package/optimize/lib/components/steps/step.styles.js +2 -1
  305. package/optimize/lib/components/steps/step_horizontal.styles.js +2 -1
  306. package/optimize/lib/components/steps/step_number.styles.js +3 -2
  307. package/optimize/lib/components/table/table_pagination/index.js +14 -1
  308. package/optimize/lib/components/table/table_pagination/table_pagination.js +18 -15
  309. package/optimize/lib/components/table/table_pagination/table_pagination_defaults.js +36 -0
  310. package/optimize/lib/components/tool_tip/tool_tip.js +3 -13
  311. package/optimize/lib/components/tool_tip/tool_tip_anchor.js +4 -8
  312. package/package.json +13 -15
  313. package/src/components/index.scss +0 -1
  314. package/src/global_styling/variables/_header.scss +0 -6
  315. package/src/themes/amsterdam/overrides/_index.scss +0 -1
  316. package/test-env/components/accordion/accordion.js +82 -35
  317. package/test-env/components/auto_sizer/index.js +11 -7
  318. package/test-env/components/basic_table/basic_table.js +49 -34
  319. package/test-env/components/basic_table/in_memory_table.js +37 -18
  320. package/test-env/components/basic_table/pagination_bar.js +18 -14
  321. package/test-env/components/bottom_bar/bottom_bar.js +9 -2
  322. package/test-env/components/breadcrumbs/breadcrumb.js +219 -42
  323. package/test-env/components/breadcrumbs/breadcrumbs.js +14 -2
  324. package/test-env/components/code/code_block_virtualized.js +25 -17
  325. package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.js +197 -12
  326. package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +22 -9
  327. package/test-env/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.js +79 -0
  328. package/test-env/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.styles.js +37 -0
  329. package/test-env/components/collapsible_nav_beta/collapsible_nav_button/index.js +12 -0
  330. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +147 -0
  331. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.styles.js +45 -0
  332. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +116 -0
  333. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +188 -0
  334. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +44 -0
  335. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/index.js +12 -0
  336. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +6 -6
  337. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +1 -1
  338. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +35 -23
  339. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +4 -4
  340. package/test-env/components/collapsible_nav_beta/context.js +21 -0
  341. package/test-env/components/color_picker/color_palette_picker/color_palette_picker.js +1 -1
  342. package/test-env/components/control_bar/control_bar.js +14 -2
  343. package/test-env/components/datagrid/body/data_grid_body.js +17 -31
  344. package/test-env/components/datagrid/body/data_grid_body_custom.js +17 -31
  345. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +17 -31
  346. package/test-env/components/datagrid/body/data_grid_cell.js +30 -62
  347. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +16 -6
  348. package/test-env/components/datagrid/body/header/data_grid_header_row.js +16 -6
  349. package/test-env/components/datagrid/data_grid.js +32 -10
  350. package/test-env/components/datagrid/utils/data_grid_pagination.js +8 -5
  351. package/test-env/components/datagrid/utils/in_memory.js +16 -6
  352. package/test-env/components/date_picker/date_picker_range.js +5 -2
  353. package/test-env/components/date_picker/super_date_picker/date_popover/date_popover_button.js +1 -1
  354. package/test-env/components/date_picker/super_date_picker/super_date_picker.a11y.js +1 -1
  355. package/test-env/components/date_picker/super_date_picker/super_date_picker.js +10 -4
  356. package/test-env/components/date_picker/super_date_picker/super_update_button.js +5 -2
  357. package/test-env/components/empty_prompt/empty_prompt.js +4 -5
  358. package/test-env/components/filter_group/filter_group.a11y.js +2 -2
  359. package/test-env/components/flyout/flyout_body.js +15 -3
  360. package/test-env/components/form/range/dual_range.js +33 -6
  361. package/test-env/components/form/range/range.js +14 -6
  362. package/test-env/components/form/super_select/super_select.js +1 -1
  363. package/test-env/components/header/header.a11y.js +1 -5
  364. package/test-env/components/header/header.js +4 -9
  365. package/test-env/components/header/header.styles.js +6 -4
  366. package/test-env/components/header/header_alert/header_alert.js +13 -5
  367. package/test-env/components/header/header_alert/header_alert.styles.js +28 -0
  368. package/test-env/components/header/header_breadcrumbs/header_breadcrumbs.js +14 -2
  369. package/test-env/components/header/header_links/header_links.js +13 -166
  370. package/test-env/components/header/header_links/header_links.styles.js +46 -0
  371. package/test-env/components/header/header_section/header_section.js +7 -11
  372. package/test-env/components/header/header_section/header_section.styles.js +43 -0
  373. package/test-env/components/header/header_section/header_section_item.js +12 -16
  374. package/test-env/components/header/header_section/header_section_item.styles.js +23 -0
  375. package/test-env/components/header/header_section/header_section_item_button.js +9 -2
  376. package/test-env/components/header/header_section/header_section_item_button.styles.js +49 -0
  377. package/test-env/components/list_group/list_group.js +6 -1
  378. package/test-env/components/list_group/list_group_item.js +22 -9
  379. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +11 -1
  380. package/test-env/components/page/page_header/page_header_content.js +14 -2
  381. package/test-env/components/page/page_sidebar/page_sidebar.js +1 -1
  382. package/test-env/components/page/page_template.js +8 -1
  383. package/test-env/components/page_template/page_template.js +13 -5
  384. package/test-env/components/popover/input_popover.js +23 -8
  385. package/test-env/components/popover/popover.js +4 -6
  386. package/test-env/components/portal/portal.js +49 -17
  387. package/test-env/components/provider/component_defaults/component_defaults.js +81 -0
  388. package/test-env/components/provider/component_defaults/index.js +16 -0
  389. package/test-env/components/provider/index.js +14 -1
  390. package/test-env/components/provider/provider.js +5 -1
  391. package/test-env/components/selectable/selectable_list/selectable_list.js +97 -79
  392. package/test-env/components/steps/step.styles.js +2 -1
  393. package/test-env/components/steps/step_horizontal.styles.js +2 -1
  394. package/test-env/components/steps/step_number.styles.js +3 -2
  395. package/test-env/components/table/table_pagination/index.js +14 -1
  396. package/test-env/components/table/table_pagination/table_pagination.js +24 -15
  397. package/test-env/components/table/table_pagination/table_pagination_defaults.js +36 -0
  398. package/test-env/components/tool_tip/icon_tip.js +7 -5
  399. package/test-env/components/tool_tip/tool_tip.js +9 -16
  400. package/test-env/components/tool_tip/tool_tip_anchor.js +5 -11
  401. package/src/components/header/_index.scss +0 -3
  402. package/src/components/header/header_alert/_header_alert.scss +0 -40
  403. package/src/components/header/header_alert/_index.scss +0 -1
  404. package/src/components/header/header_links/_header_link.scss +0 -13
  405. package/src/components/header/header_links/_header_links.scss +0 -16
  406. package/src/components/header/header_links/_index.scss +0 -4
  407. package/src/components/header/header_links/_variables.scss +0 -6
  408. package/src/components/header/header_section/_header_section.scss +0 -14
  409. package/src/components/header/header_section/_header_section_item.scss +0 -44
  410. package/src/components/header/header_section/_header_section_item_button.scss +0 -40
  411. package/src/components/header/header_section/_index.scss +0 -3
  412. package/src/components/portal/__snapshots__/_index.scss +0 -1
  413. package/src/themes/amsterdam/overrides/_header.scss +0 -4
@@ -18,7 +18,7 @@ var _i18n = require("../i18n");
18
18
  var _breadcrumb = require("./breadcrumb.styles");
19
19
  var _react2 = require("@emotion/react");
20
20
  var _excluded = ["children", "className", "type", "truncate"],
21
- _excluded2 = ["text", "truncate", "type", "href", "rel", "onClick", "className", "color", "isFirstBreadcrumb", "isLastBreadcrumb", "isOnlyBreadcrumb", "highlightLastBreadcrumb", "truncateLastBreadcrumb"];
21
+ _excluded2 = ["text", "truncate", "type", "href", "rel", "onClick", "popoverContent", "popoverProps", "className", "color", "isFirstBreadcrumb", "isLastBreadcrumb", "isOnlyBreadcrumb", "highlightLastBreadcrumb", "truncateLastBreadcrumb"];
22
22
  /*
23
23
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
24
24
  * or more contributor license agreements. Licensed under the Elastic License
@@ -71,6 +71,8 @@ var EuiBreadcrumbContent = function EuiBreadcrumbContent(_ref2) {
71
71
  href = _ref2.href,
72
72
  rel = _ref2.rel,
73
73
  onClick = _ref2.onClick,
74
+ popoverContent = _ref2.popoverContent,
75
+ popoverProps = _ref2.popoverProps,
74
76
  className = _ref2.className,
75
77
  color = _ref2.color,
76
78
  isFirstBreadcrumb = _ref2.isFirstBreadcrumb,
@@ -92,29 +94,59 @@ var EuiBreadcrumbContent = function EuiBreadcrumbContent(_ref2) {
92
94
  cssStyles.push(styles.applicationStyles.lastChild);
93
95
  }
94
96
  }
97
+ var isInteractiveBreadcrumb = href || onClick;
98
+ var linkColor = color || (highlightLastBreadcrumb ? 'text' : 'subdued');
99
+ var plainTextColor = highlightLastBreadcrumb ? 'default' : 'subdued'; // Does not inherit `color` prop
95
100
  var ariaCurrent = highlightLastBreadcrumb ? 'page' : undefined;
101
+ var isPopoverBreadcrumb = !!popoverContent;
102
+ var _useState = (0, _react.useState)(false),
103
+ _useState2 = _slicedToArray(_useState, 2),
104
+ isPopoverOpen = _useState2[0],
105
+ setIsPopoverOpen = _useState2[1];
106
+ var popoverAriaLabel = (0, _i18n.useEuiI18n)('euiBreadcrumb.popoverAriaLabel', 'Clicking this button will toggle a popover dialog.');
96
107
  return (0, _react2.jsx)(_inner_text.EuiInnerText, null, function (ref, innerText) {
97
108
  var title = innerText === '' ? undefined : innerText;
98
- return !href && !onClick ? (0, _react2.jsx)(_text.EuiTextColor, {
99
- color: highlightLastBreadcrumb ? 'default' : 'subdued',
100
- cloneElement: true
101
- }, (0, _react2.jsx)("span", _extends({
109
+ var sharedProps = {
102
110
  ref: ref,
103
111
  title: title,
104
- "aria-current": ariaCurrent,
112
+ 'aria-current': ariaCurrent,
105
113
  className: classes,
106
114
  css: cssStyles
107
- }, rest), text)) : (0, _react2.jsx)(_link.EuiLink, _extends({
108
- ref: ref,
109
- title: title,
110
- "aria-current": ariaCurrent,
111
- className: classes,
112
- css: cssStyles,
113
- color: color || (highlightLastBreadcrumb ? 'text' : 'subdued'),
114
- onClick: onClick,
115
- href: href,
116
- rel: rel
117
- }, rest), text);
115
+ };
116
+ if (isPopoverBreadcrumb) {
117
+ return (0, _react2.jsx)(_popover.EuiPopover, _extends({}, popoverProps, {
118
+ isOpen: isPopoverOpen,
119
+ closePopover: function closePopover() {
120
+ return setIsPopoverOpen(false);
121
+ },
122
+ button: (0, _react2.jsx)(_link.EuiLink, _extends({}, sharedProps, {
123
+ color: linkColor
124
+ // Avoid passing href and onClick - should only toggle the popover
125
+ ,
126
+ onClick: function onClick() {
127
+ return setIsPopoverOpen(function (isOpen) {
128
+ return !isOpen;
129
+ });
130
+ }
131
+ }, rest), text, ' ', (0, _react2.jsx)(_icon.EuiIcon, {
132
+ type: "arrowDown",
133
+ size: "s",
134
+ "aria-label": " - ".concat(popoverAriaLabel)
135
+ }))
136
+ }), popoverContent);
137
+ } else if (isInteractiveBreadcrumb) {
138
+ return (0, _react2.jsx)(_link.EuiLink, _extends({}, sharedProps, {
139
+ color: linkColor,
140
+ onClick: onClick,
141
+ href: href,
142
+ rel: rel
143
+ }, rest), text);
144
+ } else {
145
+ return (0, _react2.jsx)(_text.EuiTextColor, {
146
+ color: plainTextColor,
147
+ cloneElement: true
148
+ }, (0, _react2.jsx)("span", _extends({}, sharedProps, rest), text));
149
+ }
118
150
  });
119
151
  };
120
152
  exports.EuiBreadcrumbContent = EuiBreadcrumbContent;
@@ -135,13 +167,173 @@ EuiBreadcrumbContent.propTypes = {
135
167
  */
136
168
  truncate: _propTypes.default.bool,
137
169
  /**
138
- * Accepts any EuiLink `color` when rendered as one (has `href` or `onClick`)
170
+ * Accepts any EuiLink `color` when rendered as one (has `href`, `onClick`, or `popoverContent`)
139
171
  */
140
172
  color: _propTypes.default.any,
141
173
  /**
142
174
  * Override the existing `aria-current` which defaults to `page` for the last breadcrumb
143
175
  */
144
176
  "aria-current": _propTypes.default.any,
177
+ /**
178
+ * Creates a breadcrumb that toggles a popover dialog
179
+ *
180
+ * If passed, both `href` and `onClick` will be ignored - the breadcrumb's
181
+ * click behavior should only trigger a popover.
182
+ */
183
+ popoverContent: _propTypes.default.node,
184
+ /**
185
+ * Allows customizing the popover if necessary. Accepts any props that
186
+ * [EuiPopover](/#/layout/popover) accepts, except for props that control state.
187
+ */
188
+ popoverProps: _propTypes.default.shape({
189
+ /**
190
+ * Class name passed to the direct parent of the button
191
+ */
192
+ anchorClassName: _propTypes.default.string,
193
+ /**
194
+ * Alignment of the popover and arrow relative to the button
195
+ */
196
+ anchorPosition: _propTypes.default.any,
197
+ /**
198
+ * Style and position alteration for arrow-less attachment.
199
+ * Intended for use with inputs as anchors, e.g. EuiInputPopover
200
+ */
201
+ attachToAnchor: _propTypes.default.bool,
202
+ buttonRef: _propTypes.default.any,
203
+ /**
204
+ * Restrict the popover's position within this element
205
+ */
206
+ container: _propTypes.default.any,
207
+ /**
208
+ * CSS display type for both the popover and anchor
209
+ */
210
+ display: _propTypes.default.any,
211
+ /**
212
+ * Object of props passed to EuiFocusTrap
213
+ */
214
+ focusTrapProps: _propTypes.default.any,
215
+ /**
216
+ * Show arrow indicating to originating button
217
+ */
218
+ hasArrow: _propTypes.default.bool,
219
+ /**
220
+ * Specifies what element should initially have focus; Can be a DOM
221
+ * node, or a selector string (which will be passed to
222
+ * document.querySelector() to find the DOM node), or a function that
223
+ * returns a DOM node.
224
+ *
225
+ * If not passed, initial focus defaults to the popover panel.
226
+ */
227
+ initialFocus: _propTypes.default.any,
228
+ /**
229
+ * Passed directly to EuiPortal for DOM positioning. Both properties are
230
+ * required if prop is specified
231
+ */
232
+ insert: _propTypes.default.shape({
233
+ sibling: _propTypes.default.any.isRequired,
234
+ position: _propTypes.default.oneOf(["before", "after"]).isRequired
235
+ }),
236
+ /**
237
+ * Traps tab focus within the popover contents
238
+ */
239
+ ownFocus: _propTypes.default.bool,
240
+ /**
241
+ * Custom class added to the EuiPanel containing the popover contents
242
+ */
243
+ panelClassName: _propTypes.default.string,
244
+ /**
245
+ * EuiPanel padding on all sides
246
+ */
247
+ panelPaddingSize: _propTypes.default.any,
248
+ /**
249
+ * Standard DOM `style` attribute. Passed to the EuiPanel
250
+ */
251
+ panelStyle: _propTypes.default.any,
252
+ /**
253
+ * Object of props passed to EuiPanel. See #EuiPopoverPanelProps
254
+ */
255
+ panelProps: _propTypes.default.shape({
256
+ element: _propTypes.default.oneOf(["div"]),
257
+ /**
258
+ * Padding for all four sides
259
+ */
260
+ paddingSize: _propTypes.default.any,
261
+ /**
262
+ * Corner border radius
263
+ */
264
+ borderRadius: _propTypes.default.any,
265
+ /**
266
+ * When true the panel will grow in height to match `EuiFlexItem`
267
+ */
268
+ grow: _propTypes.default.bool,
269
+ panelRef: _propTypes.default.any,
270
+ /**
271
+ * Background color of the panel;
272
+ * Usually a lightened form of the brand colors
273
+ */
274
+ color: _propTypes.default.any,
275
+ className: _propTypes.default.string,
276
+ "aria-label": _propTypes.default.string,
277
+ "data-test-subj": _propTypes.default.string,
278
+ css: _propTypes.default.any
279
+ }),
280
+ panelRef: _propTypes.default.any,
281
+ /**
282
+ * Optional screen reader instructions to announce upon popover open,
283
+ * in addition to EUI's default popover instructions for Escape on close.
284
+ * Useful for popovers that may have additional keyboard capabilities such as
285
+ * arrow navigation.
286
+ */
287
+ popoverScreenReaderText: _propTypes.default.oneOfType([_propTypes.default.string.isRequired, _propTypes.default.node.isRequired]),
288
+ popoverRef: _propTypes.default.any,
289
+ /**
290
+ * When `true`, the popover's position is re-calculated when the user
291
+ * scrolls, this supports having fixed-position popover anchors. When nesting
292
+ * an `EuiPopover` in a scrollable container, `repositionOnScroll` should be `true`
293
+ */
294
+ repositionOnScroll: _propTypes.default.bool,
295
+ /**
296
+ * Must be set to true if using `EuiDragDropContext` within a popover,
297
+ * otherwise your nested drag & drop will have incorrect positioning
298
+ */
299
+ hasDragDrop: _propTypes.default.bool,
300
+ /**
301
+ * By default, popover content inherits the z-index of the anchor
302
+ * component; pass `zIndex` to override
303
+ */
304
+ zIndex: _propTypes.default.number,
305
+ /**
306
+ * Distance away from the anchor that the popover will render
307
+ */
308
+ offset: _propTypes.default.number,
309
+ /**
310
+ * Minimum distance between the popover and the bounding container;
311
+ * Pass an array of 4 values to adjust each side differently: `[top, right, bottom, left]`
312
+ * Default is 16
313
+ */
314
+ buffer: _propTypes.default.oneOfType([_propTypes.default.number.isRequired, _propTypes.default.any.isRequired]),
315
+ /**
316
+ * Element to pass as the child element of the arrow;
317
+ * Use case is typically limited to an accompanying `EuiBeacon`
318
+ */
319
+ arrowChildren: _propTypes.default.node,
320
+ /**
321
+ * Provide a name to the popover panel
322
+ */
323
+ "aria-label": _propTypes.default.string,
324
+ /**
325
+ * Alternative option to `aria-label` that takes an `id`.
326
+ * Usually takes the `id` of the popover title
327
+ */
328
+ "aria-labelledby": _propTypes.default.string,
329
+ /**
330
+ * Function callback for when the popover positon changes
331
+ */
332
+ onPositionChange: _propTypes.default.func,
333
+ className: _propTypes.default.string,
334
+ "data-test-subj": _propTypes.default.string,
335
+ css: _propTypes.default.any
336
+ }),
145
337
  type: _propTypes.default.oneOf(["page", "application"]).isRequired,
146
338
  isFirstBreadcrumb: _propTypes.default.bool,
147
339
  isLastBreadcrumb: _propTypes.default.bool,
@@ -153,38 +345,23 @@ var EuiBreadcrumbCollapsed = function EuiBreadcrumbCollapsed(_ref3) {
153
345
  var children = _ref3.children,
154
346
  isFirstBreadcrumb = _ref3.isFirstBreadcrumb,
155
347
  type = _ref3.type;
156
- var _useState = (0, _react.useState)(false),
157
- _useState2 = _slicedToArray(_useState, 2),
158
- isPopoverOpen = _useState2[0],
159
- setIsPopoverOpen = _useState2[1];
160
348
  var euiTheme = (0, _services.useEuiTheme)();
161
349
  var styles = (0, _breadcrumb.euiBreadcrumbStyles)(euiTheme);
162
350
  var cssStyles = [styles.isCollapsed];
163
351
  var ariaLabel = (0, _i18n.useEuiI18n)('euiBreadcrumb.collapsedBadge.ariaLabel', 'See collapsed breadcrumbs');
164
- var ellipsisButton = (0, _react2.jsx)(EuiBreadcrumbContent, {
165
- "aria-label": ariaLabel,
352
+ return (0, _react2.jsx)(EuiBreadcrumb, {
353
+ css: cssStyles,
354
+ type: type
355
+ }, (0, _react2.jsx)(EuiBreadcrumbContent, {
356
+ popoverContent: children,
357
+ text: (0, _react2.jsx)("span", {
358
+ "aria-label": ariaLabel
359
+ }, "\u2026"),
166
360
  title: ariaLabel,
167
- onClick: function onClick() {
168
- return setIsPopoverOpen(!isPopoverOpen);
169
- },
170
361
  truncate: false,
171
- text: (0, _react2.jsx)(_react.default.Fragment, null, "\u2026 ", (0, _react2.jsx)(_icon.EuiIcon, {
172
- type: "arrowDown",
173
- size: "s"
174
- })),
175
362
  isFirstBreadcrumb: isFirstBreadcrumb,
176
363
  type: type
177
- });
178
- return (0, _react2.jsx)(EuiBreadcrumb, {
179
- css: cssStyles,
180
- type: type
181
- }, (0, _react2.jsx)(_popover.EuiPopover, {
182
- button: ellipsisButton,
183
- isOpen: isPopoverOpen,
184
- closePopover: function closePopover() {
185
- return setIsPopoverOpen(false);
186
- }
187
- }, children));
364
+ }));
188
365
  };
189
366
  exports.EuiBreadcrumbCollapsed = EuiBreadcrumbCollapsed;
190
367
  EuiBreadcrumbCollapsed.propTypes = {
@@ -141,13 +141,25 @@ EuiBreadcrumbs.propTypes = {
141
141
  */
142
142
  truncate: _propTypes.default.bool,
143
143
  /**
144
- * Accepts any EuiLink `color` when rendered as one (has `href` or `onClick`)
144
+ * Accepts any EuiLink `color` when rendered as one (has `href`, `onClick`, or `popoverContent`)
145
145
  */
146
146
  color: _propTypes.default.any,
147
147
  /**
148
148
  * Override the existing `aria-current` which defaults to `page` for the last breadcrumb
149
149
  */
150
- "aria-current": _propTypes.default.any
150
+ "aria-current": _propTypes.default.any,
151
+ /**
152
+ * Creates a breadcrumb that toggles a popover dialog
153
+ *
154
+ * If passed, both `href` and `onClick` will be ignored - the breadcrumb's
155
+ * click behavior should only trigger a popover.
156
+ */
157
+ popoverContent: _propTypes.default.node,
158
+ /**
159
+ * Allows customizing the popover if necessary. Accepts any props that
160
+ * [EuiPopover](/#/layout/popover) accepts, except for props that control state.
161
+ */
162
+ popoverProps: _propTypes.default.any
151
163
  }).isRequired).isRequired,
152
164
  /**
153
165
  * Determines breadcrumbs appearance, with `page` being the default styling.
@@ -53,27 +53,35 @@ var EuiCodeBlockVirtualized = function EuiCodeBlockVirtualized(_ref) {
53
53
  }, codeProps));
54
54
  });
55
55
  }, [codeProps]);
56
- return (0, _react2.jsx)(_auto_sizer.EuiAutoSizer, {
57
- disableHeight: typeof overflowHeight === 'number'
56
+ var virtualizationProps = {
57
+ itemData: data,
58
+ itemSize: rowHeight,
59
+ itemCount: data.length,
60
+ outerElementType: VirtualizedOuterElement,
61
+ innerElementType: VirtualizedInnerElement
62
+ };
63
+ return typeof overflowHeight === 'number' ? (0, _react2.jsx)(_auto_sizer.EuiAutoSizer, {
64
+ disableHeight: true
58
65
  }, function (_ref4) {
59
- var height = _ref4.height,
60
- width = _ref4.width;
61
- return (0, _react2.jsx)(_reactWindow.FixedSizeList, {
62
- height: height !== null && height !== void 0 ? height : overflowHeight,
63
- width: width,
64
- itemData: data,
65
- itemSize: rowHeight,
66
- itemCount: data.length,
67
- outerElementType: VirtualizedOuterElement,
68
- innerElementType: VirtualizedInnerElement
69
- }, ListRow);
66
+ var width = _ref4.width;
67
+ return (0, _react2.jsx)(_reactWindow.FixedSizeList, _extends({
68
+ height: overflowHeight,
69
+ width: width
70
+ }, virtualizationProps), ListRow);
71
+ }) : (0, _react2.jsx)(_auto_sizer.EuiAutoSizer, null, function (_ref5) {
72
+ var height = _ref5.height,
73
+ width = _ref5.width;
74
+ return (0, _react2.jsx)(_reactWindow.FixedSizeList, _extends({
75
+ height: height,
76
+ width: width
77
+ }, virtualizationProps), ListRow);
70
78
  });
71
79
  };
72
80
  exports.EuiCodeBlockVirtualized = EuiCodeBlockVirtualized;
73
- var ListRow = function ListRow(_ref5) {
74
- var data = _ref5.data,
75
- index = _ref5.index,
76
- style = _ref5.style;
81
+ var ListRow = function ListRow(_ref6) {
82
+ var data = _ref6.data,
83
+ index = _ref6.index,
84
+ style = _ref6.style;
77
85
  var row = data[index];
78
86
  row.properties.style = (0, _global_styling.logicalStyles)(style);
79
87
  return (0, _utils.nodeToHtml)(row, index, data, 0);
@@ -1,30 +1,229 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.EuiCollapsibleNavBeta = void 0;
7
- var _react = _interopRequireDefault(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _classnames = _interopRequireDefault(require("classnames"));
8
11
  var _services = require("../../services");
9
- var _collapsible_nav = require("../collapsible_nav/collapsible_nav");
12
+ var _global_styling = require("../../global_styling");
13
+ var _flyout = require("../flyout");
14
+ var _i18n = require("../i18n");
15
+ var _header = require("../header/header.styles");
16
+ var _context = require("./context");
17
+ var _collapsible_nav_button = require("./collapsible_nav_button");
10
18
  var _collapsible_nav_beta = require("./collapsible_nav_beta.styles");
11
19
  var _react2 = require("@emotion/react");
20
+ var _excluded = ["id", "children", "className", "style", "initialIsCollapsed", "width", "side", "focusTrapProps"];
21
+ /*
22
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
23
+ * or more contributor license agreements. Licensed under the Elastic License
24
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
25
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
26
+ * Side Public License, v 1.
27
+ */
12
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
- 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); } /*
14
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
15
- * or more contributor license agreements. Licensed under the Elastic License
16
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
17
- * in compliance with, at your election, the Elastic License 2.0 or the Server
18
- * Side Public License, v 1.
19
- */ /**
20
- * TODO: Actual component in a follow-up PR
21
- */
22
- var EuiCollapsibleNavBeta = function EuiCollapsibleNavBeta(props) {
29
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
30
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
+ 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); }
32
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
33
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
34
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
35
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
36
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
37
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
38
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
39
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
40
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
41
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
42
+ 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."); }
43
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
44
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
45
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
46
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
47
+ 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; }
48
+ 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; }
49
+ var EuiCollapsibleNavBeta = function EuiCollapsibleNavBeta(_ref) {
50
+ var id = _ref.id,
51
+ children = _ref.children,
52
+ className = _ref.className,
53
+ style = _ref.style,
54
+ _ref$initialIsCollaps = _ref.initialIsCollapsed,
55
+ initialIsCollapsed = _ref$initialIsCollaps === void 0 ? false : _ref$initialIsCollaps,
56
+ _ref$width = _ref.width,
57
+ _width = _ref$width === void 0 ? 248 : _ref$width,
58
+ _ref$side = _ref.side,
59
+ side = _ref$side === void 0 ? 'left' : _ref$side,
60
+ _focusTrapProps = _ref.focusTrapProps,
61
+ rest = _objectWithoutProperties(_ref, _excluded);
23
62
  var euiTheme = (0, _services.useEuiTheme)();
63
+ var headerHeight = (0, _header.euiHeaderVariables)(euiTheme).height;
64
+
65
+ /**
66
+ * Collapsed state
67
+ */
68
+ var _useState = (0, _react.useState)(initialIsCollapsed),
69
+ _useState2 = _slicedToArray(_useState, 2),
70
+ isCollapsed = _useState2[0],
71
+ setIsCollapsed = _useState2[1];
72
+ var toggleCollapsed = (0, _react.useCallback)(function () {
73
+ return setIsCollapsed(function (isCollapsed) {
74
+ return !isCollapsed;
75
+ });
76
+ }, []);
77
+ var onClose = (0, _react.useCallback)(function () {
78
+ return setIsCollapsed(true);
79
+ }, []);
80
+
81
+ /**
82
+ * Responsive behavior
83
+ * By default on large enough screens, the nav is always a push flyout,
84
+ * but on smaller/mobile screens, the nav overlays the page instead
85
+ */
86
+ var _useState3 = (0, _react.useState)(false),
87
+ _useState4 = _slicedToArray(_useState3, 2),
88
+ isOverlay = _useState4[0],
89
+ setIsOverlay = _useState4[1];
90
+ var _useState5 = (0, _react.useState)(false),
91
+ _useState6 = _slicedToArray(_useState5, 2),
92
+ isOverlayFullWidth = _useState6[0],
93
+ setIsOverlayFullWidth = _useState6[1];
94
+ var flyoutType = isOverlay ? 'overlay' : 'push';
95
+ var isPush = !isOverlay;
96
+
97
+ // Set up a window resize listener that determines breakpoint behavior
98
+ (0, _react.useEffect)(function () {
99
+ var getBreakpoints = function getBreakpoints() {
100
+ setIsOverlay(window.innerWidth < _width * 3);
101
+ setIsOverlayFullWidth(window.innerWidth < _width * 1.5);
102
+ };
103
+ getBreakpoints();
104
+ var onWindowResize = (0, _services.throttle)(getBreakpoints, 50);
105
+ window.addEventListener('resize', onWindowResize);
106
+ return function () {
107
+ return window.removeEventListener('resize', onWindowResize);
108
+ };
109
+ }, [_width]);
110
+
111
+ // If the nav was previously uncollapsed and shrinks down to the
112
+ // overlay flyout, default to its hidden/collapsed state
113
+ (0, _react.useEffect)(function () {
114
+ if (isOverlay) setIsCollapsed(true);
115
+ }, [isOverlay]);
116
+ var width = (0, _react.useMemo)(function () {
117
+ if (isOverlayFullWidth) return '100%';
118
+ if (isPush && isCollapsed) return headerHeight;
119
+ return _width;
120
+ }, [_width, isOverlayFullWidth, isPush, isCollapsed, headerHeight]);
121
+
122
+ /**
123
+ * Header affordance
124
+ */
125
+ var _useState7 = (0, _react.useState)(false),
126
+ _useState8 = _slicedToArray(_useState7, 2),
127
+ fixedHeadersCount = _useState8[0],
128
+ setFixedHeadersCount = _useState8[1];
129
+ (0, _react.useEffect)(function () {
130
+ setFixedHeadersCount(document.querySelectorAll('.euiHeader[data-fixed-header]').length);
131
+ }, []);
132
+ var stylesWithHeaderOffset = (0, _react.useMemo)(function () {
133
+ if (!fixedHeadersCount) return style;
134
+ var headersOffset = (0, _global_styling.mathWithUnits)(headerHeight, function (x) {
135
+ return x * fixedHeadersCount;
136
+ });
137
+ return _objectSpread(_objectSpread(_objectSpread({}, style), (0, _global_styling.logicalStyle)('top', headersOffset)), (0, _global_styling.logicalStyle)('height', "calc(100% - ".concat(headersOffset, ")")));
138
+ }, [fixedHeadersCount, style, headerHeight]);
139
+
140
+ /**
141
+ * Prop setup
142
+ */
143
+ var flyoutID = (0, _services.useGeneratedHtmlId)({
144
+ conditionalId: id,
145
+ suffix: 'euiCollapsibleNav'
146
+ });
147
+ var defaultAriaLabel = (0, _i18n.useEuiI18n)('euiCollapsibleNavBeta.ariaLabel', 'Site menu');
148
+ var buttonRef = (0, _react.useRef)(null);
149
+ var focusTrapProps = (0, _react.useMemo)(function () {
150
+ return _objectSpread(_objectSpread({}, _focusTrapProps), {}, {
151
+ shards: [buttonRef].concat(_toConsumableArray((_focusTrapProps === null || _focusTrapProps === void 0 ? void 0 : _focusTrapProps.shards) || []))
152
+ });
153
+ }, [_focusTrapProps]);
154
+ var classes = (0, _classnames.default)('euiCollapsibleNav', 'euiCollapsibleNavBeta', className);
24
155
  var styles = (0, _collapsible_nav_beta.euiCollapsibleNavBetaStyles)(euiTheme);
25
- return (0, _react2.jsx)(_collapsible_nav.EuiCollapsibleNav, _extends({
26
- css: styles.euiCollapsibleNavBeta,
27
- size: 248
28
- }, props));
156
+ var cssStyles = [styles.euiCollapsibleNavBeta, styles[side], isPush && styles.isPush, isPush && isCollapsed && styles.isPushCollapsed, isOverlayFullWidth && styles.isOverlayFullWidth];
157
+
158
+ // Wait for any fixed headers to be queried before rendering (prevents position jumping)
159
+ var flyout = fixedHeadersCount !== false && (0, _react2.jsx)(_flyout.EuiFlyout, _extends({
160
+ "aria-label": defaultAriaLabel
161
+ }, rest, {
162
+ // EuiCollapsibleNav is significantly less permissive than EuiFlyout
163
+ id: flyoutID,
164
+ css: cssStyles,
165
+ className: classes,
166
+ style: stylesWithHeaderOffset,
167
+ size: width,
168
+ side: side,
169
+ focusTrapProps: focusTrapProps,
170
+ as: "nav",
171
+ type: flyoutType,
172
+ paddingSize: "none",
173
+ pushMinBreakpoint: "xs",
174
+ onClose: onClose,
175
+ hideCloseButton: true
176
+ }), children);
177
+ var hideFlyout = isOverlay && isCollapsed;
178
+ return (0, _react2.jsx)(_context.EuiCollapsibleNavContext.Provider, {
179
+ value: {
180
+ isPush: isPush,
181
+ isCollapsed: isCollapsed,
182
+ side: side
183
+ }
184
+ }, (0, _react2.jsx)(_collapsible_nav_button.EuiCollapsibleNavButton, {
185
+ ref: buttonRef,
186
+ onClick: toggleCollapsed,
187
+ "aria-controls": flyoutID
188
+ }), !hideFlyout && flyout);
29
189
  };
30
- exports.EuiCollapsibleNavBeta = EuiCollapsibleNavBeta;
190
+ exports.EuiCollapsibleNavBeta = EuiCollapsibleNavBeta;
191
+ EuiCollapsibleNavBeta.propTypes = {
192
+ className: _propTypes.default.string,
193
+ /**
194
+ * Overlay flyouts are considered dialogs, and dialogs must have a label.
195
+ * By default, a label of `Site menu` will be applied.
196
+ *
197
+ * If your usage of this component is not actually for site-wide navigation,
198
+ * please set your own `aria-label` or `aria-labelledby`.
199
+ *
200
+ * @default 'Site menu'
201
+ */
202
+ "aria-label": _propTypes.default.string,
203
+ "data-test-subj": _propTypes.default.string,
204
+ css: _propTypes.default.any,
205
+ /**
206
+ * ReactNode(s) to render as navigation flyout content, typically `EuiCollapsibleNavItem`s.
207
+ * You may also want to use `EuiFlyoutBody` and `EuiFlyoutFooter` for organization.
208
+ */
209
+ children: _propTypes.default.node,
210
+ /**
211
+ * Whether the navigation flyout should default to initially collapsed or expanded
212
+ */
213
+ initialIsCollapsed: _propTypes.default.bool,
214
+ /**
215
+ * Defaults to 248px wide. The navigation width determines behavior at
216
+ * various responsive breakpoints.
217
+ *
218
+ * At larger screen sizes (at least 3x the width of the nav), the nav will
219
+ * be able to be toggled between a docked full width nav and a collapsed
220
+ * side bar that only shows the icon of each item.
221
+ *
222
+ * At under 3 times the width of the nav, the behavior will lose the collapsed
223
+ * side bar behavior, and switch from a docked flyout to an overlay flyout only.
224
+ *
225
+ * If the page is under 1.5 times the width of the nav, the overlay will
226
+ * take up the full width of the page.
227
+ */
228
+ width: _propTypes.default.number
229
+ };