@elastic/eui 86.0.0 → 87.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 (337) 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/basic_table/basic_table.js +49 -34
  8. package/es/components/basic_table/in_memory_table.js +30 -11
  9. package/es/components/basic_table/pagination_bar.js +16 -11
  10. package/es/components/bottom_bar/bottom_bar.js +9 -2
  11. package/es/components/breadcrumbs/breadcrumb.js +220 -42
  12. package/es/components/breadcrumbs/breadcrumbs.js +163 -2
  13. package/es/components/collapsible_nav_beta/collapsible_nav_beta.js +193 -12
  14. package/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +17 -2
  15. package/es/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.js +70 -0
  16. package/es/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.styles.js +32 -0
  17. package/es/components/collapsible_nav_beta/collapsible_nav_button/index.js +9 -0
  18. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +137 -0
  19. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.styles.js +39 -0
  20. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +111 -0
  21. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +184 -0
  22. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +38 -0
  23. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/index.js +9 -0
  24. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +1 -1
  25. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +23 -14
  26. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +4 -4
  27. package/es/components/collapsible_nav_beta/context.js +14 -0
  28. package/es/components/control_bar/control_bar.js +163 -2
  29. package/es/components/datagrid/body/data_grid_body.js +17 -31
  30. package/es/components/datagrid/body/data_grid_body_custom.js +17 -31
  31. package/es/components/datagrid/body/data_grid_body_virtualized.js +17 -31
  32. package/es/components/datagrid/body/data_grid_cell.js +30 -62
  33. package/es/components/datagrid/body/header/data_grid_header_cell.js +16 -6
  34. package/es/components/datagrid/body/header/data_grid_header_row.js +16 -6
  35. package/es/components/datagrid/data_grid.js +32 -10
  36. package/es/components/datagrid/utils/data_grid_pagination.js +9 -6
  37. package/es/components/datagrid/utils/in_memory.js +16 -6
  38. package/es/components/date_picker/super_date_picker/date_popover/date_popover_button.js +1 -1
  39. package/es/components/date_picker/super_date_picker/super_date_picker.a11y.js +1 -1
  40. package/es/components/date_picker/super_date_picker/super_date_picker.js +8 -2
  41. package/es/components/date_picker/super_date_picker/super_update_button.js +4 -1
  42. package/es/components/filter_group/filter_group.a11y.js +2 -2
  43. package/es/components/focus_trap/focus_trap.js +91 -13
  44. package/es/components/header/header.a11y.js +1 -5
  45. package/es/components/header/header.js +4 -9
  46. package/es/components/header/header.styles.js +6 -4
  47. package/es/components/header/header_alert/header_alert.js +14 -6
  48. package/es/components/header/header_alert/header_alert.styles.js +21 -0
  49. package/es/components/header/header_breadcrumbs/header_breadcrumbs.js +163 -2
  50. package/es/components/header/header_links/header_links.js +12 -16
  51. package/es/components/header/header_links/header_links.styles.js +41 -0
  52. package/es/components/header/header_section/header_section.js +7 -11
  53. package/es/components/header/header_section/header_section.styles.js +38 -0
  54. package/es/components/header/header_section/header_section_item.js +12 -16
  55. package/es/components/header/header_section/header_section_item.styles.js +16 -0
  56. package/es/components/header/header_section/header_section_item_button.js +9 -2
  57. package/es/components/header/header_section/header_section_item_button.styles.js +44 -0
  58. package/es/components/list_group/list_group.js +6 -1
  59. package/es/components/list_group/list_group_item.js +25 -9
  60. package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +11 -1
  61. package/es/components/page/page_header/page_header_content.js +163 -2
  62. package/es/components/page/page_template.js +8 -1
  63. package/es/components/page_template/page_template.js +1 -1
  64. package/es/components/portal/portal.js +44 -14
  65. package/es/components/provider/component_defaults/component_defaults.js +73 -0
  66. package/es/components/provider/component_defaults/index.js +9 -0
  67. package/es/components/provider/index.js +2 -1
  68. package/es/components/provider/provider.js +5 -1
  69. package/es/components/steps/step.styles.js +2 -1
  70. package/es/components/steps/step_horizontal.styles.js +2 -1
  71. package/es/components/steps/step_number.styles.js +3 -2
  72. package/es/components/table/table_pagination/index.js +4 -1
  73. package/es/components/table/table_pagination/table_pagination.js +24 -15
  74. package/es/components/table/table_pagination/table_pagination_defaults.js +32 -0
  75. package/es/components/tool_tip/icon_tip.js +6 -4
  76. package/es/components/tool_tip/tool_tip.js +4 -1
  77. package/es/components/tour/tour_step.js +0 -4
  78. package/eui.d.ts +2393 -2111
  79. package/i18ntokens.json +142 -88
  80. package/lib/components/basic_table/basic_table.js +49 -34
  81. package/lib/components/basic_table/in_memory_table.js +31 -12
  82. package/lib/components/basic_table/pagination_bar.js +18 -14
  83. package/lib/components/bottom_bar/bottom_bar.js +9 -2
  84. package/lib/components/breadcrumbs/breadcrumb.js +220 -42
  85. package/lib/components/breadcrumbs/breadcrumbs.js +14 -2
  86. package/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +203 -17
  87. package/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +22 -9
  88. package/lib/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.js +80 -0
  89. package/lib/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.styles.js +37 -0
  90. package/lib/components/collapsible_nav_beta/collapsible_nav_button/index.js +12 -0
  91. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +147 -0
  92. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.styles.js +45 -0
  93. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +117 -0
  94. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +194 -0
  95. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +44 -0
  96. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/index.js +12 -0
  97. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +1 -1
  98. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +26 -14
  99. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +4 -4
  100. package/lib/components/collapsible_nav_beta/context.js +21 -0
  101. package/lib/components/control_bar/control_bar.js +14 -2
  102. package/lib/components/datagrid/body/data_grid_body.js +17 -31
  103. package/lib/components/datagrid/body/data_grid_body_custom.js +17 -31
  104. package/lib/components/datagrid/body/data_grid_body_virtualized.js +17 -31
  105. package/lib/components/datagrid/body/data_grid_cell.js +30 -62
  106. package/lib/components/datagrid/body/header/data_grid_header_cell.js +16 -6
  107. package/lib/components/datagrid/body/header/data_grid_header_row.js +16 -6
  108. package/lib/components/datagrid/data_grid.js +32 -10
  109. package/lib/components/datagrid/utils/data_grid_pagination.js +8 -5
  110. package/lib/components/datagrid/utils/in_memory.js +16 -6
  111. package/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.js +1 -1
  112. package/lib/components/date_picker/super_date_picker/super_date_picker.a11y.js +1 -1
  113. package/lib/components/date_picker/super_date_picker/super_date_picker.js +8 -2
  114. package/lib/components/date_picker/super_date_picker/super_update_button.js +4 -1
  115. package/lib/components/empty_prompt/empty_prompt.js +4 -4
  116. package/lib/components/filter_group/filter_group.a11y.js +2 -2
  117. package/lib/components/focus_trap/focus_trap.js +92 -14
  118. package/lib/components/header/header.a11y.js +1 -5
  119. package/lib/components/header/header.js +4 -9
  120. package/lib/components/header/header.styles.js +6 -4
  121. package/lib/components/header/header_alert/header_alert.js +13 -5
  122. package/lib/components/header/header_alert/header_alert.styles.js +28 -0
  123. package/lib/components/header/header_breadcrumbs/header_breadcrumbs.js +14 -2
  124. package/lib/components/header/header_links/header_links.js +13 -166
  125. package/lib/components/header/header_links/header_links.styles.js +46 -0
  126. package/lib/components/header/header_section/header_section.js +7 -11
  127. package/lib/components/header/header_section/header_section.styles.js +43 -0
  128. package/lib/components/header/header_section/header_section_item.js +12 -16
  129. package/lib/components/header/header_section/header_section_item.styles.js +23 -0
  130. package/lib/components/header/header_section/header_section_item_button.js +9 -2
  131. package/lib/components/header/header_section/header_section_item_button.styles.js +49 -0
  132. package/lib/components/list_group/list_group.js +6 -1
  133. package/lib/components/list_group/list_group_item.js +24 -9
  134. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +11 -1
  135. package/lib/components/page/page_header/page_header_content.js +14 -2
  136. package/lib/components/page/page_template.js +8 -1
  137. package/lib/components/page_template/page_template.js +1 -1
  138. package/lib/components/portal/portal.js +48 -17
  139. package/lib/components/provider/component_defaults/component_defaults.js +83 -0
  140. package/lib/components/provider/component_defaults/index.js +16 -0
  141. package/lib/components/provider/index.js +14 -1
  142. package/lib/components/provider/provider.js +5 -1
  143. package/lib/components/steps/step.styles.js +2 -1
  144. package/lib/components/steps/step_horizontal.styles.js +2 -1
  145. package/lib/components/steps/step_number.styles.js +3 -2
  146. package/lib/components/table/table_pagination/index.js +14 -1
  147. package/lib/components/table/table_pagination/table_pagination.js +24 -15
  148. package/lib/components/table/table_pagination/table_pagination_defaults.js +38 -0
  149. package/lib/components/tool_tip/icon_tip.js +6 -4
  150. package/lib/components/tool_tip/tool_tip.js +5 -2
  151. package/optimize/es/components/basic_table/basic_table.js +41 -32
  152. package/optimize/es/components/basic_table/in_memory_table.js +14 -10
  153. package/optimize/es/components/basic_table/pagination_bar.js +16 -11
  154. package/optimize/es/components/breadcrumbs/breadcrumb.js +58 -41
  155. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.js +150 -12
  156. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +17 -2
  157. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.js +62 -0
  158. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.styles.js +32 -0
  159. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_button/index.js +9 -0
  160. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +61 -0
  161. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.styles.js +39 -0
  162. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +36 -0
  163. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +98 -0
  164. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +38 -0
  165. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/index.js +9 -0
  166. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +1 -1
  167. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +23 -14
  168. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +4 -4
  169. package/optimize/es/components/collapsible_nav_beta/context.js +14 -0
  170. package/optimize/es/components/datagrid/data_grid.js +9 -1
  171. package/optimize/es/components/datagrid/utils/data_grid_pagination.js +9 -6
  172. package/optimize/es/components/date_picker/super_date_picker/super_date_picker.a11y.js +1 -1
  173. package/optimize/es/components/filter_group/filter_group.a11y.js +2 -2
  174. package/optimize/es/components/focus_trap/focus_trap.js +13 -8
  175. package/optimize/es/components/header/header.a11y.js +1 -5
  176. package/optimize/es/components/header/header.js +4 -5
  177. package/optimize/es/components/header/header.styles.js +6 -4
  178. package/optimize/es/components/header/header_alert/header_alert.js +14 -6
  179. package/optimize/es/components/header/header_alert/header_alert.styles.js +21 -0
  180. package/optimize/es/components/header/header_links/header_links.js +11 -11
  181. package/optimize/es/components/header/header_links/header_links.styles.js +41 -0
  182. package/optimize/es/components/header/header_section/header_section.js +7 -11
  183. package/optimize/es/components/header/header_section/header_section.styles.js +38 -0
  184. package/optimize/es/components/header/header_section/header_section_item.js +12 -11
  185. package/optimize/es/components/header/header_section/header_section_item.styles.js +16 -0
  186. package/optimize/es/components/header/header_section/header_section_item_button.js +9 -2
  187. package/optimize/es/components/header/header_section/header_section_item_button.styles.js +44 -0
  188. package/optimize/es/components/list_group/list_group_item.js +16 -8
  189. package/optimize/es/components/page_template/page_template.js +1 -1
  190. package/optimize/es/components/portal/portal.js +17 -12
  191. package/optimize/es/components/provider/component_defaults/component_defaults.js +50 -0
  192. package/optimize/es/components/provider/component_defaults/index.js +9 -0
  193. package/optimize/es/components/provider/index.js +2 -1
  194. package/optimize/es/components/provider/provider.js +5 -1
  195. package/optimize/es/components/steps/step.styles.js +2 -1
  196. package/optimize/es/components/steps/step_horizontal.styles.js +2 -1
  197. package/optimize/es/components/steps/step_number.styles.js +3 -2
  198. package/optimize/es/components/table/table_pagination/index.js +4 -1
  199. package/optimize/es/components/table/table_pagination/table_pagination.js +18 -15
  200. package/optimize/es/components/table/table_pagination/table_pagination_defaults.js +29 -0
  201. package/optimize/lib/components/basic_table/basic_table.js +41 -32
  202. package/optimize/lib/components/basic_table/in_memory_table.js +21 -17
  203. package/optimize/lib/components/basic_table/pagination_bar.js +18 -14
  204. package/optimize/lib/components/breadcrumbs/breadcrumb.js +58 -41
  205. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +152 -11
  206. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +22 -9
  207. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.js +72 -0
  208. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.styles.js +37 -0
  209. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_button/index.js +12 -0
  210. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +71 -0
  211. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.styles.js +45 -0
  212. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +42 -0
  213. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +108 -0
  214. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +44 -0
  215. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/index.js +12 -0
  216. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +1 -1
  217. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +26 -14
  218. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +4 -4
  219. package/optimize/lib/components/collapsible_nav_beta/context.js +21 -0
  220. package/optimize/lib/components/datagrid/data_grid.js +9 -1
  221. package/optimize/lib/components/datagrid/utils/data_grid_pagination.js +8 -5
  222. package/optimize/lib/components/date_picker/super_date_picker/super_date_picker.a11y.js +1 -1
  223. package/optimize/lib/components/filter_group/filter_group.a11y.js +2 -2
  224. package/optimize/lib/components/focus_trap/focus_trap.js +14 -9
  225. package/optimize/lib/components/header/header.a11y.js +1 -5
  226. package/optimize/lib/components/header/header.js +4 -5
  227. package/optimize/lib/components/header/header.styles.js +6 -4
  228. package/optimize/lib/components/header/header_alert/header_alert.js +13 -5
  229. package/optimize/lib/components/header/header_alert/header_alert.styles.js +28 -0
  230. package/optimize/lib/components/header/header_links/header_links.js +11 -11
  231. package/optimize/lib/components/header/header_links/header_links.styles.js +46 -0
  232. package/optimize/lib/components/header/header_section/header_section.js +7 -11
  233. package/optimize/lib/components/header/header_section/header_section.styles.js +43 -0
  234. package/optimize/lib/components/header/header_section/header_section_item.js +12 -11
  235. package/optimize/lib/components/header/header_section/header_section_item.styles.js +23 -0
  236. package/optimize/lib/components/header/header_section/header_section_item_button.js +9 -2
  237. package/optimize/lib/components/header/header_section/header_section_item_button.styles.js +49 -0
  238. package/optimize/lib/components/list_group/list_group_item.js +16 -8
  239. package/optimize/lib/components/page_template/page_template.js +1 -1
  240. package/optimize/lib/components/portal/portal.js +22 -15
  241. package/optimize/lib/components/provider/component_defaults/component_defaults.js +61 -0
  242. package/optimize/lib/components/provider/component_defaults/index.js +16 -0
  243. package/optimize/lib/components/provider/index.js +14 -1
  244. package/optimize/lib/components/provider/provider.js +5 -1
  245. package/optimize/lib/components/steps/step.styles.js +2 -1
  246. package/optimize/lib/components/steps/step_horizontal.styles.js +2 -1
  247. package/optimize/lib/components/steps/step_number.styles.js +3 -2
  248. package/optimize/lib/components/table/table_pagination/index.js +14 -1
  249. package/optimize/lib/components/table/table_pagination/table_pagination.js +18 -15
  250. package/optimize/lib/components/table/table_pagination/table_pagination_defaults.js +36 -0
  251. package/package.json +7 -7
  252. package/src/components/index.scss +0 -1
  253. package/src/global_styling/variables/_header.scss +0 -6
  254. package/src/themes/amsterdam/overrides/_index.scss +0 -1
  255. package/test-env/components/basic_table/basic_table.js +49 -34
  256. package/test-env/components/basic_table/in_memory_table.js +37 -18
  257. package/test-env/components/basic_table/pagination_bar.js +18 -14
  258. package/test-env/components/bottom_bar/bottom_bar.js +9 -2
  259. package/test-env/components/breadcrumbs/breadcrumb.js +220 -42
  260. package/test-env/components/breadcrumbs/breadcrumbs.js +14 -2
  261. package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.js +184 -12
  262. package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +22 -9
  263. package/test-env/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.js +79 -0
  264. package/test-env/components/collapsible_nav_beta/collapsible_nav_button/collapsible_nav_button.styles.js +37 -0
  265. package/test-env/components/collapsible_nav_beta/collapsible_nav_button/index.js +12 -0
  266. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +146 -0
  267. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.styles.js +45 -0
  268. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +116 -0
  269. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +188 -0
  270. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.styles.js +44 -0
  271. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/index.js +12 -0
  272. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +1 -1
  273. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +26 -14
  274. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +4 -4
  275. package/test-env/components/collapsible_nav_beta/context.js +21 -0
  276. package/test-env/components/control_bar/control_bar.js +14 -2
  277. package/test-env/components/datagrid/body/data_grid_body.js +17 -31
  278. package/test-env/components/datagrid/body/data_grid_body_custom.js +17 -31
  279. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +17 -31
  280. package/test-env/components/datagrid/body/data_grid_cell.js +30 -62
  281. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +16 -6
  282. package/test-env/components/datagrid/body/header/data_grid_header_row.js +16 -6
  283. package/test-env/components/datagrid/data_grid.js +32 -10
  284. package/test-env/components/datagrid/utils/data_grid_pagination.js +8 -5
  285. package/test-env/components/datagrid/utils/in_memory.js +16 -6
  286. package/test-env/components/date_picker/super_date_picker/date_popover/date_popover_button.js +1 -1
  287. package/test-env/components/date_picker/super_date_picker/super_date_picker.a11y.js +1 -1
  288. package/test-env/components/date_picker/super_date_picker/super_date_picker.js +8 -2
  289. package/test-env/components/date_picker/super_date_picker/super_update_button.js +4 -1
  290. package/test-env/components/empty_prompt/empty_prompt.js +4 -4
  291. package/test-env/components/filter_group/filter_group.a11y.js +2 -2
  292. package/test-env/components/header/header.a11y.js +1 -5
  293. package/test-env/components/header/header.js +4 -9
  294. package/test-env/components/header/header.styles.js +6 -4
  295. package/test-env/components/header/header_alert/header_alert.js +13 -5
  296. package/test-env/components/header/header_alert/header_alert.styles.js +28 -0
  297. package/test-env/components/header/header_breadcrumbs/header_breadcrumbs.js +14 -2
  298. package/test-env/components/header/header_links/header_links.js +13 -166
  299. package/test-env/components/header/header_links/header_links.styles.js +46 -0
  300. package/test-env/components/header/header_section/header_section.js +7 -11
  301. package/test-env/components/header/header_section/header_section.styles.js +43 -0
  302. package/test-env/components/header/header_section/header_section_item.js +12 -16
  303. package/test-env/components/header/header_section/header_section_item.styles.js +23 -0
  304. package/test-env/components/header/header_section/header_section_item_button.js +9 -2
  305. package/test-env/components/header/header_section/header_section_item_button.styles.js +49 -0
  306. package/test-env/components/list_group/list_group.js +6 -1
  307. package/test-env/components/list_group/list_group_item.js +22 -9
  308. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +11 -1
  309. package/test-env/components/page/page_header/page_header_content.js +14 -2
  310. package/test-env/components/page/page_template.js +8 -1
  311. package/test-env/components/page_template/page_template.js +1 -1
  312. package/test-env/components/portal/portal.js +49 -17
  313. package/test-env/components/provider/component_defaults/component_defaults.js +81 -0
  314. package/test-env/components/provider/component_defaults/index.js +16 -0
  315. package/test-env/components/provider/index.js +14 -1
  316. package/test-env/components/provider/provider.js +5 -1
  317. package/test-env/components/steps/step.styles.js +2 -1
  318. package/test-env/components/steps/step_horizontal.styles.js +2 -1
  319. package/test-env/components/steps/step_number.styles.js +3 -2
  320. package/test-env/components/table/table_pagination/index.js +14 -1
  321. package/test-env/components/table/table_pagination/table_pagination.js +24 -15
  322. package/test-env/components/table/table_pagination/table_pagination_defaults.js +36 -0
  323. package/test-env/components/tool_tip/icon_tip.js +6 -4
  324. package/test-env/components/tool_tip/tool_tip.js +5 -2
  325. package/src/components/header/_index.scss +0 -3
  326. package/src/components/header/header_alert/_header_alert.scss +0 -40
  327. package/src/components/header/header_alert/_index.scss +0 -1
  328. package/src/components/header/header_links/_header_link.scss +0 -13
  329. package/src/components/header/header_links/_header_links.scss +0 -16
  330. package/src/components/header/header_links/_index.scss +0 -4
  331. package/src/components/header/header_links/_variables.scss +0 -6
  332. package/src/components/header/header_section/_header_section.scss +0 -14
  333. package/src/components/header/header_section/_header_section_item.scss +0 -44
  334. package/src/components/header/header_section/_header_section_item_button.scss +0 -40
  335. package/src/components/header/header_section/_index.scss +0 -3
  336. package/src/components/portal/__snapshots__/_index.scss +0 -1
  337. package/src/themes/amsterdam/overrides/_header.scss +0 -4
