@elastic/eui 60.2.0 → 62.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 (545) hide show
  1. package/dist/eui_theme_dark.css +20 -660
  2. package/dist/eui_theme_dark.json +1 -2
  3. package/dist/eui_theme_dark.json.d.ts +1 -2
  4. package/dist/eui_theme_dark.min.css +1 -1
  5. package/dist/eui_theme_light.css +20 -660
  6. package/dist/eui_theme_light.json +1 -2
  7. package/dist/eui_theme_light.json.d.ts +1 -2
  8. package/dist/eui_theme_light.min.css +1 -1
  9. package/es/components/accessibility/skip_link/skip_link.js +1 -1
  10. package/es/components/accordion/accordion.js +10 -5
  11. package/es/components/avatar/avatar.js +1 -2
  12. package/es/components/badge/badge.js +1 -1
  13. package/es/components/badge/beta_badge/beta_badge.js +1 -1
  14. package/es/components/basic_table/basic_table.js +1 -1
  15. package/es/components/basic_table/collapsed_item_actions.js +1 -1
  16. package/es/components/basic_table/in_memory_table.js +1 -1
  17. package/es/components/button/_button_content_deprecated.js +1 -1
  18. package/es/components/button/button.js +2 -2
  19. package/es/components/button/button_display/_button_display.js +1 -1
  20. package/es/components/button/button_display/_button_display_content.js +1 -1
  21. package/es/components/button/button_empty/button_empty.js +1 -1
  22. package/es/components/button/button_group/button_group.js +1 -1
  23. package/es/components/button/button_group/button_group_button.js +1 -1
  24. package/es/components/button/button_icon/button_icon.js +1 -1
  25. package/es/components/call_out/call_out.js +1 -1
  26. package/es/components/card/card.js +1 -1
  27. package/es/components/card/card_select.js +1 -1
  28. package/es/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  29. package/es/components/color_picker/color_picker.js +1 -1
  30. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +7 -4
  31. package/es/components/comment_list/comment.js +54 -24
  32. package/es/components/comment_list/comment_event.js +103 -32
  33. package/es/components/comment_list/comment_event.styles.js +78 -0
  34. package/es/components/comment_list/comment_list.js +45 -12
  35. package/es/components/comment_list/comment_timeline.js +29 -35
  36. package/es/components/context_menu/context_menu.js +1 -1
  37. package/es/components/context_menu/context_menu_panel.js +1 -1
  38. package/es/components/datagrid/body/data_grid_body.js +20 -17
  39. package/es/components/datagrid/body/data_grid_cell.js +102 -34
  40. package/es/components/datagrid/body/header/data_grid_header_cell.js +164 -68
  41. package/es/components/datagrid/body/header/data_grid_header_row.js +13 -13
  42. package/es/components/datagrid/controls/column_sorting_draggable.js +1 -1
  43. package/es/components/datagrid/data_grid.js +15 -13
  44. package/es/components/datagrid/utils/in_memory.js +12 -12
  45. package/es/components/datagrid/utils/ref.js +24 -3
  46. package/es/components/datagrid/utils/row_heights.js +27 -33
  47. package/es/components/date_picker/date_picker.js +2 -2
  48. package/es/components/date_picker/date_picker_range.js +1 -1
  49. package/es/components/empty_prompt/empty_prompt.js +1 -1
  50. package/es/components/error_boundary/error_boundary.js +18 -11
  51. package/es/components/error_boundary/error_boundary.styles.js +18 -0
  52. package/es/components/focus_trap/focus_trap.js +1 -0
  53. package/es/components/form/field_number/field_number.js +1 -1
  54. package/es/components/form/field_text/field_text.js +2 -2
  55. package/es/components/form/form.styles.js +11 -0
  56. package/es/components/form/form_control_layout/form_control_layout.js +2 -2
  57. package/es/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  58. package/es/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  59. package/es/components/header/header_links/header_link.js +1 -1
  60. package/es/components/header/header_links/header_links.js +10 -8
  61. package/es/components/header/header_logo.js +1 -1
  62. package/es/components/icon/assets/keyboard.js +38 -0
  63. package/es/components/icon/assets/tokenMetricCounter.js +38 -0
  64. package/es/components/icon/assets/{keyboard_shortcut.js → tokenMetricGauge.js} +3 -3
  65. package/es/components/icon/icon.js +1 -1
  66. package/es/components/icon/icon_map.js +39 -37
  67. package/es/components/image/image.js +71 -166
  68. package/es/components/image/image.styles.js +28 -0
  69. package/es/components/image/image_button.js +68 -0
  70. package/es/components/image/image_button.styles.js +41 -0
  71. package/es/components/image/image_caption.js +28 -0
  72. package/es/components/image/image_caption.styles.js +18 -0
  73. package/es/components/image/image_fullscreen_wrapper.js +100 -0
  74. package/es/components/image/image_fullscreen_wrapper.styles.js +26 -0
  75. package/es/components/image/image_types.js +10 -0
  76. package/es/components/image/image_wrapper.js +78 -0
  77. package/es/components/image/image_wrapper.styles.js +41 -0
  78. package/es/components/key_pad_menu/key_pad_menu_item.js +1 -1
  79. package/es/components/list_group/list_group.js +2 -2
  80. package/es/components/list_group/list_group_item.js +2 -2
  81. package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
  82. package/es/components/loading/loading_logo.js +1 -1
  83. package/es/components/markdown_editor/markdown_editor.js +1 -1
  84. package/es/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
  85. package/es/components/markdown_editor/markdown_editor_footer.js +1 -1
  86. package/es/components/markdown_editor/markdown_editor_toolbar.js +1 -1
  87. package/es/components/notification/notification_event.js +2 -2
  88. package/es/components/notification/notification_event_meta.js +1 -1
  89. package/es/components/page/page_header/page_header.js +1 -1
  90. package/es/components/page/page_header/page_header_content.js +1 -1
  91. package/es/components/page/page_template.js +1 -1
  92. package/es/components/pagination/pagination_button.js +1 -1
  93. package/es/components/popover/input_popover.js +8 -4
  94. package/es/components/popover/popover.js +58 -148
  95. package/es/components/popover/popover.styles.js +15 -0
  96. package/es/components/popover/popover_arrow/_popover_arrow.js +40 -0
  97. package/es/components/popover/popover_arrow/_popover_arrow.styles.js +25 -0
  98. package/es/components/popover/popover_arrow/index.js +8 -0
  99. package/es/components/popover/popover_footer.js +15 -12
  100. package/es/components/popover/popover_footer.styles.js +19 -0
  101. package/es/components/popover/popover_panel/_popover_panel.js +114 -0
  102. package/es/components/popover/popover_panel/_popover_panel.styles.js +42 -0
  103. package/es/components/popover/popover_panel/index.js +8 -0
  104. package/es/components/popover/popover_title.js +15 -12
  105. package/es/components/popover/popover_title.styles.js +20 -0
  106. package/es/components/selectable/selectable.js +10 -9
  107. package/es/components/selectable/selectable_list/selectable_list.js +1 -1
  108. package/es/components/selectable/selectable_list/selectable_list_item.js +1 -1
  109. package/es/components/selectable/selectable_search/selectable_search.js +1 -6
  110. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +2 -2
  111. package/es/components/suggest/suggest.js +1 -5
  112. package/es/components/suggest/suggest_item.js +1 -1
  113. package/es/components/table/table_header_button.js +1 -1
  114. package/es/components/text/text.styles.js +5 -4
  115. package/es/components/text_diff/text_diff.js +5 -0
  116. package/es/components/text_diff/text_diff.styles.js +15 -0
  117. package/es/components/timeline/timeline_item.js +1 -2
  118. package/es/components/timeline/timeline_item_icon.js +1 -1
  119. package/es/components/toast/global_toast_list.js +1 -1
  120. package/es/components/toast/toast.js +1 -1
  121. package/es/components/token/token.js +1 -1
  122. package/es/components/token/token_map.js +115 -107
  123. package/es/components/tool_tip/icon_tip.js +1 -1
  124. package/es/components/tour/tour.js +6 -6
  125. package/es/components/tour/tour_step.js +6 -6
  126. package/es/global_styling/functions/logicals.js +22 -0
  127. package/es/global_styling/mixins/_responsive.js +46 -0
  128. package/es/global_styling/mixins/index.js +2 -1
  129. package/es/services/hooks/index.js +1 -0
  130. package/es/services/hooks/useLatest.js +18 -0
  131. package/es/test/emotion-prefix.js +1 -1
  132. package/es/themes/amsterdam/global_styling/functions/shadows.js +1 -1
  133. package/es/themes/amsterdam/global_styling/mixins/shadow.js +13 -2
  134. package/eui.d.ts +620 -252
  135. package/i18ntokens.json +147 -51
  136. package/lib/components/accessibility/skip_link/skip_link.js +1 -1
  137. package/lib/components/accordion/accordion.js +10 -5
  138. package/lib/components/avatar/avatar.js +1 -2
  139. package/lib/components/badge/badge.js +1 -1
  140. package/lib/components/badge/beta_badge/beta_badge.js +1 -1
  141. package/lib/components/basic_table/basic_table.js +1 -1
  142. package/lib/components/basic_table/collapsed_item_actions.js +1 -1
  143. package/lib/components/basic_table/in_memory_table.js +1 -1
  144. package/lib/components/button/_button_content_deprecated.js +1 -1
  145. package/lib/components/button/button.js +2 -2
  146. package/lib/components/button/button_display/_button_display.js +1 -1
  147. package/lib/components/button/button_display/_button_display_content.js +1 -1
  148. package/lib/components/button/button_empty/button_empty.js +1 -1
  149. package/lib/components/button/button_group/button_group.js +1 -1
  150. package/lib/components/button/button_group/button_group_button.js +1 -1
  151. package/lib/components/button/button_icon/button_icon.js +1 -1
  152. package/lib/components/call_out/call_out.js +1 -1
  153. package/lib/components/card/card.js +1 -1
  154. package/lib/components/card/card_select.js +1 -1
  155. package/lib/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  156. package/lib/components/color_picker/color_picker.js +1 -1
  157. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +8 -5
  158. package/lib/components/comment_list/comment.js +53 -25
  159. package/lib/components/comment_list/comment_event.js +104 -41
  160. package/lib/components/comment_list/comment_event.styles.js +86 -0
  161. package/lib/components/comment_list/comment_list.js +46 -12
  162. package/lib/components/comment_list/comment_timeline.js +30 -40
  163. package/lib/components/context_menu/context_menu.js +1 -1
  164. package/lib/components/context_menu/context_menu_panel.js +1 -1
  165. package/lib/components/datagrid/body/data_grid_body.js +20 -17
  166. package/lib/components/datagrid/body/data_grid_cell.js +101 -33
  167. package/lib/components/datagrid/body/header/data_grid_header_cell.js +166 -67
  168. package/lib/components/datagrid/body/header/data_grid_header_row.js +13 -13
  169. package/lib/components/datagrid/controls/column_sorting_draggable.js +1 -1
  170. package/lib/components/datagrid/data_grid.js +15 -13
  171. package/lib/components/datagrid/utils/in_memory.js +12 -12
  172. package/lib/components/datagrid/utils/ref.js +24 -3
  173. package/lib/components/datagrid/utils/row_heights.js +26 -32
  174. package/lib/components/date_picker/date_picker.js +2 -2
  175. package/lib/components/date_picker/date_picker_range.js +1 -1
  176. package/lib/components/empty_prompt/empty_prompt.js +1 -1
  177. package/lib/components/error_boundary/error_boundary.js +23 -13
  178. package/lib/components/error_boundary/error_boundary.styles.js +30 -0
  179. package/lib/components/focus_trap/focus_trap.js +1 -0
  180. package/lib/components/form/field_number/field_number.js +1 -1
  181. package/lib/components/form/field_text/field_text.js +2 -2
  182. package/lib/components/form/form.styles.js +20 -0
  183. package/lib/components/form/form_control_layout/form_control_layout.js +2 -2
  184. package/lib/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  185. package/lib/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  186. package/lib/components/header/header_links/header_link.js +1 -1
  187. package/lib/components/header/header_links/header_links.js +10 -8
  188. package/lib/components/header/header_logo.js +1 -1
  189. package/lib/components/icon/assets/keyboard.js +45 -0
  190. package/lib/components/icon/assets/tokenMetricCounter.js +45 -0
  191. package/lib/components/icon/assets/{keyboard_shortcut.js → tokenMetricGauge.js} +3 -3
  192. package/lib/components/icon/icon.js +1 -1
  193. package/lib/components/icon/icon_map.js +39 -37
  194. package/lib/components/icon/svgs/keyboard.svg +3 -0
  195. package/lib/components/icon/svgs/tokens/tokenMetricCounter.svg +3 -0
  196. package/lib/components/icon/svgs/tokens/tokenMetricGauge.svg +3 -0
  197. package/lib/components/image/image.js +73 -168
  198. package/lib/components/image/image.styles.js +40 -0
  199. package/lib/components/image/image_button.js +81 -0
  200. package/lib/components/image/image_button.styles.js +48 -0
  201. package/lib/components/image/image_caption.js +49 -0
  202. package/lib/components/image/image_caption.styles.js +30 -0
  203. package/lib/components/image/image_fullscreen_wrapper.js +117 -0
  204. package/lib/components/image/image_fullscreen_wrapper.styles.js +30 -0
  205. package/lib/components/image/image_types.js +18 -0
  206. package/lib/components/image/image_wrapper.js +91 -0
  207. package/lib/components/image/image_wrapper.styles.js +44 -0
  208. package/lib/components/key_pad_menu/key_pad_menu_item.js +1 -1
  209. package/lib/components/list_group/list_group.js +2 -2
  210. package/lib/components/list_group/list_group_item.js +2 -2
  211. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
  212. package/lib/components/loading/loading_logo.js +1 -1
  213. package/lib/components/markdown_editor/markdown_editor.js +1 -1
  214. package/lib/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
  215. package/lib/components/markdown_editor/markdown_editor_footer.js +1 -1
  216. package/lib/components/markdown_editor/markdown_editor_toolbar.js +1 -1
  217. package/lib/components/notification/notification_event.js +2 -2
  218. package/lib/components/notification/notification_event_meta.js +1 -1
  219. package/lib/components/page/page_header/page_header.js +1 -1
  220. package/lib/components/page/page_header/page_header_content.js +1 -1
  221. package/lib/components/page/page_template.js +1 -1
  222. package/lib/components/popover/input_popover.js +8 -3
  223. package/lib/components/popover/popover.js +74 -165
  224. package/lib/components/popover/popover.styles.js +26 -0
  225. package/lib/components/popover/popover_arrow/_popover_arrow.js +51 -0
  226. package/lib/components/popover/popover_arrow/_popover_arrow.styles.js +38 -0
  227. package/lib/components/popover/popover_arrow/index.js +13 -0
  228. package/lib/components/popover/popover_footer.js +25 -15
  229. package/lib/components/popover/popover_footer.styles.js +30 -0
  230. package/lib/components/popover/popover_panel/_popover_panel.js +132 -0
  231. package/lib/components/popover/popover_panel/_popover_panel.styles.js +54 -0
  232. package/lib/components/popover/popover_panel/index.js +13 -0
  233. package/lib/components/popover/popover_title.js +25 -15
  234. package/lib/components/popover/popover_title.styles.js +32 -0
  235. package/lib/components/selectable/selectable.js +10 -9
  236. package/lib/components/selectable/selectable_list/selectable_list.js +1 -1
  237. package/lib/components/selectable/selectable_list/selectable_list_item.js +1 -1
  238. package/lib/components/selectable/selectable_search/selectable_search.js +0 -5
  239. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +2 -2
  240. package/lib/components/suggest/suggest.js +1 -5
  241. package/lib/components/suggest/suggest_item.js +1 -1
  242. package/lib/components/table/table_header_button.js +1 -1
  243. package/lib/components/text/text.styles.js +4 -3
  244. package/lib/components/text_diff/text_diff.js +7 -0
  245. package/lib/components/text_diff/text_diff.styles.js +25 -0
  246. package/lib/components/timeline/timeline_item.js +1 -2
  247. package/lib/components/timeline/timeline_item_icon.js +1 -1
  248. package/lib/components/toast/global_toast_list.js +1 -1
  249. package/lib/components/toast/toast.js +1 -1
  250. package/lib/components/token/token.js +1 -1
  251. package/lib/components/token/token_map.js +115 -107
  252. package/lib/components/tool_tip/icon_tip.js +1 -1
  253. package/lib/global_styling/functions/logicals.js +30 -2
  254. package/lib/global_styling/mixins/_responsive.js +60 -0
  255. package/lib/global_styling/mixins/index.js +13 -0
  256. package/lib/services/hooks/index.js +13 -0
  257. package/lib/services/hooks/useLatest.js +26 -0
  258. package/lib/test/emotion-prefix.js +1 -1
  259. package/lib/themes/amsterdam/global_styling/functions/shadows.js +1 -1
  260. package/lib/themes/amsterdam/global_styling/mixins/shadow.js +13 -2
  261. package/optimize/es/components/accordion/accordion.js +10 -5
  262. package/optimize/es/components/avatar/avatar.js +0 -1
  263. package/optimize/es/components/color_picker/color_picker.js +1 -1
  264. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +7 -4
  265. package/optimize/es/components/comment_list/comment.js +24 -18
  266. package/optimize/es/components/comment_list/comment_event.js +83 -28
  267. package/optimize/es/components/comment_list/comment_event.styles.js +78 -0
  268. package/optimize/es/components/comment_list/comment_list.js +7 -3
  269. package/optimize/es/components/comment_list/comment_timeline.js +19 -32
  270. package/optimize/es/components/context_menu/context_menu_panel.js +1 -1
  271. package/optimize/es/components/datagrid/body/data_grid_body.js +7 -4
  272. package/optimize/es/components/datagrid/body/data_grid_cell.js +18 -9
  273. package/optimize/es/components/datagrid/body/header/data_grid_header_cell.js +150 -54
  274. package/optimize/es/components/datagrid/data_grid.js +2 -0
  275. package/optimize/es/components/datagrid/utils/ref.js +24 -3
  276. package/optimize/es/components/datagrid/utils/row_heights.js +27 -33
  277. package/optimize/es/components/error_boundary/error_boundary.js +17 -10
  278. package/optimize/es/components/error_boundary/error_boundary.styles.js +18 -0
  279. package/optimize/es/components/focus_trap/focus_trap.js +1 -0
  280. package/optimize/es/components/form/form.styles.js +11 -0
  281. package/optimize/es/components/icon/assets/keyboard.js +34 -0
  282. package/optimize/es/components/icon/assets/tokenMetricCounter.js +34 -0
  283. package/optimize/es/components/icon/assets/{keyboard_shortcut.js → tokenMetricGauge.js} +3 -3
  284. package/optimize/es/components/icon/icon_map.js +39 -37
  285. package/optimize/es/components/image/image.js +50 -154
  286. package/optimize/es/components/image/image.styles.js +28 -0
  287. package/optimize/es/components/image/image_button.js +56 -0
  288. package/optimize/es/components/image/image_button.styles.js +41 -0
  289. package/optimize/es/components/image/image_caption.js +24 -0
  290. package/optimize/es/components/image/image_caption.styles.js +18 -0
  291. package/optimize/es/components/image/image_fullscreen_wrapper.js +84 -0
  292. package/optimize/es/components/image/image_fullscreen_wrapper.styles.js +26 -0
  293. package/optimize/es/components/image/image_types.js +10 -0
  294. package/optimize/es/components/image/image_wrapper.js +62 -0
  295. package/optimize/es/components/image/image_wrapper.styles.js +41 -0
  296. package/optimize/es/components/popover/input_popover.js +8 -4
  297. package/optimize/es/components/popover/popover.js +41 -131
  298. package/optimize/es/components/popover/popover.styles.js +15 -0
  299. package/optimize/es/components/popover/popover_arrow/_popover_arrow.js +29 -0
  300. package/optimize/es/components/popover/popover_arrow/_popover_arrow.styles.js +25 -0
  301. package/optimize/es/components/popover/popover_arrow/index.js +8 -0
  302. package/optimize/es/components/popover/popover_footer.js +15 -12
  303. package/optimize/es/components/popover/popover_footer.styles.js +19 -0
  304. package/optimize/es/components/popover/popover_panel/_popover_panel.js +55 -0
  305. package/optimize/es/components/popover/popover_panel/_popover_panel.styles.js +42 -0
  306. package/optimize/es/components/popover/popover_panel/index.js +8 -0
  307. package/optimize/es/components/popover/popover_title.js +15 -12
  308. package/optimize/es/components/popover/popover_title.styles.js +20 -0
  309. package/optimize/es/components/selectable/selectable.js +10 -9
  310. package/optimize/es/components/selectable/selectable_search/selectable_search.js +1 -6
  311. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  312. package/optimize/es/components/suggest/suggest.js +0 -4
  313. package/optimize/es/components/text/text.styles.js +5 -4
  314. package/optimize/es/components/text_diff/text_diff.js +5 -0
  315. package/optimize/es/components/text_diff/text_diff.styles.js +15 -0
  316. package/optimize/es/components/timeline/timeline_item.js +1 -2
  317. package/optimize/es/components/token/token_map.js +115 -107
  318. package/optimize/es/global_styling/functions/logicals.js +22 -0
  319. package/optimize/es/global_styling/mixins/_responsive.js +46 -0
  320. package/optimize/es/global_styling/mixins/index.js +2 -1
  321. package/optimize/es/services/hooks/index.js +1 -0
  322. package/optimize/es/services/hooks/useLatest.js +18 -0
  323. package/optimize/es/test/emotion-prefix.js +1 -1
  324. package/optimize/es/themes/amsterdam/global_styling/functions/shadows.js +1 -1
  325. package/optimize/es/themes/amsterdam/global_styling/mixins/shadow.js +13 -2
  326. package/optimize/lib/components/accordion/accordion.js +8 -5
  327. package/optimize/lib/components/avatar/avatar.js +0 -1
  328. package/optimize/lib/components/color_picker/color_picker.js +1 -1
  329. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +8 -5
  330. package/optimize/lib/components/comment_list/comment.js +23 -18
  331. package/optimize/lib/components/comment_list/comment_event.js +85 -31
  332. package/optimize/lib/components/comment_list/comment_event.styles.js +86 -0
  333. package/optimize/lib/components/comment_list/comment_list.js +8 -3
  334. package/optimize/lib/components/comment_list/comment_timeline.js +21 -38
  335. package/optimize/lib/components/context_menu/context_menu_panel.js +1 -1
  336. package/optimize/lib/components/datagrid/body/data_grid_body.js +7 -4
  337. package/optimize/lib/components/datagrid/body/data_grid_cell.js +17 -8
  338. package/optimize/lib/components/datagrid/body/header/data_grid_header_cell.js +153 -54
  339. package/optimize/lib/components/datagrid/data_grid.js +2 -0
  340. package/optimize/lib/components/datagrid/utils/ref.js +24 -3
  341. package/optimize/lib/components/datagrid/utils/row_heights.js +25 -30
  342. package/optimize/lib/components/error_boundary/error_boundary.js +20 -10
  343. package/optimize/lib/components/error_boundary/error_boundary.styles.js +30 -0
  344. package/optimize/lib/components/focus_trap/focus_trap.js +1 -0
  345. package/optimize/lib/components/form/form.styles.js +20 -0
  346. package/optimize/lib/components/icon/assets/keyboard.js +44 -0
  347. package/optimize/lib/components/icon/assets/tokenMetricCounter.js +44 -0
  348. package/{test-env/components/icon/assets/keyboard_shortcut.js → optimize/lib/components/icon/assets/tokenMetricGauge.js} +3 -3
  349. package/optimize/lib/components/icon/icon_map.js +39 -37
  350. package/optimize/lib/components/icon/svgs/keyboard.svg +3 -0
  351. package/optimize/lib/components/icon/svgs/tokens/tokenMetricCounter.svg +3 -0
  352. package/optimize/lib/components/icon/svgs/tokens/tokenMetricGauge.svg +3 -0
  353. package/optimize/lib/components/image/image.js +52 -156
  354. package/optimize/lib/components/image/image.styles.js +40 -0
  355. package/optimize/lib/components/image/image_button.js +68 -0
  356. package/optimize/lib/components/image/image_button.styles.js +48 -0
  357. package/optimize/lib/components/image/image_caption.js +42 -0
  358. package/optimize/lib/components/image/image_caption.styles.js +30 -0
  359. package/optimize/lib/components/image/image_fullscreen_wrapper.js +108 -0
  360. package/optimize/lib/components/image/image_fullscreen_wrapper.styles.js +32 -0
  361. package/optimize/lib/components/image/image_types.js +18 -0
  362. package/optimize/lib/components/image/image_wrapper.js +82 -0
  363. package/optimize/lib/components/image/image_wrapper.styles.js +44 -0
  364. package/optimize/lib/components/popover/input_popover.js +7 -3
  365. package/optimize/lib/components/popover/popover.js +60 -150
  366. package/optimize/lib/components/popover/popover.styles.js +26 -0
  367. package/optimize/lib/components/popover/popover_arrow/_popover_arrow.js +39 -0
  368. package/optimize/lib/components/popover/popover_arrow/_popover_arrow.styles.js +38 -0
  369. package/optimize/lib/components/popover/popover_arrow/index.js +13 -0
  370. package/optimize/lib/components/popover/popover_footer.js +26 -14
  371. package/optimize/lib/components/popover/popover_footer.styles.js +30 -0
  372. package/optimize/lib/components/popover/popover_panel/_popover_panel.js +74 -0
  373. package/optimize/lib/components/popover/popover_panel/_popover_panel.styles.js +54 -0
  374. package/optimize/lib/components/popover/popover_panel/index.js +13 -0
  375. package/optimize/lib/components/popover/popover_title.js +26 -14
  376. package/optimize/lib/components/popover/popover_title.styles.js +32 -0
  377. package/optimize/lib/components/selectable/selectable.js +10 -8
  378. package/optimize/lib/components/selectable/selectable_search/selectable_search.js +0 -5
  379. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  380. package/optimize/lib/components/suggest/suggest.js +0 -4
  381. package/optimize/lib/components/text/text.styles.js +4 -3
  382. package/optimize/lib/components/text_diff/text_diff.js +7 -0
  383. package/optimize/lib/components/text_diff/text_diff.styles.js +25 -0
  384. package/optimize/lib/components/timeline/timeline_item.js +1 -2
  385. package/optimize/lib/components/token/token_map.js +115 -107
  386. package/optimize/lib/global_styling/functions/logicals.js +30 -2
  387. package/optimize/lib/global_styling/mixins/_responsive.js +60 -0
  388. package/optimize/lib/global_styling/mixins/index.js +13 -0
  389. package/optimize/lib/services/hooks/index.js +13 -0
  390. package/optimize/lib/services/hooks/useLatest.js +26 -0
  391. package/optimize/lib/test/emotion-prefix.js +1 -1
  392. package/optimize/lib/themes/amsterdam/global_styling/functions/shadows.js +1 -1
  393. package/optimize/lib/themes/amsterdam/global_styling/mixins/shadow.js +13 -2
  394. package/package.json +3 -3
  395. package/src/components/combo_box/combo_box_options_list/_combo_box_options_list.scss +0 -4
  396. package/src/components/context_menu/_context_menu_panel.scss +2 -2
  397. package/src/components/index.scss +0 -5
  398. package/src/components/markdown_editor/_markdown_editor.scss +3 -2
  399. package/src/components/tour/_tour.scss +13 -9
  400. package/src/global_styling/mixins/_index.scss +0 -1
  401. package/src/themes/amsterdam/global_styling/mixins/_index.scss +0 -2
  402. package/src/themes/amsterdam/overrides/_index.scss +0 -3
  403. package/test-env/components/accessibility/skip_link/skip_link.js +1 -1
  404. package/test-env/components/accordion/accordion.js +8 -5
  405. package/test-env/components/avatar/avatar.js +1 -2
  406. package/test-env/components/badge/badge.js +1 -1
  407. package/test-env/components/badge/beta_badge/beta_badge.js +1 -1
  408. package/test-env/components/basic_table/basic_table.js +1 -1
  409. package/test-env/components/basic_table/collapsed_item_actions.js +1 -1
  410. package/test-env/components/basic_table/in_memory_table.js +1 -1
  411. package/test-env/components/button/_button_content_deprecated.js +1 -1
  412. package/test-env/components/button/button.js +2 -2
  413. package/test-env/components/button/button_display/_button_display.js +1 -1
  414. package/test-env/components/button/button_display/_button_display_content.js +1 -1
  415. package/test-env/components/button/button_empty/button_empty.js +1 -1
  416. package/test-env/components/button/button_group/button_group.js +1 -1
  417. package/test-env/components/button/button_group/button_group_button.js +1 -1
  418. package/test-env/components/button/button_icon/button_icon.js +1 -1
  419. package/test-env/components/call_out/call_out.js +1 -1
  420. package/test-env/components/card/card.js +1 -1
  421. package/test-env/components/card/card_select.js +1 -1
  422. package/test-env/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  423. package/test-env/components/color_picker/color_picker.js +1 -1
  424. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.js +8 -5
  425. package/test-env/components/comment_list/comment.js +53 -24
  426. package/test-env/components/comment_list/comment_event.js +105 -35
  427. package/test-env/components/comment_list/comment_event.styles.js +86 -0
  428. package/test-env/components/comment_list/comment_list.js +46 -12
  429. package/test-env/components/comment_list/comment_timeline.js +30 -40
  430. package/test-env/components/context_menu/context_menu.js +1 -1
  431. package/test-env/components/context_menu/context_menu_panel.js +1 -1
  432. package/test-env/components/datagrid/body/data_grid_body.js +20 -17
  433. package/test-env/components/datagrid/body/data_grid_cell.js +101 -33
  434. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +166 -67
  435. package/test-env/components/datagrid/body/header/data_grid_header_row.js +13 -13
  436. package/test-env/components/datagrid/controls/column_sorting_draggable.js +1 -1
  437. package/test-env/components/datagrid/data_grid.js +15 -13
  438. package/test-env/components/datagrid/utils/in_memory.js +12 -12
  439. package/test-env/components/datagrid/utils/ref.js +24 -3
  440. package/test-env/components/datagrid/utils/row_heights.js +25 -30
  441. package/test-env/components/date_picker/date_picker.js +2 -2
  442. package/test-env/components/date_picker/date_picker_range.js +1 -1
  443. package/test-env/components/empty_prompt/empty_prompt.js +1 -1
  444. package/test-env/components/error_boundary/error_boundary.js +23 -13
  445. package/test-env/components/error_boundary/error_boundary.styles.js +30 -0
  446. package/test-env/components/form/field_number/field_number.js +1 -1
  447. package/test-env/components/form/field_text/field_text.js +2 -2
  448. package/test-env/components/form/form.styles.js +20 -0
  449. package/test-env/components/form/form_control_layout/form_control_layout.js +2 -2
  450. package/test-env/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  451. package/test-env/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  452. package/test-env/components/header/header_links/header_link.js +1 -1
  453. package/test-env/components/header/header_links/header_links.js +10 -8
  454. package/test-env/components/header/header_logo.js +1 -1
  455. package/test-env/components/icon/assets/keyboard.js +44 -0
  456. package/test-env/components/icon/assets/tokenMetricCounter.js +44 -0
  457. package/{optimize/lib/components/icon/assets/keyboard_shortcut.js → test-env/components/icon/assets/tokenMetricGauge.js} +3 -3
  458. package/test-env/components/icon/icon_map.js +39 -37
  459. package/test-env/components/image/image.js +73 -168
  460. package/test-env/components/image/image.styles.js +40 -0
  461. package/test-env/components/image/image_button.js +77 -0
  462. package/test-env/components/image/image_button.styles.js +48 -0
  463. package/test-env/components/image/image_caption.js +49 -0
  464. package/test-env/components/image/image_caption.styles.js +30 -0
  465. package/test-env/components/image/image_fullscreen_wrapper.js +114 -0
  466. package/test-env/components/image/image_fullscreen_wrapper.styles.js +32 -0
  467. package/test-env/components/image/image_types.js +18 -0
  468. package/test-env/components/image/image_wrapper.js +88 -0
  469. package/test-env/components/image/image_wrapper.styles.js +44 -0
  470. package/test-env/components/key_pad_menu/key_pad_menu_item.js +1 -1
  471. package/test-env/components/list_group/list_group.js +2 -2
  472. package/test-env/components/list_group/list_group_item.js +2 -2
  473. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
  474. package/test-env/components/loading/loading_logo.js +1 -1
  475. package/test-env/components/markdown_editor/markdown_editor.js +1 -1
  476. package/test-env/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
  477. package/test-env/components/markdown_editor/markdown_editor_footer.js +1 -1
  478. package/test-env/components/markdown_editor/markdown_editor_toolbar.js +1 -1
  479. package/test-env/components/notification/notification_event.js +2 -2
  480. package/test-env/components/notification/notification_event_meta.js +1 -1
  481. package/test-env/components/page/page_header/page_header.js +1 -1
  482. package/test-env/components/page/page_header/page_header_content.js +1 -1
  483. package/test-env/components/page/page_template.js +1 -1
  484. package/test-env/components/popover/input_popover.js +7 -3
  485. package/test-env/components/popover/popover.js +75 -166
  486. package/test-env/components/popover/popover.styles.js +26 -0
  487. package/test-env/components/popover/popover_arrow/_popover_arrow.js +47 -0
  488. package/test-env/components/popover/popover_arrow/_popover_arrow.styles.js +38 -0
  489. package/test-env/components/popover/popover_arrow/index.js +13 -0
  490. package/test-env/components/popover/popover_footer.js +26 -14
  491. package/test-env/components/popover/popover_footer.styles.js +30 -0
  492. package/test-env/components/popover/popover_panel/_popover_panel.js +119 -0
  493. package/test-env/components/popover/popover_panel/_popover_panel.styles.js +54 -0
  494. package/test-env/components/popover/popover_panel/index.js +13 -0
  495. package/test-env/components/popover/popover_title.js +26 -14
  496. package/test-env/components/popover/popover_title.styles.js +32 -0
  497. package/test-env/components/selectable/selectable.js +10 -8
  498. package/test-env/components/selectable/selectable_list/selectable_list.js +1 -1
  499. package/test-env/components/selectable/selectable_list/selectable_list_item.js +1 -1
  500. package/test-env/components/selectable/selectable_search/selectable_search.js +0 -5
  501. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +2 -2
  502. package/test-env/components/suggest/suggest.js +1 -5
  503. package/test-env/components/suggest/suggest_item.js +1 -1
  504. package/test-env/components/table/table_header_button.js +1 -1
  505. package/test-env/components/text/text.styles.js +4 -3
  506. package/test-env/components/text_diff/text_diff.js +7 -0
  507. package/test-env/components/text_diff/text_diff.styles.js +25 -0
  508. package/test-env/components/timeline/timeline_item.js +1 -2
  509. package/test-env/components/timeline/timeline_item_icon.js +1 -1
  510. package/test-env/components/toast/global_toast_list.js +1 -1
  511. package/test-env/components/toast/toast.js +1 -1
  512. package/test-env/components/token/token.js +1 -1
  513. package/test-env/components/token/token_map.js +115 -107
  514. package/test-env/components/tool_tip/icon_tip.js +1 -1
  515. package/test-env/global_styling/functions/logicals.js +30 -2
  516. package/test-env/global_styling/mixins/_responsive.js +60 -0
  517. package/test-env/global_styling/mixins/index.js +13 -0
  518. package/test-env/services/hooks/index.js +13 -0
  519. package/test-env/services/hooks/useLatest.js +26 -0
  520. package/test-env/test/emotion-prefix.js +1 -1
  521. package/test-env/themes/amsterdam/global_styling/functions/shadows.js +1 -1
  522. package/test-env/themes/amsterdam/global_styling/mixins/shadow.js +13 -2
  523. package/lib/components/icon/svgs/keyboard_shortcut.svg +0 -3
  524. package/optimize/lib/components/icon/svgs/keyboard_shortcut.svg +0 -3
  525. package/src/components/comment_list/_comment.scss +0 -38
  526. package/src/components/comment_list/_comment_event.scss +0 -77
  527. package/src/components/comment_list/_comment_timeline.scss +0 -27
  528. package/src/components/comment_list/_index.scss +0 -3
  529. package/src/components/error_boundary/_error_boundary.scss +0 -13
  530. package/src/components/error_boundary/_index.scss +0 -1
  531. package/src/components/image/_image.scss +0 -212
  532. package/src/components/image/_index.scss +0 -1
  533. package/src/components/popover/_index.scss +0 -5
  534. package/src/components/popover/_input_popover.scss +0 -7
  535. package/src/components/popover/_popover.scss +0 -182
  536. package/src/components/popover/_popover_footer.scss +0 -27
  537. package/src/components/popover/_popover_title.scss +0 -27
  538. package/src/components/popover/_variables.scss +0 -2
  539. package/src/components/text_diff/_index.scss +0 -1
  540. package/src/components/text_diff/_text_diff.scss +0 -9
  541. package/src/global_styling/mixins/_popover.scss +0 -19
  542. package/src/themes/amsterdam/global_styling/mixins/_popover.scss +0 -5
  543. package/src/themes/amsterdam/overrides/_comment.scss +0 -3
  544. package/src/themes/amsterdam/overrides/_image.scss +0 -10
  545. package/src/themes/amsterdam/overrides/_popover.scss +0 -104
