@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
@@ -7,7 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.SIZES = exports.EuiImage = void 0;
10
+ exports.EuiImage = void 0;
11
11
 
12
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
13
 
@@ -23,21 +23,19 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
23
23
 
24
24
  var _classnames = _interopRequireDefault(require("classnames"));
25
25
 
26
- var _overlay_mask = require("../overlay_mask");
27
-
28
- var _icon = require("../icon");
26
+ var _services = require("../../services");
29
27
 
30
- var _i18n = require("../i18n");
28
+ var _image_wrapper = require("./image_wrapper");
31
29
 
32
- var _focus_trap = require("../focus_trap");
30
+ var _image = require("./image.styles");
33
31
 
34
- var _services = require("../../services");
32
+ var _image_fullscreen_wrapper = require("./image_fullscreen_wrapper");
35
33
 
36
- var _inner_text = require("../inner_text");
34
+ var _image_types = require("./image_types");
37
35
 
38
36
  var _react2 = require("@emotion/react");
39
37
 
40
- var _excluded = ["className", "url", "src", "size", "caption", "hasShadow", "allowFullScreen", "fullScreenIconColor", "alt", "style", "float", "margin"];
38
+ var _excluded = ["className", "alt", "url", "src", "size", "hasShadow", "style", "wrapperProps", "fullScreenIconColor", "allowFullScreen", "caption", "float", "margin"];
41
39
 
42
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); }
43
41
 
@@ -47,171 +45,69 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
47
45
 
48
46
  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; }
49
47
 
