@elastic/eui 93.2.0 → 93.4.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 (418) hide show
  1. package/dist/eui_charts_theme.d.ts +9 -0
  2. package/dist/eui_charts_theme.js +56 -14
  3. package/dist/eui_charts_theme.js.map +1 -1
  4. package/dist/eui_theme_dark.css +3 -0
  5. package/dist/eui_theme_dark.min.css +1 -1
  6. package/dist/eui_theme_light.css +3 -0
  7. package/dist/eui_theme_light.min.css +1 -1
  8. package/es/components/breadcrumbs/_breadcrumb_content.js +362 -0
  9. package/es/components/breadcrumbs/_breadcrumb_content.styles.js +48 -0
  10. package/es/components/breadcrumbs/breadcrumb.js +10 -324
  11. package/es/components/breadcrumbs/breadcrumb.styles.js +5 -27
  12. package/es/components/breadcrumbs/breadcrumbs.js +8 -6
  13. package/es/components/breadcrumbs/types.js +1 -0
  14. package/es/components/button/button_display/_button_display.js +2 -3
  15. package/es/components/button/button_empty/button_empty.js +2 -3
  16. package/es/components/button/button_group/button_group.js +19 -7
  17. package/es/components/button/button_group/button_group.styles.js +11 -14
  18. package/es/components/button/button_group/button_group_button.js +59 -5
  19. package/es/components/button/button_group/button_group_button.styles.js +39 -3
  20. package/es/components/button/button_icon/button_icon.js +4 -5
  21. package/es/components/button/button_icon/button_icon.styles.js +11 -3
  22. package/es/components/datagrid/body/cell/data_grid_cell.js +102 -59
  23. package/es/components/datagrid/body/cell/data_grid_cell_actions.js +24 -18
  24. package/es/components/datagrid/body/cell/data_grid_cell_popover.js +64 -56
  25. package/es/components/datagrid/body/cell/data_grid_cell_wrapper.js +34 -31
  26. package/es/components/datagrid/body/cell/index.js +1 -1
  27. package/es/components/datagrid/body/data_grid_body.js +14 -0
  28. package/es/components/datagrid/body/data_grid_body_custom.js +54 -35
  29. package/es/components/datagrid/body/data_grid_body_virtualized.js +87 -56
  30. package/es/components/datagrid/body/data_grid_row_manager.js +7 -5
  31. package/es/components/datagrid/body/footer/use_data_grid_footer.js +1 -2
  32. package/es/components/datagrid/body/header/data_grid_control_header_cell.js +5 -4
  33. package/es/components/datagrid/body/header/data_grid_header_cell.js +73 -53
  34. package/es/components/datagrid/body/header/data_grid_header_row.js +15 -551
  35. package/es/components/datagrid/body/header/use_data_grid_header.js +7 -6
  36. package/es/components/datagrid/controls/column_selector.js +126 -123
  37. package/es/components/datagrid/controls/column_sorting.js +605 -103
  38. package/es/components/datagrid/controls/column_sorting_draggable.js +24 -22
  39. package/es/components/datagrid/controls/display_selector.js +109 -107
  40. package/es/components/datagrid/data_grid.a11y.js +13 -12
  41. package/es/components/datagrid/data_grid.js +47 -22
  42. package/es/components/datagrid/utils/col_widths.js +12 -8
  43. package/es/components/datagrid/utils/focus.js +10 -8
  44. package/es/components/datagrid/utils/grid_height_width.js +31 -30
  45. package/es/components/datagrid/utils/ref.js +1 -1
  46. package/es/components/datagrid/utils/row_heights.js +2 -2
  47. package/es/components/datagrid/utils/sorting.js +29 -27
  48. package/es/components/date_picker/super_date_picker/super_date_picker.js +9 -0
  49. package/es/components/date_picker/super_date_picker/super_update_button.js +57 -29
  50. package/es/components/facet/facet_button.styles.js +1 -2
  51. package/es/components/flex/flex_grid.js +22 -8
  52. package/es/components/flex/flex_grid.styles.js +13 -6
  53. package/es/components/flex/flex_group.js +10 -11
  54. package/es/components/flex/flex_item.js +9 -11
  55. package/es/components/flex/flex_item.styles.js +107 -122
  56. package/es/components/flyout/flyout.js +16 -18
  57. package/es/components/header/header_breadcrumbs/header_breadcrumbs.js +7 -7
  58. package/es/components/icon/icon.js +13 -16
  59. package/es/components/icon/icon.styles.js +6 -9
  60. package/es/components/link/external_link_icon.js +11 -8
  61. package/es/components/link/link.js +2 -3
  62. package/es/components/link/link.styles.js +4 -10
  63. package/es/components/modal/confirm_modal.js +2 -1
  64. package/es/components/modal/modal.js +12 -3
  65. package/es/components/observer/resize_observer/resize_observer.js +15 -24
  66. package/es/components/page/page_header/page_header_content.js +4 -2
  67. package/es/components/progress/progress.styles.js +2 -2
  68. package/es/components/skeleton/skeleton_circle.js +2 -3
  69. package/es/components/skeleton/skeleton_rectangle.js +2 -3
  70. package/es/components/skeleton/skeleton_text.js +16 -12
  71. package/es/components/skeleton/skeleton_title.js +2 -3
  72. package/es/components/spacer/spacer.js +2 -3
  73. package/es/components/text/text.js +2 -3
  74. package/es/components/text/text_align.js +1 -2
  75. package/es/components/text/text_align.styles.js +5 -7
  76. package/es/components/text/text_color.js +2 -3
  77. package/es/components/title/title.js +2 -3
  78. package/es/components/title/title.styles.js +0 -7
  79. package/es/components/toast/global_toast_list.js +70 -73
  80. package/es/components/toast/toast.js +27 -42
  81. package/es/components/toast/toast.styles.js +2 -17
  82. package/es/global_styling/mixins/_typography.js +17 -6
  83. package/es/services/color/eui_palettes.js +21 -13
  84. package/es/services/color/index.js +1 -1
  85. package/es/services/hooks/index.js +1 -0
  86. package/es/services/hooks/useDeepEqual.js +23 -0
  87. package/es/services/index.js +1 -1
  88. package/es/services/theme/index.js +1 -1
  89. package/es/services/theme/style_memoization.js +47 -14
  90. package/es/themes/amsterdam/global_styling/mixins/button.js +47 -24
  91. package/eui.d.ts +2862 -2748
  92. package/i18ntokens.json +267 -267
  93. package/lib/components/breadcrumbs/_breadcrumb_content.js +372 -0
  94. package/lib/components/breadcrumbs/_breadcrumb_content.styles.js +55 -0
  95. package/lib/components/breadcrumbs/breadcrumb.js +11 -328
  96. package/lib/components/breadcrumbs/breadcrumb.styles.js +5 -29
  97. package/lib/components/breadcrumbs/breadcrumbs.js +7 -5
  98. package/lib/components/breadcrumbs/types.js +5 -0
  99. package/lib/components/button/button_display/_button_display.js +1 -2
  100. package/lib/components/button/button_empty/button_empty.js +1 -2
  101. package/lib/components/button/button_group/button_group.js +18 -6
  102. package/lib/components/button/button_group/button_group.styles.js +11 -14
  103. package/lib/components/button/button_group/button_group_button.js +59 -5
  104. package/lib/components/button/button_group/button_group_button.styles.js +45 -11
  105. package/lib/components/button/button_icon/button_icon.js +3 -4
  106. package/lib/components/button/button_icon/button_icon.styles.js +10 -2
  107. package/lib/components/datagrid/body/cell/data_grid_cell.js +100 -58
  108. package/lib/components/datagrid/body/cell/data_grid_cell_actions.js +24 -18
  109. package/lib/components/datagrid/body/cell/data_grid_cell_popover.js +63 -55
  110. package/lib/components/datagrid/body/cell/data_grid_cell_wrapper.js +34 -31
  111. package/lib/components/datagrid/body/cell/index.js +2 -2
  112. package/lib/components/datagrid/body/data_grid_body.js +14 -0
  113. package/lib/components/datagrid/body/data_grid_body_custom.js +53 -34
  114. package/lib/components/datagrid/body/data_grid_body_virtualized.js +86 -55
  115. package/lib/components/datagrid/body/data_grid_row_manager.js +6 -4
  116. package/lib/components/datagrid/body/footer/use_data_grid_footer.js +1 -2
  117. package/lib/components/datagrid/body/header/data_grid_control_header_cell.js +8 -4
  118. package/lib/components/datagrid/body/header/data_grid_header_cell.js +72 -52
  119. package/lib/components/datagrid/body/header/data_grid_header_row.js +14 -550
  120. package/lib/components/datagrid/body/header/use_data_grid_header.js +7 -6
  121. package/lib/components/datagrid/controls/column_selector.js +126 -123
  122. package/lib/components/datagrid/controls/column_sorting.js +615 -110
  123. package/lib/components/datagrid/controls/column_sorting_draggable.js +27 -22
  124. package/lib/components/datagrid/controls/display_selector.js +109 -107
  125. package/lib/components/datagrid/data_grid.a11y.js +13 -12
  126. package/lib/components/datagrid/data_grid.js +45 -20
  127. package/lib/components/datagrid/utils/col_widths.js +12 -8
  128. package/lib/components/datagrid/utils/focus.js +10 -8
  129. package/lib/components/datagrid/utils/grid_height_width.js +29 -28
  130. package/lib/components/datagrid/utils/ref.js +1 -1
  131. package/lib/components/datagrid/utils/row_heights.js +1 -1
  132. package/lib/components/datagrid/utils/sorting.js +31 -29
  133. package/lib/components/date_picker/super_date_picker/super_date_picker.js +9 -0
  134. package/lib/components/date_picker/super_date_picker/super_update_button.js +57 -29
  135. package/lib/components/facet/facet_button.styles.js +1 -2
  136. package/lib/components/flex/flex_grid.js +23 -7
  137. package/lib/components/flex/flex_grid.styles.js +13 -6
  138. package/lib/components/flex/flex_group.js +10 -10
  139. package/lib/components/flex/flex_item.js +13 -13
  140. package/lib/components/flex/flex_item.styles.js +107 -122
  141. package/lib/components/flyout/flyout.js +16 -18
  142. package/lib/components/header/header_breadcrumbs/header_breadcrumbs.js +7 -7
  143. package/lib/components/icon/icon.js +12 -15
  144. package/lib/components/icon/icon.styles.js +5 -8
  145. package/lib/components/link/external_link_icon.js +10 -7
  146. package/lib/components/link/link.js +1 -2
  147. package/lib/components/link/link.styles.js +6 -14
  148. package/lib/components/modal/confirm_modal.js +2 -1
  149. package/lib/components/modal/modal.js +12 -3
  150. package/lib/components/observer/resize_observer/resize_observer.js +15 -24
  151. package/lib/components/page/page_header/page_header_content.js +4 -2
  152. package/lib/components/progress/progress.styles.js +1 -1
  153. package/lib/components/skeleton/skeleton_circle.js +1 -2
  154. package/lib/components/skeleton/skeleton_rectangle.js +1 -2
  155. package/lib/components/skeleton/skeleton_text.js +18 -11
  156. package/lib/components/skeleton/skeleton_title.js +1 -2
  157. package/lib/components/spacer/spacer.js +1 -2
  158. package/lib/components/text/text.js +1 -2
  159. package/lib/components/text/text_align.js +1 -2
  160. package/lib/components/text/text_align.styles.js +5 -7
  161. package/lib/components/text/text_color.js +1 -2
  162. package/lib/components/title/title.js +1 -2
  163. package/lib/components/title/title.styles.js +2 -10
  164. package/lib/components/toast/global_toast_list.js +68 -71
  165. package/lib/components/toast/toast.js +25 -40
  166. package/lib/components/toast/toast.styles.js +11 -25
  167. package/lib/global_styling/mixins/_typography.js +27 -19
  168. package/lib/services/color/eui_palettes.js +24 -14
  169. package/lib/services/color/index.js +14 -0
  170. package/lib/services/hooks/index.js +11 -0
  171. package/lib/services/hooks/useDeepEqual.js +30 -0
  172. package/lib/services/index.js +15 -1
  173. package/lib/services/theme/index.js +6 -0
  174. package/lib/services/theme/style_memoization.js +49 -16
  175. package/lib/themes/amsterdam/global_styling/mixins/button.js +49 -25
  176. package/optimize/es/components/breadcrumbs/_breadcrumb_content.js +153 -0
  177. package/optimize/es/components/breadcrumbs/_breadcrumb_content.styles.js +48 -0
  178. package/optimize/es/components/breadcrumbs/breadcrumb.js +10 -109
  179. package/optimize/es/components/breadcrumbs/breadcrumb.styles.js +5 -27
  180. package/optimize/es/components/breadcrumbs/breadcrumbs.js +4 -4
  181. package/optimize/es/components/breadcrumbs/types.js +1 -0
  182. package/optimize/es/components/button/button_display/_button_display.js +2 -3
  183. package/optimize/es/components/button/button_empty/button_empty.js +2 -3
  184. package/optimize/es/components/button/button_group/button_group.js +5 -7
  185. package/optimize/es/components/button/button_group/button_group.styles.js +11 -14
  186. package/optimize/es/components/button/button_group/button_group_button.js +36 -4
  187. package/optimize/es/components/button/button_group/button_group_button.styles.js +39 -3
  188. package/optimize/es/components/button/button_icon/button_icon.js +4 -5
  189. package/optimize/es/components/button/button_icon/button_icon.styles.js +8 -3
  190. package/optimize/es/components/datagrid/body/cell/data_grid_cell.js +83 -56
  191. package/optimize/es/components/datagrid/body/cell/data_grid_cell_actions.js +24 -18
  192. package/optimize/es/components/datagrid/body/cell/data_grid_cell_popover.js +64 -56
  193. package/optimize/es/components/datagrid/body/cell/data_grid_cell_wrapper.js +34 -31
  194. package/optimize/es/components/datagrid/body/cell/index.js +1 -1
  195. package/optimize/es/components/datagrid/body/data_grid_body_custom.js +40 -35
  196. package/optimize/es/components/datagrid/body/data_grid_body_virtualized.js +71 -49
  197. package/optimize/es/components/datagrid/body/data_grid_row_manager.js +7 -5
  198. package/optimize/es/components/datagrid/body/footer/use_data_grid_footer.js +1 -2
  199. package/optimize/es/components/datagrid/body/header/data_grid_control_header_cell.js +4 -3
  200. package/optimize/es/components/datagrid/body/header/data_grid_header_cell.js +65 -49
  201. package/optimize/es/components/datagrid/body/header/data_grid_header_row.js +15 -13
  202. package/optimize/es/components/datagrid/body/header/use_data_grid_header.js +7 -6
  203. package/optimize/es/components/datagrid/controls/column_selector.js +126 -123
  204. package/optimize/es/components/datagrid/controls/column_sorting.js +121 -103
  205. package/optimize/es/components/datagrid/controls/column_sorting_draggable.js +24 -22
  206. package/optimize/es/components/datagrid/controls/display_selector.js +109 -107
  207. package/optimize/es/components/datagrid/data_grid.a11y.js +13 -12
  208. package/optimize/es/components/datagrid/data_grid.js +47 -22
  209. package/optimize/es/components/datagrid/utils/col_widths.js +9 -5
  210. package/optimize/es/components/datagrid/utils/focus.js +10 -8
  211. package/optimize/es/components/datagrid/utils/grid_height_width.js +31 -30
  212. package/optimize/es/components/datagrid/utils/ref.js +1 -1
  213. package/optimize/es/components/datagrid/utils/row_heights.js +2 -2
  214. package/optimize/es/components/datagrid/utils/sorting.js +29 -27
  215. package/optimize/es/components/date_picker/super_date_picker/super_update_button.js +49 -29
  216. package/optimize/es/components/facet/facet_button.styles.js +1 -2
  217. package/optimize/es/components/flex/flex_grid.js +19 -8
  218. package/optimize/es/components/flex/flex_grid.styles.js +13 -6
  219. package/optimize/es/components/flex/flex_group.js +9 -10
  220. package/optimize/es/components/flex/flex_item.js +9 -11
  221. package/optimize/es/components/flex/flex_item.styles.js +107 -122
  222. package/optimize/es/components/flyout/flyout.js +16 -18
  223. package/optimize/es/components/header/header_breadcrumbs/header_breadcrumbs.js +3 -5
  224. package/optimize/es/components/icon/icon.js +13 -16
  225. package/optimize/es/components/icon/icon.styles.js +6 -9
  226. package/optimize/es/components/link/external_link_icon.js +11 -8
  227. package/optimize/es/components/link/link.js +2 -3
  228. package/optimize/es/components/link/link.styles.js +4 -10
  229. package/optimize/es/components/modal/confirm_modal.js +2 -1
  230. package/optimize/es/components/modal/modal.js +6 -2
  231. package/optimize/es/components/observer/resize_observer/resize_observer.js +15 -24
  232. package/optimize/es/components/progress/progress.styles.js +2 -2
  233. package/optimize/es/components/skeleton/skeleton_circle.js +2 -3
  234. package/optimize/es/components/skeleton/skeleton_rectangle.js +2 -3
  235. package/optimize/es/components/skeleton/skeleton_text.js +16 -12
  236. package/optimize/es/components/skeleton/skeleton_title.js +2 -3
  237. package/optimize/es/components/spacer/spacer.js +2 -3
  238. package/optimize/es/components/text/text.js +2 -3
  239. package/optimize/es/components/text/text_align.js +1 -2
  240. package/optimize/es/components/text/text_align.styles.js +5 -7
  241. package/optimize/es/components/text/text_color.js +2 -3
  242. package/optimize/es/components/title/title.js +2 -3
  243. package/optimize/es/components/title/title.styles.js +0 -7
  244. package/optimize/es/components/toast/global_toast_list.js +70 -73
  245. package/optimize/es/components/toast/toast.js +27 -42
  246. package/optimize/es/components/toast/toast.styles.js +2 -17
  247. package/optimize/es/global_styling/mixins/_typography.js +14 -6
  248. package/optimize/es/services/color/eui_palettes.js +21 -13
  249. package/optimize/es/services/color/index.js +1 -1
  250. package/optimize/es/services/hooks/index.js +1 -0
  251. package/optimize/es/services/hooks/useDeepEqual.js +23 -0
  252. package/optimize/es/services/index.js +1 -1
  253. package/optimize/es/services/theme/index.js +1 -1
  254. package/optimize/es/services/theme/style_memoization.js +47 -14
  255. package/optimize/es/themes/amsterdam/global_styling/mixins/button.js +47 -24
  256. package/optimize/lib/components/breadcrumbs/_breadcrumb_content.js +163 -0
  257. package/optimize/lib/components/breadcrumbs/_breadcrumb_content.styles.js +55 -0
  258. package/optimize/lib/components/breadcrumbs/breadcrumb.js +10 -112
  259. package/optimize/lib/components/breadcrumbs/breadcrumb.styles.js +5 -29
  260. package/optimize/lib/components/breadcrumbs/breadcrumbs.js +3 -3
  261. package/optimize/lib/components/breadcrumbs/types.js +5 -0
  262. package/optimize/lib/components/button/button_display/_button_display.js +1 -2
  263. package/optimize/lib/components/button/button_empty/button_empty.js +1 -2
  264. package/optimize/lib/components/button/button_group/button_group.js +4 -6
  265. package/optimize/lib/components/button/button_group/button_group.styles.js +11 -14
  266. package/optimize/lib/components/button/button_group/button_group_button.js +37 -5
  267. package/optimize/lib/components/button/button_group/button_group_button.styles.js +45 -11
  268. package/optimize/lib/components/button/button_icon/button_icon.js +3 -4
  269. package/optimize/lib/components/button/button_icon/button_icon.styles.js +8 -2
  270. package/optimize/lib/components/datagrid/body/cell/data_grid_cell.js +81 -55
  271. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_actions.js +24 -18
  272. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_popover.js +63 -55
  273. package/optimize/lib/components/datagrid/body/cell/data_grid_cell_wrapper.js +34 -31
  274. package/optimize/lib/components/datagrid/body/cell/index.js +2 -2
  275. package/optimize/lib/components/datagrid/body/data_grid_body_custom.js +39 -34
  276. package/optimize/lib/components/datagrid/body/data_grid_body_virtualized.js +72 -50
  277. package/optimize/lib/components/datagrid/body/data_grid_row_manager.js +6 -4
  278. package/optimize/lib/components/datagrid/body/footer/use_data_grid_footer.js +1 -2
  279. package/optimize/lib/components/datagrid/body/header/data_grid_control_header_cell.js +8 -4
  280. package/optimize/lib/components/datagrid/body/header/data_grid_header_cell.js +65 -49
  281. package/optimize/lib/components/datagrid/body/header/data_grid_header_row.js +14 -12
  282. package/optimize/lib/components/datagrid/body/header/use_data_grid_header.js +7 -6
  283. package/optimize/lib/components/datagrid/controls/column_selector.js +126 -123
  284. package/optimize/lib/components/datagrid/controls/column_sorting.js +125 -107
  285. package/optimize/lib/components/datagrid/controls/column_sorting_draggable.js +27 -22
  286. package/optimize/lib/components/datagrid/controls/display_selector.js +109 -107
  287. package/optimize/lib/components/datagrid/data_grid.a11y.js +13 -12
  288. package/optimize/lib/components/datagrid/data_grid.js +45 -20
  289. package/optimize/lib/components/datagrid/utils/col_widths.js +9 -5
  290. package/optimize/lib/components/datagrid/utils/focus.js +10 -8
  291. package/optimize/lib/components/datagrid/utils/grid_height_width.js +29 -28
  292. package/optimize/lib/components/datagrid/utils/ref.js +1 -1
  293. package/optimize/lib/components/datagrid/utils/row_heights.js +1 -1
  294. package/optimize/lib/components/datagrid/utils/sorting.js +31 -29
  295. package/optimize/lib/components/date_picker/super_date_picker/super_update_button.js +49 -29
  296. package/optimize/lib/components/facet/facet_button.styles.js +1 -2
  297. package/optimize/lib/components/flex/flex_grid.js +21 -7
  298. package/optimize/lib/components/flex/flex_grid.styles.js +13 -6
  299. package/optimize/lib/components/flex/flex_group.js +9 -9
  300. package/optimize/lib/components/flex/flex_item.js +13 -13
  301. package/optimize/lib/components/flex/flex_item.styles.js +107 -122
  302. package/optimize/lib/components/flyout/flyout.js +16 -18
  303. package/optimize/lib/components/header/header_breadcrumbs/header_breadcrumbs.js +3 -5
  304. package/optimize/lib/components/icon/icon.js +12 -15
  305. package/optimize/lib/components/icon/icon.styles.js +5 -8
  306. package/optimize/lib/components/link/external_link_icon.js +10 -7
  307. package/optimize/lib/components/link/link.js +1 -2
  308. package/optimize/lib/components/link/link.styles.js +6 -14
  309. package/optimize/lib/components/modal/confirm_modal.js +2 -1
  310. package/optimize/lib/components/modal/modal.js +6 -2
  311. package/optimize/lib/components/observer/resize_observer/resize_observer.js +15 -24
  312. package/optimize/lib/components/progress/progress.styles.js +1 -1
  313. package/optimize/lib/components/skeleton/skeleton_circle.js +1 -2
  314. package/optimize/lib/components/skeleton/skeleton_rectangle.js +1 -2
  315. package/optimize/lib/components/skeleton/skeleton_text.js +18 -11
  316. package/optimize/lib/components/skeleton/skeleton_title.js +1 -2
  317. package/optimize/lib/components/spacer/spacer.js +1 -2
  318. package/optimize/lib/components/text/text.js +1 -2
  319. package/optimize/lib/components/text/text_align.js +1 -2
  320. package/optimize/lib/components/text/text_align.styles.js +5 -7
  321. package/optimize/lib/components/text/text_color.js +1 -2
  322. package/optimize/lib/components/title/title.js +1 -2
  323. package/optimize/lib/components/title/title.styles.js +2 -10
  324. package/optimize/lib/components/toast/global_toast_list.js +68 -71
  325. package/optimize/lib/components/toast/toast.js +25 -40
  326. package/optimize/lib/components/toast/toast.styles.js +11 -25
  327. package/optimize/lib/global_styling/mixins/_typography.js +25 -19
  328. package/optimize/lib/services/color/eui_palettes.js +24 -14
  329. package/optimize/lib/services/color/index.js +14 -0
  330. package/optimize/lib/services/hooks/index.js +11 -0
  331. package/optimize/lib/services/hooks/useDeepEqual.js +30 -0
  332. package/optimize/lib/services/index.js +15 -1
  333. package/optimize/lib/services/theme/index.js +6 -0
  334. package/optimize/lib/services/theme/style_memoization.js +49 -16
  335. package/optimize/lib/themes/amsterdam/global_styling/mixins/button.js +49 -26
  336. package/package.json +3 -3
  337. package/src/components/datagrid/_data_grid_data_row.scss +4 -0
  338. package/test-env/components/breadcrumbs/_breadcrumb_content.js +363 -0
  339. package/test-env/components/breadcrumbs/_breadcrumb_content.styles.js +55 -0
  340. package/test-env/components/breadcrumbs/breadcrumb.js +11 -323
  341. package/test-env/components/breadcrumbs/breadcrumb.styles.js +5 -29
  342. package/test-env/components/breadcrumbs/breadcrumbs.js +7 -5
  343. package/test-env/components/breadcrumbs/types.js +5 -0
  344. package/test-env/components/button/button_display/_button_display.js +1 -2
  345. package/test-env/components/button/button_empty/button_empty.js +1 -2
  346. package/test-env/components/button/button_group/button_group.js +18 -6
  347. package/test-env/components/button/button_group/button_group.styles.js +11 -14
  348. package/test-env/components/button/button_group/button_group_button.js +56 -5
  349. package/test-env/components/button/button_group/button_group_button.styles.js +45 -11
  350. package/test-env/components/button/button_icon/button_icon.js +3 -4
  351. package/test-env/components/button/button_icon/button_icon.styles.js +8 -2
  352. package/test-env/components/datagrid/body/cell/data_grid_cell.js +100 -58
  353. package/test-env/components/datagrid/body/cell/data_grid_cell_actions.js +24 -18
  354. package/test-env/components/datagrid/body/cell/data_grid_cell_popover.js +63 -55
  355. package/test-env/components/datagrid/body/cell/data_grid_cell_wrapper.js +34 -31
  356. package/test-env/components/datagrid/body/cell/index.js +2 -2
  357. package/test-env/components/datagrid/body/data_grid_body.js +14 -0
  358. package/test-env/components/datagrid/body/data_grid_body_custom.js +53 -34
  359. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +86 -55
  360. package/test-env/components/datagrid/body/data_grid_row_manager.js +6 -4
  361. package/test-env/components/datagrid/body/footer/use_data_grid_footer.js +1 -2
  362. package/test-env/components/datagrid/body/header/data_grid_control_header_cell.js +8 -4
  363. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +72 -52
  364. package/test-env/components/datagrid/body/header/data_grid_header_row.js +14 -550
  365. package/test-env/components/datagrid/body/header/use_data_grid_header.js +7 -6
  366. package/test-env/components/datagrid/controls/column_selector.js +126 -123
  367. package/test-env/components/datagrid/controls/column_sorting.js +607 -106
  368. package/test-env/components/datagrid/controls/column_sorting_draggable.js +27 -22
  369. package/test-env/components/datagrid/controls/display_selector.js +109 -107
  370. package/test-env/components/datagrid/data_grid.a11y.js +13 -12
  371. package/test-env/components/datagrid/data_grid.js +45 -20
  372. package/test-env/components/datagrid/utils/col_widths.js +9 -5
  373. package/test-env/components/datagrid/utils/focus.js +10 -8
  374. package/test-env/components/datagrid/utils/grid_height_width.js +29 -28
  375. package/test-env/components/datagrid/utils/ref.js +1 -1
  376. package/test-env/components/datagrid/utils/row_heights.js +1 -1
  377. package/test-env/components/datagrid/utils/sorting.js +31 -29
  378. package/test-env/components/date_picker/super_date_picker/super_date_picker.js +9 -0
  379. package/test-env/components/date_picker/super_date_picker/super_update_button.js +57 -29
  380. package/test-env/components/facet/facet_button.styles.js +1 -2
  381. package/test-env/components/flex/flex_grid.js +21 -7
  382. package/test-env/components/flex/flex_grid.styles.js +13 -6
  383. package/test-env/components/flex/flex_group.js +10 -10
  384. package/test-env/components/flex/flex_item.js +13 -13
  385. package/test-env/components/flex/flex_item.styles.js +107 -122
  386. package/test-env/components/header/header_breadcrumbs/header_breadcrumbs.js +7 -7
  387. package/test-env/components/icon/icon.styles.js +5 -8
  388. package/test-env/components/link/external_link_icon.js +10 -7
  389. package/test-env/components/link/link.js +1 -2
  390. package/test-env/components/link/link.styles.js +6 -14
  391. package/test-env/components/modal/confirm_modal.js +2 -1
  392. package/test-env/components/modal/modal.js +12 -3
  393. package/test-env/components/page/page_header/page_header_content.js +4 -2
  394. package/test-env/components/progress/progress.styles.js +1 -1
  395. package/test-env/components/skeleton/skeleton_circle.js +1 -2
  396. package/test-env/components/skeleton/skeleton_rectangle.js +1 -2
  397. package/test-env/components/skeleton/skeleton_text.js +18 -11
  398. package/test-env/components/skeleton/skeleton_title.js +1 -2
  399. package/test-env/components/spacer/spacer.js +1 -2
  400. package/test-env/components/text/text.js +1 -2
  401. package/test-env/components/text/text_align.js +1 -2
  402. package/test-env/components/text/text_align.styles.js +5 -7
  403. package/test-env/components/text/text_color.js +1 -2
  404. package/test-env/components/title/title.js +1 -2
  405. package/test-env/components/title/title.styles.js +2 -10
  406. package/test-env/components/toast/global_toast_list.js +68 -71
  407. package/test-env/components/toast/toast.js +25 -40
  408. package/test-env/components/toast/toast.styles.js +11 -25
  409. package/test-env/global_styling/mixins/_typography.js +25 -19
  410. package/test-env/services/color/eui_palettes.js +24 -14
  411. package/test-env/services/color/index.js +14 -0
  412. package/test-env/services/hooks/index.js +11 -0
  413. package/test-env/services/hooks/useDeepEqual.js +30 -0
  414. package/test-env/services/index.js +15 -1
  415. package/test-env/services/theme/index.js +6 -0
  416. package/test-env/services/theme/style_memoization.js +49 -16
  417. package/test-env/themes/amsterdam/global_styling/mixins/button.js +49 -26
  418. package/src/themes/charts/theme.scss +0 -5
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.EuiButtonGroupButton = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
8
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
11
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
@@ -15,8 +16,9 @@ var _button = require("../../../themes/amsterdam/global_styling/mixins/button");
15
16
  var _inner_text = require("../../inner_text");
