@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
@@ -225,6 +225,11 @@ EuiPinnableListGroup.propTypes = {
225
225
  * By default the text will be same as the label text.
226
226
  */
227
227
  toolTipText: PropTypes.string,
228
+ /**
229
+ * Allows customizing the tooltip shown when `showToolTip` is true.
230
+ * Accepts any props that [EuiToolTip](/#/display/tooltip) accepts.
231
+ */
232
+ toolTipProps: PropTypes.any,
228
233
  /**
229
234
  * Saves the pinned status and changes the visibility of the pin icon
230
235
  */
@@ -326,7 +331,12 @@ EuiPinnableListGroup.propTypes = {
326
331
  * Text to be displayed in the tooltip when `showToolTip` is true.
327
332
  * By default the text will be same as the label text.
328
333
  */
329
- toolTipText: PropTypes.string
334
+ toolTipText: PropTypes.string,
335
+ /**
336
+ * Allows customizing the tooltip shown when `showToolTip` is true.
337
+ * Accepts any props that [EuiToolTip](/#/display/tooltip) accepts.
338
+ */
339
+ toolTipProps: PropTypes.any
330
340
  }).isRequired)]),
331
341
  /**
332
342
  * Shows the pin icon and calls this function on click.
@@ -292,13 +292,173 @@ EuiPageHeaderContent.propTypes = {
292
292
  */
293
293
  truncate: PropTypes.bool,
294
294
  /**
295
- * Accepts any EuiLink `color` when rendered as one (has `href` or `onClick`)
295
+ * Accepts any EuiLink `color` when rendered as one (has `href`, `onClick`, or `popoverContent`)
296
296
  */
297
297
  color: PropTypes.any,
298
298
  /**
299
299
  * Override the existing `aria-current` which defaults to `page` for the last breadcrumb
300
300
  */