50
- var sizeToClassNameMap = {
51
- s: 'euiImage--small',
52
- m: 'euiImage--medium',
53
- l: 'euiImage--large',
54
- xl: 'euiImage--xlarge',
55
- fullWidth: 'euiImage--fullWidth',
56
- original: 'euiImage--original'
57
- };
58
- var marginToClassNameMap = {
59
- s: 'euiImage--marginSmall',
60
- m: 'euiImage--marginMedium',
61
- l: 'euiImage--marginLarge',
62
- xl: 'euiImage--marginXlarge'
63
- };
64
- var floatToClassNameMap = {
65
- left: 'euiImage--floatLeft',
66
- right: 'euiImage--floatRight'
67
- };
68
- var SIZES = Object.keys(sizeToClassNameMap);
69
- exports.SIZES = SIZES;
70
- var fullScreenIconColorMap = {
71
- light: 'ghost',
72
- dark: 'default'
73
- };
74
-
75
48
  var EuiImage = function EuiImage(_ref) {
76
49
  var className = _ref.className,
50
+ alt = _ref.alt,
77
51
  url = _ref.url,
78
52
  src = _ref.src,
79
53
  _ref$size = _ref.size,
80
54
  size = _ref$size === void 0 ? 'original' : _ref$size,
81
- caption = _ref.caption,
82
55
  hasShadow = _ref.hasShadow,
83
- allowFullScreen = _ref.allowFullScreen,
84
- _ref$fullScreenIconCo = _ref.fullScreenIconColor,
85
- fullScreenIconColor = _ref$fullScreenIconCo === void 0 ? 'light' : _ref$fullScreenIconCo,
86
- alt = _ref.alt,
87
56
  style = _ref.style,
57
+ wrapperProps = _ref.wrapperProps,
58
+ fullScreenIconColor = _ref.fullScreenIconColor,
59
+ allowFullScreen = _ref.allowFullScreen,
60
+ caption = _ref.caption,
88
61
  float = _ref.float,
89
62
  margin = _ref.margin,
90
63
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
91
64
 
92
65
  var _useState = (0, _react.useState)(false),
93
66
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
94
- isFullScreenActive = _useState2[0],
95
- setIsFullScreenActive = _useState2[1];
96
-
97
- var onKeyDown = function onKeyDown(event) {
98
- if (event.key === _services.keys.ESCAPE) {
99
- event.preventDefault();
100
- event.stopPropagation();
101
- closeFullScreen();
102
- }
103
- };
104
-
105
- var closeFullScreen = function closeFullScreen() {
106
- setIsFullScreenActive(false);
67
+ isFullScreen = _useState2[0],
68
+ setIsFullScreen = _useState2[1];
69
+
70
+ var isNamedSize = typeof size === 'string' && _image_types.SIZES.includes(size);
71
+
72
+ var classes = (0, _classnames.default)('euiImage', className);
73
+ var euiTheme = (0, _services.useEuiTheme)();
74
+ var styles = (0, _image.euiImageStyles)(euiTheme);
75
+ var cssStyles = [styles.euiImage, isNamedSize && styles[size], !isNamedSize && styles.customSize, hasShadow && styles.hasShadow];
76
+ var cssIsFullScreenStyles = [styles.euiImage, styles.isFullScreen];
77
+ var isCustomSize = !isNamedSize && size !== 'original';
78
+ var customSize = typeof size === 'string' ? size : "".concat(size, "px");
79
+ var imageStyleWithCustomSize = isCustomSize ? _objectSpread(_objectSpread({}, style), {}, {
80
+ maxWidth: customSize,
81
+ maxHeight: customSize
82
+ }) : style;
83
+ var isFullWidth = size === 'fullWidth';
84
+ var commonWrapperProps = {
85
+ hasShadow: hasShadow,
86
+ wrapperProps: wrapperProps,
87
+ setIsFullScreen: setIsFullScreen,
88
+ fullScreenIconColor: fullScreenIconColor,
89
+ isFullWidth: isFullWidth,
90
+ allowFullScreen: allowFullScreen,
91
+ alt: alt,
92
+ caption: caption,
93
+ float: float,
94
+ margin: margin
107
95
  };
108
96
 
109
- var openFullScreen = function openFullScreen() {
110
- setIsFullScreenActive(true);
111
- };
97
+ var commonImgProps = _objectSpread({
98
+ className: classes,
99
+ src: src || url
100
+ }, rest);
112
101
 
113
- var customStyle = _objectSpread({}, style);
114
-
115
- var classes = (0, _classnames.default)('euiImage', {
116
- 'euiImage--hasShadow': hasShadow,
117
- 'euiImage--allowFullScreen': allowFullScreen
118
- }, margin ? marginToClassNameMap[margin] : null, float ? floatToClassNameMap[float] : null, className);
119
-
120
- if (typeof size === 'string' && SIZES.includes(size)) {
121
- classes = "".concat(classes, " ").concat(sizeToClassNameMap[size]);
122
- } else {
123
- classes = "".concat(classes);
124
- customStyle.maxWidth = size;
125
- customStyle.maxHeight = size; // Set width back to auto to ensure aspect ratio is kept
126
-
127
- customStyle.width = 'auto';
128
- }
129
-
130
- var allowFullScreenButtonClasses = 'euiImage__button'; // when the button is not custom we need it to go full width
131
- // to match the parent '.euiImage' width except when the size is original
132
-
133
- if (typeof size === 'string' && size !== 'original' && SIZES.includes(size)) {
134
- allowFullScreenButtonClasses = "".concat(allowFullScreenButtonClasses, " euiImage__button--fullWidth");
135
- } else {
136
- allowFullScreenButtonClasses = "".concat(allowFullScreenButtonClasses);
137
- }
138
-
139
- var _useInnerText = (0, _inner_text.useInnerText)(),
140
- _useInnerText2 = (0, _slicedToArray2.default)(_useInnerText, 2),
141
- optionalCaptionRef = _useInnerText2[0],
142
- optionalCaptionText = _useInnerText2[1];
143
-
144
- var optionalCaption;
145
-
146
- if (caption) {
147
- optionalCaption = (0, _react2.jsx)("figcaption", {
148
- ref: optionalCaptionRef,
149
- className: "euiImage__caption"
150
- }, caption);
151
- }
152
-
153
- var allowFullScreenIcon = (0, _react2.jsx)(_icon.EuiIcon, {
154
- type: "fullScreen",
155
- color: fullScreenIconColorMap[fullScreenIconColor],
156
- className: "euiImage__icon"
157
- });
158
- var fullScreenDisplay = (0, _react2.jsx)(_overlay_mask.EuiOverlayMask, {
159
- "data-test-subj": "fullScreenOverlayMask",
160
- onClick: closeFullScreen
161
- }, (0, _react2.jsx)(_focus_trap.EuiFocusTrap, {
162
- clickOutsideDisables: true
163
- }, (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("figure", {
164
- className: "euiImage euiImage-isFullScreen",
165
- "aria-label": optionalCaptionText
166
- }, (0, _react2.jsx)("button", {
167
- type: "button",
168
- "aria-label": (0, _i18n.useEuiI18n)('euiImage.closeImage', 'Close fullscreen {alt} image', {
169
- alt: alt
170
- }),
171
- className: "euiImage__button",
172
- "data-test-subj": "deactivateFullScreenButton",
173
- onClick: closeFullScreen,
174
- onKeyDown: onKeyDown
175
- }, (0, _react2.jsx)("img", (0, _extends2.default)({
176
- src: src || url,
102
+ return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_image_wrapper.EuiImageWrapper, commonWrapperProps, (0, _react2.jsx)("img", (0, _extends2.default)({
103
+ alt: alt,
104
+ css: cssStyles,
105
+ style: imageStyleWithCustomSize
106
+ }, commonImgProps))), allowFullScreen && isFullScreen && (0, _react2.jsx)(_image_fullscreen_wrapper.EuiImageFullScreenWrapper, commonWrapperProps, (0, _react2.jsx)("img", (0, _extends2.default)({
177
107
  alt: alt,
178
- className: "euiImage-isFullScreen__img"
179
- }, rest))), optionalCaption), (0, _react2.jsx)(_icon.EuiIcon, {
180
- type: "cross",
181
- color: "default",
182
- className: "euiImage-isFullScreenCloseIcon"
183
- }))));
184
- var fullscreenLabel = (0, _i18n.useEuiI18n)('euiImage.openImage', 'Open fullscreen {alt} image', {
185
- alt: alt
186
- });
187
-
188
- if (allowFullScreen) {
189
- return (0, _react2.jsx)("figure", {
190
- className: classes,
191
- "aria-label": optionalCaptionText
192
- }, (0, _react2.jsx)("button", {
193
- type: "button",
194
- "aria-label": fullscreenLabel,
195
- className: allowFullScreenButtonClasses,
196
- "data-test-subj": "activateFullScreenButton",
197
- onClick: openFullScreen
198
- }, (0, _react2.jsx)("img", (0, _extends2.default)({
199
- style: customStyle,
200
- src: src || url,
201
- alt: alt,
202
- className: "euiImage__img"
203
- }, rest)), allowFullScreenIcon), isFullScreenActive && fullScreenDisplay, optionalCaption);
204
- } else {
205
- return (0, _react2.jsx)("figure", {
206
- className: classes,
207
- "aria-label": optionalCaptionText
208
- }, (0, _react2.jsx)("img", (0, _extends2.default)({
209
- style: customStyle,
210
- src: src || url,
211
- className: "euiImage__img",
212
- alt: alt
213
- }, rest)), optionalCaption);
214
- }
108
+ css: cssIsFullScreenStyles,
109
+ style: style
110
+ }, commonImgProps))));
215
111
  };
