@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
@@ -26,16 +26,19 @@ var _excluded = ["target", "external"];
26
26
  * DRY util for indicating external links both via icon and to
27
27
  * screen readers. Used internally by at EuiLink and EuiListGroupItem
28
28
  */
29
- var EuiExternalLinkIcon = function EuiExternalLinkIcon(_ref) {
30
- var target = _ref.target,
31
- external = _ref.external,
32
- rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
33
- var _useEuiTheme = (0, _services.useEuiTheme)(),
34
- euiTheme = _useEuiTheme.euiTheme;
29
+ var iconStyle = function iconStyle(_ref) {
30
+ var euiTheme = _ref.euiTheme;
31
+ return (0, _global_styling.logicalStyle)('margin-left', euiTheme.size.xs);
32
+ };
33
+ var EuiExternalLinkIcon = function EuiExternalLinkIcon(_ref2) {
34
+ var target = _ref2.target,
35
+ external = _ref2.external,
36
+ rest = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
37
+ var iconCssStyle = (0, _services.useEuiMemoizedStyles)(iconStyle);
35
38
  var showExternalLinkIcon = target === '_blank' && external !== false || external === true;
36
39
  var iconAriaLabel = (0, _i18n.useEuiI18n)('euiExternalLinkIcon.ariaLabel', 'External link');
37
40
  return (0, _react2.jsx)(_react.default.Fragment, null, showExternalLinkIcon && (0, _react2.jsx)(_icon.EuiIcon, (0, _extends2.default)({
38
- css: (0, _global_styling.logicalStyle)('margin-left', euiTheme.size.xs),
41
+ css: iconCssStyle,
39
42
  "aria-label": iconAriaLabel,
40
43
  size: "s",
41
44
  type: "popout"
@@ -44,8 +44,7 @@ var EuiLink = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
44
44
  onClick = _ref.onClick,
45
45
  _disabled = _ref.disabled,
46
46
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
47
- var euiTheme = (0, _services.useEuiTheme)();
48
- var styles = (0, _link.euiLinkStyles)(euiTheme);
47
+ var styles = (0, _services.useEuiMemoizedStyles)(_link.euiLinkStyles);
49
48
  var cssStyles = [styles.euiLink];
50
49
  var isHrefValid = !href || (0, _href_validator.validateHref)(href);
51
50
  var disabled = _disabled || !isHrefValid;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.euiLinkStyles = exports.euiLinkHoverCSS = exports.euiLinkFocusCSS = exports.euiLinkCSS = void 0;
6
+ exports.euiLinkStyles = exports.euiLinkCSS = void 0;
7
7
  var _react = require("@emotion/react");
8
8
  var _global_styling = require("../../global_styling");
9
9
  function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } /*
@@ -13,20 +13,9 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
13
13
  * in compliance with, at your election, the Elastic License 2.0 or the Server
14
14
  * Side Public License, v 1.
15
15
  */
16
- var _colorCSS = function _colorCSS(color) {
17
- return "\n color: ".concat(color, ";\n\n &:target {\n color: darken(").concat(color, ", 10%);\n }\n ");
18
- };
19
- var euiLinkHoverCSS = function euiLinkHoverCSS() {
20
- return "\n text-decoration: underline;\n ";
21
- };
22
- exports.euiLinkHoverCSS = euiLinkHoverCSS;
23
- var euiLinkFocusCSS = function euiLinkFocusCSS(euiTheme) {
24
- return "\n text-decoration: underline;\n text-decoration-thickness: ".concat(euiTheme.border.width.thick, ";\n ");
25
- };
26
- exports.euiLinkFocusCSS = euiLinkFocusCSS;
27
16
  var euiLinkCSS = function euiLinkCSS(euiThemeContext) {
28
17
  var euiTheme = euiThemeContext.euiTheme;
29
- return "\n font-weight: ".concat(euiTheme.font.weight.medium, ";\n ").concat((0, _global_styling.logicalTextAlignCSS)('left'), "\n\n &:hover {\n ").concat(euiLinkHoverCSS(), "\n }\n\n &:focus {\n ").concat((0, _global_styling.euiFocusRing)(euiThemeContext, 'outset'), "\n ").concat(euiLinkFocusCSS(euiTheme), "\n }\n ");
18
+ return "\n font-weight: ".concat(euiTheme.font.weight.medium, ";\n ").concat((0, _global_styling.logicalTextAlignCSS)('left'), "\n\n &:hover {\n text-decoration: underline;\n }\n\n &:focus {\n ").concat((0, _global_styling.euiFocusRing)(euiThemeContext, 'outset'), "\n text-decoration: underline;\n text-decoration-thickness: ").concat(euiTheme.border.width.thick, ";\n }\n ");
30
19
  };
31
20
  exports.euiLinkCSS = euiLinkCSS;
32
21
  var _ref = process.env.NODE_ENV === "production" ? {
@@ -53,4 +42,7 @@ var euiLinkStyles = function euiLinkStyles(euiThemeContext) {
53
42
  text: /*#__PURE__*/(0, _react.css)(_colorCSS(euiTheme.colors.text), ";label:text;")
54
43
  };
55
44
  };
56
- exports.euiLinkStyles = euiLinkStyles;
45
+ exports.euiLinkStyles = euiLinkStyles;
46
+ var _colorCSS = function _colorCSS(color) {
47
+ return "\n color: ".concat(color, ";\n\n &:target {\n color: darken(").concat(color, ", 10%);\n }\n ");
48
+ };
@@ -83,7 +83,8 @@ var EuiConfirmModal = function EuiConfirmModal(_ref) {
83
83
  return (0, _react2.jsx)(_modal.EuiModal, (0, _extends2.default)({
84
84
  className: classes,
85
85
  css: cssStyles,
86
- onClose: onCancel
86
+ onClose: onCancel,
87
+ role: "alertdialog"
87
88
  }, rest), modalTitle, message && (0, _react2.jsx)(_modal_body.EuiModalBody, null, (0, _react2.jsx)(_text.EuiText, {
88
89
  "data-test-subj": "confirmModalBodyText"
89
90
  }, message)), (0, _react2.jsx)(_modal_footer.EuiModalFooter, null, (0, _react2.jsx)(_button.EuiButtonEmpty, {
@@ -17,7 +17,7 @@ var _overlay_mask = require("../overlay_mask");
17
17
  var _i18n = require("../i18n");
18
18
  var _modal = require("./modal.styles");
19
19
  var _react2 = require("@emotion/react");
20
- var _excluded = ["className", "children", "initialFocus", "onClose", "maxWidth", "style"];
20
+ var _excluded = ["className", "children", "initialFocus", "onClose", "maxWidth", "role", "style"];
21
21
  /*
22
22
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
23
23
  * or more contributor license agreements. Licensed under the Elastic License
@@ -34,6 +34,8 @@ var EuiModal = function EuiModal(_ref) {
34
34
  onClose = _ref.onClose,
35
35
  _ref$maxWidth = _ref.maxWidth,
36
36
  maxWidth = _ref$maxWidth === void 0 ? true : _ref$maxWidth,
37
+ _ref$role = _ref.role,
38
+ role = _ref$role === void 0 ? 'dialog' : _ref$role,
37
39
  style = _ref.style,
38
40
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
39
41
  var onKeyDown = function onKeyDown(event) {
@@ -63,7 +65,9 @@ var EuiModal = function EuiModal(_ref) {
63
65
  className: classes,
64
66
  onKeyDown: onKeyDown,
65
67
  tabIndex: 0,
66
- style: newStyle
68
+ style: newStyle,
69
+ role: role,
70
+ "aria-modal": true
67
71
  }, rest), (0, _react2.jsx)(_i18n.EuiI18n, {
68
72
  token: "euiModal.closeModal",
69
73
  default: "Closes this modal window"
@@ -40,14 +40,13 @@ var EuiResizeObserver = /*#__PURE__*/function (_EuiObserver) {
40
40
  height: 0,
41
41
  width: 0
42
42
  });
43
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onResize", function () {
44
- // `entry.contentRect` provides incomplete `height` and `width` data.
45
- // Use `getBoundingClientRect` to account for padding and border.
46
- // https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly
47
- if (!_this.childNode) return;
48
- var _this$childNode$getBo = _this.childNode.getBoundingClientRect(),
49
- height = _this$childNode$getBo.height,
50
- width = _this$childNode$getBo.width;
43
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onResize", function (_ref) {
44
+ var _ref2 = (0, _slicedToArray2.default)(_ref, 1),
45
+ entry = _ref2[0];
46
+ var _entry$borderBoxSize$ = entry.borderBoxSize[0],
47
+ width = _entry$borderBoxSize$.inlineSize,
48
+ height = _entry$borderBoxSize$.blockSize;
49
+
51
50
  // Check for actual resize event
52
51
  if (_this.state.height === height && _this.state.width === width) {
53
52
  return;
@@ -102,23 +101,15 @@ var useResizeObserver = function useResizeObserver(container, dimension) {
102
101
  }, [dimension]);
103
102
  (0, _react.useEffect)(function () {
104
103
  if (container != null) {
105
- // ResizeObserver's first call to the observation callback is scheduled in the future
106
- // so find the container's initial dimensions now
107
- var boundingRect = container.getBoundingClientRect();
108
- setSize({
109
- width: boundingRect.width,
110
- height: boundingRect.height
111
- });
112
- var observer = makeResizeObserver(container, function () {
113
- // `entry.contentRect` provides incomplete `height` and `width` data.
114
- // Use `getBoundingClientRect` to account for padding and border.
115
- // https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly
116
- var _container$getBoundin = container.getBoundingClientRect(),
117
- height = _container$getBoundin.height,
118
- width = _container$getBoundin.width;
104
+ var observer = makeResizeObserver(container, function (_ref3) {
105
+ var _ref4 = (0, _slicedToArray2.default)(_ref3, 1),
106
+ entry = _ref4[0];
107
+ var _entry$borderBoxSize$2 = entry.borderBoxSize[0],
108
+ inlineSize = _entry$borderBoxSize$2.inlineSize,
109
+ blockSize = _entry$borderBoxSize$2.blockSize;
119
110
  setSize({
120
- width: width,
121
- height: height
111
+ width: inlineSize,
112
+ height: blockSize
122
113
  });
123
114
  });
124
115
  return function () {
@@ -67,7 +67,7 @@ var euiProgressStyles = function euiProgressStyles(_ref3, isNative) {
67
67
  // https://css-tricks.com/html5-progress-element/
68
68
  // Good resource if you need to work in here. There's some gotchas with
69
69
  // dealing with cross-browser progress bars.
70
- native: /*#__PURE__*/(0, _react.css)("display:block;", (0, _global_styling.logicalCSS)('width', '100%'), " appearance:none;border:none;border-radius:", euiTheme.size.s, ";&::-webkit-progress-bar{background-color:", euiTheme.colors.lightShade, ";}", crossBrowserProgressValue('transition: width ${euiTheme.animation.normal} linear;'), ";;label:native;"),
70
+ native: /*#__PURE__*/(0, _react.css)("display:block;", (0, _global_styling.logicalCSS)('width', '100%'), " appearance:none;border:none;border-radius:", euiTheme.size.s, ";&::-webkit-progress-bar{background-color:", euiTheme.colors.lightShade, ";}", _global_styling.euiCanAnimate, "{/* Note: FF/Mozilla doesn't actually support animating the native progress bar\n @see https://bugzilla.mozilla.org/show_bug.cgi?id=662351 */", crossBrowserProgressValue("transition: width ".concat(euiTheme.animation.normal, " linear")), ";};label:native;"),
71
71
  // An indeterminate bar has an unreliable end time. Because of a Firefox animation issue,
72
72
  // we apply this style to a <div> instead of a <progress> element.
73
73
  // See https://css-tricks.com/html5-progress-element/ for more info.
@@ -36,8 +36,7 @@ var EuiSkeletonCircle = function EuiSkeletonCircle(_ref) {
36
36
  ariaWrapperProps = _ref.ariaWrapperProps,
37
37
  children = _ref.children,
38
38
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
39
- var euiTheme = (0, _services.useEuiTheme)();
40
- var styles = (0, _skeleton_circle.euiSkeletonCircleStyles)(euiTheme);
39
+ var styles = (0, _services.useEuiMemoizedStyles)(_skeleton_circle.euiSkeletonCircleStyles);
41
40
  var cssStyles = [styles.euiSkeletonCircle, styles[size]];
42
41
  return (0, _react2.jsx)(_skeleton_loading.EuiSkeletonLoading, (0, _extends2.default)({
43
42
  isLoading: isLoading,
@@ -45,8 +45,7 @@ var EuiSkeletonRectangle = function EuiSkeletonRectangle(_ref) {
45
45
  ariaWrapperProps = _ref.ariaWrapperProps,
46
46
  children = _ref.children,
47
47
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
48
- var euiTheme = (0, _services.useEuiTheme)();
49
- var styles = (0, _skeleton_rectangle.euiSkeletonRectangleStyles)(euiTheme);
48
+ var styles = (0, _services.useEuiMemoizedStyles)(_skeleton_rectangle.euiSkeletonRectangleStyles);
50
49
  var cssStyles = [styles.euiSkeletonRectangle, styles[borderRadius]];
51
50
  return (0, _react2.jsx)(_skeleton_loading.EuiSkeletonLoading, (0, _extends2.default)({
52
51
  isLoading: isLoading,
@@ -1,13 +1,14 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.LINES = exports.EuiSkeletonText = void 0;
8
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
- var _react = _interopRequireDefault(require("react"));
11
+ var _react = _interopRequireWildcard(require("react"));
11
12
  var _classnames = _interopRequireDefault(require("classnames"));
12
13
  var _services = require("../../services");
13
14
  var _skeleton_loading = require("./skeleton_loading");
@@ -21,6 +22,8 @@ var _excluded = ["isLoading", "lines", "size", "className", "contentAriaLabel",
21
22
  * in compliance with, at your election, the Elastic License 2.0 or the Server
22
23
  * Side Public License, v 1.
23
24
  */
25
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
24
27
  var LINES = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
25
28
  exports.LINES = LINES;
26
29
  var EuiSkeletonText = function EuiSkeletonText(_ref) {
@@ -38,16 +41,20 @@ var EuiSkeletonText = function EuiSkeletonText(_ref) {
38
41
  ariaWrapperProps = _ref.ariaWrapperProps,
39
42
  children = _ref.children,
40
43
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
41
- var euiTheme = (0, _services.useEuiTheme)();
42
- var styles = (0, _skeleton_text.euiSkeletonTextStyles)(euiTheme);
43
- var lineCssStyles = [styles.euiSkeletonText, styles[size]];
44
- var lineElements = [];
45
- for (var i = 0; i < lines; i++) {
46
- lineElements.push((0, _react2.jsx)("span", {
47
- key: i,
48
- css: lineCssStyles
49
- }));
50
- }
44
+ var styles = (0, _services.useEuiMemoizedStyles)(_skeleton_text.euiSkeletonTextStyles);
45
+ var cssStyles = (0, _react.useMemo)(function () {
46
+ return [styles.euiSkeletonText, styles[size]];
47
+ }, [styles, size]);
48
+ var lineElements = (0, _react.useMemo)(function () {
49
+ var lineElements = [];
50
+ for (var i = 0; i < lines; i++) {
51
+ lineElements.push((0, _react2.jsx)("span", {
52
+ key: i,
53
+ css: cssStyles
54
+ }));
55
+ }
56
+ return lineElements;
57
+ }, [lines, cssStyles]);
51
58
  return (0, _react2.jsx)(_skeleton_loading.EuiSkeletonLoading, (0, _extends2.default)({
52
59
  isLoading: isLoading,
53
60
  loadingContent: (0, _react2.jsx)("span", (0, _extends2.default)({
@@ -34,8 +34,7 @@ var EuiSkeletonTitle = function EuiSkeletonTitle(_ref) {
34
34
  ariaWrapperProps = _ref.ariaWrapperProps,
35
35
  children = _ref.children,
36
36
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
37
- var euiTheme = (0, _services.useEuiTheme)();
38
- var styles = (0, _skeleton_title.euiSkeletonTitleStyles)(euiTheme);
37
+ var styles = (0, _services.useEuiMemoizedStyles)(_skeleton_title.euiSkeletonTitleStyles);
39
38
  var cssStyles = [styles.euiSkeletonTitle, styles[size]];
40
39
  return (0, _react2.jsx)(_skeleton_loading.EuiSkeletonLoading, (0, _extends2.default)({
41
40
  isLoading: isLoading,
@@ -28,8 +28,7 @@ var EuiSpacer = function EuiSpacer(_ref) {
28
28
  _ref$size = _ref.size,
29
29
  size = _ref$size === void 0 ? 'l' : _ref$size,
30
30
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
31
- var euiTheme = (0, _services.useEuiTheme)();
32
- var styles = (0, _spacer.euiSpacerStyles)(euiTheme);
31
+ var styles = (0, _services.useEuiMemoizedStyles)(_spacer.euiSpacerStyles);
33
32
  var classes = (0, _classnames.default)('euiSpacer', (0, _defineProperty2.default)({}, "euiSpacer--".concat(size), size), className);
34
33
  var cssStyles = [styles.euiSpacer, styles[size]];
35
34
  return (0, _react2.jsx)("div", (0, _extends2.default)({
@@ -34,8 +34,7 @@ var EuiText = function EuiText(_ref) {
34
34
  children = _ref.children,
35
35
  className = _ref.className,
36
36
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
37
- var euiTheme = (0, _services.useEuiTheme)();
38
- var styles = (0, _text.euiTextStyles)(euiTheme);
37
+ var styles = (0, _services.useEuiMemoizedStyles)(_text.euiTextStyles);
39
38
  var cssStyles = [styles.euiText, !grow ? styles.constrainedWidth : undefined, styles[size]];
40
39
  var classes = (0, _classnames.default)('euiText', className);
41
40
  var text = (0, _react2.jsx)("div", (0, _extends2.default)({
@@ -33,8 +33,7 @@ var EuiTextAlign = function EuiTextAlign(_ref) {
33
33
  _ref$cloneElement = _ref.cloneElement,
34
34
  cloneElement = _ref$cloneElement === void 0 ? false : _ref$cloneElement,
35
35
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
36
- var styles = (0, _text_align.euiTextAlignStyles)();
37
- var cssStyles = [styles.euiTextAlign, styles[textAlign]];
36
+ var cssStyles = [_text_align.euiTextAlignStyles.euiTextAlign, _text_align.euiTextAlignStyles[textAlign]];
38
37
  var props = _objectSpread({
39
38
  css: cssStyles
40
39
  }, rest);
@@ -14,12 +14,10 @@ var _global_styling = require("../../global_styling");
14
14
  * Side Public License, v 1.
15
15
  */
16
16
 
17
- var euiTextAlignStyles = function euiTextAlignStyles() {
18
- return {
19
- euiTextAlign: /*#__PURE__*/(0, _react.css)(";label:euiTextAlign;"),
20
- left: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalTextAlignCSS)('left'), ";;label:left;"),
21
- right: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalTextAlignCSS)('right'), ";;label:right;"),
22
- center: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalTextAlignCSS)('center'), ";;label:center;")
23
- };
17
+ var euiTextAlignStyles = {
18
+ euiTextAlign: /*#__PURE__*/(0, _react.css)(";label:euiTextAlign;"),
19
+ left: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalTextAlignCSS)('left'), ";;label:left;"),
20
+ right: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalTextAlignCSS)('right'), ";;label:right;"),
21
+ center: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalTextAlignCSS)('center'), ";;label:center;")
24
22
  };
25
23
  exports.euiTextAlignStyles = euiTextAlignStyles;
@@ -37,8 +37,7 @@ var EuiTextColor = function EuiTextColor(_ref) {
37
37
  style = _ref.style,
38
38
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
39
39
  var isNamedColor = COLORS.includes(color);
40
- var euiTheme = (0, _services.useEuiTheme)();
41
- var styles = (0, _text_color.euiTextColorStyles)(euiTheme);
40
+ var styles = (0, _services.useEuiMemoizedStyles)(_text_color.euiTextColorStyles);
42
41
  var cssStyles = [styles.euiTextColor, isNamedColor ? styles[color] : styles.customColor];
43
42
 
44
43
  // We're checking if is a custom color.
@@ -31,8 +31,7 @@ var EuiTitle = function EuiTitle(_ref) {
31
31
  className = _ref.className,
32
32
  textTransform = _ref.textTransform,
33
33
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
34
- var euiTheme = (0, _services.useEuiTheme)();
35
- var styles = (0, _title.euiTitleStyles)(euiTheme);
34
+ var styles = (0, _services.useEuiMemoizedStyles)(_title.euiTitleStyles);
36
35
  var cssStyles = [styles.euiTitle, textTransform ? styles[textTransform] : undefined, styles[size]];
37
36
  var classes = (0, _classnames.default)('euiTitle', className, children.props.className);
38
37
  var props = _objectSpread({
@@ -4,10 +4,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.useEuiTitle = exports.euiTitleStyles = exports.euiTitle = void 0;
7
+ exports.euiTitleStyles = exports.euiTitle = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _react = require("@emotion/react");
10
- var _services = require("../../services");
11
10
  var _global_styling = require("../../global_styling");
12
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; }
13
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) { (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; }
@@ -40,17 +39,10 @@ var euiTitle = function euiTitle(euiThemeContext) {
40
39
  });
41
40
  };
42
41
 
43
- // Hook version
44
- exports.euiTitle = euiTitle;
45
- var useEuiTitle = function useEuiTitle(scale, options) {
46
- var euiTheme = (0, _services.useEuiTheme)();
47
- return euiTitle(euiTheme, scale, options);
48
- };
49
-
50
42
  /**
51
43
  * Styles
52
44
  */
53
- exports.useEuiTitle = useEuiTitle;
45
+ exports.euiTitle = euiTitle;
54
46
  var _ref = process.env.NODE_ENV === "production" ? {
55
47
  name: "1x2qsb1-uppercase",
56
48
  styles: "text-transform:uppercase;label:uppercase;"
@@ -76,10 +76,9 @@ var EuiGlobalToastList = function EuiGlobalToastList(_ref) {
76
76
  var isScrollingAnimationFrame = (0, _react.useRef)(0);
77
77
  var startScrollingAnimationFrame = (0, _react.useRef)(0);
78
78
  var listElement = (0, _react.useRef)(null);
79
- var euiTheme = (0, _services.useEuiTheme)();
80
- var styles = (0, _global_toast_list.euiGlobalToastListStyles)(euiTheme);
79
+ var styles = (0, _services.useEuiMemoizedStyles)(_global_toast_list.euiGlobalToastListStyles);
81
80
  var cssStyles = [styles.euiGlobalToastList, styles[side]];
82
- var startScrollingToBottom = function startScrollingToBottom() {
81
+ var startScrollingToBottom = (0, _react.useCallback)(function () {
83
82
  isScrollingToBottom.current = true;
84
83
  var scrollToBottom = function scrollToBottom() {
85
84
  // Although we cancel the requestAnimationFrame in componentWillUnmount,
@@ -102,8 +101,8 @@ var EuiGlobalToastList = function EuiGlobalToastList(_ref) {
102
101
  }
103
102
  };
104
103
  startScrollingAnimationFrame.current = window.requestAnimationFrame(scrollToBottom);
105
- };
106
- var onMouseEnter = function onMouseEnter() {
104
+ }, []);
105
+ var onMouseEnter = (0, _react.useCallback)(function () {
107
106
  // Stop scrolling to bottom if we're in mid-scroll, because the user wants to interact with
108
107
  // the list.
109
108
  isScrollingToBottom.current = false;
@@ -116,8 +115,8 @@ var EuiGlobalToastList = function EuiGlobalToastList(_ref) {
116
115
  timer.pause();
117
116
  }
118
117
  }
119
- };
120
- var onMouseLeave = function onMouseLeave() {
118
+ }, []);
119
+ var onMouseLeave = (0, _react.useCallback)(function () {
121
120
  isUserInteracting.current = false;
122
121
  for (var _toastId2 in toastIdToTimerMap.current) {
123
122
  if (toastIdToTimerMap.current.hasOwnProperty(_toastId2)) {
@@ -125,8 +124,8 @@ var EuiGlobalToastList = function EuiGlobalToastList(_ref) {
125
124
  timer.resume();
126
125
  }
127
126
  }
128
- };
129
- var onScroll = function onScroll() {
127
+ }, []);
128
+ var onScroll = (0, _react.useCallback)(function () {
130
129
  // Given that this method also gets invoked by the synthetic scroll that happens when a new toast gets added,
131
130
  // we want to evaluate if the scroll bottom has been reached only when the user is interacting with the toast,
132
131
  // this way we always retain the scroll position the user has set despite adding in new toasts.
@@ -134,7 +133,7 @@ var EuiGlobalToastList = function EuiGlobalToastList(_ref) {
134
133
  if (listElement.current && isUserInteracting.current) {
135
134
  isScrolledToBottom.current = listElement.current.scrollHeight - listElement.current.scrollTop === listElement.current.clientHeight;
136
135
  }
137
- };
136
+ }, []);
138
137
  var dismissToast = (0, _react.useCallback)(function (toast) {
139
138
  // Remove the toast after it's done fading out.
140
139
  dismissTimeoutIds.current.push(window.setTimeout(function () {
@@ -157,34 +156,29 @@ var EuiGlobalToastList = function EuiGlobalToastList(_ref) {
157
156
  }
158
157
  });
159
158
  }, [scheduleToastForDismissal, toasts]);
160
- var addListeners = function addListeners() {
161
- if (listElement.current) {
162
- listElement.current.addEventListener('scroll', onScroll);
163
- listElement.current.addEventListener('mouseenter', onMouseEnter);
164
- listElement.current.addEventListener('mouseleave', onMouseLeave);
165
- }
166
- };
167
- var removeListeners = function removeListeners() {
168
- if (listElement.current) {
169
- listElement.current.removeEventListener('scroll', onScroll);
170
- listElement.current.removeEventListener('mouseenter', onMouseEnter);
171
- listElement.current.removeEventListener('mouseleave', onMouseLeave);
172
- }
173
- };
174
159
 
175
160
  // componentDidMount
176
161
  (0, _react.useEffect)(function () {
177
- addListeners();
162
+ var listenerEl = listElement.current;
163
+ if (listenerEl) {
164
+ listenerEl.addEventListener('scroll', onScroll);
165
+ listenerEl.addEventListener('mouseenter', onMouseEnter);
166
+ listenerEl.addEventListener('mouseleave', onMouseLeave);
167
+ }
178
168
 
179
169
  // componentWillUnmount
180
170
  return function () {
171
+ if (listenerEl) {
172
+ listenerEl.removeEventListener('scroll', onScroll);
173
+ listenerEl.removeEventListener('mouseenter', onMouseEnter);
174
+ listenerEl.removeEventListener('mouseleave', onMouseLeave);
175
+ }
181
176
  if (isScrollingAnimationFrame.current !== 0) {
182
177
  window.cancelAnimationFrame(isScrollingAnimationFrame.current);
183
178
  }
184
179
  if (startScrollingAnimationFrame.current !== 0) {
185
180
  window.cancelAnimationFrame(startScrollingAnimationFrame.current);
186
181
  }
187
- removeListeners();
188
182
  dismissTimeoutIds.current.forEach(clearTimeout); // eslint-disable-line react-hooks/exhaustive-deps
189
183
  for (var _toastId3 in toastIdToTimerMap.current) {
190
184
  if (toastIdToTimerMap.current.hasOwnProperty(_toastId3)) {
@@ -193,7 +187,7 @@ var EuiGlobalToastList = function EuiGlobalToastList(_ref) {
193
187
  }
194
188
  }
195
189
  };
196
- }, []); // eslint-disable-line react-hooks/exhaustive-deps
190
+ }, [onMouseEnter, onMouseLeave, onScroll]);
197
191
 
198
192
  // componentDidUpdate
199
193
  (0, _react.useEffect)(function () {
@@ -208,7 +202,7 @@ var EuiGlobalToastList = function EuiGlobalToastList(_ref) {
208
202
  }
209
203
  }
210
204
  prevToasts.current = toasts;
211
- }, [toasts, scheduleAllToastsForDismissal]);
205
+ }, [toasts, scheduleAllToastsForDismissal, startScrollingToBottom]);
212
206
 
213
207
  // Toast dismissal side effect
214
208
  // Ensure the callback has correct state by not enclosing it in `setTimeout`
@@ -229,49 +223,52 @@ var EuiGlobalToastList = function EuiGlobalToastList(_ref) {
229
223
  });
230
224
  }
231
225
  }, [toastToDismiss, dismissToastProp]);
232
- var renderedToasts = toasts.map(function (toast) {
233
- var text = toast.text,
234
- toastLifeTimeMs = toast.toastLifeTimeMs,
235
- rest = (0, _objectWithoutProperties2.default)(toast, _excluded2);
236
- var onClose = function onClose() {
237
- return dismissToast(toast);
238
- };
239
- return (0, _react2.jsx)(_global_toast_list_item.EuiGlobalToastListItem, {
240
- key: toast.id,
241
- isDismissed: toastIdToDismissedMap[toast.id]
242
- }, (0, _react2.jsx)(_toast.EuiToast, (0, _extends2.default)({
243
- onClose: onClose,
244
- onFocus: onMouseEnter,
245
- onBlur: onMouseLeave
246
- }, rest), text));
247
- });
248
- if (showClearAllButtonAt && toasts.length >= showClearAllButtonAt) {
249
- var dismissAllToasts = function dismissAllToasts() {
250
- toasts.forEach(function (toast) {
251
- return dismissToastProp(toast);
252
- });
253
- onClearAllToasts === null || onClearAllToasts === void 0 ? void 0 : onClearAllToasts();
254
- };
255
- renderedToasts.push((0, _react2.jsx)(_i18n.EuiI18n, {
256
- key: "euiClearAllToasts",
257
- tokens: ['euiGlobalToastList.clearAllToastsButtonAriaLabel', 'euiGlobalToastList.clearAllToastsButtonDisplayText'],
258
- defaults: ['Clear all toast notifications', 'Clear all']
259
- }, function (_ref2) {
260
- var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
261
- clearAllToastsButtonAriaLabel = _ref3[0],
262
- clearAllToastsButtonDisplayText = _ref3[1];
226
+ var renderedToasts = (0, _react.useMemo)(function () {
227
+ return toasts.map(function (toast) {
228
+ var text = toast.text,
229
+ toastLifeTimeMs = toast.toastLifeTimeMs,
230
+ rest = (0, _objectWithoutProperties2.default)(toast, _excluded2);
231
+ var onClose = function onClose() {
232
+ return dismissToast(toast);
233
+ };
263
234
  return (0, _react2.jsx)(_global_toast_list_item.EuiGlobalToastListItem, {
264
- isDismissed: false
265
- }, (0, _react2.jsx)(_button.EuiButton, {
266
- fill: true,
267
- color: "text",
268
- onClick: dismissAllToasts,
269
- css: [styles.euiGlobalToastListDismissButton, ";label:EuiGlobalToastList;"],
270
- "aria-label": clearAllToastsButtonAriaLabel,
271
- "data-test-subj": "euiClearAllToastsButton"
272
- }, clearAllToastsButtonDisplayText));
273
- }));
274
- }
235
+ key: toast.id,
236
+ isDismissed: toastIdToDismissedMap[toast.id]
237
+ }, (0, _react2.jsx)(_toast.EuiToast, (0, _extends2.default)({
238
+ onClose: onClose,
239
+ onFocus: onMouseEnter,
240
+ onBlur: onMouseLeave
241
+ }, rest), text));
242
+ });
243
+ }, [toasts, toastIdToDismissedMap, dismissToast, onMouseEnter, onMouseLeave]);
244
+ var clearAllButton = (0, _react.useMemo)(function () {
245
+ if (toasts.length && showClearAllButtonAt && toasts.length >= showClearAllButtonAt) {
246
+ return (0, _react2.jsx)(_i18n.EuiI18n, {
247
+ key: "euiClearAllToasts",
248
+ tokens: ['euiGlobalToastList.clearAllToastsButtonAriaLabel', 'euiGlobalToastList.clearAllToastsButtonDisplayText'],
249
+ defaults: ['Clear all toast notifications', 'Clear all']
250
+ }, function (_ref2) {
251
+ var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
252
+ clearAllToastsButtonAriaLabel = _ref3[0],
253
+ clearAllToastsButtonDisplayText = _ref3[1];
254
+ return (0, _react2.jsx)(_global_toast_list_item.EuiGlobalToastListItem, {
255
+ isDismissed: false
256
+ }, (0, _react2.jsx)(_button.EuiButton, {
257
+ fill: true,
258
+ color: "text",
259
+ onClick: function onClick() {
260
+ toasts.forEach(function (toast) {
261
+ return dismissToastProp(toast);
262
+ });
263
+ onClearAllToasts === null || onClearAllToasts === void 0 ? void 0 : onClearAllToasts();
264
+ },
265
+ css: styles.euiGlobalToastListDismissButton,
266
+ "aria-label": clearAllToastsButtonAriaLabel,
267
+ "data-test-subj": "euiClearAllToastsButton"
268
+ }, clearAllToastsButtonDisplayText));
269
+ });
270
+ }
271
+ }, [showClearAllButtonAt, onClearAllToasts, toasts, dismissToastProp, styles]);
275
272
  var classes = (0, _classnames.default)('euiGlobalToastList', className);
276
273
  return (0, _react2.jsx)("div", (0, _extends2.default)({
277
274
  "aria-live": "polite",
@@ -279,6 +276,6 @@ var EuiGlobalToastList = function EuiGlobalToastList(_ref) {
279
276
  ref: listElement,
280
277
  css: cssStyles,
281
278
  className: classes
282
- }, rest), renderedToasts);
279
+ }, rest), renderedToasts, clearAllButton);
283
280
  };
284
281
  exports.EuiGlobalToastList = EuiGlobalToastList;