@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
@@ -3,8 +3,7 @@ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
3
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
4
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
5
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
6
- var _excluded = ["leadingControlColumns", "trailingControlColumns", "columns", "columnVisibility", "schemaDetectors", "rowCount", "renderCellValue", "renderCellPopover", "renderFooterCellValue", "className", "gridStyle", "toolbarVisibility", "pagination", "sorting", "inMemory", "onColumnResize", "minSizeForControls", "height", "width", "rowHeightsOptions", "virtualizationOptions", "renderCustomGridBody", "renderCustomToolbar"],
7
- _excluded2 = ["focusProps"];
6
+ var _excluded = ["leadingControlColumns", "trailingControlColumns", "columns", "columnVisibility", "schemaDetectors", "rowCount", "renderCellValue", "cellContext", "renderCellPopover", "renderFooterCellValue", "className", "gridStyle", "toolbarVisibility", "pagination", "sorting", "inMemory", "onColumnResize", "minSizeForControls", "height", "width", "rowHeightsOptions", "virtualizationOptions", "renderCustomGridBody", "renderCustomToolbar"];
8
7
  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; }
9
8
  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) { _defineProperty(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; }
10
9
  /*
@@ -16,7 +15,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
16
15
  */
17
16
 
18
17
  import classNames from 'classnames';
19
- import React, { forwardRef, useMemo, useRef, useState, memo } from 'react';
18
+ import React, { forwardRef, useMemo, useRef, useState, memo, useCallback } from 'react';
20
19
  import { useGeneratedHtmlId } from '../../services';
21
20
  import { useEuiTablePaginationDefaults } from '../table/table_pagination';
22
21
  import { EuiFocusTrap } from '../focus_trap';
@@ -25,7 +24,7 @@ import { useMutationObserver } from '../observer/mutation_observer';
25
24
  import { useResizeObserver } from '../observer/resize_observer';
26
25
  import { EuiDataGridBody } from './body';
27
26
  import { useDataGridColumnSelector, useDataGridColumnSorting, useDataGridDisplaySelector, startingStyles, useDataGridFullScreenSelector, useDataGridKeyboardShortcuts, checkOrDefaultToolBarDisplayOptions, EuiDataGridToolbar } from './controls';
28
- import { DataGridSortingContext, useSorting } from './utils/sorting';
27
+ import { DataGridSortedContext, useSorting } from './utils/sorting';
29
28
  import { DataGridFocusContext, useFocus, createKeyDownHandler, preventTabbing } from './utils/focus';
30
29
  import { useInMemoryValues, EuiDataGridInMemoryRenderer } from './utils/in_memory';
31
30
  import { DataGridCellPopoverContext, useCellPopover } from './body/cell';
@@ -65,8 +64,8 @@ var cellPaddingsToClassMap = {
65
64
  m: '',
66
65
  l: 'euiDataGrid--paddingLarge'
67
66
  };
67
+ var emptyVirtualizationOptions = {};
68
68
  export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (props, ref) {
69
- var _gridItemsRendered$cu;
70
69
  var _props$leadingControl = props.leadingControlColumns,
71
70
  leadingControlColumns = _props$leadingControl === void 0 ? emptyControlColumns : _props$leadingControl,
72
71
  _props$trailingContro = props.trailingControlColumns,
@@ -76,6 +75,7 @@ export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (pr
76
75
  schemaDetectors = props.schemaDetectors,
77
76
  rowCount = props.rowCount,
78
77
  renderCellValue = props.renderCellValue,
78
+ cellContext = props.cellContext,
79
79
  renderCellPopover = props.renderCellPopover,
80
80
  renderFooterCellValue = props.renderFooterCellValue,
81
81
  className = props.className,
@@ -185,8 +185,14 @@ export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (pr
185
185
  /**
186
186
  * Sorting
187
187
  */
188
- var columnSorting = useDataGridColumnSorting(orderedVisibleColumns, sorting, mergedSchema, allSchemaDetectors, displayValues);
189
- var sortingContext = useSorting({
188
+ var columnSorting = useDataGridColumnSorting({
189
+ sorting: sorting,
190
+ columns: orderedVisibleColumns,
191
+ displayValues: displayValues,
192
+ schema: mergedSchema,
193
+ schemaDetectors: allSchemaDetectors
194
+ });
195
+ var sortedContext = useSorting({
190
196
  sorting: sorting,
191
197
  inMemory: inMemory,
192
198
  inMemoryValues: inMemoryValues,
@@ -200,7 +206,20 @@ export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (pr
200
206
  */
201
207
  var _useFocus = useFocus(),
202
208
  wrappingDivFocusProps = _useFocus.focusProps,
203
- focusContext = _objectWithoutProperties(_useFocus, _excluded2);
209
+ onFocusUpdate = _useFocus.onFocusUpdate,
210
+ focusedCell = _useFocus.focusedCell,
211
+ setFocusedCell = _useFocus.setFocusedCell,
212
+ setIsFocusedCellInView = _useFocus.setIsFocusedCellInView,
213
+ focusFirstVisibleInteractiveCell = _useFocus.focusFirstVisibleInteractiveCell;
214
+ var focusContext = useMemo(function () {
215
+ return {
216
+ onFocusUpdate: onFocusUpdate,
217
+ focusedCell: focusedCell,
218
+ setFocusedCell: setFocusedCell,
219
+ setIsFocusedCellInView: setIsFocusedCellInView,
220
+ focusFirstVisibleInteractiveCell: focusFirstVisibleInteractiveCell
221
+ };
222
+ }, [onFocusUpdate, focusedCell, setFocusedCell, setIsFocusedCellInView, focusFirstVisibleInteractiveCell]);
204
223
 
205
224
  /**
206
225
  * Cell popover
@@ -230,7 +249,7 @@ export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (pr
230
249
  setIsFullScreen: setIsFullScreen,
231
250
  focusContext: focusContext,
232
251
  cellPopoverContext: cellPopoverContext,
233
- sortingContext: sortingContext,
252
+ sortedContext: sortedContext,
234
253
  pagination: pagination,
235
254
  rowCount: rowCount,
236
255
  visibleColCount: visibleColCount
@@ -277,12 +296,25 @@ export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (pr
277
296
  gridAriaProps['aria-labelledby'] = "".concat(rest['aria-labelledby'], " ").concat(pagination ? ariaLabelledById : '');
278
297
  delete rest['aria-labelledby'];
279
298
  }
299
+ var onKeyDown = useCallback(function (event) {
300
+ var _gridItemsRendered$cu;
301
+ createKeyDownHandler({
302
+ gridElement: contentRef.current,
303
+ visibleColCount: visibleColCount,
304
+ visibleRowCount: visibleRowCount,
305
+ visibleRowStartIndex: ((_gridItemsRendered$cu = gridItemsRendered.current) === null || _gridItemsRendered$cu === void 0 ? void 0 : _gridItemsRendered$cu.visibleRowStartIndex) || 0,
306
+ rowCount: rowCount,
307
+ pagination: pagination,
308
+ hasFooter: !!renderFooterCellValue,
309
+ focusContext: focusContext
310
+ })(event);
311
+ }, [focusContext, visibleColCount, visibleRowCount, rowCount, pagination, renderFooterCellValue]);
280
312
  return ___EmotionJSX(DataGridFocusContext.Provider, {
281
313
  value: focusContext
282
314
  }, ___EmotionJSX(DataGridCellPopoverContext.Provider, {
283
315
  value: cellPopoverContext
284
- }, ___EmotionJSX(DataGridSortingContext.Provider, {
285
- value: sortingContext
316
+ }, ___EmotionJSX(DataGridSortedContext.Provider, {
317
+ value: sortedContext
286
318
  }, ___EmotionJSX(EuiFocusTrap, {
287
319
  disabled: !isFullScreen,
288
320
  className: "euiDataGrid__focusWrap"
@@ -318,16 +350,7 @@ export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (pr
318
350
  }) : null, ___EmotionJSX("div", _extends({
319
351
  // eslint-disable-line jsx-a11y/interactive-supports-focus
320
352
  ref: contentRef,
321
- onKeyDown: createKeyDownHandler({
322
- gridElement: contentRef.current,
323
- visibleColCount: visibleColCount,
324
- visibleRowCount: visibleRowCount,
325
- visibleRowStartIndex: ((_gridItemsRendered$cu = gridItemsRendered.current) === null || _gridItemsRendered$cu === void 0 ? void 0 : _gridItemsRendered$cu.visibleRowStartIndex) || 0,
326
- rowCount: rowCount,
327
- pagination: pagination,
328
- hasFooter: !!renderFooterCellValue,
329
- focusContext: focusContext
330
- }),
353
+ onKeyDown: onKeyDown,
331
354
  "data-test-subj": "euiDataGridBody",
332
355
  className: "euiDataGrid__content",
333
356
  role: "grid",
@@ -343,15 +366,17 @@ export var EuiDataGrid = /*#__PURE__*/memo( /*#__PURE__*/forwardRef(function (pr
343
366
  switchColumnPos: switchColumnPos,
344
367
  onColumnResize: onColumnResize,
345
368
  schemaDetectors: allSchemaDetectors,
369
+ sorting: sorting,
346
370
  pagination: pagination,
347
371
  renderCellValue: renderCellValue,
372
+ cellContext: cellContext,
348
373
  renderCellPopover: renderCellPopover,
349
374
  renderFooterCellValue: renderFooterCellValue,
350
375
  rowCount: rowCount,
351
376
  visibleRows: visibleRows,
352
377
  interactiveCellId: interactiveCellId,
353
378
  rowHeightsOptions: rowHeightsOptions,
354
- virtualizationOptions: virtualizationOptions || {},
379
+ virtualizationOptions: virtualizationOptions || emptyVirtualizationOptions,
355
380
  isFullScreen: isFullScreen,
356
381
  gridStyles: gridStyles,
357
382
  gridWidth: gridWidth,
@@ -1,5 +1,5 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
4
4
  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; }
5
5
  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) { _defineProperty(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; }
@@ -48,10 +48,12 @@ export var useColumnWidths = function useColumnWidths(_ref) {
48
48
  onColumnResize = _ref.onColumnResize;
49
49
  var computeColumnWidths = useCallback(function () {
50
50
  return columns.filter(doesColumnHaveAnInitialWidth).reduce(function (initialWidths, column) {
51
- initialWidths[column.id] = column.initialWidth;
52
- return initialWidths;
51
+ return _objectSpread(_objectSpread({}, initialWidths), {}, _defineProperty({}, column.id, column.initialWidth));
53
52
  }, {});
54
53
  }, [columns]);
54
+
55
+ // Passes initializer function for performance, so computing only runs once on init
56
+ // @see https://react.dev/reference/react/useState#examples-initializer
55
57
  var _useState = useState(computeColumnWidths),
56
58
  _useState2 = _slicedToArray(_useState, 2),
57
59
  columnWidths = _useState2[0],
@@ -60,14 +62,16 @@ export var useColumnWidths = function useColumnWidths(_ref) {
60
62
  setColumnWidths(computeColumnWidths());
61
63
  }, [computeColumnWidths]);
62
64
  var setColumnWidth = useCallback(function (columnId, width) {
63
- setColumnWidths(_objectSpread(_objectSpread({}, columnWidths), {}, _defineProperty({}, columnId, width)));
65
+ setColumnWidths(function (prevColumnWidths) {
66
+ return _objectSpread(_objectSpread({}, prevColumnWidths), {}, _defineProperty({}, columnId, width));
67
+ });
64
68
  if (onColumnResize) {
65
69
  onColumnResize({
66
70
  columnId: columnId,
67
71
  width: width
68
72
  });
69
73
  }
70
- }, [columnWidths, onColumnResize]);
74
+ }, [onColumnResize]);
71
75
 
72
76
  // Used by react-window to determine actual column widths
73
77
  var getColumnWidth = useCallback(function (index) {
@@ -87,14 +87,16 @@ export var useFocus = function useFocus() {
87
87
  }
88
88
  };
89
89
  }, [isFocusedCellInView, focusFirstVisibleInteractiveCell]);
90
- return {
91
- onFocusUpdate: onFocusUpdate,
92
- focusedCell: focusedCell,
93
- setFocusedCell: setFocusedCell,
94
- setIsFocusedCellInView: setIsFocusedCellInView,
95
- focusFirstVisibleInteractiveCell: focusFirstVisibleInteractiveCell,
96
- focusProps: focusProps
97
- };
90
+ return useMemo(function () {
91
+ return {
92
+ onFocusUpdate: onFocusUpdate,
93
+ focusedCell: focusedCell,
94
+ setFocusedCell: setFocusedCell,
95
+ setIsFocusedCellInView: setIsFocusedCellInView,
96
+ focusFirstVisibleInteractiveCell: focusFirstVisibleInteractiveCell,
97
+ focusProps: focusProps
98
+ };
99
+ }, [onFocusUpdate, focusedCell, setFocusedCell, setIsFocusedCellInView, focusFirstVisibleInteractiveCell, focusProps]);
98
100
  };
99
101
  export var notifyCellOfFocusState = function notifyCellOfFocusState(cellsUpdateFocus, cell, isFocused) {
100
102
  var key = "".concat(cell[0], "-").concat(cell[1]);
@@ -7,11 +7,11 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
7
7
  * Side Public License, v 1.
8
8
  */
9
9
 
10
- import { useEffect, useState, useContext } from 'react';
10
+ import { useEffect, useState, useContext, useMemo } from 'react';
11
11
  import { IS_JEST_ENVIRONMENT } from '../../../utils';
12
12
  import { useUpdateEffect, useForceRender } from '../../../services';
13
13
  import { useResizeObserver } from '../../observer/resize_observer';
14
- import { DataGridSortingContext } from './sorting';
14
+ import { DataGridSortedContext } from './sorting';
15
15
  export var useFinalGridDimensions = function useFinalGridDimensions(_ref) {
16
16
  var unconstrainedHeight = _ref.unconstrainedHeight,
17
17
  unconstrainedWidth = _ref.unconstrainedWidth,
@@ -83,42 +83,43 @@ export var useUnconstrainedHeight = function useUnconstrainedHeight(_ref2) {
83
83
  footerRowHeight = _ref2.footerRowHeight,
84
84
  scrollBarHeight = _ref2.scrollBarHeight,
85
85
  innerGridRef = _ref2.innerGridRef;
86
- var _useContext = useContext(DataGridSortingContext),
86
+ var _useContext = useContext(DataGridSortedContext),
87
87
  getCorrectRowIndex = _useContext.getCorrectRowIndex;
88
- var knownHeight = 0; // tracks the pixel height of rows we know the size of
89
- var knownRowCount = 0; // how many rows we know the size of
90
- for (var i = startRow; i < endRow; i++) {
91
- var correctRowIndex = getCorrectRowIndex(i); // map visible row to logical row
92
-
93
- // lookup the height configuration of this row
94
- var rowHeightOption = rowHeightUtils.getRowHeightOption(correctRowIndex, rowHeightsOptions);
95
- if (rowHeightOption) {
96
- // this row's height is known
97
- knownRowCount++;
98
- knownHeight += rowHeightUtils.getCalculatedHeight(rowHeightOption, defaultRowHeight, correctRowIndex, rowHeightUtils.isRowHeightOverride(correctRowIndex, rowHeightsOptions));
99
- }
100
- }
101
-
102
- // how many rows to provide space for on the screen
103
- var rowCountToAffordFor = endRow - startRow;
104
-
105
88
  // watch the inner element for a change to its width
106
89
  // which may cause the horizontal scrollbar to be added or removed
107
90
  var _useResizeObserver = useResizeObserver(innerGridRef.current, 'width'),
108
91
  innerWidth = _useResizeObserver.width;
109
92
  var forceRender = useForceRender();
110
93
  useUpdateEffect(forceRender, [innerWidth]);
111
- var unconstrainedHeight = defaultRowHeight * (rowCountToAffordFor - knownRowCount) +
112
- // guess how much space is required for unknown rows
113
- knownHeight +
114
- // computed pixel height of the known rows
115
- headerRowHeight +
116
- // account for header
117
- footerRowHeight +
118
- // account for footer
119
- scrollBarHeight; // account for horizontal scrollbar
94
+ return useMemo(function () {
95
+ var knownHeight = 0; // tracks the pixel height of rows we know the size of
96
+ var knownRowCount = 0; // how many rows we know the size of
97
+ for (var i = startRow; i < endRow; i++) {
98
+ var correctRowIndex = getCorrectRowIndex(i); // map visible row to logical row
99
+
100
+ // lookup the height configuration of this row
101
+ var rowHeightOption = rowHeightUtils.getRowHeightOption(correctRowIndex, rowHeightsOptions);
102
+ if (rowHeightOption) {
103
+ // this row's height is known
104
+ knownRowCount++;
105
+ knownHeight += rowHeightUtils.getCalculatedHeight(rowHeightOption, defaultRowHeight, correctRowIndex, rowHeightUtils.isRowHeightOverride(correctRowIndex, rowHeightsOptions));
106
+ }
107
+ }
108
+
109
+ // how many rows to provide space for on the screen
110
+ var rowCountToAffordFor = endRow - startRow;
111
+ var unconstrainedHeight = defaultRowHeight * (rowCountToAffordFor - knownRowCount) +
112
+ // guess how much space is required for unknown rows
113
+ knownHeight +
114
+ // computed pixel height of the known rows
115
+ headerRowHeight +
116
+ // account for header
117
+ footerRowHeight +
118
+ // account for footer
119
+ scrollBarHeight; // account for horizontal scrollbar
120
120
 
121
- return unconstrainedHeight;
121
+ return unconstrainedHeight;
122
+ }, [defaultRowHeight, endRow, footerRowHeight, headerRowHeight, startRow, getCorrectRowIndex, rowHeightUtils, rowHeightsOptions, scrollBarHeight]);
122
123
  };
123
124
 
124
125
  /**
@@ -13,7 +13,7 @@ export var useImperativeGridRef = function useImperativeGridRef(_ref) {
13
13
  setIsFullScreen = _ref.setIsFullScreen,
14
14
  focusContext = _ref.focusContext,
15
15
  cellPopoverContext = _ref.cellPopoverContext,
16
- sortedRowMap = _ref.sortingContext.sortedRowMap,
16
+ sortedRowMap = _ref.sortedContext.sortedRowMap,
17
17
  pagination = _ref.pagination,
18
18
  rowCount = _ref.rowCount,
19
19
  visibleColCount = _ref.visibleColCount;
@@ -20,7 +20,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
20
20
  import { useCallback, useContext, useEffect, useMemo, useState } from 'react';
21
21
  import { useForceRender, useLatest } from '../../../services';
22
22
  import { isNumber, isObject } from '../../../services/predicate';
23
- import { DataGridSortingContext } from './sorting';
23
+ import { DataGridSortedContext } from './sorting';
24
24
 
25
25
  // TODO: Once JS variables are available, use them here instead of hard-coded maps
26
26
  export var cellPaddingsMap = {
@@ -325,7 +325,7 @@ export var useRowHeightUtils = function useRowHeightUtils(_ref2) {
325
325
  export var useDefaultRowHeight = function useDefaultRowHeight(_ref3) {
326
326
  var rowHeightsOptions = _ref3.rowHeightsOptions,
327
327
  rowHeightUtils = _ref3.rowHeightUtils;
328
- var _useContext = useContext(DataGridSortingContext),
328
+ var _useContext = useContext(DataGridSortedContext),
329
329
  getCorrectRowIndex = _useContext.getCorrectRowIndex;
330
330
 
331
331
  // `minRowHeight` is primarily used by undefined & lineCount heights
@@ -7,9 +7,9 @@
7
7
  */
8
8
 
9
9
  import { createContext, useMemo, useCallback } from 'react';
10
+ import { useDeepEqual } from '../../../services';
10
11
  import { defaultComparator } from './data_grid_schema';
11
- export var DataGridSortingContext = /*#__PURE__*/createContext({
12
- sorting: undefined,
12
+ export var DataGridSortedContext = /*#__PURE__*/createContext({
13
13
  sortedRowMap: [],
14
14
  getCorrectRowIndex: function getCorrectRowIndex(number) {
15
15
  return number;
@@ -22,22 +22,18 @@ export var useSorting = function useSorting(_ref) {
22
22
  schema = _ref.schema,
23
23
  schemaDetectors = _ref.schemaDetectors,
24
24
  startRow = _ref.startRow;
25
- var sortingColumns = sorting === null || sorting === void 0 ? void 0 : sorting.columns;
26
- var sortedRowMap = useMemo(function () {
27
- var rowMap = [];
25
+ var sortingColumns = useDeepEqual(sorting === null || sorting === void 0 ? void 0 : sorting.columns);
26
+ var sortedWrappedValues = useMemo(function () {
28
27
  if ((inMemory === null || inMemory === void 0 ? void 0 : inMemory.level) === 'sorting' && sortingColumns != null && sortingColumns.length > 0) {
29
28
  var inMemoryRowIndices = Object.keys(inMemoryValues);
30
- var wrappedValues = [];
31
- for (var i = 0; i < inMemoryRowIndices.length; i++) {
32
- var inMemoryRow = inMemoryValues[inMemoryRowIndices[i]];
33
- wrappedValues.push({
34
- index: i,
35
- values: inMemoryRow
36
- });
37
- }
38
- wrappedValues.sort(function (a, b) {
39
- for (var _i = 0; _i < sortingColumns.length; _i++) {
40
- var column = sortingColumns[_i];
29
+ return inMemoryRowIndices.map(function (row, index) {
30
+ return {
31
+ index: index,
32
+ values: inMemoryValues[row]
33
+ };
34
+ }).sort(function (a, b) {
35
+ for (var i = 0; i < sortingColumns.length; i++) {
36
+ var column = sortingColumns[i];
41
37
  var aValue = a.values[column.id];
42
38
  var bValue = b.values[column.id];
43
39
 
@@ -45,8 +41,8 @@ export var useSorting = function useSorting(_ref) {
45
41
  var comparator = defaultComparator;
46
42
  if (schema.hasOwnProperty(column.id)) {
47
43
  var columnType = schema[column.id].columnType;
48
- for (var _i2 = 0; _i2 < schemaDetectors.length; _i2++) {
49
- var detector = schemaDetectors[_i2];
44
+ for (var _i = 0; _i < schemaDetectors.length; _i++) {
45
+ var detector = schemaDetectors[_i];
50
46
  if (detector.type === columnType && detector.hasOwnProperty('comparator')) {
51
47
  comparator = detector.comparator;
52
48
  }
@@ -61,12 +57,17 @@ export var useSorting = function useSorting(_ref) {
61
57
  }
62
58
  return 0;
63
59
  });
64
- for (var _i3 = 0; _i3 < wrappedValues.length; _i3++) {
65
- rowMap[_i3] = wrappedValues[_i3].index;
66
- }
67
60
  }
68
- return rowMap;
69
61
  }, [inMemory === null || inMemory === void 0 ? void 0 : inMemory.level, inMemoryValues, sortingColumns, schema, schemaDetectors]);
62
+ var sortedRowMap = useMemo(function () {
63
+ if ((inMemory === null || inMemory === void 0 ? void 0 : inMemory.level) === 'sorting' && sortingColumns != null && sortingColumns.length > 0 && sortedWrappedValues != null) {
64
+ return sortedWrappedValues.map(function (row) {
65
+ return row.index;
66
+ });
67
+ } else {
68
+ return [];
69
+ }
70
+ }, [inMemory === null || inMemory === void 0 ? void 0 : inMemory.level, sortingColumns, sortedWrappedValues]);
70
71
 
71
72
  // Given a visible row index, obtain the unpaginated & unsorted
72
73
  // row index from the passed cell data
@@ -76,9 +77,10 @@ export var useSorting = function useSorting(_ref) {
76
77
  var unsortedRowIndex = unpaginatedRowIndex in sortedRowMap ? sortedRowMap[unpaginatedRowIndex] : unpaginatedRowIndex;
77
78
  return unsortedRowIndex;
78
79
  }, [startRow, sortedRowMap]);
79
- return {
80
- sorting: sorting,
81
- sortedRowMap: sortedRowMap,
82
- getCorrectRowIndex: getCorrectRowIndex
83
- };
80
+ return useMemo(function () {
81
+ return {
82
+ sortedRowMap: sortedRowMap,
83
+ getCorrectRowIndex: getCorrectRowIndex
84
+ };
85
+ }, [sortedRowMap, getCorrectRowIndex]);
84
86
  };
@@ -7,7 +7,7 @@ import _inherits from "@babel/runtime/helpers/inherits";
7
7
  import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
8
8
  import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
9
9
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
10
- var _excluded = ["className", "needsUpdate", "isLoading", "isDisabled", "onClick", "toolTipProps", "showTooltip", "iconOnly", "responsive", "textProps", "fill"];
10
+ var _excluded = ["children", "className", "needsUpdate", "isLoading", "isDisabled", "onClick", "toolTipProps", "showTooltip", "iconOnly", "responsive", "textProps", "fill"];
11
11
  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; }
12
12
  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) { _defineProperty(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; }
13
13
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
@@ -82,6 +82,7 @@ export var EuiSuperUpdateButton = /*#__PURE__*/function (_Component) {
82
82
  key: "render",
83
83
  value: function render() {
84
84
  var _this$props = this.props,
85
+ children = _this$props.children,
85
86
  className = _this$props.className,
86
87
  needsUpdate = _this$props.needsUpdate,
87
88
  isLoading = _this$props.isLoading,
@@ -97,31 +98,6 @@ export var EuiSuperUpdateButton = /*#__PURE__*/function (_Component) {
97
98
  // Force responsive for "all" if `iconOnly = true`
98
99
  var responsive = iconOnly ? 'all' : _responsive;
99
100
  var classes = classNames('euiSuperUpdateButton', className);
100
- var buttonText = ___EmotionJSX(EuiI18n, {
101
- token: "euiSuperUpdateButton.refreshButtonLabel",
102
- default: "Refresh"
103
- });
104
- if (needsUpdate || isLoading) {
105
- buttonText = isLoading ? ___EmotionJSX(EuiI18n, {
106
- token: "euiSuperUpdateButton.updatingButtonLabel",
107
- default: "Updating"
108
- }) : ___EmotionJSX(EuiI18n, {
109
- token: "euiSuperUpdateButton.updateButtonLabel",
110
- default: "Update"
111
- });
112
- }
113
- var tooltipContent;
114
- if (isDisabled) {
115
- tooltipContent = ___EmotionJSX(EuiI18n, {
116
- token: "euiSuperUpdateButton.cannotUpdateTooltip",
117
- default: "Cannot update"
118
- });
119
- } else if (needsUpdate && !isLoading) {
120
- tooltipContent = ___EmotionJSX(EuiI18n, {
121
- token: "euiSuperUpdateButton.clickToApplyTooltip",
122
- default: "Click to apply"
123
- });
124
- }
125
101
  var sharedButtonProps = {
126
102
  color: needsUpdate || isLoading ? 'success' : 'primary',
127
103
  iconType: needsUpdate || isLoading ? 'kqlFunction' : 'refresh',
@@ -129,9 +105,10 @@ export var EuiSuperUpdateButton = /*#__PURE__*/function (_Component) {
129
105
  onClick: onClick,
130
106
  isLoading: isLoading
131
107
  };
108
+ var buttonContent = this.renderButtonContent();
132
109
  return ___EmotionJSX(EuiToolTip, _extends({
133
110
  ref: this.setTootipRef,
134
- content: tooltipContent,
111
+ content: this.renderTooltipContent(),
135
112
  position: "bottom"
136
113
  }, toolTipProps), ___EmotionJSX(React.Fragment, null, ___EmotionJSX(EuiShowFor, {
137
114
  sizes: responsive || 'none'
@@ -143,7 +120,7 @@ export var EuiSuperUpdateButton = /*#__PURE__*/function (_Component) {
143
120
  textProps: _objectSpread(_objectSpread({}, restTextProps), {}, {
144
121
  className: classNames('euiScreenReaderOnly', restTextProps && restTextProps.className)
145
122
  })
146
- }, rest), buttonText)), ___EmotionJSX(EuiHideFor, {
123
+ }, rest), buttonContent)), ___EmotionJSX(EuiHideFor, {
147
124
  sizes: responsive || 'none'
148
125
  }, ___EmotionJSX(EuiButton, _extends({
149
126
  className: classes,
@@ -151,7 +128,50 @@ export var EuiSuperUpdateButton = /*#__PURE__*/function (_Component) {
151
128
  }, sharedButtonProps, {
152
129
  fill: fill,
153
130
  textProps: restTextProps
154
- }, rest), buttonText))));
131
+ }, rest), buttonContent))));
132
+ }
133
+ }, {
134
+ key: "renderButtonContent",
135
+ value: function renderButtonContent() {
136
+ var _this$props2 = this.props,
137
+ children = _this$props2.children,
138
+ isLoading = _this$props2.isLoading,
139
+ needsUpdate = _this$props2.needsUpdate;
140
+ if (children) {
141
+ return children;
142
+ }
143
+ if (isLoading) {
144
+ return ___EmotionJSX(EuiI18n, {
145
+ token: "euiSuperUpdateButton.updatingButtonLabel",
146
+ default: "Updating"
147
+ });
148
+ }
149
+ if (needsUpdate) {
150
+ return ___EmotionJSX(EuiI18n, {
151
+ token: "euiSuperUpdateButton.updateButtonLabel",
152
+ default: "Update"
153
+ });
154
+ }
155
+ return ___EmotionJSX(EuiI18n, {
156
+ token: "euiSuperUpdateButton.refreshButtonLabel",
157
+ default: "Refresh"
158
+ });
159
+ }
160
+ }, {
161
+ key: "renderTooltipContent",
162
+ value: function renderTooltipContent() {
163
+ if (this.props.isDisabled) {
164
+ return ___EmotionJSX(EuiI18n, {
165
+ token: "euiSuperUpdateButton.cannotUpdateTooltip",
166
+ default: "Cannot update"
167
+ });
168
+ }
169
+ if (this.props.needsUpdate && !this.props.isLoading) {
170
+ return ___EmotionJSX(EuiI18n, {
171
+ token: "euiSuperUpdateButton.clickToApplyTooltip",
172
+ default: "Click to apply"
173
+ });
174
+ }
155
175
  }
156
176
  }]);
157
177
  return EuiSuperUpdateButton;
@@ -9,12 +9,11 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
9
9
 
10
10
  import { css } from '@emotion/react';
11
11
  import { euiTextTruncate, euiTextShift, logicalTextAlignCSS } from '../../global_styling';
12
- import { euiLinkFocusCSS } from '../link/link.styles';
13
12
  export var euiFacetButtonStyles = function euiFacetButtonStyles(_ref3) {
14
13
  var euiTheme = _ref3.euiTheme;
15
14
  return {
16
15
  // Base
17
- euiFacetButton: /*#__PURE__*/css(logicalTextAlignCSS('left'), " &:hover,&:focus{&:not(:disabled) [class*='euiFacetButton__text']{text-decoration:underline;}}&:focus:not(:disabled) [class*='euiFacetButton__text']{", euiLinkFocusCSS(euiTheme), ";}&:disabled{color:", euiTheme.colors.disabledText, ";pointer-events:none;&:hover,&:focus{text-decoration:none;}};label:euiFacetButton;")
16
+ euiFacetButton: /*#__PURE__*/css(logicalTextAlignCSS('left'), " &:not(:disabled){&:hover,&:focus{text-decoration:none;.euiFacetButton__text{text-decoration:underline;}}&:focus .euiFacetButton__text{text-decoration-thickness:", euiTheme.border.width.thick, ";}}&:disabled{color:", euiTheme.colors.disabledText, ";pointer-events:none;};label:euiFacetButton;")
18
17
  };
19
18
  };
20
19
  export var euiFacetButtonTextStyles = function euiFacetButtonTextStyles(_ref4) {
@@ -1,6 +1,9 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["children", "className", "gutterSize", "direction", "alignItems", "responsive", "columns", "component"];
4
+ var _excluded = ["children", "className", "style", "gutterSize", "direction", "alignItems", "responsive", "columns", "component"];
5
+ 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; }
6
+ 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) { _defineProperty(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; }
4
7
  /*
5
8
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
6
9
  * or more contributor license agreements. Licensed under the Elastic License
@@ -9,9 +12,9 @@ var _excluded = ["children", "className", "gutterSize", "direction", "alignItems
9
12
  * Side Public License, v 1.
10
13
  */
11
14
 
12
- import React from 'react';
15
+ import React, { useMemo } from 'react';
13
16
  import classNames from 'classnames';
14
- import { useEuiTheme } from '../../services';
17
+ import { useEuiMemoizedStyles } from '../../services';
15
18
  import { euiFlexGridStyles } from './flex_grid.styles';
16
19
  import { jsx as ___EmotionJSX } from "@emotion/react";
17
20
  export var DIRECTIONS = ['row', 'column'];
@@ -20,6 +23,7 @@ export var GUTTER_SIZES = ['none', 's', 'm', 'l', 'xl'];
20
23
  export var EuiFlexGrid = function EuiFlexGrid(_ref) {
21
24
  var children = _ref.children,
22
25
  className = _ref.className,
26
+ style = _ref.style,
23
27
  _ref$gutterSize = _ref.gutterSize,
24
28
  gutterSize = _ref$gutterSize === void 0 ? 'l' : _ref$gutterSize,
25
29
  _ref$direction = _ref.direction,
@@ -33,13 +37,20 @@ export var EuiFlexGrid = function EuiFlexGrid(_ref) {
33
37
  _ref$component = _ref.component,
34
38
  Component = _ref$component === void 0 ? 'div' : _ref$component,
35
39
  rest = _objectWithoutProperties(_ref, _excluded);
36
- var gridTemplateRows = direction === 'column' ? Math.ceil(React.Children.count(children) / columns) : 0;
37
- var euiTheme = useEuiTheme();
38
- var styles = euiFlexGridStyles(euiTheme, gridTemplateRows);
39
- var cssStyles = [styles.euiFlexGrid, styles.gutterSizes[gutterSize], styles.direction[direction], styles.alignItems[alignItems], styles.columnCount[columns], responsive && styles.responsive];
40
40
  var classes = classNames('euiFlexGrid', className);
41
+ var styles = useEuiMemoizedStyles(euiFlexGridStyles);
42
+ var cssStyles = [styles.euiFlexGrid, styles.gutterSizes[gutterSize], styles.direction[direction], styles.alignItems[alignItems], styles.columnCount[columns], responsive && styles.responsive];
43
+ var columnDirectionStyles = useMemo(function () {
44
+ if (direction === 'column') {
45
+ var rowsToRender = Math.ceil(React.Children.count(children) / columns);
46
+ return {
47
+ gridTemplateRows: "repeat(".concat(rowsToRender, ", 1fr)")
48
+ };
49
+ }
50
+ }, [direction, columns, children]);
41
51
  return ___EmotionJSX(Component, _extends({
42
52
  css: cssStyles,
43
- className: classes
53
+ className: classes,
54
+ style: columnDirectionStyles ? _objectSpread(_objectSpread({}, style), columnDirectionStyles) : style
44
55
  }, rest), children);
45
56
  };