@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
@@ -41,7 +41,6 @@ var DataGridCellPopoverContext = /*#__PURE__*/(0, _react.createContext)({
41
41
  });
42
42
  exports.DataGridCellPopoverContext = DataGridCellPopoverContext;
43
43
  var useCellPopover = function useCellPopover() {
44
- var _cellPopoverProps$pan;
45
44
  // Current open state & cell location are handled here
46
45
  var _useState = (0, _react.useState)(false),
47
46
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -92,16 +91,6 @@ var useCellPopover = function useCellPopover() {
92
91
  });
93
92
  setPopoverIsOpen(true);
94
93
  }, [popoverIsOpen, cellLocation]);
95
- var cellPopoverContext = {
96
- popoverIsOpen: popoverIsOpen,
97
- closeCellPopover: closeCellPopover,
98
- openCellPopover: openCellPopover,
99
- cellLocation: cellLocation,
100
- setPopoverAnchor: setPopoverAnchor,
101
- setPopoverAnchorPosition: setPopoverAnchorPosition,
102
- setPopoverContent: setPopoverContent,
103
- setCellPopoverProps: setCellPopoverProps
104
- };
105
94
 
106
95
  // Override the default EuiPopover `onClickOutside` behavior, since the toggling
107
96
  // popover button isn't actually the DOM node we pass to `button`. Otherwise,
@@ -113,52 +102,71 @@ var useCellPopover = function useCellPopover() {
113
102
  closeCellPopover();
114
103
  }
115
104
  }, [popoverAnchor, closeCellPopover]);