@@ -5,7 +5,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.SIZES = exports.EuiImage = void 0;
8
+ exports.EuiImage = void 0;
9
9
 
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
 
@@ -13,21 +13,19 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
 
14
14
  var _classnames = _interopRequireDefault(require("classnames"));
15
15
 
16
- var _overlay_mask = require("../overlay_mask");
17
-
18
- var _icon = require("../icon");
16
+ var _services = require("../../services");
19
17
 
20
- var _i18n = require("../i18n");
18
+ var _image_wrapper = require("./image_wrapper");
21
19
 
22
- var _focus_trap = require("../focus_trap");
20
+ var _image = require("./image.styles");
23
21
 
24
- var _services = require("../../services");
22
+ var _image_fullscreen_wrapper = require("./image_fullscreen_wrapper");
25
23
 
26
- var _inner_text = require("../inner_text");
24
+ var _image_types = require("./image_types");
27
25
 
28
26
  var _react2 = require("@emotion/react");
29
27
 
30
- var _excluded = ["className", "url", "src", "size", "caption", "hasShadow", "allowFullScreen", "fullScreenIconColor", "alt", "style", "float", "margin"];
28
+ var _excluded = ["className", "alt", "url", "src", "size", "hasShadow", "style", "wrapperProps", "fullScreenIconColor", "allowFullScreen", "caption", "float", "margin"];
31
29
 