@@ -22,7 +22,7 @@ var _i18n = require("../i18n");
22
22
  var _breadcrumb = require("./breadcrumb.styles");
23
23
  var _react2 = require("@emotion/react");
24
24
  var _excluded = ["children", "className", "type", "truncate"],
25
- _excluded2 = ["text", "truncate", "type", "href", "rel", "onClick", "className", "color", "isFirstBreadcrumb", "isLastBreadcrumb", "isOnlyBreadcrumb", "highlightLastBreadcrumb", "truncateLastBreadcrumb"];
25
+ _excluded2 = ["text", "truncate", "type", "href", "rel", "onClick", "popoverContent", "popoverProps", "className", "color", "isFirstBreadcrumb", "isLastBreadcrumb", "isOnlyBreadcrumb", "highlightLastBreadcrumb", "truncateLastBreadcrumb"];
26
26
  /*
27
27
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
28
28
  * or more contributor license agreements. Licensed under the Elastic License
@@ -65,6 +65,8 @@ var EuiBreadcrumbContent = function EuiBreadcrumbContent(_ref2) {
65
65
  href = _ref2.href,
66
66
  rel = _ref2.rel,
67
67
  onClick = _ref2.onClick,
68
+ popoverContent = _ref2.popoverContent,
69
+ popoverProps = _ref2.popoverProps,
68
70
  className = _ref2.className,
69
71
  color = _ref2.color,
70
72
  isFirstBreadcrumb = _ref2.isFirstBreadcrumb,
@@ -86,29 +88,59 @@ var EuiBreadcrumbContent = function EuiBreadcrumbContent(_ref2) {
86
88
  cssStyles.push(styles.applicationStyles.lastChild);
87
89
  }
88
90
  }
91
+ var isInteractiveBreadcrumb = href || onClick;
92
+ var linkColor = color || (highlightLastBreadcrumb ? 'text' : 'subdued');
93
+ var plainTextColor = highlightLastBreadcrumb ? 'default' : 'subdued'; // Does not inherit `color` prop
89
94
  var ariaCurrent = highlightLastBreadcrumb ? 'page' : undefined;
95
+ var isPopoverBreadcrumb = !!popoverContent;
96
+ var _useState = (0, _react.useState)(false),
97
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
98
+ isPopoverOpen = _useState2[0],
99
+ setIsPopoverOpen = _useState2[1];
100
+ var popoverAriaLabel = (0, _i18n.useEuiI18n)('euiBreadcrumb.popoverAriaLabel', 'Clicking this button will toggle a popover dialog.');
90
101
  return (0, _react2.jsx)(_inner_text.EuiInnerText, null, function (ref, innerText) {
91
102
  var title = innerText === '' ? undefined : innerText;
92
- return !href && !onClick ? (0, _react2.jsx)(_text.EuiTextColor, {
93
- color: highlightLastBreadcrumb ? 'default' : 'subdued',
94
- cloneElement: true
95
- }, (0, _react2.jsx)("span", (0, _extends2.default)({
103
+ var sharedProps = {
96
104
  ref: ref,
97
105
  title: title,
98
- "aria-current": ariaCurrent,
106
+ 'aria-current': ariaCurrent,
99
107
  className: classes,
100
108
  css: cssStyles
101
- }, rest), text)) : (0, _react2.jsx)(_link.EuiLink, (0, _extends2.default)({
102
- ref: ref,
103
- title: title,
104
- "aria-current": ariaCurrent,
105
- className: classes,
106
- css: cssStyles,
107
- color: color || (highlightLastBreadcrumb ? 'text' : 'subdued'),
108
- onClick: onClick,
109
- href: href,
110
- rel: rel
111
- }, rest), text);
109
+ };
110
+ if (isPopoverBreadcrumb) {
111
+ return (0, _react2.jsx)(_popover.EuiPopover, (0, _extends2.default)({}, popoverProps, {
112
+ isOpen: isPopoverOpen,
113
+ closePopover: function closePopover() {
114
+ return setIsPopoverOpen(false);
115
+ },
116
+ button: (0, _react2.jsx)(_link.EuiLink, (0, _extends2.default)({}, sharedProps, {
117
+ color: linkColor
118
+ // Avoid passing href and onClick - should only toggle the popover
119
+ ,
120
+ onClick: function onClick() {
121
+ return setIsPopoverOpen(function (isOpen) {
122
+ return !isOpen;
123
+ });
124
+ }
125
+ }, rest), text, ' ', (0, _react2.jsx)(_icon.EuiIcon, {
126
+ type: "arrowDown",
127
+ size: "s",
128
+ "aria-label": " - ".concat(popoverAriaLabel)
129
+ }))
130
+ }), popoverContent);
131
+ } else if (isInteractiveBreadcrumb) {
132
+ return (0, _react2.jsx)(_link.EuiLink, (0, _extends2.default)({}, sharedProps, {
133
+ color: linkColor,
134
+ onClick: onClick,
135
+ href: href,
136
+ rel: rel
137
+ }, rest), text);
138
+ } else {
139
+ return (0, _react2.jsx)(_text.EuiTextColor, {
140
+ color: plainTextColor,
141
+ cloneElement: true
142
+ }, (0, _react2.jsx)("span", (0, _extends2.default)({}, sharedProps, rest), text));
143
+ }
112
144
  });
113
145
  };
114
146
  exports.EuiBreadcrumbContent = EuiBreadcrumbContent;
@@ -129,13 +161,174 @@ EuiBreadcrumbContent.propTypes = {
129
161
  */