105
+ var onKeyDown = (0, _react.useCallback)(function (event) {
106
+ if (event.key === _services.keys.F2 || event.key === _services.keys.ESCAPE) {
107
+ var _popoverAnchor$parent3, _popoverAnchor$parent4;
108
+ event.preventDefault();
109
+ event.stopPropagation();
110
+ closeCellPopover();
111
+ var cell = popoverAnchor === null || popoverAnchor === void 0 ? void 0 : (_popoverAnchor$parent3 = popoverAnchor.parentElement) === null || _popoverAnchor$parent3 === void 0 ? void 0 : (_popoverAnchor$parent4 = _popoverAnchor$parent3.parentElement) === null || _popoverAnchor$parent4 === void 0 ? void 0 : _popoverAnchor$parent4.parentElement;
116
112
 
117
- // Note that this popover is rendered once at the top grid level, rather than one popover per cell
118
- var cellPopover = popoverIsOpen && popoverAnchor && (0, _react2.jsx)(_popover.EuiWrappingPopover, (0, _extends2.default)({
119
- isOpen: popoverIsOpen,
120
- display: "block",
121
- hasArrow: false,
122
- panelPaddingSize: "s",
123
- anchorPosition: popoverAnchorPosition,
124
- repositionToCrossAxis: false
125
- }, cellPopoverProps, {
126
- focusTrapProps: {
127
- onClickOutside: onClickOutside,
128
- clickOutsideDisables: false
129
- },
130
- panelProps: _objectSpread({
131
- 'data-test-subj': 'euiDataGridExpansionPopover'
132
- }, cellPopoverProps.panelProps || {}),
133
- panelClassName: (0, _classnames.default)('euiDataGridRowCell__popover', cellPopoverProps.panelClassName, (_cellPopoverProps$pan = cellPopoverProps.panelProps) === null || _cellPopoverProps$pan === void 0 ? void 0 : _cellPopoverProps$pan.className),
134
- panelStyle: {
135
- maxInlineSize: "min(75vw, max(".concat(popoverAnchor.parentElement.offsetWidth, "px, 400px))"),
136
- maxBlockSize: '50vh'
137
- },
138
- onKeyDown: function onKeyDown(event) {
139
- if (event.key === _services.keys.F2 || event.key === _services.keys.ESCAPE) {
140
- var _popoverAnchor$parent3, _popoverAnchor$parent4;
141
- event.preventDefault();
142
- event.stopPropagation();
143
- closeCellPopover();
144
- var cell = (_popoverAnchor$parent3 = popoverAnchor.parentElement) === null || _popoverAnchor$parent3 === void 0 ? void 0 : (_popoverAnchor$parent4 = _popoverAnchor$parent3.parentElement) === null || _popoverAnchor$parent4 === void 0 ? void 0 : _popoverAnchor$parent4.parentElement;
113
+ // Prevent cell animation flash while focus is being shifted between popover and cell
114
+ cell === null || cell === void 0 ? void 0 : cell.setAttribute('data-keyboard-closing', 'true');
115
+ // Ensure focus is returned to the parent cell, and remove animation stopgap
116
+ requestAnimationFrame(function () {
117
+ popoverAnchor === null || popoverAnchor === void 0 ? void 0 : popoverAnchor.parentElement.focus();
118
+ cell === null || cell === void 0 ? void 0 : cell.removeAttribute('data-keyboard-closing');
119
+ });
120
+ }
121
+ }, [popoverAnchor, closeCellPopover]);
122
+ var cellPopoverContext = (0, _react.useMemo)(function () {
123
+ return {
124
+ popoverIsOpen: popoverIsOpen,
125
+ closeCellPopover: closeCellPopover,
126
+ openCellPopover: openCellPopover,
127
+ cellLocation: cellLocation,
128
+ setPopoverAnchorPosition: setPopoverAnchorPosition,
129
+ setPopoverAnchor: setPopoverAnchor,
130
+ setPopoverContent: setPopoverContent,
131
+ setCellPopoverProps: setCellPopoverProps
132
+ };
133
+ }, [popoverIsOpen, closeCellPopover, openCellPopover, cellLocation]);
134
+ var cellPopover = (0, _react.useMemo)(function () {
135
+ var _cellPopoverProps$pan;
136
+ if (!popoverIsOpen || !popoverAnchor) return null;
145
137
 
146
- // Prevent cell animation flash while focus is being shifted between popover and cell
147
- cell === null || cell === void 0 ? void 0 : cell.setAttribute('data-keyboard-closing', 'true');
148
- // Ensure focus is returned to the parent cell, and remove animation stopgap
149
- requestAnimationFrame(function () {
150
- popoverAnchor.parentElement.focus();
151
- cell === null || cell === void 0 ? void 0 : cell.removeAttribute('data-keyboard-closing');
152
- });
153
- }
154
- },
155
- button: popoverAnchor,
156
- closePopover: closeCellPopover
157
- }), popoverContent);
158
- return {
159
- cellPopoverContext: cellPopoverContext,
160
- cellPopover: cellPopover
161
- };
138
+ // Note that this popover is rendered once at the top grid level, rather than one popover per cell
139
+ return (0, _react2.jsx)(_popover.EuiWrappingPopover, (0, _extends2.default)({
140
+ isOpen: popoverIsOpen,
141
+ display: "block",
142
+ hasArrow: false,
143
+ panelPaddingSize: "s",
144
+ anchorPosition: popoverAnchorPosition,
145
+ repositionToCrossAxis: false
146
+ }, cellPopoverProps, {
147
+ focusTrapProps: {
148
+ onClickOutside: onClickOutside,
149
+ clickOutsideDisables: false
150
+ },
151
+ panelProps: _objectSpread({
152
+ 'data-test-subj': 'euiDataGridExpansionPopover'
153
+ }, cellPopoverProps.panelProps || {}),
154
+ panelClassName: (0, _classnames.default)('euiDataGridRowCell__popover', cellPopoverProps.panelClassName, (_cellPopoverProps$pan = cellPopoverProps.panelProps) === null || _cellPopoverProps$pan === void 0 ? void 0 : _cellPopoverProps$pan.className),
155
+ panelStyle: {
156
+ maxInlineSize: "min(75vw, max(".concat(popoverAnchor.parentElement.offsetWidth, "px, 400px))"),
157
+ maxBlockSize: '50vh'
158
+ },
159
+ onKeyDown: onKeyDown,
160
+ button: popoverAnchor,
161
+ closePopover: closeCellPopover
162
+ }), popoverContent);
163
+ }, [popoverIsOpen, popoverAnchor, popoverContent, cellPopoverProps, closeCellPopover, onClickOutside, onKeyDown, popoverAnchorPosition]);
164
+ return (0, _react.useMemo)(function () {
165
+ return {
166
+ cellPopoverContext: cellPopoverContext,
167
+ cellPopover: cellPopover
168
+ };
169
+ }, [cellPopoverContext, cellPopover]);
162
170
  };