216
112
 
217
113
  exports.EuiImage = EuiImage;
@@ -227,28 +123,36 @@ EuiImage.propTypes = {
227
123
  url: _propTypes.default.string,
228
124
 
229
125
  /**
230
- * Separate from the caption is a title on the alt tag itself.
231
- * This one is required for accessibility.
126
+ * Alt text should describe the image to aid screen reader users. See
127
+ * https://webaim.org/techniques/alttext/ for a guide on writing
128
+ * effective alt text.
129
+ *
130
+ * If no meaningful description exists, or if the image is adequately
131
+ * described by the surrounding text, pass an empty string.
232
132
  */
233
133
  alt: _propTypes.default.string.isRequired,
234
134
 
135
+ /**
136
+ * Provides a visible caption to the image
137
+ */
138
+ caption: _propTypes.default.node,
139
+
235
140
  /**
236
141
  * Accepts `s` / `m` / `l` / `xl` / `original` / `fullWidth` / or a CSS size of `number` or `string`.
237
142
  * `fullWidth` will set the figure to stretch to 100% of its container.
238
143
  * `string` and `number` types will max both the width or height, whichever is greater.
239
144
  */
240
- size: _propTypes.default.oneOfType([_propTypes.default.oneOf(["s", "m", "l", "xl", "fullWidth", "original"]).isRequired, _propTypes.default.number.isRequired, _propTypes.default.string.isRequired]),
145
+ size: _propTypes.default.oneOfType([_propTypes.default.any.isRequired, _propTypes.default.number.isRequired, _propTypes.default.string.isRequired]),
241
146
 
242
147
  /**
243
- * Changes the color of the icon that floats above the image when it can be clicked to fullscreen.
244
- * The default value of `light` is fine unless your image has a white background, in which case you should change it to `dark`.
148
+ * Float the image to the left or right. Useful in large text blocks.
245
149
  */
246
- fullScreenIconColor: _propTypes.default.oneOf(["light", "dark"]),
150
+ float: _propTypes.default.any,
247
151
 
248
152
  /**
249
- * Provides the visible caption to the image
153
+ * Margin around the image.
250
154
  */
251
- caption: _propTypes.default.node,
155
+ margin: _propTypes.default.any,
252
156
 
253
157
  /**
254
158
  * When set to `true` (default) will apply a slight shadow to the image
@@ -261,12 +165,13 @@ EuiImage.propTypes = {
261
165
  allowFullScreen: _propTypes.default.bool,
262
166
 
263
167
  /**
264
- * Float the image to the left or right. Useful in large text blocks.
168
+ * Changes the color of the icon that floats above the image when it can be clicked to fullscreen.
169
+ * The default value of `light` is fine unless your image has a white background, in which case you should change it to `dark`.
265
170
  */
266
- float: _propTypes.default.oneOf(["left", "right"]),
171
+ fullScreenIconColor: _propTypes.default.oneOf(["light", "dark"]),
267
172
 
268
173
  /**
269
- * Margin around the image.
174
+ * Props to add to the wrapping figure element
270
175
  */
271
- margin: _propTypes.default.oneOf(["s", "m", "l", "xl"])
176
+ wrapperProps: _propTypes.default.any
272
177
  };