32
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
31
 
@@ -59,171 +57,69 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
59
57
 
60
58
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
61
59
 
62
- var sizeToClassNameMap = {
63
- s: 'euiImage--small',
64
- m: 'euiImage--medium',
65
- l: 'euiImage--large',
66
- xl: 'euiImage--xlarge',
67
- fullWidth: 'euiImage--fullWidth',
68
- original: 'euiImage--original'
69
- };
70
- var marginToClassNameMap = {
71
- s: 'euiImage--marginSmall',
72
- m: 'euiImage--marginMedium',
73
- l: 'euiImage--marginLarge',
74
- xl: 'euiImage--marginXlarge'
75
- };
76
- var floatToClassNameMap = {
77
- left: 'euiImage--floatLeft',
78
- right: 'euiImage--floatRight'
79
- };
80
- var SIZES = Object.keys(sizeToClassNameMap);
81
- exports.SIZES = SIZES;
82
- var fullScreenIconColorMap = {
83
- light: 'ghost',
84
- dark: 'default'
85
- };
86
-
87
60
  var EuiImage = function EuiImage(_ref) {
88
61
  var className = _ref.className,
62
+ alt = _ref.alt,
89
63
  url = _ref.url,
90
64
  src = _ref.src,
91
65
  _ref$size = _ref.size,
92
66
  size = _ref$size === void 0 ? 'original' : _ref$size,
93
- caption = _ref.caption,
94
67
  hasShadow = _ref.hasShadow,
95
- allowFullScreen = _ref.allowFullScreen,
96
- _ref$fullScreenIconCo = _ref.fullScreenIconColor,
97
- fullScreenIconColor = _ref$fullScreenIconCo === void 0 ? 'light' : _ref$fullScreenIconCo,
98
- alt = _ref.alt,
99
68
  style = _ref.style,
69
+ wrapperProps = _ref.wrapperProps,
70
+ fullScreenIconColor = _ref.fullScreenIconColor,
71
+ allowFullScreen = _ref.allowFullScreen,
72
+ caption = _ref.caption,
100
73
  float = _ref.float,
101
74
  margin = _ref.margin,
102
75
  rest = _objectWithoutProperties(_ref, _excluded);
103
76
 
104
77
  var _useState = (0, _react.useState)(false),
105
78
  _useState2 = _slicedToArray(_useState, 2),
106
- isFullScreenActive = _useState2[0],
107
- setIsFullScreenActive = _useState2[1];
108
-
109
- var onKeyDown = function onKeyDown(event) {
110
- if (event.key === _services.keys.ESCAPE) {
111
- event.preventDefault();
112
- event.stopPropagation();
113
- closeFullScreen();
114
- }
115
- };
116
-
117
- var closeFullScreen = function closeFullScreen() {
118
- setIsFullScreenActive(false);
79
+ isFullScreen = _useState2[0],
80
+ setIsFullScreen = _useState2[1];
81
+
82
+ var isNamedSize = typeof size === 'string' && _image_types.SIZES.includes(size);
83
+
84
+ var classes = (0, _classnames.default)('euiImage', className);
85
+ var euiTheme = (0, _services.useEuiTheme)();
86
+ var styles = (0, _image.euiImageStyles)(euiTheme);
87
+ var cssStyles = [styles.euiImage, isNamedSize && styles[size], !isNamedSize && styles.customSize, hasShadow && styles.hasShadow];
88
+ var cssIsFullScreenStyles = [styles.euiImage, styles.isFullScreen];
89
+ var isCustomSize = !isNamedSize && size !== 'original';
90
+ var customSize = typeof size === 'string' ? size : "".concat(size, "px");
91
+ var imageStyleWithCustomSize = isCustomSize ? _objectSpread(_objectSpread({}, style), {}, {
92
+ maxWidth: customSize,
93
+ maxHeight: customSize
94
+ }) : style;
95
+ var isFullWidth = size === 'fullWidth';
96
+ var commonWrapperProps = {
97
+ hasShadow: hasShadow,
98
+ wrapperProps: wrapperProps,
99
+ setIsFullScreen: setIsFullScreen,
100
+ fullScreenIconColor: fullScreenIconColor,
101
+ isFullWidth: isFullWidth,
102
+ allowFullScreen: allowFullScreen,
103
+ alt: alt,
104
+ caption: caption,
105
+ float: float,
106
+ margin: margin
119
107
  };
120
108
 
121
- var openFullScreen = function openFullScreen() {
122
- setIsFullScreenActive(true);
123
- };
109
+ var commonImgProps = _objectSpread({
110
+ className: classes,
111
+ src: src || url
112
+ }, rest);
124
113
 
125
- var customStyle = _objectSpread({}, style);
126
-
127
- var classes = (0, _classnames.default)('euiImage', {
128
- 'euiImage--hasShadow': hasShadow,
129
- 'euiImage--allowFullScreen': allowFullScreen
130
- }, margin ? marginToClassNameMap[margin] : null, float ? floatToClassNameMap[float] : null, className);
131
-
132
- if (typeof size === 'string' && SIZES.includes(size)) {
133
- classes = "".concat(classes, " ").concat(sizeToClassNameMap[size]);
134
- } else {
135
- classes = "".concat(classes);
136
- customStyle.maxWidth = size;
137
- customStyle.maxHeight = size; // Set width back to auto to ensure aspect ratio is kept
138
-
139
- customStyle.width = 'auto';
140
- }
141
-
142
- var allowFullScreenButtonClasses = 'euiImage__button'; // when the button is not custom we need it to go full width
143
- // to match the parent '.euiImage' width except when the size is original
144
-
145
- if (typeof size === 'string' && size !== 'original' && SIZES.includes(size)) {
146
- allowFullScreenButtonClasses = "".concat(allowFullScreenButtonClasses, " euiImage__button--fullWidth");
147
- } else {
148
- allowFullScreenButtonClasses = "".concat(allowFullScreenButtonClasses);
149
- }
150
-
151
- var _useInnerText = (0, _inner_text.useInnerText)(),
152
- _useInnerText2 = _slicedToArray(_useInnerText, 2),
153
- optionalCaptionRef = _useInnerText2[0],
154
- optionalCaptionText = _useInnerText2[1];
155
-
156
- var optionalCaption;
157
-
158
- if (caption) {
159
- optionalCaption = (0, _react2.jsx)("figcaption", {
160
- ref: optionalCaptionRef,
161
- className: "euiImage__caption"
162
- }, caption);
163
- }
164
-
165
- var allowFullScreenIcon = (0, _react2.jsx)(_icon.EuiIcon, {
166
- type: "fullScreen",
167
- color: fullScreenIconColorMap[fullScreenIconColor],
168
- className: "euiImage__icon"
169
- });
170
- var fullScreenDisplay = (0, _react2.jsx)(_overlay_mask.EuiOverlayMask, {
171
- "data-test-subj": "fullScreenOverlayMask",
172
- onClick: closeFullScreen
173
- }, (0, _react2.jsx)(_focus_trap.EuiFocusTrap, {
174
- clickOutsideDisables: true
175
- }, (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("figure", {
176
- className: "euiImage euiImage-isFullScreen",
177
- "aria-label": optionalCaptionText
178
- }, (0, _react2.jsx)("button", {
179
- type: "button",
180
- "aria-label": (0, _i18n.useEuiI18n)('euiImage.closeImage', 'Close fullscreen {alt} image', {
181
- alt: alt
182
- }),
183
- className: "euiImage__button",
184
- "data-test-subj": "deactivateFullScreenButton",
185
- onClick: closeFullScreen,
186
- onKeyDown: onKeyDown
187
- }, (0, _react2.jsx)("img", _extends({
188
- src: src || url,
114
+ return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_image_wrapper.EuiImageWrapper, commonWrapperProps, (0, _react2.jsx)("img", _extends({
115
+ alt: alt,
116
+ css: cssStyles,
117
+ style: imageStyleWithCustomSize
118
+ }, commonImgProps))), allowFullScreen && isFullScreen && (0, _react2.jsx)(_image_fullscreen_wrapper.EuiImageFullScreenWrapper, commonWrapperProps, (0, _react2.jsx)("img", _extends({
189
119
  alt: alt,
190
- className: "euiImage-isFullScreen__img"
191
- }, rest))), optionalCaption), (0, _react2.jsx)(_icon.EuiIcon, {
192
- type: "cross",
193
- color: "default",
194
- className: "euiImage-isFullScreenCloseIcon"
195
- }))));
196
- var fullscreenLabel = (0, _i18n.useEuiI18n)('euiImage.openImage', 'Open fullscreen {alt} image', {
197
- alt: alt
198
- });
199
-
200
- if (allowFullScreen) {
201
- return (0, _react2.jsx)("figure", {
202
- className: classes,
203
- "aria-label": optionalCaptionText
204
- }, (0, _react2.jsx)("button", {
205
- type: "button",
206
- "aria-label": fullscreenLabel,
207
- className: allowFullScreenButtonClasses,
208
- "data-test-subj": "activateFullScreenButton",
209
- onClick: openFullScreen
210
- }, (0, _react2.jsx)("img", _extends({
211
- style: customStyle,
212
- src: src || url,
213
- alt: alt,
214
- className: "euiImage__img"
215
- }, rest)), allowFullScreenIcon), isFullScreenActive && fullScreenDisplay, optionalCaption);
216
- } else {
217
- return (0, _react2.jsx)("figure", {
218
- className: classes,
219
- "aria-label": optionalCaptionText
220
- }, (0, _react2.jsx)("img", _extends({
221
- style: customStyle,
222
- src: src || url,
223
- className: "euiImage__img",
224
- alt: alt
225
- }, rest)), optionalCaption);
226
- }
120
+ css: cssIsFullScreenStyles,
121
+ style: style
122
+ }, commonImgProps))));
227
123
  };