163
171
 
164
172
  /**
@@ -5,7 +5,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.Cell = void 0;
8
+ exports.CellWrapper = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
@@ -15,7 +15,7 @@ var _sorting = require("../../utils/sorting");
15
15
  var _data_grid_cell_popover = require("./data_grid_cell_popover");
16
16
  var _data_grid_cell = require("./data_grid_cell");
17
17
  var _react2 = require("@emotion/react");
18
- var _excluded = ["colIndex", "visibleRowIndex", "style", "schema", "schemaDetectors", "pagination", "columns", "leadingControlColumns", "trailingControlColumns", "visibleColCount", "columnWidths", "defaultColumnWidth", "renderCellValue", "renderCellPopover", "interactiveCellId", "setRowHeight", "rowHeightsOptions", "rowHeightUtils", "rowManager"];
18
+ var _excluded = ["colIndex", "visibleRowIndex", "style", "schema", "schemaDetectors", "pagination", "columns", "leadingControlColumns", "trailingControlColumns", "visibleColCount", "columnWidths", "defaultColumnWidth", "renderCellValue", "cellContext", "renderCellPopover", "interactiveCellId", "setRowHeight", "rowHeightsOptions", "rowHeightUtils", "rowManager"];
19
19
  /*
20
20
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
21
21
  * or more contributor license agreements. Licensed under the Elastic License
@@ -30,7 +30,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
30
30
  * It grabs context, determines the type of cell being rendered
31
31
  * (e.g. control vs data cell), & sets shared props between all cells
32
32
  */