130
162
  truncate: _propTypes.default.bool,
131
163
  /**
132
- * Accepts any EuiLink `color` when rendered as one (has `href` or `onClick`)
164
+ * Accepts any EuiLink `color` when rendered as one (has `href`, `onClick`, or `popoverContent`)
133
165
  */
134
166
  color: _propTypes.default.any,
135
167
  /**
136
168
  * Override the existing `aria-current` which defaults to `page` for the last breadcrumb
137
169
  */
138
170
  "aria-current": _propTypes.default.any,
171
+ /**
172
+ * Creates a breadcrumb that toggles a popover dialog
173
+ *
174
+ * If passed, both `href` and `onClick` will be ignored - the breadcrumb's
175
+ * click behavior should only trigger a popover.
176
+ */
177
+ popoverContent: _propTypes.default.node,
178
+ /**
179
+ * Allows customizing the popover if necessary. Accepts any props that
180
+ * [EuiPopover](/#/layout/popover) accepts, except for props that control state.
181
+ */
182
+ popoverProps: _propTypes.default.shape({
183
+ /**
184
+ * Class name passed to the direct parent of the button
185
+ */
186
+ anchorClassName: _propTypes.default.string,
187
+ /**
188
+ * Alignment of the popover and arrow relative to the button
189
+ */
190
+ anchorPosition: _propTypes.default.any,
191
+ /**
192
+ * Style and position alteration for arrow-less, left-aligned
193
+ * attachment. Intended for use with inputs as anchors, e.g.
194
+ * EuiInputPopover
195
+ */
196
+ attachToAnchor: _propTypes.default.bool,
197
+ buttonRef: _propTypes.default.any,
198
+ /**
199
+ * Restrict the popover's position within this element
200
+ */
201
+ container: _propTypes.default.any,
202
+ /**
203
+ * CSS display type for both the popover and anchor
204
+ */
205
+ display: _propTypes.default.any,
206
+ /**
207
+ * Object of props passed to EuiFocusTrap
208
+ */
209
+ focusTrapProps: _propTypes.default.any,
210
+ /**
211
+ * Show arrow indicating to originating button
212
+ */
213
+ hasArrow: _propTypes.default.bool,
214
+ /**
215
+ * Specifies what element should initially have focus; Can be a DOM
216
+ * node, or a selector string (which will be passed to
217
+ * document.querySelector() to find the DOM node), or a function that
218
+ * returns a DOM node.
219
+ *
220
+ * If not passed, initial focus defaults to the popover panel.
221
+ */
222
+ initialFocus: _propTypes.default.any,
223
+ /**
224
+ * Passed directly to EuiPortal for DOM positioning. Both properties are
225
+ * required if prop is specified
226
+ */
227
+ insert: _propTypes.default.shape({
228
+ sibling: _propTypes.default.any.isRequired,
229
+ position: _propTypes.default.oneOf(["before", "after"]).isRequired
230
+ }),
231
+ /**
232
+ * Traps tab focus within the popover contents
233
+ */
234
+ ownFocus: _propTypes.default.bool,
235
+ /**
236
+ * Custom class added to the EuiPanel containing the popover contents
237
+ */
238
+ panelClassName: _propTypes.default.string,
239
+ /**
240
+ * EuiPanel padding on all sides
241
+ */
242
+ panelPaddingSize: _propTypes.default.any,
243
+ /**
244
+ * Standard DOM `style` attribute. Passed to the EuiPanel
245
+ */
246
+ panelStyle: _propTypes.default.any,
247
+ /**
248
+ * Object of props passed to EuiPanel. See #EuiPopoverPanelProps
249
+ */
250
+ panelProps: _propTypes.default.shape({
251
+ element: _propTypes.default.oneOf(["div"]),
252
+ /**
253
+ * Padding for all four sides
254
+ */
255
+ paddingSize: _propTypes.default.any,
256
+ /**
257
+ * Corner border radius
258
+ */
259
+ borderRadius: _propTypes.default.any,
260
+ /**
261
+ * When true the panel will grow in height to match `EuiFlexItem`
262
+ */
263
+ grow: _propTypes.default.bool,
264
+ panelRef: _propTypes.default.any,
265
+ /**
266
+ * Background color of the panel;
267
+ * Usually a lightened form of the brand colors
268
+ */
269
+ color: _propTypes.default.any,
270
+ className: _propTypes.default.string,
271
+ "aria-label": _propTypes.default.string,
272
+ "data-test-subj": _propTypes.default.string,
273
+ css: _propTypes.default.any
274
+ }),
275
+ panelRef: _propTypes.default.any,
276
+ /**
277
+ * Optional screen reader instructions to announce upon popover open,
278
+ * in addition to EUI's default popover instructions for Escape on close.
279
+ * Useful for popovers that may have additional keyboard capabilities such as
280
+ * arrow navigation.
281
+ */
282
+ popoverScreenReaderText: _propTypes.default.oneOfType([_propTypes.default.string.isRequired, _propTypes.default.node.isRequired]),
283
+ popoverRef: _propTypes.default.any,
284
+ /**
285
+ * When `true`, the popover's position is re-calculated when the user
286
+ * scrolls, this supports having fixed-position popover anchors. When nesting
287
+ * an `EuiPopover` in a scrollable container, `repositionOnScroll` should be `true`
288
+ */
289
+ repositionOnScroll: _propTypes.default.bool,
290
+ /**
291
+ * Must be set to true if using `EuiDragDropContext` within a popover,
292
+ * otherwise your nested drag & drop will have incorrect positioning
293
+ */
294
+ hasDragDrop: _propTypes.default.bool,
295
+ /**
296
+ * By default, popover content inherits the z-index of the anchor
297
+ * component; pass `zIndex` to override
298
+ */
299
+ zIndex: _propTypes.default.number,
300
+ /**
301
+ * Distance away from the anchor that the popover will render
302
+ */
303
+ offset: _propTypes.default.number,
304
+ /**
305
+ * Minimum distance between the popover and the bounding container;
306
+ * Pass an array of 4 values to adjust each side differently: `[top, right, bottom, left]`
307
+ * Default is 16
308
+ */
309
+ buffer: _propTypes.default.oneOfType([_propTypes.default.number.isRequired, _propTypes.default.any.isRequired]),
310
+ /**
311
+ * Element to pass as the child element of the arrow;
312
+ * Use case is typically limited to an accompanying `EuiBeacon`
313
+ */
314
+ arrowChildren: _propTypes.default.node,
315
+ /**
316
+ * Provide a name to the popover panel
317
+ */
318
+ "aria-label": _propTypes.default.string,
319
+ /**
320
+ * Alternative option to `aria-label` that takes an `id`.
321
+ * Usually takes the `id` of the popover title
322
+ */
323
+ "aria-labelledby": _propTypes.default.string,
324
+ /**
325
+ * Function callback for when the popover positon changes
326
+ */
327
+ onPositionChange: _propTypes.default.func,
328
+ className: _propTypes.default.string,
329
+ "data-test-subj": _propTypes.default.string,
330
+ css: _propTypes.default.any
331
+ }),
139
332
  type: _propTypes.default.oneOf(["page", "application"]).isRequired,