301
- "aria-current": PropTypes.any
301
+ "aria-current": PropTypes.any,
302
+ /**
303
+ * Creates a breadcrumb that toggles a popover dialog
304
+ *
305
+ * If passed, both `href` and `onClick` will be ignored - the breadcrumb's
306
+ * click behavior should only trigger a popover.
307
+ */
308
+ popoverContent: PropTypes.node,
309
+ /**
310
+ * Allows customizing the popover if necessary. Accepts any props that
311
+ * [EuiPopover](/#/layout/popover) accepts, except for props that control state.
312
+ */
313
+ popoverProps: PropTypes.shape({
314
+ /**
315
+ * Class name passed to the direct parent of the button
316
+ */
317
+ anchorClassName: PropTypes.string,
318
+ /**
319
+ * Alignment of the popover and arrow relative to the button
320
+ */
321
+ anchorPosition: PropTypes.any,
322
+ /**
323
+ * Style and position alteration for arrow-less attachment.
324
+ * Intended for use with inputs as anchors, e.g. EuiInputPopover
325
+ */
326
+ attachToAnchor: PropTypes.bool,
327
+ buttonRef: PropTypes.any,
328
+ /**
329
+ * Restrict the popover's position within this element
330
+ */
331
+ container: PropTypes.any,
332
+ /**
333
+ * CSS display type for both the popover and anchor
334
+ */
335
+ display: PropTypes.any,
336
+ /**
337
+ * Object of props passed to EuiFocusTrap
338
+ */
339
+ focusTrapProps: PropTypes.any,
340
+ /**
341
+ * Show arrow indicating to originating button
342
+ */
343
+ hasArrow: PropTypes.bool,
344
+ /**
345
+ * Specifies what element should initially have focus; Can be a DOM
346
+ * node, or a selector string (which will be passed to
347
+ * document.querySelector() to find the DOM node), or a function that
348
+ * returns a DOM node.
349
+ *
350
+ * If not passed, initial focus defaults to the popover panel.
351
+ */
352
+ initialFocus: PropTypes.any,
353
+ /**
354
+ * Passed directly to EuiPortal for DOM positioning. Both properties are
355
+ * required if prop is specified
356
+ */
357
+ insert: PropTypes.shape({
358
+ sibling: PropTypes.any.isRequired,
359
+ position: PropTypes.oneOf(["before", "after"]).isRequired
360
+ }),
361
+ /**
362
+ * Traps tab focus within the popover contents
363
+ */
364
+ ownFocus: PropTypes.bool,
365
+ /**
366
+ * Custom class added to the EuiPanel containing the popover contents
367
+ */
368
+ panelClassName: PropTypes.string,
369
+ /**
370
+ * EuiPanel padding on all sides
371
+ */
372
+ panelPaddingSize: PropTypes.any,
373
+ /**
374
+ * Standard DOM `style` attribute. Passed to the EuiPanel
375
+ */
376
+ panelStyle: PropTypes.any,
377
+ /**
378
+ * Object of props passed to EuiPanel. See #EuiPopoverPanelProps
379
+ */
380
+ panelProps: PropTypes.shape({
381
+ element: PropTypes.oneOf(["div"]),
382
+ /**
383
+ * Padding for all four sides
384
+ */
385
+ paddingSize: PropTypes.any,
386
+ /**
387
+ * Corner border radius
388
+ */
389
+ borderRadius: PropTypes.any,
390
+ /**
391
+ * When true the panel will grow in height to match `EuiFlexItem`
392
+ */
393
+ grow: PropTypes.bool,
394
+ panelRef: PropTypes.any,
395
+ /**
396
+ * Background color of the panel;
397
+ * Usually a lightened form of the brand colors
398
+ */
399
+ color: PropTypes.any,
400
+ className: PropTypes.string,
401
+ "aria-label": PropTypes.string,
402
+ "data-test-subj": PropTypes.string,
403
+ css: PropTypes.any
404
+ }),
405
+ panelRef: PropTypes.any,
406
+ /**
407
+ * Optional screen reader instructions to announce upon popover open,
408
+ * in addition to EUI's default popover instructions for Escape on close.
409
+ * Useful for popovers that may have additional keyboard capabilities such as
410
+ * arrow navigation.
411
+ */
412
+ popoverScreenReaderText: PropTypes.oneOfType([PropTypes.string.isRequired, PropTypes.node.isRequired]),
413
+ popoverRef: PropTypes.any,
414
+ /**
415
+ * When `true`, the popover's position is re-calculated when the user
416
+ * scrolls, this supports having fixed-position popover anchors. When nesting
417
+ * an `EuiPopover` in a scrollable container, `repositionOnScroll` should be `true`
418
+ */
419
+ repositionOnScroll: PropTypes.bool,
420
+ /**
421
+ * Must be set to true if using `EuiDragDropContext` within a popover,
422
+ * otherwise your nested drag & drop will have incorrect positioning
423
+ */
424
+ hasDragDrop: PropTypes.bool,
425
+ /**
426
+ * By default, popover content inherits the z-index of the anchor
427
+ * component; pass `zIndex` to override
428
+ */
429
+ zIndex: PropTypes.number,
430
+ /**
431
+ * Distance away from the anchor that the popover will render
432
+ */
433
+ offset: PropTypes.number,
434
+ /**
435
+ * Minimum distance between the popover and the bounding container;
436
+ * Pass an array of 4 values to adjust each side differently: `[top, right, bottom, left]`
437
+ * Default is 16
438
+ */
439
+ buffer: PropTypes.oneOfType([PropTypes.number.isRequired, PropTypes.any.isRequired]),
440
+ /**
441
+ * Element to pass as the child element of the arrow;
442
+ * Use case is typically limited to an accompanying `EuiBeacon`
443
+ */
444
+ arrowChildren: PropTypes.node,
445
+ /**
446
+ * Provide a name to the popover panel
447
+ */
448
+ "aria-label": PropTypes.string,
449
+ /**
450
+ * Alternative option to `aria-label` that takes an `id`.
451
+ * Usually takes the `id` of the popover title
452
+ */
453
+ "aria-labelledby": PropTypes.string,
454
+ /**
455
+ * Function callback for when the popover positon changes
456
+ */
457
+ onPositionChange: PropTypes.func,
458
+ className: PropTypes.string,
459
+ "data-test-subj": PropTypes.string,
460
+ css: PropTypes.any
461
+ })
302
462
  }).isRequired),