33
- var Cell = function Cell(_ref) {
33
+ var CellWrapper = /*#__PURE__*/(0, _react.memo)(function (_ref) {
34
34
  var colIndex = _ref.colIndex,
35
35
  visibleRowIndex = _ref.visibleRowIndex,
36
36
  style = _ref.style,
@@ -44,6 +44,7 @@ var Cell = function Cell(_ref) {
44
44
  columnWidths = _ref.columnWidths,
45
45
  defaultColumnWidth = _ref.defaultColumnWidth,
46
46
  renderCellValue = _ref.renderCellValue,
47
+ cellContext = _ref.cellContext,
47
48
  renderCellPopover = _ref.renderCellPopover,
48
49
  interactiveCellId = _ref.interactiveCellId,
49
50
  setRowHeight = _ref.setRowHeight,
@@ -52,9 +53,8 @@ var Cell = function Cell(_ref) {
52
53
  rowManager = _ref.rowManager,
53
54
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
54
55
  var popoverContext = (0, _react.useContext)(_data_grid_cell_popover.DataGridCellPopoverContext);
55
- var _useContext = (0, _react.useContext)(_sorting.DataGridSortingContext),
56
+ var _useContext = (0, _react.useContext)(_sorting.DataGridSortedContext),
56
57
  getCorrectRowIndex = _useContext.getCorrectRowIndex;
57
- var cellContent;
58
58
  var isFirstColumn = colIndex === 0;
59
59
  var isLastColumn = colIndex === visibleColCount - 1;
60
60
  var isLeadingControlColumn = colIndex < leadingControlColumns.length;
@@ -68,30 +68,33 @@ var Cell = function Cell(_ref) {
68
68
  return column !== null && column !== void 0 && column.schema ? (column === null || column === void 0 ? void 0 : column.schema) === row.type : columnId === row.type;
69
69
  })[0]) === null || _schemaDetectors$filt === void 0 ? void 0 : _schemaDetectors$filt.textTransform;
70
70
  }, [columnId, column === null || column === void 0 ? void 0 : column.schema, schemaDetectors]);
71
- var classes = (0, _classnames.default)((0, _defineProperty2.default)({
72
- 'euiDataGridRowCell--firstColumn': isFirstColumn,
73
- 'euiDataGridRowCell--lastColumn': isLastColumn,
74
- 'euiDataGridRowCell--controlColumn': isLeadingControlColumn || isTrailingControlColumn
75
- }, "euiDataGridRowCell--".concat(textTransform), textTransform));
76
- var sharedCellProps = {
77
- rowIndex: getCorrectRowIndex(visibleRowIndex),
78
- visibleRowIndex: visibleRowIndex,
79
- colIndex: colIndex,
80
- interactiveCellId: interactiveCellId,
81
- className: classes,
82
- style: style,
83
- rowHeightsOptions: rowHeightsOptions,
84
- rowHeightUtils: rowHeightUtils,
85
- setRowHeight: isFirstColumn ? setRowHeight : undefined,
86
- rowManager: rowManager,
87
- popoverContext: popoverContext,
88
- pagination: pagination
89
- };
71
+ var sharedCellProps = (0, _react.useMemo)(function () {
72
+ var classes = (0, _classnames.default)((0, _defineProperty2.default)({
73
+ 'euiDataGridRowCell--firstColumn': isFirstColumn,
74
+ 'euiDataGridRowCell--lastColumn': isLastColumn,
75
+ 'euiDataGridRowCell--controlColumn': isLeadingControlColumn || isTrailingControlColumn
76
+ }, "euiDataGridRowCell--".concat(textTransform), textTransform));
77
+ return {
78
+ rowIndex: getCorrectRowIndex(visibleRowIndex),
79
+ visibleRowIndex: visibleRowIndex,
80
+ colIndex: colIndex,
81
+ interactiveCellId: interactiveCellId,
82
+ className: classes,
83
+ style: style,
84
+ rowHeightsOptions: rowHeightsOptions,
85
+ rowHeightUtils: rowHeightUtils,
86
+ setRowHeight: isFirstColumn ? setRowHeight : undefined,
87
+ rowManager: rowManager,
88
+ popoverContext: popoverContext,
89
+ pagination: pagination,
90
+ cellContext: cellContext
91
+ };
92
+ }, [colIndex, setRowHeight, visibleRowIndex, getCorrectRowIndex, interactiveCellId, style, rowHeightsOptions, rowHeightUtils, rowManager, popoverContext, pagination, cellContext, isFirstColumn, isLastColumn, isLeadingControlColumn, isTrailingControlColumn, textTransform]);
90
93
  if (isLeadingControlColumn) {
91
94
  var leadingColumn = leadingControlColumns[colIndex];
92
95
  var id = leadingColumn.id,
93
96
  rowCellRender = leadingColumn.rowCellRender;
94
- cellContent = (0, _react2.jsx)(_data_grid_cell.EuiDataGridCell, (0, _extends2.default)({}, sharedCellProps, {
97
+ return (0, _react2.jsx)(_data_grid_cell.EuiDataGridCell, (0, _extends2.default)({}, sharedCellProps, {
95
98
  columnId: id,
96
99
  width: leadingColumn.width,
97
100
  renderCellValue: rowCellRender,
@@ -103,7 +106,7 @@ var Cell = function Cell(_ref) {
103
106
  var trailingColumn = trailingControlColumns[trailingcolIndex];
104
107
  var _id = trailingColumn.id,
105
108
  _rowCellRender = trailingColumn.rowCellRender;
106
- cellContent = (0, _react2.jsx)(_data_grid_cell.EuiDataGridCell, (0, _extends2.default)({}, sharedCellProps, {
109
+ return (0, _react2.jsx)(_data_grid_cell.EuiDataGridCell, (0, _extends2.default)({}, sharedCellProps, {
107
110
  columnId: _id,
108
111
  width: trailingColumn.width,
109
112
  renderCellValue: _rowCellRender,
@@ -112,9 +115,9 @@ var Cell = function Cell(_ref) {
112
115
  } else {
113
116
  // this is a normal data cell
114
117
  var columnType = schema[columnId] ? schema[columnId].columnType : null;
115
- var isExpandable = column.isExpandable !== undefined ? column.isExpandable : true;
118
+ var isExpandable = (column === null || column === void 0 ? void 0 : column.isExpandable) !== undefined ? column === null || column === void 0 ? void 0 : column.isExpandable : true;
116
119
  var width = columnWidths[columnId] || defaultColumnWidth;
117
- cellContent = (0, _react2.jsx)(_data_grid_cell.EuiDataGridCell, (0, _extends2.default)({}, sharedCellProps, {
120
+ return (0, _react2.jsx)(_data_grid_cell.EuiDataGridCell, (0, _extends2.default)({}, sharedCellProps, {
118
121
  columnId: columnId,
119
122
  column: column,
120
123
  columnType: columnType,
@@ -125,6 +128,6 @@ var Cell = function Cell(_ref) {
125
128
  isExpandable: isExpandable
126
129
  }, rest));
127
130
  }
128
- return cellContent;
129
- };
130
- exports.Cell = Cell;
131
+ });
132
+ exports.CellWrapper = CellWrapper;
133
+ CellWrapper.displayName = 'CellWrapper';
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "Cell", {
6
+ Object.defineProperty(exports, "CellWrapper", {
7
7
  enumerable: true,
8
8
  get: function get() {
9
- return _data_grid_cell_wrapper.Cell;
9
+ return _data_grid_cell_wrapper.CellWrapper;
10
10
  }
11
11
  });
12
12
  Object.defineProperty(exports, "DataGridCellPopoverContext", {
@@ -568,10 +568,24 @@ EuiDataGridBody.propTypes = {
568
568
  visibleRowCount: _propTypes.default.number.isRequired
569
569
  }).isRequired,
570
570
  renderCellValue: _propTypes.default.oneOfType([_propTypes.default.func.isRequired, _propTypes.default.element.isRequired]).isRequired,
571
+ cellContext: _propTypes.default.any,
571
572
  renderCellPopover: _propTypes.default.oneOfType([_propTypes.default.func.isRequired, _propTypes.default.func.isRequired]),
572
573
  renderFooterCellValue: _propTypes.default.oneOfType([_propTypes.default.func.isRequired, _propTypes.default.element.isRequired]),
573
574
  renderCustomGridBody: _propTypes.default.func,
574
575
  interactiveCellId: _propTypes.default.string.isRequired,
576
+ sorting: _propTypes.default.shape({
577
+ /**
578
+ * A function that receives updated column sort details in response to user interactions in the toolbar controls
579
+ */
580
+ onSort: _propTypes.default.func.isRequired,
581
+ /**
582
+ * An array of the column ids currently being sorted and their sort direction. The array order determines the sort order. `{ id: 'A'; direction: 'asc' }`
583
+ */
584
+ columns: _propTypes.default.arrayOf(_propTypes.default.shape({
585
+ id: _propTypes.default.string.isRequired,
586
+ direction: _propTypes.default.oneOf(["asc", "desc"]).isRequired
587
+ }).isRequired).isRequired
588
+ }),
575
589
  pagination: _propTypes.default.any,
576
590
  setVisibleColumns: _propTypes.default.func.isRequired,
577
591
  switchColumnPos: _propTypes.default.func.isRequired,
@@ -34,24 +34,26 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
34
34
  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; }
35
35
  var EuiDataGridBodyCustomRender = function EuiDataGridBodyCustomRender(_ref) {
36
36
  var renderCustomGridBody = _ref.renderCustomGridBody,
37
- leadingControlColumns = _ref.leadingControlColumns,
38
- trailingControlColumns = _ref.trailingControlColumns,
39
- columns = _ref.columns,
40
- visibleColCount = _ref.visibleColCount,
41
- schema = _ref.schema,
42
- schemaDetectors = _ref.schemaDetectors,
43
- visibleRows = _ref.visibleRows,
44
37
  renderCellValue = _ref.renderCellValue,
38
+ cellContext = _ref.cellContext,
45
39
  renderCellPopover = _ref.renderCellPopover,
46
40
  renderFooterCellValue = _ref.renderFooterCellValue,
47
41
  interactiveCellId = _ref.interactiveCellId,
42
+ visibleRows = _ref.visibleRows,
43
+ visibleColCount = _ref.visibleColCount,
44
+ leadingControlColumns = _ref.leadingControlColumns,
45
+ trailingControlColumns = _ref.trailingControlColumns,
46
+ columns = _ref.columns,
48
47
  setVisibleColumns = _ref.setVisibleColumns,
49
48
  switchColumnPos = _ref.switchColumnPos,
50
49
  onColumnResize = _ref.onColumnResize,
51
- gridWidth = _ref.gridWidth,
52
- gridStyles = _ref.gridStyles,
50
+ schema = _ref.schema,
51
+ schemaDetectors = _ref.schemaDetectors,
52
+ sorting = _ref.sorting,
53
53
  pagination = _ref.pagination,
54
- rowHeightsOptions = _ref.rowHeightsOptions;
54
+ rowHeightsOptions = _ref.rowHeightsOptions,
55
+ gridWidth = _ref.gridWidth,
56
+ gridStyles = _ref.gridStyles;
55
57
  /**
56
58
  * Columns & widths
57
59
  */
@@ -90,14 +92,15 @@ var EuiDataGridBodyCustomRender = function EuiDataGridBodyCustomRender(_ref) {
90
92
  * Header & footer
91
93
  */
92
94
  var _useDataGridHeader = (0, _header.useDataGridHeader)({
93
- switchColumnPos: switchColumnPos,
94
- setVisibleColumns: setVisibleColumns,
95
95
  leadingControlColumns: leadingControlColumns,
96
96
  trailingControlColumns: trailingControlColumns,
97
97
  columns: columns,
98
98
  columnWidths: columnWidths,
99
99
  defaultColumnWidth: defaultColumnWidth,
100
100
  setColumnWidth: setColumnWidth,
101
+ setVisibleColumns: setVisibleColumns,
102
+ switchColumnPos: switchColumnPos,
103
+ sorting: sorting,
101
104
  schema: schema,
102
105
  schemaDetectors: schemaDetectors
103
106
  }),
@@ -120,24 +123,27 @@ var EuiDataGridBodyCustomRender = function EuiDataGridBodyCustomRender(_ref) {
120
123
  /**
121
124
  * Cell render fn
122
125
  */
123
- var cellProps = {
124
- schema: schema,
125
- schemaDetectors: schemaDetectors,
126
- pagination: pagination,
127
- columns: columns,
128
- leadingControlColumns: leadingControlColumns,
129
- trailingControlColumns: trailingControlColumns,
130
- visibleColCount: visibleColCount,
131
- columnWidths: columnWidths,
132
- defaultColumnWidth: defaultColumnWidth,
133
- renderCellValue: renderCellValue,
134
- renderCellPopover: renderCellPopover,
135
- interactiveCellId: interactiveCellId,
136
- setRowHeight: setRowHeight,
137
- rowHeightsOptions: rowHeightsOptions,
138
- rowHeightUtils: rowHeightUtils
139
- };
140
- var _Cell = (0, _react.useCallback)(function (_ref2) {
126
+ var cellProps = (0, _react.useMemo)(function () {
127
+ return {
128
+ schema: schema,
129
+ schemaDetectors: schemaDetectors,
130
+ pagination: pagination,
131
+ columns: columns,
132
+ leadingControlColumns: leadingControlColumns,
133
+ trailingControlColumns: trailingControlColumns,
134
+ visibleColCount: visibleColCount,
135
+ columnWidths: columnWidths,
136
+ defaultColumnWidth: defaultColumnWidth,
137
+ renderCellValue: renderCellValue,
138
+ cellContext: cellContext,
139
+ renderCellPopover: renderCellPopover,
140
+ interactiveCellId: interactiveCellId,
141
+ setRowHeight: setRowHeight,
142
+ rowHeightsOptions: rowHeightsOptions,
143
+ rowHeightUtils: rowHeightUtils
144
+ };
145
+ }, [schema, schemaDetectors, pagination, columns, leadingControlColumns, trailingControlColumns, visibleColCount, columnWidths, defaultColumnWidth, renderCellValue, cellContext, renderCellPopover, interactiveCellId, setRowHeight, rowHeightsOptions, rowHeightUtils]);
146
+ var Cell = (0, _react.useCallback)(function (_ref2) {
141
147
  var colIndex = _ref2.colIndex,
142
148
  visibleRowIndex = _ref2.visibleRowIndex,
143
149
  rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
@@ -149,9 +155,8 @@ var EuiDataGridBodyCustomRender = function EuiDataGridBodyCustomRender(_ref) {
149
155
  visibleRowIndex: visibleRowIndex,
150
156
  style: style
151
157
  }, cellProps);
152
- return (0, _react2.jsx)(_cell.Cell, (0, _extends2.default)({}, props, rest));
153
- }, [].concat((0, _toConsumableArray2.default)(Object.values(cellProps)), [getRowHeight]) // eslint-disable-line react-hooks/exhaustive-deps
154
- );
158
+ return (0, _react2.jsx)(_cell.CellWrapper, (0, _extends2.default)({}, props, rest));
159
+ }, [cellProps, getRowHeight, rowHeightUtils, rowHeightsOptions]);
155
160
 
156
161
  // Allow consumers to pass custom props/attributes/listeners etc. to the wrapping div
157
162
  var _useState = (0, _react.useState)({}),
@@ -163,7 +168,7 @@ var EuiDataGridBodyCustomRender = function EuiDataGridBodyCustomRender(_ref) {
163
168
  }), headerRow, renderCustomGridBody({
164
169
  visibleColumns: visibleColumns,
165
170
  visibleRowData: visibleRows,
166
- Cell: _Cell,
171
+ Cell: Cell,
167
172
  setCustomGridBodyProps: setCustomGridBodyProps
168
173
  }), footerRow);
169
174
  };
@@ -703,10 +708,24 @@ EuiDataGridBodyCustomRender.propTypes = {
703
708
  visibleRowCount: _propTypes.default.number.isRequired
704
709
  }).isRequired,
705
710
  renderCellValue: _propTypes.default.oneOfType([_propTypes.default.func.isRequired, _propTypes.default.element.isRequired]).isRequired,
711
+ cellContext: _propTypes.default.any,
706
712
  renderCellPopover: _propTypes.default.oneOfType([_propTypes.default.func.isRequired, _propTypes.default.func.isRequired]),
707
713
  renderFooterCellValue: _propTypes.default.oneOfType([_propTypes.default.func.isRequired, _propTypes.default.element.isRequired]),
708
714
  renderCustomGridBody: _propTypes.default.func,
709
715
  interactiveCellId: _propTypes.default.string.isRequired,
716
+ sorting: _propTypes.default.shape({
717
+ /**
718
+ * A function that receives updated column sort details in response to user interactions in the toolbar controls
719
+ */
720
+ onSort: _propTypes.default.func.isRequired,
721
+ /**
722
+ * An array of the column ids currently being sorted and their sort direction. The array order determines the sort order. `{ id: 'A'; direction: 'asc' }`
723
+ */
724
+ columns: _propTypes.default.arrayOf(_propTypes.default.shape({
725
+ id: _propTypes.default.string.isRequired,
726
+ direction: _propTypes.default.oneOf(["asc", "desc"]).isRequired
727
+ }).isRequired).isRequired
728
+ }),
710
729
  pagination: _propTypes.default.any,
711
730
  setVisibleColumns: _propTypes.default.func.isRequired,
712
731
  switchColumnPos: _propTypes.default.func.isRequired,