140
333
  isFirstBreadcrumb: _propTypes.default.bool,
141
334
  isLastBreadcrumb: _propTypes.default.bool,
@@ -147,38 +340,23 @@ var EuiBreadcrumbCollapsed = function EuiBreadcrumbCollapsed(_ref3) {
147
340
  var children = _ref3.children,
148
341
  isFirstBreadcrumb = _ref3.isFirstBreadcrumb,
149
342
  type = _ref3.type;
150
- var _useState = (0, _react.useState)(false),
151
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
152
- isPopoverOpen = _useState2[0],
153
- setIsPopoverOpen = _useState2[1];
154
343
  var euiTheme = (0, _services.useEuiTheme)();
155
344
  var styles = (0, _breadcrumb.euiBreadcrumbStyles)(euiTheme);
156
345
  var cssStyles = [styles.isCollapsed];
157
346
  var ariaLabel = (0, _i18n.useEuiI18n)('euiBreadcrumb.collapsedBadge.ariaLabel', 'See collapsed breadcrumbs');
158
- var ellipsisButton = (0, _react2.jsx)(EuiBreadcrumbContent, {
159
- "aria-label": ariaLabel,
347
+ return (0, _react2.jsx)(EuiBreadcrumb, {
348
+ css: cssStyles,
349
+ type: type
350
+ }, (0, _react2.jsx)(EuiBreadcrumbContent, {
351
+ popoverContent: children,
352
+ text: (0, _react2.jsx)("span", {
353
+ "aria-label": ariaLabel
354
+ }, "\u2026"),
160
355
  title: ariaLabel,
161
- onClick: function onClick() {
162
- return setIsPopoverOpen(!isPopoverOpen);
163
- },
164
356
  truncate: false,
165
- text: (0, _react2.jsx)(_react.default.Fragment, null, "\u2026 ", (0, _react2.jsx)(_icon.EuiIcon, {
166
- type: "arrowDown",
167
- size: "s"
168
- })),
169
357
  isFirstBreadcrumb: isFirstBreadcrumb,
170
358
  type: type
171
- });
172
- return (0, _react2.jsx)(EuiBreadcrumb, {
173
- css: cssStyles,
174
- type: type
175
- }, (0, _react2.jsx)(_popover.EuiPopover, {
176
- button: ellipsisButton,
177
- isOpen: isPopoverOpen,
178
- closePopover: function closePopover() {
179
- return setIsPopoverOpen(false);
180
- }
181
- }, children));
359
+ }));
182
360
  };