303
463
  /**
304
464
  * Adjust the props of [EuiBreadcrumbs](#/navigation/breadcrumbs)
@@ -22,7 +22,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
22
22
  * Side Public License, v 1.
23
23
  */
24
24
 
25
- import React, { useEffect, useState } from 'react';
25
+ import React, { useLayoutEffect, useState } from 'react';
26
26
  import PropTypes from "prop-types";
27
27
  import { logicalStyle, useEuiPaddingCSS } from '../../../global_styling';
28
28
  import { useEuiTheme, useIsWithinBreakpoints } from '../../../services';
@@ -51,7 +51,7 @@ export var EuiPageSidebar = function EuiPageSidebar(_ref) {
51
51
  _useState2 = _slicedToArray(_useState, 2),
52
52
  inlineStyles = _useState2[0],
53
53
  setInlineStyles = _useState2[1];
54
- useEffect(function () {
54
+ useLayoutEffect(function () {
55
55
  var updatedStyles = _objectSpread(_objectSpread({}, style), logicalStyle('min-width', isResponding ? '100%' : minWidth));
56
56
  if (sticky) {
57
57
  var _document$body$datase;
@@ -524,10 +524,17 @@ EuiPageTemplate_Deprecated.propTypes = {
524
524
  * ReactNode to render as this component's content
525
525
  */
526
526
  children: PropTypes.node.isRequired,
527
+ /**
528
+ * If not specified, `EuiPortal` will insert itself
529
+ * into the end of the `document.body` by default
530
+ */
527
531
  insert: PropTypes.shape({
528
532
  sibling: PropTypes.any.isRequired,
529
- position: PropTypes.oneOf(["before", "after"]).isRequired
533
+ position: PropTypes.any.isRequired
530
534
  }),
535
+ /**
536
+ * Optional ref callback
537
+ */
531
538
  portalRef: PropTypes.func
532
539
  }).isRequired]),
533
540
  /**
@@ -39,6 +39,14 @@ export var TemplateContext = /*#__PURE__*/createContext({
39
39
  emptyPrompt: {},
40
40
  bottomBar: {}
41
41
  });
42
+ var calculateOffset = function calculateOffset(base) {
43
+ var _document$body$datase;
44
+ if (typeof document === 'undefined') return 0; // SSR catch
45
+
46
+ var euiHeaderFixedCounter = Number((_document$body$datase = document.body.dataset.fixedHeaders) !== null && _document$body$datase !== void 0 ? _document$body$datase : 0);
47
+ return base * 3 * euiHeaderFixedCounter;
48
+ };
49
+
42
50
  /**
43
51
  * Consumed via `EuiPageTemplate`,
44
52
  * it controls and propogates most of the shared props per direct child
@@ -65,7 +73,9 @@ export var _EuiPageTemplate = function _EuiPageTemplate(_ref) {
65
73
  rest = _objectWithoutProperties(_ref, _excluded);
66
74
  var _useEuiTheme = useEuiTheme(),
67
75
  euiTheme = _useEuiTheme.euiTheme;
68
- var _useState = useState(_offset),
76
+ var _useState = useState(function () {
77
+ return _offset !== null && _offset !== void 0 ? _offset : calculateOffset(euiTheme.base);
78
+ }),
69
79
  _useState2 = _slicedToArray(_useState, 2),
70
80
  offset = _useState2[0],
71
81
  setOffset = _useState2[1];
@@ -78,9 +88,7 @@ export var _EuiPageTemplate = function _EuiPageTemplate(_ref) {
78
88
  });
79
89
  useEffect(function () {
80
90
  if (_offset === undefined) {
81
- var _document$body$datase;
82
- var euiHeaderFixedCounter = Number((_document$body$datase = document.body.dataset.fixedHeaders) !== null && _document$body$datase !== void 0 ? _document$body$datase : 0);
83
- setOffset(euiTheme.base * 3 * euiHeaderFixedCounter);
91
+ setOffset(calculateOffset(euiTheme.base));
84
92
  }
85
93
  }, [_offset, euiTheme.base]);
86
94
 
@@ -122,7 +130,7 @@ export var _EuiPageTemplate = function _EuiPageTemplate(_ref) {
122
130
  };
123
131
  };
124
132
  var innerPanelled = function innerPanelled() {
125
- return panelled === false ? false : Boolean(sidebar.length > 0);
133
+ return panelled !== null && panelled !== void 0 ? panelled : Boolean(sidebar.length > 0);
126
134
  };
127
135
  var innerBordered = function innerBordered() {
128
136
  return contentBorder !== undefined ? contentBorder : Boolean(sidebar.length > 0);
@@ -1,4 +1,4 @@
1
- var _excluded = ["children", "className", "disableFocusTrap", "focusTrapProps", "input", "fullWidth", "onPanelResize", "inputRef", "panelRef"];
1
+ var _excluded = ["children", "className", "disableFocusTrap", "focusTrapProps", "input", "fullWidth", "panelMinWidth", "onPanelResize", "inputRef", "panelRef"];
2
2
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
3
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
4
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
@@ -16,7 +16,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
16
16
  * Side Public License, v 1.
17
17
  */
18
18
 
19
- import React, { useState, useEffect, useCallback } from 'react';
19
+ import React, { useState, useEffect, useCallback, useRef } from 'react';
20
20
  import PropTypes from "prop-types";
21
21
  import classnames from 'classnames';
22
22
  import { tabbable } from 'tabbable';
@@ -37,6 +37,8 @@ export var EuiInputPopover = function EuiInputPopover(_ref) {
37
37
  input = _ref.input,
38
38
  _ref$fullWidth = _ref.fullWidth,
39
39
  fullWidth = _ref$fullWidth === void 0 ? false : _ref$fullWidth,
40
+ _ref$panelMinWidth = _ref.panelMinWidth,
41
+ panelMinWidth = _ref$panelMinWidth === void 0 ? 0 : _ref$panelMinWidth,
40
42
  onPanelResize = _ref.onPanelResize,
41
43
  _inputRef = _ref.inputRef,
42
44
  _panelRef = _ref.panelRef,
@@ -54,22 +56,24 @@ export var EuiInputPopover = function EuiInputPopover(_ref) {
54
56
  _useState6 = _slicedToArray(_useState5, 2),
55
57
  panelEl = _useState6[0],
56
58
  setPanelEl = _useState6[1];
59
+ var popoverClassRef = useRef(null);
57
60
  var inputRef = useCombinedRefs([setInputEl, _inputRef]);
58
61
  var panelRef = useCombinedRefs([setPanelEl, _panelRef]);
59
62
  var setPanelWidth = useCallback(function (width) {
60
63
  if (panelEl && (!!inputElWidth || !!width)) {
61
64
  var newWidth = !!width ? width : inputElWidth;
62
- panelEl.style.width = "".concat(newWidth, "px");
63
- if (onPanelResize) {
64
- onPanelResize(newWidth);
65
- }
65
+ var widthToSet = newWidth && newWidth > panelMinWidth ? newWidth : panelMinWidth;
66
+ panelEl.style.width = "".concat(widthToSet, "px");
67
+ onPanelResize === null || onPanelResize === void 0 ? void 0 : onPanelResize(widthToSet);
66
68
  }
67
- }, [panelEl, inputElWidth, onPanelResize]);
69
+ }, [panelEl, inputElWidth, onPanelResize, panelMinWidth]);
68
70
  var onResize = useCallback(function () {
69
71
  if (inputEl) {
72
+ var _popoverClassRef$curr;
70
73
  var _width = inputEl.getBoundingClientRect().width;
71
74
  setInputElWidth(_width);
72
75
  setPanelWidth(_width);
76
+ (_popoverClassRef$curr = popoverClassRef.current) === null || _popoverClassRef$curr === void 0 ? void 0 : _popoverClassRef$curr.positionPopoverFluid();
73
77
  }
74
78
  }, [inputEl, setPanelWidth]);
75
79
  useEffect(function () {
@@ -104,7 +108,8 @@ export var EuiInputPopover = function EuiInputPopover(_ref) {
104
108
  }),
105
109
  buttonRef: inputRef,
106
110
  panelRef: panelRef,
107
- className: classes
111
+ className: classes,
112
+ ref: popoverClassRef
108
113
  }, props), ___EmotionJSX(EuiFocusTrap, _extends({
109
114
  clickOutsideDisables: true,
110
115
  disabled: disableFocusTrap
@@ -117,11 +122,21 @@ EuiInputPopover.propTypes = {
117
122
  "aria-label": PropTypes.string,
118
123
  "data-test-subj": PropTypes.string,
119
124
  css: PropTypes.any,
125
+ /**
126
+ * Alignment of the popover relative to the input
127
+ */
128
+ anchorPosition: PropTypes.oneOf(["downLeft", "downRight", "downCenter"]),
120
129
  disableFocusTrap: PropTypes.bool,
121
130
  fullWidth: PropTypes.bool,
122
131
  input: PropTypes.any.isRequired,
123
132
  inputRef: PropTypes.any,
124
- onPanelResize: PropTypes.func
133
+ onPanelResize: PropTypes.func,
134
+ /**
135
+ * By default, **EuiInputPopovers** inherit the same width as the passed input element.
136
+ * However, if the input width is too small, you can pass a minimum panel width
137
+ * (that should be based on the popover content).
138
+ */
139
+ panelMinWidth: PropTypes.number
125
140
  };
126
141
  EuiInputPopover.defaultProps = {
127
142
  anchorPosition: 'downLeft',
@@ -221,8 +221,7 @@ export var EuiPopover = /*#__PURE__*/function (_Component) {
221
221
  top = _findPopoverPosition.top,
222
222
  left = _findPopoverPosition.left,
223
223
  foundPosition = _findPopoverPosition.position,
224
- arrow = _findPopoverPosition.arrow,
225
- anchorBoundingBox = _findPopoverPosition.anchorBoundingBox;
224
+ arrow = _findPopoverPosition.arrow;
226
225
 
227
226
  // the popover's z-index must inherit from the button
228
227
  // this keeps a button's popover under a flyout that would cover the button
@@ -231,7 +230,7 @@ export var EuiPopover = /*#__PURE__*/function (_Component) {
231
230
  var zIndex = zIndexProp == null ? getElementZIndex(_this.button, _this.panel) + 2000 : zIndexProp;
232
231
  var popoverStyles = _objectSpread(_objectSpread({}, _this.props.panelStyle), {}, {
233
232
  top: top,
234
- left: _this.props.attachToAnchor && anchorBoundingBox ? anchorBoundingBox.left : left,
233
+ left: left,
235
234
  zIndex: zIndex
236
235
  });
237
236
  var willRenderArrow = !_this.props.attachToAnchor && _this.props.hasArrow;
@@ -552,9 +551,8 @@ EuiPopover.propTypes = {
552
551
  */
553
552
  anchorPosition: PropTypes.any,
554
553
  /**
555
- * Style and position alteration for arrow-less, left-aligned
556
- * attachment. Intended for use with inputs as anchors, e.g.
557
- * EuiInputPopover
554
+ * Style and position alteration for arrow-less attachment.
555
+ * Intended for use with inputs as anchors, e.g. EuiInputPopover
558
556
  */
559
557
  attachToAnchor: PropTypes.bool,
560
558
  /**
@@ -25,29 +25,52 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
25
25
  * into portals.
26
26
  */
27
27
 
28
- import { Component } from 'react';
28
+ import React, { Component } from 'react';
29
29
  import PropTypes from "prop-types";
30
30
  import { createPortal } from 'react-dom';
31
31
  import { EuiNestedThemeContext } from '../../services';
32
- import { keysOf } from '../common';
33
- export var insertPositions = {
32
+ import { usePropsWithComponentDefaults } from '../provider/component_defaults';
33
+ import { jsx as ___EmotionJSX } from "@emotion/react";
34
+ var INSERT_POSITIONS = ['after', 'before'];
35
+ var insertPositions = {
34
36
  after: 'afterend',
35
37
  before: 'beforebegin'
36
38
  };
37
- export var INSERT_POSITIONS = keysOf(insertPositions);
38
- export var EuiPortal = /*#__PURE__*/function (_Component) {
39
- _inherits(EuiPortal, _Component);
40
- var _super = _createSuper(EuiPortal);
41
- function EuiPortal(props) {
39
+ export var EuiPortal = function EuiPortal(props) {
40
+ var propsWithDefaults = usePropsWithComponentDefaults('EuiPortal', props);
41
+ return ___EmotionJSX(EuiPortalClass, propsWithDefaults);
42
+ };
43
+ EuiPortal.propTypes = {
44
+ /**
45
+ * ReactNode to render as this component's content
46
+ */
47
+ children: PropTypes.node.isRequired,
48
+ /**
49
+ * If not specified, `EuiPortal` will insert itself
50
+ * into the end of the `document.body` by default
51
+ */
52
+ insert: PropTypes.shape({
53
+ sibling: PropTypes.any.isRequired,
54
+ position: PropTypes.any.isRequired
55
+ }),
56
+ /**
57
+ * Optional ref callback
58
+ */
59
+ portalRef: PropTypes.func
60
+ };
61
+ export var EuiPortalClass = /*#__PURE__*/function (_Component) {
62
+ _inherits(EuiPortalClass, _Component);
63
+ var _super = _createSuper(EuiPortalClass);
64
+ function EuiPortalClass(props) {
42
65
  var _this;
43
- _classCallCheck(this, EuiPortal);
66
+ _classCallCheck(this, EuiPortalClass);
44
67
  _this = _super.call(this, props);
45
68
  _this.state = {
46
69
  portalNode: null
47
70
  };
48
71
  return _this;
49
72
  }
50
- _createClass(EuiPortal, [{
73
+ _createClass(EuiPortalClass, [{
51
74
  key: "componentDidMount",
52
75
  value: function componentDidMount() {
53
76
  var insert = this.props.insert;
@@ -111,17 +134,24 @@ export var EuiPortal = /*#__PURE__*/function (_Component) {
111
134
  return /*#__PURE__*/createPortal(this.props.children, portalNode);
112
135
  }
113
136
  }]);
114
- return EuiPortal;
137
+ return EuiPortalClass;
115
138
  }(Component);
116
- _defineProperty(EuiPortal, "contextType", EuiNestedThemeContext);
117
- EuiPortal.propTypes = {
139
+ _defineProperty(EuiPortalClass, "contextType", EuiNestedThemeContext);
140
+ EuiPortalClass.propTypes = {
118
141
  /**
119
142
  * ReactNode to render as this component's content
120
143
  */
121
144
  children: PropTypes.node.isRequired,
145
+ /**
146
+ * If not specified, `EuiPortal` will insert itself
147
+ * into the end of the `document.body` by default
148
+ */
122
149
  insert: PropTypes.shape({
123
150
  sibling: PropTypes.any.isRequired,
124
- position: PropTypes.oneOf(["before", "after"]).isRequired
151
+ position: PropTypes.any.isRequired
125
152
  }),
153
+ /**
154
+ * Optional ref callback
155
+ */
126
156
  portalRef: PropTypes.func
127
157
  };
@@ -0,0 +1,73 @@
1
+ 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); }
2
+ 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; }
3
+ 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; }
4
+ 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; }
5
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
6
+ 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); }
7
+ /*
8
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
9
+ * or more contributor license agreements. Licensed under the Elastic License
10
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
11
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
12
+ * Side Public License, v 1.
13
+ */
14
+
15
+ import React, { createContext, useContext, useMemo } from 'react';
16
+ import PropTypes from "prop-types";
17
+ import { jsx as ___EmotionJSX } from "@emotion/react";
18
+ // Declaring as a static const for reference integrity/reducing rerenders
19
+ var emptyDefaults = {};
20
+
21
+ /*
22
+ * Context
23
+ */
24
+ export var EuiComponentDefaultsContext = /*#__PURE__*/createContext(emptyDefaults);
25
+
26
+ /*
27
+ * Component
28
+ */
29
+
30
+ export var EuiComponentDefaultsProvider = function EuiComponentDefaultsProvider(_ref) {
31
+ var _ref$componentDefault = _ref.componentDefaults,
32
+ componentDefaults = _ref$componentDefault === void 0 ? emptyDefaults : _ref$componentDefault,
33
+ children = _ref.children;
34
+ return ___EmotionJSX(EuiComponentDefaultsContext.Provider, {
35
+ value: componentDefaults
36
+ }, children);
37
+ };
38
+
39
+ /*
40
+ * Hooks
41
+ */
42
+ EuiComponentDefaultsProvider.propTypes = {
43
+ componentDefaults: PropTypes.shape({
44
+ /**
45
+ * Provide a global configuration for EuiPortal's default insertion position.
46
+ */
47
+ EuiPortal: PropTypes.any,
48
+ /**
49
+ * Provide a global configuration for EuiFocusTrap's `gapMode` and `crossFrame` props
50
+ */
51
+ EuiFocusTrap: PropTypes.any,
52
+ /**
53
+ * Provide global settings for EuiTablePagination's props that affect page size
54
+ * / the rows per page selection.
55
+ *
56
+ * These defaults will be inherited all table and grid components that utilize EuiTablePagination.
57
+ */
58
+ EuiTablePagination: PropTypes.any
59
+ })
60
+ };
61
+ export var useComponentDefaults = function useComponentDefaults() {
62
+ return useContext(EuiComponentDefaultsContext);
63
+ };
64
+
65
+ // Merge individual component props with component defaults
66
+ export var usePropsWithComponentDefaults = function usePropsWithComponentDefaults(componentName, props) {
67
+ var _context$componentNam;
68
+ var context = useContext(EuiComponentDefaultsContext);
69
+ var componentDefaults = (_context$componentNam = context[componentName]) !== null && _context$componentNam !== void 0 ? _context$componentNam : emptyDefaults;
70
+ return useMemo(function () {
71
+ return _objectSpread(_objectSpread({}, componentDefaults), props);
72
+ }, [componentDefaults, props]);
73
+ };
@@ -0,0 +1,9 @@
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+
9
+ export * from './component_defaults';
@@ -6,4 +6,5 @@
6
6
  * Side Public License, v 1.
7
7
  */
8
8
 
9
- export { EuiProvider } from './provider';
9
+ export { EuiProvider } from './provider';
10
+ export { EuiComponentDefaultsProvider, EuiComponentDefaultsContext } from './component_defaults';
@@ -15,6 +15,7 @@ import { emitEuiProviderWarning } from '../../services/theme/warning';
15
15
  import { EuiThemeAmsterdam } from '../../themes';
16
16
  import { EuiCacheProvider } from './cache';
17
17
  import { EuiProviderNestedCheck, useIsNestedEuiProvider } from './nested';
18
+ import { EuiComponentDefaultsProvider } from './component_defaults';
18
19
  import { jsx as ___EmotionJSX } from "@emotion/react";
19
20
  var isEmotionCacheObject = function isEmotionCacheObject(obj) {
20
21
  return obj.hasOwnProperty('key');
@@ -31,6 +32,7 @@ export var EuiProvider = function EuiProvider(_ref) {
31
32
  Utilities = _ref$utilityClasses === void 0 ? EuiUtilityClasses : _ref$utilityClasses,
32
33
  colorMode = _ref.colorMode,
33
34
  modify = _ref.modify,
35
+ componentDefaults = _ref.componentDefaults,
34
36
  children = _ref.children;
35
37
  var isNested = useIsNestedEuiProvider();
36
38
  if (isNested) {
@@ -72,5 +74,7 @@ export var EuiProvider = function EuiProvider(_ref) {
72
74
  }), ___EmotionJSX(EuiCacheProvider, {
73
75
  cache: utilityCache,
74
76
  children: Utilities && ___EmotionJSX(Utilities, null)
75
- })), ___EmotionJSX(CurrentEuiBreakpointProvider, null, children))));
77
+ })), ___EmotionJSX(EuiComponentDefaultsProvider, {
78
+ componentDefaults: componentDefaults
79
+ }, ___EmotionJSX(CurrentEuiBreakpointProvider, null, children)))));
76
80
  };