228
124
 
229
125
  exports.EuiImage = EuiImage;
@@ -239,28 +135,36 @@ EuiImage.propTypes = {
239
135
  url: _propTypes.default.string,
240
136
 
241
137
  /**
242
- * Separate from the caption is a title on the alt tag itself.
243
- * This one is required for accessibility.
138
+ * Alt text should describe the image to aid screen reader users. See
139
+ * https://webaim.org/techniques/alttext/ for a guide on writing
140
+ * effective alt text.
141
+ *
142
+ * If no meaningful description exists, or if the image is adequately
143
+ * described by the surrounding text, pass an empty string.
244
144
  */
245
145
  alt: _propTypes.default.string.isRequired,
246
146
 
147
+ /**
148
+ * Provides a visible caption to the image
149
+ */
150
+ caption: _propTypes.default.node,
151
+
247
152
  /**
248
153
  * Accepts `s` / `m` / `l` / `xl` / `original` / `fullWidth` / or a CSS size of `number` or `string`.
249
154
  * `fullWidth` will set the figure to stretch to 100% of its container.
250
155
  * `string` and `number` types will max both the width or height, whichever is greater.
251
156
  */
252
- size: _propTypes.default.oneOfType([_propTypes.default.oneOf(["s", "m", "l", "xl", "fullWidth", "original"]).isRequired, _propTypes.default.number.isRequired, _propTypes.default.string.isRequired]),
157
+ size: _propTypes.default.oneOfType([_propTypes.default.any.isRequired, _propTypes.default.number.isRequired, _propTypes.default.string.isRequired]),
253
158
 
254
159
  /**
255
- * Changes the color of the icon that floats above the image when it can be clicked to fullscreen.
256
- * The default value of `light` is fine unless your image has a white background, in which case you should change it to `dark`.
160
+ * Float the image to the left or right. Useful in large text blocks.
257
161
  */
258
- fullScreenIconColor: _propTypes.default.oneOf(["light", "dark"]),
162
+ float: _propTypes.default.any,
259
163
 
260
164
  /**
261
- * Provides the visible caption to the image
165
+ * Margin around the image.
262
166
  */
263
- caption: _propTypes.default.node,
167
+ margin: _propTypes.default.any,
264
168
 
265
169
  /**
266
170
  * When set to `true` (default) will apply a slight shadow to the image
@@ -273,12 +177,13 @@ EuiImage.propTypes = {
273
177
  allowFullScreen: _propTypes.default.bool,
274
178
 
275
179
  /**
276
- * Float the image to the left or right. Useful in large text blocks.
180
+ * Changes the color of the icon that floats above the image when it can be clicked to fullscreen.
181
+ * The default value of `light` is fine unless your image has a white background, in which case you should change it to `dark`.
277
182
  */
278
- float: _propTypes.default.oneOf(["left", "right"]),
183
+ fullScreenIconColor: _propTypes.default.oneOf(["light", "dark"]),
279
184
 
280
185
  /**
281
- * Margin around the image.
186
+ * Props to add to the wrapping figure element
282
187
  */
283
- margin: _propTypes.default.oneOf(["s", "m", "l", "xl"])
188
+ wrapperProps: _propTypes.default.any
284
189
  };
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiImageStyles = void 0;
7
+
8
+ var _react = require("@emotion/react");
9
+
10
+ var _global_styling = require("../../global_styling");
11
+
12
+ var _mixins = require("../../themes/amsterdam/global_styling/mixins");
13
+
14
+ /*
15
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
16
+ * or more contributor license agreements. Licensed under the Elastic License
17
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
18
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
19
+ * Side Public License, v 1.
20
+ */
21
+ var euiImageStyles = function euiImageStyles(euiThemeContext) {
22
+ return {
23
+ euiImage: /*#__PURE__*/(0, _react.css)("vertical-align:middle;", (0, _global_styling.logicalCSS)('max-width', '100%'), ";&,[class*='euiText'] &{", (0, _global_styling.logicalCSS)('margin-bottom', 0), ";};label:euiImage;"),
24
+ // Variations
25
+ isFullScreen: /*#__PURE__*/(0, _react.css)("position:relative;", (0, _global_styling.logicalCSS)('max-height', '80vh'), ";", (0, _global_styling.logicalCSS)('max-width', '80vw'), ";;label:isFullScreen;"),
26
+ hasShadow: /*#__PURE__*/(0, _react.css)((0, _mixins.euiShadow)(euiThemeContext, 's'), ";;label:hasShadow;"),
27
+ // Sizes
28
+ // These sizes are mostly suggestions. Don't look too hard for meaning in their values.
29
+ // Size is applied to the image, rather than the wrapper figure to work better with floats
30
+ s: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('width', '100px'), ";;label:s;"),
31
+ m: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('width', '200px'), ";;label:m;"),
32
+ l: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('width', '360px'), ";;label:l;"),
33
+ xl: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('width', '600px'), ";;label:xl;"),
34
+ original: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('width', 'auto'), ";;label:original;"),
35
+ fullWidth: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('width', '100%'), ";;label:fullWidth;"),
36
+ customSize: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('width', 'auto'), ";;label:customSize;")
37
+ };
38
+ };
39
+
40
+ exports.euiImageStyles = euiImageStyles;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.EuiImageButton = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _services = require("../../services");
13
+
14
+ var _i18n = require("../i18n");
15
+
16
+ var _icon = require("../icon");
17
+
18
+ var _accessibility = require("../accessibility");
19
+
20
+ var _image_button = require("./image_button.styles");
21
+
22
+ var _react2 = require("@emotion/react");
23
+
24
+ var _excluded = ["hasAlt", "hasShadow", "children", "onClick", "onKeyDown", "isFullScreen", "isFullWidth", "fullScreenIconColor"];
25
+
26
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
+
28
+ function _extends() { _extends = Object.assign || 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); }
29
+
30
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
31
+
32
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
33
+
34
+ var fullScreenIconColorMap = {
35
+ light: 'ghost',
36
+ dark: 'default'
37
+ };
38
+
39
+ var EuiImageButton = function EuiImageButton(_ref) {
40
+ var hasAlt = _ref.hasAlt,
41
+ hasShadow = _ref.hasShadow,
42
+ children = _ref.children,
43
+ onClick = _ref.onClick,
44
+ onKeyDown = _ref.onKeyDown,
45
+ isFullScreen = _ref.isFullScreen,
46
+ isFullWidth = _ref.isFullWidth,
47
+ _ref$fullScreenIconCo = _ref.fullScreenIconColor,
48
+ fullScreenIconColor = _ref$fullScreenIconCo === void 0 ? 'light' : _ref$fullScreenIconCo,
49
+ rest = _objectWithoutProperties(_ref, _excluded);
50
+
51
+ var euiTheme = (0, _services.useEuiTheme)();
52
+ var buttonStyles = (0, _image_button.euiImageButtonStyles)(euiTheme);
53
+ var cssButtonStyles = [buttonStyles.euiImageButton, hasShadow ? buttonStyles.hasShadowHover : buttonStyles.shadowHover, !isFullScreen && isFullWidth && buttonStyles.fullWidth];
54
+ var iconStyles = (0, _image_button.euiImageButtonIconStyles)(euiTheme);
55
+ var cssIconStyles = [iconStyles.euiImageButton__icon, iconStyles.openFullScreen];
56
+ var openFullScreenInstructions = (0, _i18n.useEuiI18n)('euiImageButton.openFullScreen', 'Click to open this image in fullscreen mode');
57
+ var closeFullScreenInstructions = (0, _i18n.useEuiI18n)('euiImageButton.closeFullScreen', 'Press Escape or click to close image fullscreen mode');
58
+ var iconColor = fullScreenIconColorMap[fullScreenIconColor];
59
+ return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("button", _extends({
60
+ type: "button",
61
+ css: cssButtonStyles,
62
+ onClick: onClick,
63
+ onKeyDown: onKeyDown
64
+ }, rest), isFullScreen && // In fullscreen mode, instructions should come first to allow screen reader
65
+ // users to quickly exit vs. potentially reading out long/unskippable alt text
66
+ (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("p", null, closeFullScreenInstructions, hasAlt && ' — ')), children, !isFullScreen && (0, _react2.jsx)("div", {
67
+ css: cssIconStyles
68
+ }, (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("p", null, hasAlt && ' — ', openFullScreenInstructions)), (0, _react2.jsx)(_icon.EuiIcon, {
69
+ type: "fullScreen",
70
+ color: iconColor
71
+ }))));
72
+ };
73
+
74
+ exports.EuiImageButton = EuiImageButton;
75
+ EuiImageButton.propTypes = {
76
+ hasAlt: _propTypes.default.bool.isRequired,
77
+ onClick: _propTypes.default.func.isRequired,
78
+ onKeyDown: _propTypes.default.func,
79
+ isFullWidth: _propTypes.default.bool.isRequired,
80
+ isFullScreen: _propTypes.default.bool
81
+ };
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiImageButtonStyles = exports.euiImageButtonIconStyles = void 0;
7
+
8
+ var _react = require("@emotion/react");
9
+
10
+ var _global_styling = require("../../global_styling");
11
+
12
+ var _mixins = require("../../themes/amsterdam/global_styling/mixins");
13
+
14
+ 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)."; }
15
+
16
+ var euiImageButtonStyles = function euiImageButtonStyles(euiThemeContext) {
17
+ var euiTheme = euiThemeContext.euiTheme;
18
+ return {
19
+ // Base
20
+ euiImageButton: /*#__PURE__*/(0, _react.css)("position:relative;cursor:pointer;text-align:match-parent;line-height:0;&::before{opacity:0;content:'';pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0;", _global_styling.euiCanAnimate, "{transition:opacity ", euiTheme.animation.fast, " ", euiTheme.animation.resistance, ";}}&:hover,&:focus{&::before{opacity:1;}[class*='euiImageButton__icon']{opacity:1;}}&:focus{", (0, _global_styling.euiFocusRing)(euiTheme, 'outset'), ";};label:euiImageButton;"),
21
+ fullWidth: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('width', '100%'), ";;label:fullWidth;"),
22
+ shadowHover: /*#__PURE__*/(0, _react.css)("&::before{", (0, _mixins.euiShadow)(euiThemeContext, 's'), ";};label:shadowHover;"),
23
+ hasShadowHover: /*#__PURE__*/(0, _react.css)("&::before{", (0, _mixins.euiShadow)(euiThemeContext, 'm'), ";};label:hasShadowHover;")
24
+ };
25
+ };
26
+
27
+ exports.euiImageButtonStyles = euiImageButtonStyles;
28
+
29
+ var _ref = process.env.NODE_ENV === "production" ? {
30
+ name: "xj4dsa-closeFullScreen",
31
+ styles: "pointer-events:none;label:closeFullScreen;"
32
+ } : {
33
+ name: "xj4dsa-closeFullScreen",
34
+ styles: "pointer-events:none;label:closeFullScreen;",
35
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
36
+ };
37
+
38
+ var euiImageButtonIconStyles = function euiImageButtonIconStyles(_ref2) {
39
+ var euiTheme = _ref2.euiTheme;
40
+ return {
41
+ // Base
42
+ euiImageButton__icon: /*#__PURE__*/(0, _react.css)("position:absolute;", (0, _global_styling.logicalCSS)('top', euiTheme.size.base), ";", (0, _global_styling.logicalCSS)('right', euiTheme.size.base), ";;label:euiImageButton__icon;"),
43
+ openFullScreen: /*#__PURE__*/(0, _react.css)("opacity:0;cursor:pointer;", _global_styling.euiCanAnimate, "{transition:opacity ", euiTheme.animation.slow, " ", euiTheme.animation.resistance, ";};label:openFullScreen;"),
44
+ closeFullScreen: _ref
45
+ };
46
+ };
47
+
48
+ exports.euiImageButtonIconStyles = euiImageButtonIconStyles;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.EuiImageCaption = void 0;
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+
14
+ var _services = require("../../services");
15
+
16
+ var _image_caption = require("./image_caption.styles");
17
+
18
+ var _react2 = require("@emotion/react");
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ 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); }
23
+
24
+ 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; }
25
+
26
+ /*
27
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
28
+ * or more contributor license agreements. Licensed under the Elastic License
29
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
30
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
31
+ * Side Public License, v 1.
32
+ */
33
+ var EuiImageCaption = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
34
+ var caption = _ref.caption,
35
+ _ref$isOnOverlayMask = _ref.isOnOverlayMask,
36
+ isOnOverlayMask = _ref$isOnOverlayMask === void 0 ? false : _ref$isOnOverlayMask;
37
+ var euiTheme = (0, _services.useEuiTheme)();
38
+ var styles = (0, _image_caption.euiImageCaptionStyles)(euiTheme);
39
+ var cssStyles = [styles.euiImageCaption, isOnOverlayMask && styles.isOnOverlayMask];
40
+ return (0, _react2.jsx)("figcaption", {
41
+ ref: ref,
42
+ css: cssStyles
43
+ }, caption);
44
+ });
45
+ exports.EuiImageCaption = EuiImageCaption;
46
+ EuiImageCaption.propTypes = {
47
+ isOnOverlayMask: _propTypes.default.bool
48
+ };
49
+ EuiImageCaption.displayName = 'EuiImageCaption';
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiImageCaptionStyles = void 0;
7
+
8
+ var _react = require("@emotion/react");
9
+
10
+ var _global_styling = require("../../global_styling");
11
+
12
+ var _services = require("../../services");
13
+
14
+ /*
15
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
16
+ * or more contributor license agreements. Licensed under the Elastic License
17
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
18
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
19
+ * Side Public License, v 1.
20
+ */
21
+ var euiImageCaptionStyles = function euiImageCaptionStyles(euiThemeContext) {
22
+ var euiTheme = euiThemeContext.euiTheme;
23
+ return {
24
+ // Base
25
+ euiImageCaption: /*#__PURE__*/(0, _react.css)((0, _global_styling.euiFontSize)(euiThemeContext, 's'), ";", (0, _global_styling.logicalCSS)('margin-top', euiTheme.size.xs), ";;label:euiImageCaption;"),
26
+ isOnOverlayMask: /*#__PURE__*/(0, _react.css)("color:", euiTheme.colors.ghost, ";text-shadow:0 1px 2px ", (0, _services.transparentize)(euiTheme.colors.ink, 0.6), ";[class*='euiLink']{color:", euiTheme.colors.ghost, ";};label:isOnOverlayMask;")
27
+ };
28
+ };
29
+
30
+ exports.euiImageCaptionStyles = euiImageCaptionStyles;