183
361
  exports.EuiBreadcrumbCollapsed = EuiBreadcrumbCollapsed;
184
362
  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.
@@ -1,16 +1,28 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.EuiCollapsibleNavBeta = void 0;
8
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _react = _interopRequireDefault(require("react"));
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
14
+ var _react = _interopRequireWildcard(require("react"));
15
+ var _propTypes = _interopRequireDefault(require("prop-types"));
16
+ var _classnames = _interopRequireDefault(require("classnames"));
10
17
  var _services = require("../../services");
11
- var _collapsible_nav = require("../collapsible_nav/collapsible_nav");
18
+ var _global_styling = require("../../global_styling");
19
+ var _flyout = require("../flyout");
20
+ var _header = require("../header/header.styles");
21
+ var _context = require("./context");
22
+ var _collapsible_nav_button = require("./collapsible_nav_button");
12
23
  var _collapsible_nav_beta = require("./collapsible_nav_beta.styles");
13
24
  var _react2 = require("@emotion/react");
25
+ var _excluded = ["id", "children", "className", "style", "initialIsCollapsed", "width", "side", "focusTrapProps"];
14
26
  /*
15
27
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
16
28
  * or more contributor license agreements. Licensed under the Elastic License
@@ -18,16 +30,176 @@ var _react2 = require("@emotion/react");
18
30
  * in compliance with, at your election, the Elastic License 2.0 or the Server
19
31
  * Side Public License, v 1.
20
32
  */
