@elastic/eui 67.1.1 → 68.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 (392) hide show
  1. package/dist/eui_theme_dark.css +17 -292
  2. package/dist/eui_theme_dark.json +10 -32
  3. package/dist/eui_theme_dark.json.d.ts +6 -28
  4. package/dist/eui_theme_dark.min.css +1 -1
  5. package/dist/eui_theme_light.css +17 -292
  6. package/dist/eui_theme_light.json +10 -32
  7. package/dist/eui_theme_light.json.d.ts +6 -28
  8. package/dist/eui_theme_light.min.css +1 -1
  9. package/es/components/accessibility/skip_link/skip_link.js +78 -63
  10. package/es/components/avatar/avatar.js +8 -2
  11. package/es/components/badge/badge.js +1 -1
  12. package/es/components/badge/badge_group/badge_group.js +11 -16
  13. package/es/components/badge/badge_group/badge_group.styles.js +19 -0
  14. package/es/components/badge/beta_badge/beta_badge.js +17 -27
  15. package/es/components/badge/beta_badge/beta_badge.styles.js +73 -0
  16. package/es/components/badge/notification_badge/badge_notification.js +11 -14
  17. package/es/components/badge/notification_badge/badge_notification.styles.js +27 -0
  18. package/es/components/basic_table/basic_table.js +1 -1
  19. package/es/components/basic_table/collapsed_item_actions.js +1 -1
  20. package/es/components/basic_table/in_memory_table.js +1 -1
  21. package/es/components/button/_button_content_deprecated.js +1 -1
  22. package/es/components/button/button_display/_button_display.js +1 -1
  23. package/es/components/button/button_display/_button_display_content.js +3 -3
  24. package/es/components/button/button_empty/button_empty.js +1 -1
  25. package/es/components/button/button_group/button_group.js +1 -1
  26. package/es/components/button/button_group/button_group_button.js +1 -1
  27. package/es/components/button/button_icon/button_icon.js +1 -1
  28. package/es/components/call_out/call_out.js +1 -1
  29. package/es/components/card/card.js +3 -3
  30. package/es/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  31. package/es/components/color_picker/color_stops/color_stop_thumb.js +21 -5
  32. package/es/components/color_picker/color_stops/color_stops.js +14 -4
  33. package/es/components/comment_list/comment.js +2 -2
  34. package/es/components/comment_list/comment_event.js +1 -1
  35. package/es/components/comment_list/comment_list.js +2 -2
  36. package/es/components/comment_list/comment_timeline.js +1 -1
  37. package/es/components/datagrid/body/data_grid_body.js +40 -39
  38. package/es/components/datagrid/body/data_grid_cell.js +75 -74
  39. package/es/components/datagrid/body/header/data_grid_header_cell.js +39 -38
  40. package/es/components/datagrid/body/header/data_grid_header_row.js +40 -39
  41. package/es/components/datagrid/controls/column_sorting_draggable.js +1 -1
  42. package/es/components/datagrid/data_grid.js +40 -39
  43. package/es/components/datagrid/utils/in_memory.js +39 -38
  44. package/es/components/date_picker/date_picker.js +2 -2
  45. package/es/components/date_picker/date_picker_range.js +1 -1
  46. package/es/components/date_picker/super_date_picker/super_date_picker.js +5 -3
  47. package/es/components/empty_prompt/empty_prompt.js +1 -1
  48. package/es/components/flyout/flyout.js +4 -3
  49. package/es/components/flyout/flyout.styles.js +6 -5
  50. package/es/components/flyout/index.js +2 -1
  51. package/es/components/form/checkbox/checkbox.js +9 -1
  52. package/es/components/form/field_number/field_number.js +1 -1
  53. package/es/components/form/field_text/field_text.js +2 -2
  54. package/es/components/form/form.styles.js +99 -3
  55. package/es/components/form/form_control_layout/form_control_layout.js +2 -2
  56. package/es/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  57. package/es/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  58. package/es/components/form/range/dual_range.js +9 -1
  59. package/es/components/form/switch/switch.js +9 -1
  60. package/es/components/header/header_links/header_link.js +1 -1
  61. package/es/components/header/header_links/header_links.js +1 -1
  62. package/es/components/header/header_logo.js +1 -1
  63. package/es/components/icon/assets/beta.js +38 -0
  64. package/es/components/icon/assets/launch.js +45 -0
  65. package/es/components/icon/assets/spaces.js +41 -0
  66. package/es/components/icon/icon.js +1 -1
  67. package/es/components/icon/icon_map.js +3 -0
  68. package/es/components/key_pad_menu/key_pad_menu_item.js +1 -1
  69. package/es/components/list_group/list_group.js +48 -55
  70. package/es/components/list_group/list_group.styles.js +47 -0
  71. package/es/components/list_group/list_group_item.js +70 -59
  72. package/es/components/list_group/list_group_item.styles.js +95 -0
  73. package/es/components/list_group/list_group_item_extra_action.js +94 -0
  74. package/es/components/list_group/list_group_item_extra_action.styles.js +38 -0
  75. package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +43 -38
  76. package/es/components/list_group/pinnable_list_group/pinnable_list_group.styles.js +30 -0
  77. package/es/components/loading/loading_logo.js +1 -1
  78. package/es/components/markdown_editor/markdown_editor.js +1 -1
  79. package/es/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
  80. package/es/components/markdown_editor/markdown_editor_footer.js +1 -1
  81. package/es/components/markdown_editor/markdown_editor_toolbar.js +1 -1
  82. package/es/components/notification/notification_event.js +4 -5
  83. package/es/components/notification/notification_event_meta.js +1 -1
  84. package/es/components/page/page_header/page_header_content.js +1 -1
  85. package/es/components/pagination/pagination_button.js +1 -1
  86. package/es/components/popover/input_popover.js +3 -2
  87. package/es/components/resizable_container/resizable_panel.js +2 -4
  88. package/es/components/selectable/selectable_list/selectable_list.js +1 -1
  89. package/es/components/selectable/selectable_list/selectable_list_item.js +1 -1
  90. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  91. package/es/components/suggest/suggest.js +1 -1
  92. package/es/components/suggest/suggest_item.js +1 -1
  93. package/es/components/table/table_header_button.js +1 -1
  94. package/es/components/timeline/timeline_item_icon.js +1 -1
  95. package/es/components/toast/global_toast_list.js +1 -1
  96. package/es/components/toast/toast.js +1 -1
  97. package/es/components/tool_tip/icon_tip.js +1 -1
  98. package/es/services/color/manipulation.js +9 -0
  99. package/es/services/index.js +1 -1
  100. package/es/test/rtl/component_helpers.d.ts +3 -0
  101. package/es/test/rtl/component_helpers.js +4 -1
  102. package/eui.d.ts +269 -64
  103. package/i18ntokens.json +20 -20
  104. package/lib/components/accessibility/skip_link/skip_link.js +84 -63
  105. package/lib/components/avatar/avatar.js +8 -2
  106. package/lib/components/badge/badge.js +1 -1
  107. package/lib/components/badge/badge_group/badge_group.js +12 -16
  108. package/lib/components/badge/badge_group/badge_group.styles.js +30 -0
  109. package/lib/components/badge/beta_badge/beta_badge.js +18 -29
  110. package/lib/components/badge/beta_badge/beta_badge.styles.js +80 -0
  111. package/lib/components/badge/notification_badge/badge_notification.js +12 -14
  112. package/lib/components/badge/notification_badge/badge_notification.styles.js +40 -0
  113. package/lib/components/basic_table/basic_table.js +1 -1
  114. package/lib/components/basic_table/collapsed_item_actions.js +1 -1
  115. package/lib/components/basic_table/in_memory_table.js +1 -1
  116. package/lib/components/button/_button_content_deprecated.js +1 -1
  117. package/lib/components/button/button_display/_button_display.js +1 -1
  118. package/lib/components/button/button_display/_button_display_content.js +3 -3
  119. package/lib/components/button/button_empty/button_empty.js +1 -1
  120. package/lib/components/button/button_group/button_group.js +1 -1
  121. package/lib/components/button/button_group/button_group_button.js +1 -1
  122. package/lib/components/button/button_icon/button_icon.js +1 -1
  123. package/lib/components/call_out/call_out.js +1 -1
  124. package/lib/components/card/card.js +3 -3
  125. package/lib/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  126. package/lib/components/color_picker/color_stops/color_stop_thumb.js +21 -5
  127. package/lib/components/color_picker/color_stops/color_stops.js +14 -4
  128. package/lib/components/comment_list/comment.js +2 -2
  129. package/lib/components/comment_list/comment_event.js +1 -1
  130. package/lib/components/comment_list/comment_list.js +2 -2
  131. package/lib/components/comment_list/comment_timeline.js +1 -1
  132. package/lib/components/datagrid/body/data_grid_body.js +40 -39
  133. package/lib/components/datagrid/body/data_grid_cell.js +75 -74
  134. package/lib/components/datagrid/body/header/data_grid_header_cell.js +39 -38
  135. package/lib/components/datagrid/body/header/data_grid_header_row.js +40 -39
  136. package/lib/components/datagrid/controls/column_sorting_draggable.js +1 -1
  137. package/lib/components/datagrid/data_grid.js +40 -39
  138. package/lib/components/datagrid/utils/in_memory.js +39 -38
  139. package/lib/components/date_picker/date_picker.js +2 -2
  140. package/lib/components/date_picker/date_picker_range.js +1 -1
  141. package/lib/components/date_picker/super_date_picker/super_date_picker.js +5 -3
  142. package/lib/components/empty_prompt/empty_prompt.js +1 -1
  143. package/lib/components/flyout/flyout.js +4 -3
  144. package/lib/components/flyout/flyout.styles.js +6 -3
  145. package/lib/components/flyout/index.js +15 -1
  146. package/lib/components/form/checkbox/checkbox.js +10 -3
  147. package/lib/components/form/field_number/field_number.js +1 -1
  148. package/lib/components/form/field_text/field_text.js +2 -2
  149. package/lib/components/form/form.styles.js +110 -13
  150. package/lib/components/form/form_control_layout/form_control_layout.js +2 -2
  151. package/lib/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  152. package/lib/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  153. package/lib/components/form/range/dual_range.js +10 -3
  154. package/lib/components/form/switch/switch.js +10 -3
  155. package/lib/components/header/header_links/header_link.js +1 -1
  156. package/lib/components/header/header_links/header_links.js +1 -1
  157. package/lib/components/header/header_logo.js +1 -1
  158. package/lib/components/icon/assets/beta.js +45 -0
  159. package/lib/components/icon/assets/launch.js +52 -0
  160. package/lib/components/icon/assets/spaces.js +48 -0
  161. package/lib/components/icon/icon.js +1 -1
  162. package/lib/components/icon/icon_map.js +3 -0
  163. package/lib/components/icon/svgs/beta.svg +3 -0
  164. package/lib/components/icon/svgs/launch.svg +5 -0
  165. package/lib/components/icon/svgs/spaces.svg +3 -0
  166. package/lib/components/key_pad_menu/key_pad_menu_item.js +1 -1
  167. package/lib/components/list_group/list_group.js +52 -55
  168. package/lib/components/list_group/list_group.styles.js +51 -0
  169. package/lib/components/list_group/list_group_item.js +72 -59
  170. package/lib/components/list_group/list_group_item.styles.js +111 -0
  171. package/lib/components/list_group/list_group_item_extra_action.js +105 -0
  172. package/lib/components/list_group/list_group_item_extra_action.styles.js +41 -0
  173. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +45 -39
  174. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.styles.js +33 -0
  175. package/lib/components/loading/loading_logo.js +1 -1
  176. package/lib/components/markdown_editor/markdown_editor.js +1 -1
  177. package/lib/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
  178. package/lib/components/markdown_editor/markdown_editor_footer.js +1 -1
  179. package/lib/components/markdown_editor/markdown_editor_toolbar.js +1 -1
  180. package/lib/components/notification/notification_event.js +4 -5
  181. package/lib/components/notification/notification_event_meta.js +1 -1
  182. package/lib/components/page/page_header/page_header_content.js +1 -1
  183. package/lib/components/popover/input_popover.js +2 -1
  184. package/lib/components/resizable_container/resizable_panel.js +2 -4
  185. package/lib/components/selectable/selectable_list/selectable_list.js +1 -1
  186. package/lib/components/selectable/selectable_list/selectable_list_item.js +1 -1
  187. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  188. package/lib/components/suggest/suggest.js +1 -1
  189. package/lib/components/suggest/suggest_item.js +1 -1
  190. package/lib/components/table/table_header_button.js +1 -1
  191. package/lib/components/timeline/timeline_item_icon.js +1 -1
  192. package/lib/components/toast/global_toast_list.js +1 -1
  193. package/lib/components/toast/toast.js +1 -1
  194. package/lib/components/tool_tip/icon_tip.js +1 -1
  195. package/lib/services/color/manipulation.js +14 -2
  196. package/lib/services/index.js +7 -0
  197. package/lib/test/rtl/component_helpers.d.ts +3 -0
  198. package/lib/test/rtl/component_helpers.js +4 -1
  199. package/optimize/es/components/accessibility/skip_link/skip_link.js +58 -40
  200. package/optimize/es/components/avatar/avatar.js +7 -1
  201. package/optimize/es/components/badge/badge_group/badge_group.js +9 -13
  202. package/optimize/es/components/badge/badge_group/badge_group.styles.js +19 -0
  203. package/optimize/es/components/badge/beta_badge/beta_badge.js +14 -24
  204. package/optimize/es/components/badge/beta_badge/beta_badge.styles.js +63 -0
  205. package/optimize/es/components/badge/notification_badge/badge_notification.js +9 -12
  206. package/optimize/es/components/badge/notification_badge/badge_notification.styles.js +27 -0
  207. package/optimize/es/components/button/button_display/_button_display_content.js +2 -2
  208. package/optimize/es/components/color_picker/color_stops/color_stop_thumb.js +15 -5
  209. package/optimize/es/components/color_picker/color_stops/color_stops.js +9 -4
  210. package/optimize/es/components/date_picker/super_date_picker/super_date_picker.js +5 -3
  211. package/optimize/es/components/flyout/flyout.js +4 -3
  212. package/optimize/es/components/flyout/flyout.styles.js +6 -5
  213. package/optimize/es/components/flyout/index.js +2 -1
  214. package/optimize/es/components/form/checkbox/checkbox.js +9 -1
  215. package/optimize/es/components/form/form.styles.js +99 -3
  216. package/optimize/es/components/form/range/dual_range.js +9 -1
  217. package/optimize/es/components/form/switch/switch.js +9 -1
  218. package/optimize/es/components/icon/assets/beta.js +34 -0
  219. package/optimize/es/components/icon/assets/launch.js +41 -0
  220. package/optimize/es/components/icon/assets/spaces.js +37 -0
  221. package/optimize/es/components/icon/icon_map.js +3 -0
  222. package/optimize/es/components/list_group/list_group.js +30 -39
  223. package/optimize/es/components/list_group/list_group.styles.js +47 -0
  224. package/optimize/es/components/list_group/list_group_item.js +61 -51
  225. package/optimize/es/components/list_group/list_group_item.styles.js +95 -0
  226. package/optimize/es/components/list_group/list_group_item_extra_action.js +38 -0
  227. package/optimize/es/components/list_group/list_group_item_extra_action.styles.js +38 -0
  228. package/optimize/es/components/list_group/pinnable_list_group/pinnable_list_group.js +16 -14
  229. package/optimize/es/components/list_group/pinnable_list_group/pinnable_list_group.styles.js +30 -0
  230. package/optimize/es/components/notification/notification_event.js +2 -3
  231. package/optimize/es/components/popover/input_popover.js +3 -2
  232. package/optimize/es/components/resizable_container/resizable_panel.js +2 -4
  233. package/optimize/es/services/color/manipulation.js +9 -0
  234. package/optimize/es/services/index.js +1 -1
  235. package/optimize/es/test/rtl/component_helpers.d.ts +3 -0
  236. package/optimize/es/test/rtl/component_helpers.js +4 -1
  237. package/optimize/lib/components/accessibility/skip_link/skip_link.js +70 -46
  238. package/optimize/lib/components/avatar/avatar.js +8 -1
  239. package/optimize/lib/components/badge/badge_group/badge_group.js +10 -13
  240. package/optimize/lib/components/badge/badge_group/badge_group.styles.js +30 -0
  241. package/optimize/lib/components/badge/beta_badge/beta_badge.js +15 -26
  242. package/optimize/lib/components/badge/beta_badge/beta_badge.styles.js +72 -0
  243. package/optimize/lib/components/badge/notification_badge/badge_notification.js +10 -12
  244. package/optimize/lib/components/badge/notification_badge/badge_notification.styles.js +40 -0
  245. package/optimize/lib/components/button/button_display/_button_display_content.js +2 -2
  246. package/optimize/lib/components/color_picker/color_stops/color_stop_thumb.js +17 -12
  247. package/optimize/lib/components/color_picker/color_stops/color_stops.js +11 -4
  248. package/optimize/lib/components/date_picker/super_date_picker/super_date_picker.js +5 -3
  249. package/optimize/lib/components/flyout/flyout.js +4 -3
  250. package/optimize/lib/components/flyout/flyout.styles.js +6 -3
  251. package/optimize/lib/components/flyout/index.js +15 -1
  252. package/optimize/lib/components/form/checkbox/checkbox.js +10 -3
  253. package/optimize/lib/components/form/form.styles.js +112 -13
  254. package/optimize/lib/components/form/range/dual_range.js +10 -3
  255. package/optimize/lib/components/form/switch/switch.js +10 -3
  256. package/optimize/lib/components/icon/assets/beta.js +44 -0
  257. package/optimize/lib/components/icon/assets/launch.js +51 -0
  258. package/optimize/lib/components/icon/assets/spaces.js +47 -0
  259. package/optimize/lib/components/icon/icon_map.js +3 -0
  260. package/optimize/lib/components/icon/svgs/beta.svg +3 -0
  261. package/optimize/lib/components/icon/svgs/launch.svg +5 -0
  262. package/optimize/lib/components/icon/svgs/spaces.svg +3 -0
  263. package/optimize/lib/components/list_group/list_group.js +34 -39
  264. package/optimize/lib/components/list_group/list_group.styles.js +51 -0
  265. package/optimize/lib/components/list_group/list_group_item.js +63 -51
  266. package/optimize/lib/components/list_group/list_group_item.styles.js +111 -0
  267. package/optimize/lib/components/list_group/list_group_item_extra_action.js +49 -0
  268. package/optimize/lib/components/list_group/list_group_item_extra_action.styles.js +41 -0
  269. package/optimize/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +18 -15
  270. package/optimize/lib/components/list_group/pinnable_list_group/pinnable_list_group.styles.js +33 -0
  271. package/optimize/lib/components/notification/notification_event.js +2 -3
  272. package/optimize/lib/components/popover/input_popover.js +2 -1
  273. package/optimize/lib/components/resizable_container/resizable_panel.js +2 -4
  274. package/optimize/lib/services/color/manipulation.js +14 -2
  275. package/optimize/lib/services/index.js +7 -0
  276. package/optimize/lib/test/rtl/component_helpers.d.ts +3 -0
  277. package/optimize/lib/test/rtl/component_helpers.js +4 -1
  278. package/package.json +2 -2
  279. package/src/components/index.scss +0 -2
  280. package/src/global_styling/mixins/_form.scss +13 -4
  281. package/src/global_styling/variables/_borders.scss +2 -2
  282. package/src/global_styling/variables/_form.scss +17 -9
  283. package/src/themes/amsterdam/global_styling/mixins/_index.scss +0 -1
  284. package/src/themes/amsterdam/global_styling/variables/_index.scss +0 -2
  285. package/src/themes/amsterdam/overrides/_index.scss +0 -2
  286. package/test-env/components/accessibility/skip_link/skip_link.js +74 -63
  287. package/test-env/components/avatar/avatar.js +9 -2
  288. package/test-env/components/badge/badge.js +1 -1
  289. package/test-env/components/badge/badge_group/badge_group.js +12 -16
  290. package/test-env/components/badge/badge_group/badge_group.styles.js +30 -0
  291. package/test-env/components/badge/beta_badge/beta_badge.js +18 -29
  292. package/test-env/components/badge/beta_badge/beta_badge.styles.js +72 -0
  293. package/test-env/components/badge/notification_badge/badge_notification.js +12 -14
  294. package/test-env/components/badge/notification_badge/badge_notification.styles.js +40 -0
  295. package/test-env/components/basic_table/basic_table.js +1 -1
  296. package/test-env/components/basic_table/collapsed_item_actions.js +1 -1
  297. package/test-env/components/basic_table/in_memory_table.js +1 -1
  298. package/test-env/components/button/_button_content_deprecated.js +1 -1
  299. package/test-env/components/button/button_display/_button_display.js +1 -1
  300. package/test-env/components/button/button_display/_button_display_content.js +3 -3
  301. package/test-env/components/button/button_empty/button_empty.js +1 -1
  302. package/test-env/components/button/button_group/button_group.js +1 -1
  303. package/test-env/components/button/button_group/button_group_button.js +1 -1
  304. package/test-env/components/button/button_icon/button_icon.js +1 -1
  305. package/test-env/components/call_out/call_out.js +1 -1
  306. package/test-env/components/card/card.js +3 -3
  307. package/test-env/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  308. package/test-env/components/color_picker/color_stops/color_stop_thumb.js +18 -12
  309. package/test-env/components/color_picker/color_stops/color_stops.js +12 -5
  310. package/test-env/components/comment_list/comment.js +2 -2
  311. package/test-env/components/comment_list/comment_event.js +1 -1
  312. package/test-env/components/comment_list/comment_list.js +2 -2
  313. package/test-env/components/comment_list/comment_timeline.js +1 -1
  314. package/test-env/components/datagrid/body/data_grid_body.js +40 -39
  315. package/test-env/components/datagrid/body/data_grid_cell.js +75 -74
  316. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +39 -38
  317. package/test-env/components/datagrid/body/header/data_grid_header_row.js +40 -39
  318. package/test-env/components/datagrid/controls/column_sorting_draggable.js +1 -1
  319. package/test-env/components/datagrid/data_grid.js +40 -39
  320. package/test-env/components/datagrid/utils/in_memory.js +39 -38
  321. package/test-env/components/date_picker/date_picker.js +2 -2
  322. package/test-env/components/date_picker/date_picker_range.js +1 -1
  323. package/test-env/components/date_picker/super_date_picker/super_date_picker.js +5 -3
  324. package/test-env/components/empty_prompt/empty_prompt.js +1 -1
  325. package/test-env/components/flyout/flyout.styles.js +6 -3
  326. package/test-env/components/flyout/index.js +15 -1
  327. package/test-env/components/form/checkbox/checkbox.js +10 -3
  328. package/test-env/components/form/field_number/field_number.js +1 -1
  329. package/test-env/components/form/field_text/field_text.js +2 -2
  330. package/test-env/components/form/form.styles.js +112 -13
  331. package/test-env/components/form/form_control_layout/form_control_layout.js +2 -2
  332. package/test-env/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  333. package/test-env/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  334. package/test-env/components/form/range/dual_range.js +10 -3
  335. package/test-env/components/form/switch/switch.js +10 -3
  336. package/test-env/components/header/header_links/header_link.js +1 -1
  337. package/test-env/components/header/header_links/header_links.js +1 -1
  338. package/test-env/components/header/header_logo.js +1 -1
  339. package/test-env/components/icon/assets/beta.js +44 -0
  340. package/test-env/components/icon/assets/launch.js +51 -0
  341. package/test-env/components/icon/assets/spaces.js +47 -0
  342. package/test-env/components/icon/icon_map.js +3 -0
  343. package/test-env/components/key_pad_menu/key_pad_menu_item.js +1 -1
  344. package/test-env/components/list_group/list_group.js +52 -55
  345. package/test-env/components/list_group/list_group.styles.js +51 -0
  346. package/test-env/components/list_group/list_group_item.js +72 -59
  347. package/test-env/components/list_group/list_group_item.styles.js +111 -0
  348. package/test-env/components/list_group/list_group_item_extra_action.js +102 -0
  349. package/test-env/components/list_group/list_group_item_extra_action.styles.js +41 -0
  350. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +45 -39
  351. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.styles.js +33 -0
  352. package/test-env/components/loading/loading_logo.js +1 -1
  353. package/test-env/components/markdown_editor/markdown_editor.js +1 -1
  354. package/test-env/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
  355. package/test-env/components/markdown_editor/markdown_editor_footer.js +1 -1
  356. package/test-env/components/markdown_editor/markdown_editor_toolbar.js +1 -1
  357. package/test-env/components/notification/notification_event.js +4 -5
  358. package/test-env/components/notification/notification_event_meta.js +1 -1
  359. package/test-env/components/page/page_header/page_header_content.js +1 -1
  360. package/test-env/components/popover/input_popover.js +2 -1
  361. package/test-env/components/resizable_container/resizable_panel.js +2 -4
  362. package/test-env/components/selectable/selectable_list/selectable_list.js +1 -1
  363. package/test-env/components/selectable/selectable_list/selectable_list_item.js +1 -1
  364. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  365. package/test-env/components/suggest/suggest.js +1 -1
  366. package/test-env/components/suggest/suggest_item.js +1 -1
  367. package/test-env/components/table/table_header_button.js +1 -1
  368. package/test-env/components/timeline/timeline_item_icon.js +1 -1
  369. package/test-env/components/toast/global_toast_list.js +1 -1
  370. package/test-env/components/toast/toast.js +1 -1
  371. package/test-env/components/tool_tip/icon_tip.js +1 -1
  372. package/test-env/services/color/manipulation.js +14 -2
  373. package/test-env/services/index.js +7 -0
  374. package/test-env/test/rtl/component_helpers.js +4 -1
  375. package/src/components/badge/_index.scss +0 -3
  376. package/src/components/badge/badge_group/_badge_group.scss +0 -23
  377. package/src/components/badge/badge_group/_index.scss +0 -1
  378. package/src/components/badge/beta_badge/_beta_badge.scss +0 -91
  379. package/src/components/badge/beta_badge/_index.scss +0 -1
  380. package/src/components/badge/notification_badge/_index.scss +0 -1
  381. package/src/components/badge/notification_badge/_notification_badge.scss +0 -34
  382. package/src/components/list_group/_index.scss +0 -5
  383. package/src/components/list_group/_list_group.scss +0 -32
  384. package/src/components/list_group/_list_group_item.scss +0 -151
  385. package/src/components/list_group/_variables.scss +0 -21
  386. package/src/components/list_group/pinnable_list_group/_index.scss +0 -1
  387. package/src/components/list_group/pinnable_list_group/_pinnable_list_group.scss +0 -9
  388. package/src/themes/amsterdam/global_styling/mixins/_form.scss +0 -47
  389. package/src/themes/amsterdam/global_styling/variables/_borders.scss +0 -2
  390. package/src/themes/amsterdam/global_styling/variables/_form.scss +0 -23
  391. package/src/themes/amsterdam/overrides/_list_group_item.scss +0 -3
  392. package/src/themes/amsterdam/overrides/_notification_badge.scss +0 -4
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiPinnableListGroupItemExtraActionStyles = void 0;
7
+
8
+ var _react = require("@emotion/react");
9
+
10
+ var _services = require("../../../services");
11
+
12
+ 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)."; }
13
+
14
+ var _ref = process.env.NODE_ENV === "production" ? {
15
+ name: "1du20m7-euiPinnableListGroup__itemExtraAction",
16
+ styles: "svg{transform:rotate(45deg);};label:euiPinnableListGroup__itemExtraAction;"
17
+ } : {
18
+ name: "1du20m7-euiPinnableListGroup__itemExtraAction",
19
+ styles: "svg{transform:rotate(45deg);};label:euiPinnableListGroup__itemExtraAction;",
20
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
21
+ };
22
+
23
+ var euiPinnableListGroupItemExtraActionStyles = function euiPinnableListGroupItemExtraActionStyles(_ref2) {
24
+ var euiTheme = _ref2.euiTheme;
25
+ return {
26
+ // Base
27
+ euiPinnableListGroup__itemExtraAction: _ref,
28
+ // Variants
29
+ pinned: /*#__PURE__*/(0, _react.css)("&:not(:hover):not(:focus){color:", (0, _services.makeHighContrastColor)(euiTheme.colors.lightShade)(euiTheme), ";};label:pinned;")
30
+ };
31
+ };
32
+
33
+ exports.euiPinnableListGroupItemExtraActionStyles = euiPinnableListGroupItemExtraActionStyles;
@@ -61,9 +61,8 @@ var EuiNotificationEvent = function EuiNotificationEvent(_ref) {
61
61
  className = _ref.className,
62
62
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
63
63
  var classes = (0, _classnames.default)('euiNotificationEvent', {
64
- 'euiNotificationEvent--withReadState': typeof isRead === 'boolean',
65
- className: className
66
- });
64
+ 'euiNotificationEvent--withReadState': typeof isRead === 'boolean'
65
+ }, className);
67
66
  var classesTitle = (0, _classnames.default)('euiNotificationEvent__title', {
68
67
  'euiNotificationEvent__title--isRead': isRead
69
68
  });