@@ -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,77 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.EuiImageButton = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+
14
+ var _react = _interopRequireDefault(require("react"));
15
+
16
+ var _propTypes = _interopRequireDefault(require("prop-types"));
17
+
18
+ var _services = require("../../services");
19
+
20
+ var _i18n = require("../i18n");
21
+
22
+ var _icon = require("../icon");
23
+
24
+ var _accessibility = require("../accessibility");
25
+
26
+ var _image_button = require("./image_button.styles");
27
+
28
+ var _react2 = require("@emotion/react");
29
+
30
+ var _excluded = ["hasAlt", "hasShadow", "children", "onClick", "onKeyDown", "isFullScreen", "isFullWidth", "fullScreenIconColor"];
31
+ var fullScreenIconColorMap = {
32
+ light: 'ghost',
33
+ dark: 'default'
34
+ };
35
+
36
+ var EuiImageButton = function EuiImageButton(_ref) {
37
+ var hasAlt = _ref.hasAlt,
38
+ hasShadow = _ref.hasShadow,
39
+ children = _ref.children,
40
+ onClick = _ref.onClick,
41
+ onKeyDown = _ref.onKeyDown,
42
+ isFullScreen = _ref.isFullScreen,
43
+ isFullWidth = _ref.isFullWidth,
44
+ _ref$fullScreenIconCo = _ref.fullScreenIconColor,
45
+ fullScreenIconColor = _ref$fullScreenIconCo === void 0 ? 'light' : _ref$fullScreenIconCo,
46
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
47
+ var euiTheme = (0, _services.useEuiTheme)();
48
+ var buttonStyles = (0, _image_button.euiImageButtonStyles)(euiTheme);
49
+ var cssButtonStyles = [buttonStyles.euiImageButton, hasShadow ? buttonStyles.hasShadowHover : buttonStyles.shadowHover, !isFullScreen && isFullWidth && buttonStyles.fullWidth];
50
+ var iconStyles = (0, _image_button.euiImageButtonIconStyles)(euiTheme);
51
+ var cssIconStyles = [iconStyles.euiImageButton__icon, iconStyles.openFullScreen];
52
+ var openFullScreenInstructions = (0, _i18n.useEuiI18n)('euiImageButton.openFullScreen', 'Click to open this image in fullscreen mode');
53
+ var closeFullScreenInstructions = (0, _i18n.useEuiI18n)('euiImageButton.closeFullScreen', 'Press Escape or click to close image fullscreen mode');
54
+ var iconColor = fullScreenIconColorMap[fullScreenIconColor];
55
+ return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("button", (0, _extends2.default)({
56
+ type: "button",
57
+ css: cssButtonStyles,
58
+ onClick: onClick,
59
+ onKeyDown: onKeyDown
60
+ }, rest), isFullScreen && // In fullscreen mode, instructions should come first to allow screen reader
61
+ // users to quickly exit vs. potentially reading out long/unskippable alt text
62
+ (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("p", null, closeFullScreenInstructions, hasAlt && ' — ')), children, !isFullScreen && (0, _react2.jsx)("div", {
63
+ css: cssIconStyles
64
+ }, (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("p", null, hasAlt && ' — ', openFullScreenInstructions)), (0, _react2.jsx)(_icon.EuiIcon, {
65
+ type: "fullScreen",
66
+ color: iconColor
67
+ }))));
68
+ };
69
+
70
+ exports.EuiImageButton = EuiImageButton;
71
+ EuiImageButton.propTypes = {
72
+ hasAlt: _propTypes.default.bool.isRequired,
73
+ onClick: _propTypes.default.func.isRequired,
74
+ onKeyDown: _propTypes.default.func,
75
+ isFullWidth: _propTypes.default.bool.isRequired,
76
+ isFullScreen: _propTypes.default.bool
77
+ };
@@ -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
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.EuiImageCaption = void 0;
11
+
12
+ var _react = _interopRequireWildcard(require("react"));
13
+
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
15
+
16
+ var _services = require("../../services");
17
+
18
+ var _image_caption = require("./image_caption.styles");
19
+
20
+ var _react2 = require("@emotion/react");
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;