21
-
22
- /**
23
- * TODO: Actual component in a follow-up PR
24
- */
25
- var EuiCollapsibleNavBeta = function EuiCollapsibleNavBeta(props) {
33
+ 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); }
34
+ 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; }
35
+ 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; }
36
+ 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) { (0, _defineProperty2.default)(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; }
37
+ var EuiCollapsibleNavBeta = function EuiCollapsibleNavBeta(_ref) {
38
+ var id = _ref.id,
39
+ children = _ref.children,
40
+ className = _ref.className,
41
+ style = _ref.style,
42
+ _ref$initialIsCollaps = _ref.initialIsCollapsed,
43
+ initialIsCollapsed = _ref$initialIsCollaps === void 0 ? false : _ref$initialIsCollaps,
44
+ _ref$width = _ref.width,
45
+ _width = _ref$width === void 0 ? 248 : _ref$width,
46
+ _ref$side = _ref.side,
47
+ side = _ref$side === void 0 ? 'left' : _ref$side,
48
+ _focusTrapProps = _ref.focusTrapProps,
49
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
26
50
  var euiTheme = (0, _services.useEuiTheme)();
51
+ var headerHeight = (0, _header.euiHeaderVariables)(euiTheme).height;
52
+
53
+ /**
54
+ * Collapsed state
55
+ */
56
+ var _useState = (0, _react.useState)(initialIsCollapsed),
57
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
58
+ isCollapsed = _useState2[0],
59
+ setIsCollapsed = _useState2[1];
60
+ var toggleCollapsed = (0, _react.useCallback)(function () {
61
+ return setIsCollapsed(function (isCollapsed) {
62
+ return !isCollapsed;
63
+ });
64
+ }, []);
65
+ var onClose = (0, _react.useCallback)(function () {
66
+ return setIsCollapsed(true);
67
+ }, []);
68
+
69
+ /**
70
+ * Responsive behavior
71
+ * By default on large enough screens, the nav is always a push flyout,
72
+ * but on smaller/mobile screens, the nav overlays the page instead
73
+ */
74
+ var _useState3 = (0, _react.useState)(false),
75
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
76
+ isOverlay = _useState4[0],
77
+ setIsOverlay = _useState4[1];
78
+ var _useState5 = (0, _react.useState)(false),
79
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
80
+ isOverlayFullWidth = _useState6[0],
81
+ setIsOverlayFullWidth = _useState6[1];
82
+ var flyoutType = isOverlay ? 'overlay' : 'push';
83
+ var isPush = !isOverlay;
84
+
85
+ // Set up a window resize listener that determines breakpoint behavior
86
+ (0, _react.useEffect)(function () {
87
+ var getBreakpoints = function getBreakpoints() {
88
+ setIsOverlay(window.innerWidth < _width * 3);
89
+ setIsOverlayFullWidth(window.innerWidth < _width * 1.5);
90
+ };
91
+ getBreakpoints();
92
+ var onWindowResize = (0, _services.throttle)(getBreakpoints, 50);
93
+ window.addEventListener('resize', onWindowResize);
94
+ return function () {
95
+ return window.removeEventListener('resize', onWindowResize);
96
+ };
97
+ }, [_width]);
98
+
99
+ // If the nav was previously uncollapsed and shrinks down to the
100
+ // overlay flyout, default to its hidden/collapsed state
101
+ (0, _react.useEffect)(function () {
102
+ if (isOverlay) setIsCollapsed(true);
103
+ }, [isOverlay]);
104
+ var width = (0, _react.useMemo)(function () {
105
+ if (isOverlayFullWidth) return '100%';
106
+ if (isPush && isCollapsed) return headerHeight;
107
+ return _width;
108
+ }, [_width, isOverlayFullWidth, isPush, isCollapsed, headerHeight]);
109
+
110
+ /**
111
+ * Header affordance
112
+ */
113
+ var _useState7 = (0, _react.useState)(false),
114
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
115
+ fixedHeadersCount = _useState8[0],
116
+ setFixedHeadersCount = _useState8[1];
117
+ (0, _react.useEffect)(function () {
118
+ setFixedHeadersCount(document.querySelectorAll('.euiHeader[data-fixed-header]').length);
119
+ }, []);
120
+ var stylesWithHeaderOffset = (0, _react.useMemo)(function () {
121
+ if (!fixedHeadersCount) return style;
122
+ var headersOffset = (0, _global_styling.mathWithUnits)(headerHeight, function (x) {
123
+ return x * fixedHeadersCount;
124
+ });
125
+ return _objectSpread(_objectSpread(_objectSpread({}, style), (0, _global_styling.logicalStyle)('top', headersOffset)), (0, _global_styling.logicalStyle)('height', "calc(100% - ".concat(headersOffset, ")")));
126
+ }, [fixedHeadersCount, style, headerHeight]);
127
+
128
+ /**
129
+ * Prop setup
130
+ */
131
+ var flyoutID = (0, _services.useGeneratedHtmlId)({
132
+ conditionalId: id,
133
+ suffix: 'euiCollapsibleNav'
134
+ });
135
+ var buttonRef = (0, _react.useRef)(null);
136
+ var focusTrapProps = (0, _react.useMemo)(function () {
137
+ return _objectSpread(_objectSpread({}, _focusTrapProps), {}, {
138
+ shards: [buttonRef].concat((0, _toConsumableArray2.default)((_focusTrapProps === null || _focusTrapProps === void 0 ? void 0 : _focusTrapProps.shards) || []))
139
+ });
140
+ }, [_focusTrapProps]);
141
+ var classes = (0, _classnames.default)('euiCollapsibleNav', 'euiCollapsibleNavBeta', className);
27
142
  var styles = (0, _collapsible_nav_beta.euiCollapsibleNavBetaStyles)(euiTheme);
28
- return (0, _react2.jsx)(_collapsible_nav.EuiCollapsibleNav, (0, _extends2.default)({
29
- css: styles.euiCollapsibleNavBeta,
30
- size: 248
31
- }, props));
143
+ var cssStyles = [styles.euiCollapsibleNavBeta, styles[side], isPush && styles.isPush, isPush && isCollapsed && styles.isPushCollapsed, isOverlayFullWidth && styles.isOverlayFullWidth];
144
+
145
+ // Wait for any fixed headers to be queried before rendering (prevents position jumping)
146
+ var flyout = fixedHeadersCount !== false && (0, _react2.jsx)(_flyout.EuiFlyout, (0, _extends2.default)({}, rest, {
147
+ // EuiCollapsibleNav is significantly less permissive than EuiFlyout
148
+ id: flyoutID,
149
+ css: cssStyles,
150
+ className: classes,
151
+ style: stylesWithHeaderOffset,
152
+ size: width,
153
+ side: side,
154
+ focusTrapProps: focusTrapProps,
155
+ as: "nav",
156
+ type: flyoutType,
157
+ paddingSize: "none",
158
+ pushMinBreakpoint: "xs",
159
+ onClose: onClose,
160
+ hideCloseButton: true
161
+ }), children);
162
+ var hideFlyout = isOverlay && isCollapsed;
163
+ return (0, _react2.jsx)(_context.EuiCollapsibleNavContext.Provider, {
164
+ value: {
165
+ isPush: isPush,
166
+ isCollapsed: isCollapsed,
167
+ side: side
168
+ }
169
+ }, (0, _react2.jsx)(_collapsible_nav_button.EuiCollapsibleNavButton, {
170
+ ref: buttonRef,
171
+ onClick: toggleCollapsed,
172
+ "aria-controls": flyoutID
173
+ }), !hideFlyout && flyout);
32
174
  };
33
- exports.EuiCollapsibleNavBeta = EuiCollapsibleNavBeta;
175
+ exports.EuiCollapsibleNavBeta = EuiCollapsibleNavBeta;
176
+ EuiCollapsibleNavBeta.propTypes = {
177
+ className: _propTypes.default.string,
178
+ "aria-label": _propTypes.default.string,
179
+ "data-test-subj": _propTypes.default.string,
180
+ css: _propTypes.default.any,
181
+ /**
182
+ * ReactNode(s) to render as navigation flyout content, typically `EuiCollapsibleNavItem`s.
183
+ * You may also want to use `EuiFlyoutBody` and `EuiFlyoutFooter` for organization.
184
+ */
185
+ children: _propTypes.default.node,
186
+ /**
187
+ * Whether the navigation flyout should default to initially collapsed or expanded
188
+ */
189
+ initialIsCollapsed: _propTypes.default.bool,
190
+ /**
191
+ * Defaults to 248px wide. The navigation width determines behavior at
192
+ * various responsive breakpoints.
193
+ *
194
+ * At larger screen sizes (at least 3x the width of the nav), the nav will
195
+ * be able to be toggled between a docked full width nav and a collapsed
196
+ * side bar that only shows the icon of each item.
197
+ *
198
+ * At under 3 times the width of the nav, the behavior will lose the collapsed
199
+ * side bar behavior, and switch from a docked flyout to an overlay flyout only.
200
+ *
201
+ * If the page is under 1.5 times the width of the nav, the overlay will
202
+ * take up the full width of the page.
203
+ */
204
+ width: _propTypes.default.number
205
+ };
@@ -6,18 +6,31 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.euiCollapsibleNavBetaStyles = void 0;
7
7
  var _react = require("@emotion/react");
8
8
  var _global_styling = require("../../global_styling");
9
- /*
10
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
11
- * or more contributor license agreements. Licensed under the Elastic License
12
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
13
- * in compliance with, at your election, the Elastic License 2.0 or the Server
14
- * Side Public License, v 1.
15
- */
16
-
9
+ var _themes = require("../../themes");
10
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } /*
11
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
12
+ * or more contributor license agreements. Licensed under the Elastic License
13
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
14
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
15
+ * Side Public License, v 1.
16
+ */
17
+ var _ref = process.env.NODE_ENV === "production" ? {
18
+ name: "1adm1dw-isPushCollapsed",
19
+ styles: "&,.euiFlyoutBody__overflow{scrollbar-width:none;&::-webkit-scrollbar{display:none;}};label:isPushCollapsed;"
20
+ } : {
21
+ name: "1adm1dw-isPushCollapsed",
22
+ styles: "&,.euiFlyoutBody__overflow{scrollbar-width:none;&::-webkit-scrollbar{display:none;}};label:isPushCollapsed;",
23
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
24
+ };
17
25
  var euiCollapsibleNavBetaStyles = function euiCollapsibleNavBetaStyles(euiThemeContext) {
18
26
  var euiTheme = euiThemeContext.euiTheme;
19
27
  return {
20
- euiCollapsibleNavBeta: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('border-top', euiTheme.border.thin), " ", (0, _global_styling.logicalCSS)('border-right', euiTheme.border.thin), " .euiFlyoutFooter{background-color:", euiTheme.colors.emptyShade, ";", (0, _global_styling.logicalCSS)('border-top', euiTheme.border.thin), ";};label:euiCollapsibleNavBeta;")
28
+ euiCollapsibleNavBeta: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('padding-bottom', euiTheme.size.xs), (0, _global_styling.euiYScroll)(euiThemeContext), ".euiFlyoutBody{", (0, _global_styling.logicalCSS)('min-height', '50%'), ";}.euiFlyoutFooter{background-color:", euiTheme.colors.emptyShade, ";", (0, _global_styling.logicalCSS)('border-top', euiTheme.border.thin), ";};label:euiCollapsibleNavBeta;"),
29
+ left: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('border-right', euiTheme.border.thin), ";;label:left;"),
30
+ right: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('border-left', euiTheme.border.thin), ";;label:right;"),
31
+ isPush: /*#__PURE__*/(0, _react.css)((0, _themes.euiShadowFlat)(euiThemeContext), ";;label:isPush;"),
32
+ isPushCollapsed: _ref,
33
+ isOverlayFullWidth: /*#__PURE__*/(0, _react.css)("&.euiFlyout{", (0, _global_styling.logicalCSS)('max-width', '100% !important'), ";};label:isOverlayFullWidth;")
21
34
  };
22
35
  };
23
36
  exports.euiCollapsibleNavBetaStyles = euiCollapsibleNavBetaStyles;