@@ -111,8 +111,9 @@ var EuiInputPopover = function EuiInputPopover(_ref) {
111
111
  };
112
112
 
113
113
  var classes = (0, _classnames.default)('euiInputPopover', className);
114
+ var form = (0, _form.euiFormVariables)(euiThemeContext);
114
115
  return (0, _react2.jsx)(_popover.EuiPopover, (0, _extends2.default)({
115
- css: /*#__PURE__*/(0, _react2.css)(fullWidth ? undefined : (0, _global_styling.logicalCSS)('max-width', (0, _form.euiFormMaxWidth)(euiThemeContext)), ";label:EuiInputPopover;"),
116
+ css: /*#__PURE__*/(0, _react2.css)(fullWidth ? undefined : (0, _global_styling.logicalCSS)('max-width', form.maxWidth), ";label:EuiInputPopover;"),
116
117
  ownFocus: false,
117
118
  button: (0, _react2.jsx)(_resize_observer.EuiResizeObserver, {
118
119
  onResize: onResize
@@ -35,7 +35,7 @@ var _resizable_collapse_button = require("./resizable_collapse_button");
35
35
 
36
36
  var _react2 = require("@emotion/react");
37
37
 
38
- var _excluded = ["children", "className", "id", "isHorizontal", "size", "initialSize", "minSize", "scrollable", "style", "mode", "registration", "onToggleCollapsed", "onToggleCollapsedInternal", "wrapperProps", "hasShadow", "borderRadius", "color", "paddingSize", "wrapperPadding"];
38
+ var _excluded = ["children", "className", "id", "isHorizontal", "size", "initialSize", "minSize", "scrollable", "mode", "registration", "onToggleCollapsed", "onToggleCollapsedInternal", "wrapperProps", "hasShadow", "borderRadius", "color", "paddingSize", "wrapperPadding"];
39
39
 
40
40
  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); }
41
41
 
@@ -100,8 +100,6 @@ var EuiResizablePanel = function EuiResizablePanel(_ref) {
100
100
  minSize = _ref$minSize === void 0 ? '0px' : _ref$minSize,
101
101
  _ref$scrollable = _ref.scrollable,
102
102
  scrollable = _ref$scrollable === void 0 ? true : _ref$scrollable,
103
- _ref$style = _ref.style,
104
- style = _ref$style === void 0 ? {} : _ref$style,
105
103
  mode = _ref.mode,
106
104
  registration = _ref.registration,
107
105
  onToggleCollapsed = _ref.onToggleCollapsed,
@@ -210,7 +208,7 @@ var EuiResizablePanel = function EuiResizablePanel(_ref) {
210
208
  };
211
209
  }
212
210
 
213
- var styles = _objectSpread(_objectSpread({}, style), dimensions);
211
+ var styles = _objectSpread(_objectSpread({}, wrapperProps === null || wrapperProps === void 0 ? void 0 : wrapperProps.style), dimensions);
214
212
 
215
213
  (0, _react.useEffect)(function () {
216
214
  if (!registration) return;
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.transparentize = exports.tintOrShade = exports.tint = exports.shadeOrTint = exports.shade = exports.saturate = exports.lightness = exports.desaturate = void 0;
8
+ exports.transparentize = exports.tintOrShade = exports.tint = exports.shadeOrTint = exports.shade = exports.saturate = exports.lightness = exports.desaturate = exports.darken = void 0;
9
9
 
10
10
  var _chromaJs = _interopRequireDefault(require("chroma-js"));
11
11
 
@@ -122,5 +122,17 @@ exports.desaturate = desaturate;
122
122
  var lightness = function lightness(color) {
123
123
  return (0, _chromaJs.default)(color).get('hsl.l') * 100;
124
124
  };
125
+ /**
126
+ * Returns the darken value of a color. 0-100
127
+ * @param color - Color to manipulate
128
+ * @param amount - Amount to change in absolute terms. 0-1.
129
+ */
130
+
131
+
132
+ exports.lightness = lightness;
133
+
134
+ var darken = function darken(color, amount) {
135
+ return (0, _chromaJs.default)(color).darken(amount).hex();
136
+ };
125
137
 
126
- exports.lightness = lightness;
138
+ exports.darken = darken;
@@ -55,6 +55,7 @@ var _exportNames = {
55
55
  saturate: true,
56
56
  desaturate: true,
57
57
  lightness: true,
58
+ darken: true,
58
59
  makeHighContrastColor: true,
59
60
  makeDisabledContrastColor: true,
60
61
  wcagContrastMin: true,
@@ -227,6 +228,12 @@ Object.defineProperty(exports, "copyToClipboard", {
227
228
  return _copy_to_clipboard.copyToClipboard;
228
229
  }
229
230
  });
231
+ Object.defineProperty(exports, "darken", {
232
+ enumerable: true,
233
+ get: function get() {
234
+ return _color.darken;
235
+ }
236
+ });
230
237
  Object.defineProperty(exports, "dateFormatAliases", {
231
238
  enumerable: true,
232
239
  get: function get() {
@@ -5,3 +5,6 @@
5
5
  */
6
6
  export declare const waitForEuiPopoverOpen: () => Promise<void>;
7
7
  export declare const waitForEuiPopoverClose: () => Promise<void>;
8
+
9
+ export declare const waitForEuiToolTipVisible: () => Promise<void>;
10
+ export declare const waitForEuiToolTipHidden: () => Promise<void>;
@@ -102,7 +102,10 @@ var waitForEuiToolTipVisible = /*#__PURE__*/function () {
102
102
  return (0, _react.waitFor)(function () {
103
103
  var tooltip = document.querySelector('.euiToolTipPopover');
104
104
  expect(tooltip).toBeVisible();
105
- });
105
+ }, {
106
+ timeout: 1500
107
+ } // Account for long delay on tooltips
108
+ );
106
109
 
107
110
  case 2:
108
111
  return _context3.abrupt("return", _context3.sent);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@elastic/eui",
3
3
  "description": "Elastic UI Component Library",
4
- "version": "67.1.1",
4
+ "version": "68.0.0",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "main": "lib",
7
7
  "module": "es",
@@ -115,7 +115,7 @@
115
115
  "@cypress/code-coverage": "^3.10.0",
116
116
  "@cypress/react": "^5.10.3",
117
117
  "@cypress/webpack-dev-server": "^1.7.0",
118
- "@elastic/charts": "^48.0.1",
118
+ "@elastic/charts": "^50.0.0",
119
119
  "@elastic/datemath": "^5.0.3",
120
120
  "@elastic/eslint-config-kibana": "^0.15.0",
121
121
  "@emotion/babel-preset-css-prop": "^11.2.0",
@@ -1,7 +1,6 @@
1
1
  // Components
2
2
 
3
3
  @import 'accordion/index';
4
- @import 'badge/index';
5
4
  @import 'basic_table/index';
6
5
  @import 'button/index';
7
6
  @import 'code/index';
@@ -19,7 +18,6 @@
19
18
  @import 'form/index';
20
19
  @import 'header/index';
21
20
  @import 'key_pad_menu/index';
22
- @import 'list_group/index';
23
21
  @import 'markdown_editor/index';
24
22
  @import 'modal/index';
25
23
  @import 'notification/index';
@@ -175,13 +175,12 @@
175
175
  background-color: tintOrShade($euiColorEmptyShade, 0%, 40%);
176
176
  background-image: euiFormControlGradient();
177
177
  background-size: 100% 100%; // 1
178
+ outline: none; // Blanket remove all outlines relying on our own bottom border
178
179
 
179
180
  @if ($borderOnly) {
180
181
  box-shadow: inset 0 0 0 1px $euiFormBorderColor;
181
182
  } @else {
182
183
  box-shadow:
183
- 0 1px 1px -1px transparentize($euiShadowColor, .8),
184
- 0 4px 4px -2px transparentize($euiShadowColor, .8),
185
184
  inset 0 0 0 1px $euiFormBorderColor;
186
185
  }
187
186
  }
@@ -301,8 +300,6 @@
301
300
  // Custom styles and states for checkboxes and radios
302
301
 
303
302
  @mixin euiCustomControl($type: null, $size: $euiSize) {
304
- @include euiSlightShadow;
305
-
306
303
  @if $size {
307
304
  $size: $size - 2px; // subtract 2px from size to account for border size
308
305
  padding: $size / 2;
@@ -321,6 +318,7 @@
321
318
  border-color $euiAnimSpeedFast ease-in;
322
319
  }
323
320
 
321
+
324
322
  @mixin euiCustomControlSelected($type: null) {
325
323
  border-color: $euiColorPrimary;
326
324
  background-color: $euiColorPrimary;
@@ -372,3 +370,14 @@
372
370
  cursor: pointer;
373
371
  }
374
372
 
373
+ // Adjusts form controls border radius
374
+ @mixin euiFormControlSideBorderRadius($borderRadius, $side, $internal: false) {
375
+ @if $internal == true {
376
+ $borderRadius: $borderRadius - 1;
377
+ }
378
+ @if $side == 'left' {
379
+ border-radius: $borderRadius 0 0 $borderRadius;
380
+ } @else if $side == 'right' {
381
+ border-radius: 0 $borderRadius $borderRadius 0;
382
+ }
383
+ }
@@ -4,8 +4,8 @@ $euiBorderWidthThin: 1px !default;
4
4
  $euiBorderWidthThick: 2px !default;
5
5
 
6
6
  $euiBorderColor: $euiColorLightShade !default;
7
- $euiBorderRadius: 4px !default;
8
- $euiBorderRadiusSmall: $euiBorderRadius / 2 !default;
7
+ $euiBorderRadius: $euiSizeS * .75 !default;
8
+ $euiBorderRadiusSmall: $euiSizeS * .5 !default;
9
9
  $euiBorderThick: $euiBorderWidthThick solid $euiBorderColor !default;
10
10
  $euiBorderThin: $euiBorderWidthThin solid $euiBorderColor !default;
11
11
  $euiBorderEditable: $euiBorderWidthThick dotted $euiBorderColor !default;
@@ -4,12 +4,12 @@ $euiFormControlHeight: $euiSizeXXL !default;
4
4
  $euiFormControlCompressedHeight: $euiSizeXL !default;
5
5
  $euiFormControlPadding: $euiSizeM !default;
6
6
  $euiFormControlCompressedPadding: $euiSizeS !default;
7
- $euiFormControlBorderRadius: 0 !default;
7
+ $euiFormControlBorderRadius: $euiBorderRadius !default;
8
8
  $euiFormControlCompressedBorderRadius: $euiBorderRadiusSmall !default;
9
9
 
10
10
  $euiRadioSize: $euiSize !default;
11
11
  $euiCheckBoxSize: $euiSize !default;
12
- $euiCheckboxBorderRadius: $euiBorderRadius !default;
12
+ $euiCheckboxBorderRadius: $euiBorderRadiusSmall !default;
13
13
 
14
14
  // Switch
15
15
  $euiSwitchHeight: $euiSize * 1.25 !default;
@@ -28,17 +28,17 @@ $euiSwitchThumbSizeMini: $euiSwitchHeightMini !default;
28
28
  // Coloring
29
29
  $euiFormBackgroundColor: tintOrShade($euiColorLightestShade, 60%, 40%) !default;
30
30
  $euiFormBackgroundDisabledColor: darken($euiColorLightestShade, 2%) !default;
31
- $euiFormBackgroundReadOnlyColor: transparentize(lightOrDarkTheme($euiColorLightShade, $euiColorInk), .95) !default;
31
+ $euiFormBackgroundReadOnlyColor: $euiColorEmptyShade !default;
32
32
  $euiFormBorderOpaqueColor: shadeOrTint(desaturate(adjust-hue($euiColorPrimary, 22), 22.95), 26%, 100%) !default;
33
33
  $euiFormBorderColor: transparentize($euiFormBorderOpaqueColor, .9) !default;
34
34
  $euiFormBorderDisabledColor: transparentize($euiFormBorderOpaqueColor, .9) !default;
35
35
  $euiFormCustomControlDisabledIconColor: shadeOrTint($euiColorMediumShade, 38%, 48.5%) !default; // exact 508c foreground for $euiColorLightShade
36
36
  $euiFormCustomControlBorderColor: shadeOrTint($euiColorLightestShade, 18%, 30%) !default;
37
37
  $euiFormControlDisabledColor: $euiColorMediumShade !default;
38
- $euiFormControlBoxShadow: 0 1px 1px -1px transparentize($euiShadowColor, .8), 0 3px 2px -2px transparentize($euiShadowColor, .8) !default;
38
+ $euiFormControlBoxShadow: 0 0 transparent !default;
39
39
  $euiFormControlPlaceholderText: makeHighContrastColor($euiTextSubduedColor, $euiFormBackgroundColor) !default;
40
40
  $euiFormInputGroupLabelBackground: tintOrShade($euiColorLightShade, 50%, 15%) !default;
41
- $euiFormInputGroupBorder: 1px solid shadeOrTint($euiFormInputGroupLabelBackground, 2%, 4%) !default;
41
+ $euiFormInputGroupBorder: none !default;
42
42
  $euiSwitchOffColor: lightOrDarkTheme(transparentize($euiColorMediumShade, .8), transparentize($euiColorMediumShade, .3)) !default;
43
43
 
44
44
  // Icons sizes
@@ -56,19 +56,27 @@ $euiFormControlLayoutGroupInputCompressedHeight: $euiFormControlCompressedHeight
56
56
  $euiFormControlLayoutGroupInputCompressedBorderRadius: $euiFormControlCompressedBorderRadius / 2 !default;
57
57
 
58
58
  // Range
59
- $euiRangeTrackColor: $euiColorDarkShade !default;
59
+ $euiRangeTrackColor: $euiColorLightShade !default;
60
+ $euiRangeHighlightColor: $euiColorDarkShade !default;
60
61
 
61
62
  $euiRangeThumbRadius: 50% !default;
62
63
  $euiRangeThumbHeight: $euiSize !default;
63
64
  $euiRangeThumbWidth: $euiSize !default;
64
- $euiRangeThumbBorderColor: $euiRangeTrackColor !default;
65
+
66
+ $euiRangeThumbBorderColor: $euiColorEmptyShade !default;
67
+ $euiRangeThumbBackgroundColor: $euiRangeHighlightColor !default;
65
68
 
66
69
  $euiRangeTrackWidth: 100% !default;
67
- $euiRangeTrackHeight: 2px !default;
70
+ $euiRangeTrackHeight: $euiSizeM / 2;
71
+ $euiRangeTrackCompressedHeight: $euiSizeXS;
68
72
  $euiRangeTrackBorderWidth: 0 !default;
69
73
  $euiRangeTrackBorderColor: $euiRangeTrackColor !default;
70
74
  $euiRangeTrackRadius: $euiBorderRadius !default;
71
75
 
72
76
  $euiRangeDisabledOpacity: .25 !default;
73
77
 
74
- $euiRangeHighlightHeight: $euiSizeXS !default;
78
+ $euiRangeHighlightHeight: $euiRangeTrackHeight !default;
79
+ $euiRangeHighlightCompressedHeight: $euiRangeTrackCompressedHeight !default;
80
+
81
+ $euiRangeHeight: $euiFormControlHeight !default;
82
+ $euiRangeCompressedHeight: $euiFormControlCompressedHeight !default;
@@ -10,7 +10,6 @@
10
10
 
11
11
  @import '../../../../global_styling/mixins/button';
12
12
  @import '../../../../global_styling/mixins/form';
13
- @import 'form';
14
13
  @import '../../../../global_styling/mixins/header';
15
14
  @import '../../../../global_styling/mixins/loading';
16
15
  @import 'link';
@@ -3,8 +3,6 @@
3
3
  @import 'states';
4
4
 
5
5
  @import 'buttons';
6
- @import 'borders';
7
- @import 'form';
8
6
  @import 'header';
9
7
  @import 'page';
10
8
  @import 'steps';
@@ -11,11 +11,9 @@
11
11
  @import 'form_controls';
12
12
  @import 'header';
13
13
  @import 'hue';
14
- @import 'list_group_item';
15
14
  @import 'key_pad_menu';
16
15
  @import 'markdown_editor';
17
16
  @import 'modal';
18
- @import 'notification_badge';
19
17
  @import 'range';
20
18
  @import 'range_draggable';
21
19
  @import 'range_highlight';
@@ -2,6 +2,8 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
@@ -9,11 +11,11 @@ exports.POSITIONS = exports.EuiSkipLink = void 0;
9
11
 
10
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
13
 
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
15
 
14
16
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
17
 
16
- var _react = _interopRequireDefault(require("react"));
18
+ var _react = _interopRequireWildcard(require("react"));
17
19
 
18
20
  var _propTypes = _interopRequireDefault(require("prop-types"));
19
21
 
@@ -31,68 +33,88 @@ var _skip_link = require("./skip_link.styles");
31
33
 
32
34
  var _react2 = require("@emotion/react");
33
35
 
34
- var _excluded = ["destinationId", "overrideLinkBehavior", "tabIndex", "position", "children", "className"];
36
+ var _excluded = ["destinationId", "fallbackDestination", "overrideLinkBehavior", "tabIndex", "position", "children", "className", "onClick"];
35
37
 
36
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
38
+ 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); }
37
39
 
38
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
40
+ 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; }
39
41
 
40
42
  var POSITIONS = ['static', 'fixed', 'absolute'];
41
43
  exports.POSITIONS = POSITIONS;
42
44
 
43
45
  var EuiSkipLink = function EuiSkipLink(_ref) {
44
46
  var destinationId = _ref.destinationId,
47
+ _ref$fallbackDestinat = _ref.fallbackDestination,
48
+ fallbackDestination = _ref$fallbackDestinat === void 0 ? 'main' : _ref$fallbackDestinat,
45
49
  overrideLinkBehavior = _ref.overrideLinkBehavior,
46
50
  tabIndex = _ref.tabIndex,
47
51
  _ref$position = _ref.position,
48
52
  position = _ref$position === void 0 ? 'static' : _ref$position,
49
53
  children = _ref.children,
50
54
  className = _ref.className,
55
+ _onClick = _ref.onClick,
51
56
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
52
57
  var euiTheme = (0, _services.useEuiTheme)();
53
58
  var styles = (0, _skip_link.euiSkipLinkStyles)(euiTheme);
54
59
  var classes = (0, _classnames.default)('euiSkipLink', className);
55
- var cssStyles = [styles.euiSkipLink, position !== 'static' ? styles[position] : undefined]; // Create the `href` from `destinationId`
56
-
57
- var optionalProps = {};
58
-
59
- if (destinationId) {
60
- optionalProps = {
61
- href: "#".concat(destinationId)
62
- };
63
- }
64
-
65
- if (overrideLinkBehavior) {
66
- optionalProps = _objectSpread(_objectSpread({}, optionalProps), {}, {
67
- onClick: function onClick(e) {
68
- e.preventDefault();
69
- var destinationEl = document.getElementById(destinationId);
70
- if (!destinationEl) return; // Scroll to the top of the destination content only if it's ~mostly out of view
71
-
72
- var destinationY = destinationEl.getBoundingClientRect().top;
73
- var halfOfViewportHeight = window.innerHeight / 2;
74
-
75
- if (destinationY >= halfOfViewportHeight || window.scrollY >= destinationY + halfOfViewportHeight) {
76
- destinationEl.scrollIntoView();
77
- } // Ensure the destination content is focusable
78
-
79
-
80
- if (!(0, _tabbable.isTabbable)(destinationEl)) {
81
- destinationEl.tabIndex = -1;
82
- destinationEl.addEventListener('blur', function () {
83
- return destinationEl.removeAttribute('tabindex');
84
- }, {
85
- once: true
86
- });
87
- }
88
-
89
- destinationEl.focus({
90
- preventScroll: true
91
- }); // Scrolling is already handled above, and focus autoscroll behaves oddly on Chrome around fixed headers
60
+ var cssStyles = [styles.euiSkipLink, position !== 'static' ? styles[position] : undefined];
61
+
62
+ var _useState = (0, _react.useState)(null),
63
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
64
+ destinationEl = _useState2[0],
65
+ setDestinationEl = _useState2[1];
66
+
67
+ var _useState3 = (0, _react.useState)(true),
68
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
69
+ hasValidId = _useState4[0],
70
+ setHasValidId = _useState4[1];
71
+
72
+ (0, _react.useEffect)(function () {
73
+ var idEl = document.getElementById(destinationId);
74
+
75
+ if (idEl) {
76
+ setHasValidId(true);
77
+ setDestinationEl(idEl);
78
+ return;
79
+ }
80
+
81
+ setHasValidId(false); // If no valid element via ID is available, use the fallback query selectors
82
+
83
+ var fallbackEl = document.querySelector(fallbackDestination);
84
+
85
+ if (fallbackEl) {
86
+ setDestinationEl(fallbackEl);
87
+ }
88
+ }, [destinationId, fallbackDestination]);
89
+ var onClick = (0, _react.useCallback)(function (e) {
90
+ if (overrideLinkBehavior || !hasValidId) {
91
+ if (!destinationEl) return;
92
+ e.preventDefault(); // Scroll to the top of the destination content only if it's ~mostly out of view
93
+
94
+ var destinationY = destinationEl.getBoundingClientRect().top;
95
+ var halfOfViewportHeight = window.innerHeight / 2;
96
+
97
+ if (destinationY >= halfOfViewportHeight || window.scrollY >= destinationY + halfOfViewportHeight) {
98
+ destinationEl.scrollIntoView();
99
+ } // Ensure the destination content is focusable
100
+
101
+
102
+ if (!(0, _tabbable.isTabbable)(destinationEl)) {
103
+ destinationEl.tabIndex = -1;
104
+ destinationEl.addEventListener('blur', function () {
105
+ return destinationEl.removeAttribute('tabindex');
106
+ }, {
107
+ once: true
108
+ });
92
109
  }
93
- });
94
- }
95
110
 
111
+ destinationEl.focus({
112
+ preventScroll: true
113
+ }); // Scrolling is already handled above, and focus autoscroll behaves oddly on Chrome around fixed headers
114
+ }
115
+
116
+ _onClick === null || _onClick === void 0 ? void 0 : _onClick(e);
117
+ }, [overrideLinkBehavior, hasValidId, destinationEl, _onClick]);
96
118
  return (0, _react2.jsx)(_screen_reader_only.EuiScreenReaderOnly, {
97
119
  showOnFocus: true
98
120
  }, (0, _react2.jsx)(_button.EuiButton, (0, _extends2.default)({
@@ -100,8 +122,10 @@ var EuiSkipLink = function EuiSkipLink(_ref) {
100
122
  className: classes,
101
123
  tabIndex: position === 'fixed' ? 0 : tabIndex,
102
124
  size: "s",
103
- fill: true
104
- }, optionalProps, rest), children));
125
+ fill: true,
126
+ href: "#".concat(destinationId),
127
+ onClick: onClick
128
+ }, rest), children));
105
129
  };
106
130
 
107
131
  exports.EuiSkipLink = EuiSkipLink;
@@ -109,22 +133,12 @@ EuiSkipLink.propTypes = {
109
133
  href: _propTypes.default.string,
110
134
  onClick: _propTypes.default.func,
111
135
 
112
- /**
113
- * Change the display position of the element when focused.
114
- * If 'fixed', the link will be fixed to the top left of the viewport
115
- */
116
-
117
136
  /**
118
137
  * Change the display position of the element when focused.
119
138
  * If 'fixed', the link will be fixed to the top left of the viewport
120
139
  */
121
140
  position: _propTypes.default.any,
122
141
 
123
- /**
124
- * Typically an anchor id (e.g. `a11yMainContent`), the value provided
125
- * will be prepended with a hash `#` and used as the link `href`
126
- */
127
-
128
142
  /**
129
143
  * Typically an anchor id (e.g. `a11yMainContent`), the value provided
130
144
  * will be prepended with a hash `#` and used as the link `href`
@@ -132,10 +146,11 @@ EuiSkipLink.propTypes = {
132
146
  destinationId: _propTypes.default.string.isRequired,
133
147
 
134
148
  /**
135
- * If default HTML anchor link behavior is not desired (e.g. for SPAs with hash routing),
136
- * setting this flag to true will manually scroll to and focus the destination element
137
- * without changing the browser URL's hash
149
+ * If no destination ID element exists or can be found, you may provide a string of
150
+ * query selectors to fall back to (e.g. a `main` or `role="main"` element)
151
+ * @default main
138
152
  */
153
+ fallbackDestination: _propTypes.default.string,
139
154
 
140
155
  /**
141
156
  * If default HTML anchor link behavior is not desired (e.g. for SPAs with hash routing),
@@ -144,10 +159,6 @@ EuiSkipLink.propTypes = {
144
159
  */
145
160
  overrideLinkBehavior: _propTypes.default.bool,
146
161
 
147
- /**
148
- * When position is fixed, this is forced to `0`
149
- */
150
-
151
162
  /**
152
163
  * When position is fixed, this is forced to `0`
153
164
  */