16
17
  var _button_display = require("../button_display/_button_display");
17
18
  var _button_group_button = require("./button_group_button.styles");
19
+ var _tool_tip = require("../../../components/tool_tip");
18
20
  var _react2 = require("@emotion/react");
19
- var _excluded = ["className", "id", "isDisabled", "isIconOnly", "isSelected", "label", "value", "size", "color"];
21
+ var _excluded = ["className", "id", "isDisabled", "isIconOnly", "isSelected", "label", "value", "size", "color", "toolTipContent", "toolTipProps"];
20
22
  /*
21
23
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
22
24
  * or more contributor license agreements. Licensed under the Elastic License
@@ -24,6 +26,8 @@ var _excluded = ["className", "id", "isDisabled", "isIconOnly", "isSelected", "l
24
26
  * in compliance with, at your election, the Elastic License 2.0 or the Server
25
27
  * Side Public License, v 1.
26
28
  */
29
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
30
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
27
31
  var EuiButtonGroupButton = function EuiButtonGroupButton(_ref) {
28
32
  var className = _ref.className,
29
33
  id = _ref.id,
@@ -36,17 +40,21 @@ var EuiButtonGroupButton = function EuiButtonGroupButton(_ref) {
36
40
  size = _ref.size,
37
41
  _ref$color = _ref.color,
38
42
  _color = _ref$color === void 0 ? 'primary' : _ref$color,
43
+ toolTipContent = _ref.toolTipContent,
44
+ toolTipProps = _ref.toolTipProps,
39
45
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
40
46
  var isCompressed = size === 'compressed';
41
47
  var color = isDisabled ? 'disabled' : _color;
42
48
  var display = isSelected ? 'fill' : isCompressed ? 'empty' : 'base';
49
+ var hasToolTip = !!toolTipContent;
43
50
  var euiTheme = (0, _services.useEuiTheme)();
44
51
  var buttonColorStyles = (0, _button.useEuiButtonColorCSS)({
45
52
  display: display
46
53
  })[color];
47
54
  var focusColorStyles = isCompressed ? (0, _button_group_button._compressedButtonFocusColor)(euiTheme, color) : (0, _button_group_button._uncompressedButtonFocus)(euiTheme);
48
55
  var styles = (0, _button_group_button.euiButtonGroupButtonStyles)(euiTheme);
49
- var cssStyles = [styles.euiButtonGroupButton, isIconOnly && styles.iconOnly, styles[size], !isCompressed && styles.uncompressed, isDisabled && isSelected ? styles.disabledAndSelected : buttonColorStyles, !isDisabled && focusColorStyles];
56
+ var cssStyles = [styles.euiButtonGroupButton, isIconOnly && styles.iconOnly, !isCompressed && (hasToolTip ? styles.uncompressed.hasToolTip : styles.uncompressed[size]), isCompressed ? styles.compressed : styles.uncompressed.uncompressed, isDisabled && isSelected ? styles.disabledAndSelected : buttonColorStyles, !isDisabled && focusColorStyles];
57
+ var tooltipWrapperStyles = [styles.tooltipWrapper, !isCompressed && styles.uncompressed[size]];
50
58
  var contentStyles = [styles.content.euiButtonGroupButton__content, isCompressed && styles.content.compressed];
51
59
  var textStyles = [isIconOnly ? styles.text.euiButtonGroupButton__iconOnly : styles.text.euiButtonGroupButton__text];
52
60
  var buttonClasses = (0, _classnames.default)('euiButtonGroupButton', {
@@ -63,7 +71,12 @@ var EuiButtonGroupButton = function EuiButtonGroupButton(_ref) {
63
71
  _useInnerText2 = (0, _slicedToArray2.default)(_useInnerText, 2),
64
72
  buttonTextRef = _useInnerText2[0],
65
73
  innerText = _useInnerText2[1];
66
- return (0, _react2.jsx)(_button_display.EuiButtonDisplay, (0, _extends2.default)({
74
+ return (0, _react2.jsx)(EuiButtonGroupButtonWithToolTip, {
75
+ toolTipContent: toolTipContent,
76
+ toolTipProps: toolTipProps,
77
+ wrapperCss: tooltipWrapperStyles,
78
+ isSelected: isSelected
79
+ }, (0, _react2.jsx)(_button_display.EuiButtonDisplay, (0, _extends2.default)({
67
80
  css: cssStyles,
68
81
  className: buttonClasses,
69
82
  isDisabled: isDisabled,
@@ -79,6 +92,25 @@ var EuiButtonGroupButton = function EuiButtonGroupButton(_ref) {
79
92
  title: innerText,
80
93
  "data-test-subj": id,
81
94
  isSelected: isSelected
82
- }, rest), label);
95
+ }, rest), label));
83
96
  };
84
- exports.EuiButtonGroupButton = EuiButtonGroupButton;
97
+ exports.EuiButtonGroupButton = EuiButtonGroupButton;
98
+ var EuiButtonGroupButtonWithToolTip = function EuiButtonGroupButtonWithToolTip(_ref2) {
99
+ var _toolTipProps$anchorP, _toolTipProps$anchorP2;
100
+ var toolTipContent = _ref2.toolTipContent,
101
+ toolTipProps = _ref2.toolTipProps,
102
+ wrapperCss = _ref2.wrapperCss,
103
+ isSelected = _ref2.isSelected,
104
+ children = _ref2.children;
105
+ return toolTipContent ? (0, _react2.jsx)(_tool_tip.EuiToolTip, (0, _extends2.default)({
106
+ content: toolTipContent,
107
+ position: "top"
108
+ }, toolTipProps, {
109
+ anchorProps: _objectSpread(_objectSpread({}, toolTipProps === null || toolTipProps === void 0 ? void 0 : toolTipProps.anchorProps), {}, {
110
+ className: (0, _classnames.default)('euiButtonGroup__tooltipWrapper', {
111
+ 'euiButtonGroup__tooltipWrapper-isSelected': isSelected
112
+ }, toolTipProps === null || toolTipProps === void 0 ? void 0 : (_toolTipProps$anchorP = toolTipProps.anchorProps) === null || _toolTipProps$anchorP === void 0 ? void 0 : _toolTipProps$anchorP.className),
113
+ css: [wrapperCss, toolTipProps === null || toolTipProps === void 0 ? void 0 : (_toolTipProps$anchorP2 = toolTipProps.anchorProps) === null || _toolTipProps$anchorP2 === void 0 ? void 0 : _toolTipProps$anchorP2.css]
114
+ })
115
+ }), children) : children;
116
+ };
@@ -10,14 +10,29 @@ var _global_styling = require("../../../global_styling");
10
10
  var _button = require("../../../themes/amsterdam/global_styling/mixins/button");
11
11
  var _accessibility = require("../../accessibility");
12
12
  var _form = require("../../form/form.styles");
13
- /*
14
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
15
- * or more contributor license agreements. Licensed under the Elastic License
16
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
17
- * in compliance with, at your election, the Elastic License 2.0 or the Server
18
- * Side Public License, v 1.
19
- */
20
-
13
+ 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)."; } /*
14
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
15
+ * or more contributor license agreements. Licensed under the Elastic License
16
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
17
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
18
+ * Side Public License, v 1.
19
+ */
20
+ var _ref = process.env.NODE_ENV === "production" ? {
21
+ name: "nwv4a2-tooltipWrapper",
22
+ styles: "overflow:hidden;label:tooltipWrapper;"
23
+ } : {
24
+ name: "nwv4a2-tooltipWrapper",
25
+ styles: "overflow:hidden;label:tooltipWrapper;",
26
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
27
+ };
28
+ var _ref2 = process.env.NODE_ENV === "production" ? {
29
+ name: "1u3o7zy-hasToolTip",
30
+ styles: "border-radius:inherit;label:hasToolTip;"
31
+ } : {
32
+ name: "1u3o7zy-hasToolTip",
33
+ styles: "border-radius:inherit;label:hasToolTip;",
34
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
35
+ };
21
36
  var euiButtonGroupButtonStyles = function euiButtonGroupButtonStyles(euiThemeContext) {
22
37
  var euiTheme = euiThemeContext.euiTheme;
23
38
  var _euiFormVariables = (0, _form.euiFormVariables)(euiThemeContext),
@@ -34,9 +49,26 @@ var euiButtonGroupButtonStyles = function euiButtonGroupButtonStyles(euiThemeCon
34
49
  euiButtonGroupButton: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('min-width', 0), " flex-shrink:1;flex-grow:0;", _global_styling.euiCanAnimate, "{transition:background-color ", euiTheme.animation.normal, " ease-in-out,color ", euiTheme.animation.normal, " ease-in-out;};label:euiButtonGroupButton;"),
35
50
  iconOnly: /*#__PURE__*/(0, _react.css)("padding-inline:", euiTheme.size.s, ";;label:iconOnly;"),
36
51
  // Sizes
37
- s: /*#__PURE__*/(0, _react.css)(uncompressedBorderRadii(euiTheme.border.radius.small), ";;label:s;"),
38
- m: /*#__PURE__*/(0, _react.css)(uncompressedBorderRadii(euiTheme.border.radius.medium), ";;label:m;"),
39
- uncompressed: /*#__PURE__*/(0, _react.css)("&:is(.euiButtonGroupButton-isSelected){font-weight:", euiTheme.font.weight.bold, ";}&:not(.euiButtonGroupButton-isSelected)+.euiButtonGroupButton:not(.euiButtonGroupButton-isSelected){box-shadow:-", euiTheme.border.width.thin, " 0 0 0 ", (0, _services.transparentize)(euiTheme.colors.fullShade, 0.1), ";}&:is(.euiButtonGroupButton-isSelected)+.euiButtonGroupButton-isSelected{box-shadow:-", euiTheme.border.width.thin, " 0 0 0 ", (0, _services.transparentize)(euiTheme.colors.emptyShade, 0.2), ";};label:uncompressed;"),
52
+ uncompressed: {
53
+ uncompressed: /*#__PURE__*/(0, _react.css)("&:is(.euiButtonGroupButton-isSelected){font-weight:", euiTheme.font.weight.bold, ";};label:uncompressed;"),
54
+ get borders() {
55
+ var selectors = '.euiButtonGroupButton-isSelected, .euiButtonGroup__tooltipWrapper-isSelected';
56
+ var selectedColor = (0, _services.transparentize)(euiTheme.colors.emptyShade, 0.2);
57
+ var unselectedColor = (0, _services.transparentize)(euiTheme.colors.fullShade, 0.1);
58
+ var borderWidth = euiTheme.border.width.thin;
59
+
60
+ // "Borders" between buttons should be present between two of the same colored buttons,
61
+ // and absent between selected vs non-selected buttons (different colors)
62
+ return "\n &:not(".concat(selectors, ") + *:not(").concat(selectors, ") {\n box-shadow: -").concat(borderWidth, " 0 0 0 ").concat(unselectedColor, ";\n }\n &:is(").concat(selectors, ") + *:is(").concat(selectors, ") {\n box-shadow: -").concat(borderWidth, " 0 0 0 ").concat(selectedColor, ";\n }\n ");
63
+ },
64
+ get s() {
65
+ return /*#__PURE__*/(0, _react.css)(this.borders, " ", uncompressedBorderRadii(euiTheme.border.radius.small), ";;label:s;");
66
+ },
67
+ get m() {
68
+ return /*#__PURE__*/(0, _react.css)(this.borders, " ", uncompressedBorderRadii(euiTheme.border.radius.medium), ";;label:m;");
69
+ },
70
+ hasToolTip: _ref2
71
+ },
40
72
  compressed: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('height', compressedButtonHeight), " line-height:", compressedButtonHeight, ";padding:", (0, _global_styling.mathWithUnits)(euiTheme.border.width.thin, function (x) {
41
73
  return x * 2;
42
74
  }), ";background-clip:content-box;border-radius:", (0, _global_styling.mathWithUnits)([controlCompressedBorderRadius, euiTheme.border.width.thin], function (x, y) {
@@ -44,6 +76,8 @@ var euiButtonGroupButtonStyles = function euiButtonGroupButtonStyles(euiThemeCon
44
76
  }), ";font-weight:", euiTheme.font.weight.regular, ";&:is(.euiButtonGroupButton-isSelected){font-weight:", euiTheme.font.weight.semiBold, ";};label:compressed;"),
45
77
  // States
46
78
  disabledAndSelected: /*#__PURE__*/(0, _react.css)("color:", (0, _services.makeDisabledContrastColor)(euiTheme.colors.disabledText)(euiTheme.colors.disabled), ";background-color:", euiTheme.colors.disabled, ";;label:disabledAndSelected;"),
79
+ // Tooltip anchor wrapper
80
+ tooltipWrapper: _ref,
47
81
  // Content wrapper
48
82
  content: {
49
83
  euiButtonGroupButton__content: /*#__PURE__*/(0, _react.css)(";label:euiButtonGroupButton__content;"),
@@ -50,7 +50,6 @@ var EuiButtonIcon = function EuiButtonIcon(_ref) {
50
50
  isSelected = _ref.isSelected,
51
51
  isLoading = _ref.isLoading,
52
52
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
53
- var euiThemeContext = (0, _services.useEuiTheme)();
54
53
  var isDisabled = (0, _button_display.isButtonDisabled)({
55
54
  isDisabled: _isDisabled || disabled,
56
55
  href: href,
@@ -65,9 +64,9 @@ var EuiButtonIcon = function EuiButtonIcon(_ref) {
65
64
  display: display
66
65
  });
67
66
  var buttonFocusStyle = (0, _button.useEuiButtonFocusCSS)();
68
- var emptyHoverStyles = display === 'empty' && !isDisabled && (0, _button_icon._emptyHoverStyles)(euiThemeContext, color);
69
- var styles = (0, _button_icon.euiButtonIconStyles)(euiThemeContext);
70
- var cssStyles = [styles.euiButtonIcon, styles[size], buttonColorStyles[isDisabled ? 'disabled' : color], buttonFocusStyle, emptyHoverStyles, isDisabled && styles.isDisabled];
67
+ var emptyHoverStyles = (0, _services.useEuiMemoizedStyles)(_button_icon._emptyHoverStyles);
68
+ var styles = (0, _services.useEuiMemoizedStyles)(_button_icon.euiButtonIconStyles);
69
+ var cssStyles = [styles.euiButtonIcon, styles[size], buttonColorStyles[isDisabled ? 'disabled' : color], buttonFocusStyle, display === 'empty' && !isDisabled && emptyHoverStyles[color], isDisabled && styles.isDisabled];
71
70
  var classes = (0, _classnames.default)('euiButtonIcon', className);
72
71
 
73
72
  // Add an icon to the button if one exists.
@@ -1,13 +1,17 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.euiButtonIconStyles = exports._emptyHoverStyles = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
9
  var _react = require("@emotion/react");
8
10
  var _global_styling = require("../../../global_styling");
9
11
  var _button = require("../../../themes/amsterdam/global_styling/mixins/button");
10
12
  var _button_display = require("../button_display/_button_display.styles");
13
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
11
15
  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)."; } /*
12
16
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
13
17
  * or more contributor license agreements. Licensed under the Elastic License
@@ -35,7 +39,9 @@ var euiButtonIconStyles = function euiButtonIconStyles(euiThemeContext) {
35
39
  };
36
40
  };
37
41
  exports.euiButtonIconStyles = euiButtonIconStyles;
38
- var _emptyHoverStyles = function _emptyHoverStyles(euiThemeContext, color) {
39
- return /*#__PURE__*/(0, _react.css)("&:hover{background-color:", (0, _button.euiButtonEmptyColor)(euiThemeContext, color).backgroundColor, ";}");
42
+ var _emptyHoverStyles = function _emptyHoverStyles(euiThemeContext) {
43
+ return _button.BUTTON_COLORS.reduce(function (styles, color) {
44
+ return _objectSpread(_objectSpread({}, styles), {}, (0, _defineProperty2.default)({}, color, /*#__PURE__*/(0, _react.css)("&:hover{background-color:", (0, _button.euiButtonEmptyColor)(euiThemeContext, color).backgroundColor, ";}")));
45
+ }, {});
40
46
  };
41
47
  exports._emptyHoverStyles = _emptyHoverStyles;
@@ -29,7 +29,7 @@ var _data_grid_cell_actions = require("./data_grid_cell_actions");
29
29
  var _data_grid_cell_popover = require("./data_grid_cell_popover");
30
30
  var _focus_utils = require("./focus_utils");
31
31
  var _react2 = require("@emotion/react");
32
- var _excluded = ["renderCellValue", "column", "setCellContentsRef", "rowIndex", "colIndex", "ariaRowIndex", "rowHeight", "rowHeightUtils", "isControlColumn", "isFocused", "cellActions"],
32
+ var _excluded = ["renderCellValue", "cellContext", "column", "setCellContentsRef", "rowIndex", "colIndex", "ariaRowIndex", "rowHeight", "rowHeightUtils", "isControlColumn", "isFocused", "showCellActions", "onExpandClick", "popoverAnchorRef"],
33
33
  _excluded2 = ["width", "popoverContext", "interactiveCellId", "columnType", "className", "column", "style", "rowHeightUtils", "rowHeightsOptions", "rowManager", "pagination"],
34
34
  _excluded3 = ["isExpandable", "style", "className", "data-test-subj"];
35
35
  /*
@@ -47,6 +47,7 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
47
47
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
48
48
  var EuiDataGridCellContent = /*#__PURE__*/(0, _react.memo)(function (_ref) {
49
49
  var renderCellValue = _ref.renderCellValue,
50
+ cellContext = _ref.cellContext,
50
51
  column = _ref.column,
51
52
  setCellContentsRef = _ref.setCellContentsRef,
52
53
  rowIndex = _ref.rowIndex,
@@ -56,16 +57,25 @@ var EuiDataGridCellContent = /*#__PURE__*/(0, _react.memo)(function (_ref) {
56
57
  rowHeightUtils = _ref.rowHeightUtils,
57
58
  isControlColumn = _ref.isControlColumn,
58
59
  isFocused = _ref.isFocused,
59
- cellActions = _ref.cellActions,
60
+ showCellActions = _ref.showCellActions,
61
+ onExpandClick = _ref.onExpandClick,
62
+ popoverAnchorRef = _ref.popoverAnchorRef,
60
63
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
61
- // React is more permissible than the TS types indicate
64
+ // React is more permissive than the TS types indicate
62
65
  var CellElement = renderCellValue;
63
- var cellHeightType = (rowHeightUtils === null || rowHeightUtils === void 0 ? void 0 : rowHeightUtils.getHeightType(rowHeight)) || 'default';
64
- var classes = (0, _classnames.default)('euiDataGridRowCell__content', "euiDataGridRowCell__content--".concat(cellHeightType, "Height"), !isControlColumn && {
65
- 'eui-textBreakWord': cellHeightType !== 'default',
66
- 'eui-textTruncate': cellHeightType === 'default'
67
- });
68
- var cellContent = (0, _react2.jsx)("div", {
66
+ var cellHeightType = (0, _react.useMemo)(function () {
67
+ return (rowHeightUtils === null || rowHeightUtils === void 0 ? void 0 : rowHeightUtils.getHeightType(rowHeight)) || 'default';
68
+ }, [rowHeightUtils, rowHeight]);
69
+ var classes = (0, _react.useMemo)(function () {
70
+ return (0, _classnames.default)('euiDataGridRowCell__content', "euiDataGridRowCell__content--".concat(cellHeightType, "Height"), !isControlColumn && {
71
+ 'eui-textBreakWord': cellHeightType !== 'default',
72
+ 'eui-textTruncate': cellHeightType === 'default'
73
+ });
74
+ }, [cellHeightType, isControlColumn]);
75
+ return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(RenderTruncatedCellContent, {
76
+ hasLineCountTruncation: cellHeightType === 'lineCount' && !isControlColumn,
77
+ rowHeight: rowHeight
78
+ }, (0, _react2.jsx)("div", {
69
79
  ref: setCellContentsRef,
70
80
  "data-datagrid-cellcontent": true,
71
81
  className: classes
@@ -75,15 +85,7 @@ var EuiDataGridCellContent = /*#__PURE__*/(0, _react.memo)(function (_ref) {
75
85
  rowIndex: rowIndex,
76
86
  colIndex: colIndex,
77
87
  schema: (column === null || column === void 0 ? void 0 : column.schema) || rest.columnType
78
- }, rest)));
79
- if (cellHeightType === 'lineCount' && !isControlColumn) {
80
- var lines = rowHeightUtils.getLineCount(rowHeight);
81
- cellContent = (0, _react2.jsx)(_text_truncate.EuiTextBlockTruncate, {
82
- lines: lines,
83
- cloneElement: true
84
- }, cellContent);
85
- }
86
- var screenReaderText = (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("p", {
88
+ }, cellContext, rest)))), (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("p", {
87
89
  hidden: !isFocused
88
90
  }, '- ', (0, _react2.jsx)(_i18n.EuiI18n, {
89
91
  token: "euiDataGridCell.position",
@@ -93,11 +95,16 @@ var EuiDataGridCellContent = /*#__PURE__*/(0, _react.memo)(function (_ref) {
93
95
  col: colIndex + 1,
94
96
  row: ariaRowIndex
95
97
  }
96
- }), cellActions && (0, _react2.jsx)(_react.default.Fragment, null, '. ', (0, _react2.jsx)(_i18n.EuiI18n, {
98
+ }), showCellActions && (0, _react2.jsx)(_react.default.Fragment, null, '. ', (0, _react2.jsx)(_i18n.EuiI18n, {
97
99
  token: "euiDataGridCell.expansionEnterPrompt",
98
100
  default: "Press the Enter key to expand this cell."
99
- }))));
100
- return (0, _react2.jsx)(_react.default.Fragment, null, cellContent, screenReaderText, cellActions);
101
+ })))), showCellActions && (0, _react2.jsx)(_data_grid_cell_actions.EuiDataGridCellActions, {
102
+ rowIndex: rowIndex,
103
+ colIndex: colIndex,
104
+ column: column,
105
+ onExpandClick: onExpandClick,
106
+ popoverAnchorRef: popoverAnchorRef
107
+ }));
101
108
  });
102
109
  EuiDataGridCellContent.displayName = 'EuiDataGridCellContent';
103
110
  var EuiDataGridCell = /*#__PURE__*/function (_Component) {
@@ -258,6 +265,7 @@ var EuiDataGridCell = /*#__PURE__*/function (_Component) {
258
265
  var _this$props5 = _this.props,
259
266
  renderCellPopover = _this$props5.renderCellPopover,
260
267
  renderCellValue = _this$props5.renderCellValue,
268
+ cellContext = _this$props5.cellContext,
261
269
  rowIndex = _this$props5.rowIndex,
262
270
  colIndex = _this$props5.colIndex,
263
271
  column = _this$props5.column,
@@ -278,7 +286,7 @@ var EuiDataGridCell = /*#__PURE__*/function (_Component) {
278
286
  })),
279
287
  DefaultCellPopover: _data_grid_cell_popover.DefaultCellPopover,
280
288
  setCellPopoverProps: setCellPopoverProps
281
- }), (0, _react2.jsx)(CellElement, (0, _extends2.default)({}, sharedProps, {
289
+ }), (0, _react2.jsx)(CellElement, (0, _extends2.default)({}, cellContext, sharedProps, {
282
290
  setCellProps: _this.setCellProps,
283
291
  isExpandable: true,
284
292
  isExpanded: true,
@@ -423,6 +431,7 @@ var EuiDataGridCell = /*#__PURE__*/function (_Component) {
423
431
  if (nextProps.style.height !== this.props.style.height) return true;
424
432
  if (nextProps.style.width !== this.props.style.width) return true;
425
433
  }
434
+ if (nextProps.cellContext !== this.props.cellContext) return true;
426
435
  if (nextState.cellProps !== this.state.cellProps) return true;
427
436
  if (nextState.isFocused !== this.state.isFocused) return true;
428
437
  if (nextState.isHovered !== this.state.isHovered) return true;
@@ -472,21 +481,16 @@ var EuiDataGridCell = /*#__PURE__*/function (_Component) {
472
481
  lineHeight: (_rowHeightsOptions$li = rowHeightsOptions === null || rowHeightsOptions === void 0 ? void 0 : rowHeightsOptions.lineHeight) !== null && _rowHeightsOptions$li !== void 0 ? _rowHeightsOptions$li : undefined
473
482
  }, cellPropsStyle);
474
483
  var rowHeight = rowHeightUtils === null || rowHeightUtils === void 0 ? void 0 : rowHeightUtils.getRowHeightOption(rowIndex, rowHeightsOptions);
475
- var cellContentProps = _objectSpread(_objectSpread({}, rest), {}, {
476
- setCellProps: this.setCellProps,
477
- column: column,
478
- columnType: columnType,
479
- isExpandable: isExpandable,
480
- isExpanded: popoverIsOpen,
481
- isDetails: false,
482
- isFocused: this.state.isFocused,
483
- setCellContentsRef: this.setCellContentsRef,
484
- rowHeight: rowHeight,
485
- rowHeightUtils: rowHeightUtils,
486
- isControlColumn: cellClasses.includes('euiDataGridRowCell--controlColumn'),
487
- ariaRowIndex: ariaRowIndex
488
- });
489
- var cell = (0, _react2.jsx)("div", (0, _extends2.default)({
484
+ var row = rowManager && !_utils.IS_JEST_ENVIRONMENT ? rowManager.getRow({
485
+ rowIndex: rowIndex,
486
+ visibleRowIndex: visibleRowIndex,
487
+ top: style.top,
488
+ // comes in as a `{float}px` string from react-window
489
+ height: style.height // comes in as an integer from react-window
490
+ }) : undefined;
491
+ return (0, _react2.jsx)(RenderCellInRow, {
492
+ row: row
493
+ }, (0, _react2.jsx)("div", (0, _extends2.default)({
490
494
  role: "gridcell",
491
495
  "aria-rowindex": ariaRowIndex,
492
496
  tabIndex: this.state.isFocused ? 0 : -1,
@@ -510,27 +514,49 @@ var EuiDataGridCell = /*#__PURE__*/function (_Component) {
510
514
  cellEl: this.cellRef.current,
511
515
  updateCellFocusContext: this.updateCellFocusContext,
512
516
  renderFocusTrap: !isExpandable
513
- }, (0, _react2.jsx)(EuiDataGridCellContent, (0, _extends2.default)({}, cellContentProps, {
514
- cellActions: showCellActions && (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_data_grid_cell_actions.EuiDataGridCellActions, {
515
- rowIndex: rowIndex,
516
- colIndex: colIndex,
517
- column: column,
518
- onExpandClick: this.handleCellExpansionClick
519
- }), (0, _react2.jsx)("div", {
520
- ref: this.popoverAnchorRef,
521
- "data-test-subject": "cellPopoverAnchor"
522
- }))
523
- }))));
524
- return rowManager && !_utils.IS_JEST_ENVIRONMENT ? /*#__PURE__*/(0, _reactDom.createPortal)(cell, rowManager.getRow({
517
+ }, (0, _react2.jsx)(EuiDataGridCellContent, (0, _extends2.default)({}, rest, {
518
+ setCellProps: this.setCellProps,
519
+ column: column,
520
+ columnType: columnType,
521
+ isExpandable: isExpandable,
522
+ isExpanded: popoverIsOpen,
523
+ onExpandClick: this.handleCellExpansionClick,
524
+ popoverAnchorRef: this.popoverAnchorRef,
525
+ showCellActions: showCellActions,
526
+ isFocused: this.state.isFocused,
527
+ setCellContentsRef: this.setCellContentsRef,
528
+ rowHeight: rowHeight,
529
+ rowHeightUtils: rowHeightUtils,
530
+ isControlColumn: cellClasses.includes('euiDataGridRowCell--controlColumn'),
531
+ ariaRowIndex: ariaRowIndex,
525
532
  rowIndex: rowIndex,
526
- visibleRowIndex: visibleRowIndex,
527
- top: style.top,
528
- // comes in as a `{float}px` string from react-window
529
- height: style.height // comes in as an integer from react-window
530
- })) : cell;
533
+ colIndex: colIndex
534
+ })))));
531
535
  }
532
536
  }]);
533
537
  return EuiDataGridCell;
534
538
  }(_react.Component);
539
+ /**
540
+ * Function component utilities for conditional rendering.
541
+ * Used for DRYness and performance
542
+ */
535
543
  exports.EuiDataGridCell = EuiDataGridCell;
536
- (0, _defineProperty2.default)(EuiDataGridCell, "contextType", _focus.DataGridFocusContext);
544
+ (0, _defineProperty2.default)(EuiDataGridCell, "contextType", _focus.DataGridFocusContext);
545
+ var RenderCellInRow = /*#__PURE__*/(0, _react.memo)(function (_ref2) {
546
+ var row = _ref2.row,
547
+ children = _ref2.children;
548
+ return row ? /*#__PURE__*/(0, _reactDom.createPortal)(children, row) : children;
549
+ });
550
+ RenderCellInRow.displayName = 'RenderCellInRow';
551
+ var RenderTruncatedCellContent = /*#__PURE__*/(0, _react.memo)(function (_ref3) {
552
+ var children = _ref3.children,
553
+ hasLineCountTruncation = _ref3.hasLineCountTruncation,
554
+ rowHeight = _ref3.rowHeight;
555
+ // If `hasLineCountTruncation` is true, we can rely on rowHeight being the correct type
556
+ var lines = hasLineCountTruncation ? rowHeight.lineCount : undefined;
557
+ return lines ? (0, _react2.jsx)(_text_truncate.EuiTextBlockTruncate, {
558
+ lines: lines,
559
+ cloneElement: true
560
+ }, children) : children;
561
+ });
562
+ RenderTruncatedCellContent.displayName = 'RenderTruncatedCellContent';
@@ -28,6 +28,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
28
28
 
29
29
  var EuiDataGridCellActions = function EuiDataGridCellActions(_ref) {
30
30
  var onExpandClick = _ref.onExpandClick,
31
+ popoverAnchorRef = _ref.popoverAnchorRef,
31
32
  column = _ref.column,
32
33
  rowIndex = _ref.rowIndex,
33
34
  colIndex = _ref.colIndex;
@@ -35,23 +36,25 @@ var EuiDataGridCellActions = function EuiDataGridCellActions(_ref) {
35
36
  // column.cellActions is present (regardless of column.isExpandable).
36
37
  // This is because cell actions are not otherwise accessible to keyboard
37
38
  // or screen reader users
38
- var expandButton = (0, _react2.jsx)(_i18n.EuiI18n, {
39
- key: 'expand',
40
- token: "euiDataGridCellActions.expandButtonTitle",
41
- default: "Click or hit enter to interact with cell content"
42
- }, function (expandButtonTitle) {
43
- return (0, _react2.jsx)(_button_icon.EuiButtonIcon, {
44
- className: "euiDataGridRowCell__actionButtonIcon euiDataGridRowCell__expandCell",
45
- "data-test-subj": "euiDataGridCellExpandButton",
46
- display: "fill",
47
- color: "primary",
48
- iconSize: "m",
49
- iconType: "expandMini",
50
- "aria-hidden": true,
51
- onClick: onExpandClick,
52
- title: expandButtonTitle
39
+ var expandButton = (0, _react.useMemo)(function () {
40
+ return (0, _react2.jsx)(_i18n.EuiI18n, {
41
+ key: 'expand',
42
+ token: "euiDataGridCellActions.expandButtonTitle",
43
+ default: "Click or hit enter to interact with cell content"
44
+ }, function (expandButtonTitle) {
45
+ return (0, _react2.jsx)(_button_icon.EuiButtonIcon, {
46
+ className: "euiDataGridRowCell__actionButtonIcon euiDataGridRowCell__expandCell",
47
+ "data-test-subj": "euiDataGridCellExpandButton",
48
+ display: "fill",
49
+ color: "primary",
50
+ iconSize: "m",
51
+ iconType: "expandMini",
52
+ "aria-hidden": true,
53
+ onClick: onExpandClick,
54
+ title: expandButtonTitle
55
+ });
53
56
  });
54
- });
57
+ }, [onExpandClick]);
55
58
  var additionalButtons = (0, _react.useMemo)(function () {
56
59
  if (!column || !Array.isArray(column === null || column === void 0 ? void 0 : column.cellActions)) return [];
57
60
  var ButtonComponent = function ButtonComponent(props) {
@@ -82,9 +85,12 @@ var EuiDataGridCellActions = function EuiDataGridCellActions(_ref) {
82
85
  });
83
86
  });
84
87
  }, [column, colIndex, rowIndex]);
85
- return (0, _react2.jsx)("div", {
88
+ return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("div", {
86
89
  className: "euiDataGridRowCell__actions"
87
- }, [].concat((0, _toConsumableArray2.default)(additionalButtons), [expandButton]));
90
+ }, [].concat((0, _toConsumableArray2.default)(additionalButtons), [expandButton])), (0, _react2.jsx)("div", {
91
+ ref: popoverAnchorRef,
92
+ "data-test-subject": "cellPopoverAnchor"
93
+ }));
88
94
  };
89
95
  exports.EuiDataGridCellActions = EuiDataGridCellActions;
90
96
  var EuiDataGridCellPopoverActions = function EuiDataGridCellPopoverActions(_ref2) {