@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
@@ -35,47 +35,11 @@ var EuiToast = function EuiToast(_ref) {
35
35
  children = _ref.children,
36
36
  className = _ref.className,
37
37
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
38
- var euiTheme = (0, _services.useEuiTheme)();
39
- var baseStyles = (0, _toast.euiToastStyles)(euiTheme);
38
+ var baseStyles = (0, _services.useEuiMemoizedStyles)(_toast.euiToastStyles);
40
39
  var baseCss = [baseStyles.euiToast, color && baseStyles[color]];
41
- var bodyStyles = (0, _toast.euiToastBodyStyles)();
42
- var headerStyles = (0, _toast.euiToastHeaderStyles)(euiTheme);
40
+ var headerStyles = (0, _services.useEuiMemoizedStyles)(_toast.euiToastHeaderStyles);
43
41
  var headerCss = [headerStyles.euiToastHeader, children && headerStyles.withBody];
44
42
  var classes = (0, _classnames.default)('euiToast', className);
45
- var headerIcon;
46
- if (iconType) {
47
- headerIcon = (0, _react2.jsx)(_icon.EuiIcon, {
48
- css: headerStyles.euiToastHeader__icon,
49
- type: iconType,
50
- size: "m",
51
- "aria-hidden": "true"
52
- });
53
- }
54
- var closeButton;
55
- if (onClose) {
56
- closeButton = (0, _react2.jsx)(_i18n.EuiI18n, {
57
- token: "euiToast.dismissToast",
58
- default: "Dismiss toast"
59
- }, function (dismissToast) {
60
- return (0, _react2.jsx)(_button.EuiButtonIcon, {
61
- css: baseStyles.euiToast__closeButton,
62
- iconType: "cross",
63
- color: "text",
64
- size: "xs",
65
- "aria-label": dismissToast,
66
- onClick: onClose,
67
- "data-test-subj": "toastCloseButton"
68
- });
69
- });
70
- }
71
- var optionalBody;
72
- if (children) {
73
- optionalBody = (0, _react2.jsx)(_text.EuiText, {
74
- css: bodyStyles.euiToastBody,
75
- size: "s",
76
- "data-test-subj": "euiToastBody"
77
- }, children);
78
- }
79
43
  return (0, _react2.jsx)("div", (0, _extends2.default)({
80
44
  css: baseCss,
81
45
  className: classes
@@ -90,10 +54,31 @@ var EuiToast = function EuiToast(_ref) {
90
54
  css: headerCss,
91
55
  "aria-label": notification,
92
56
  "data-test-subj": "euiToastHeader"
93
- }, headerIcon, (0, _react2.jsx)("span", {
57
+ }, iconType && (0, _react2.jsx)(_icon.EuiIcon, {
58
+ css: headerStyles.euiToastHeader__icon,
59
+ type: iconType,
60
+ size: "m",
61
+ "aria-hidden": "true"
62
+ }), (0, _react2.jsx)("span", {
94
63
  css: headerStyles.euiToastHeader__title,
95
64
  "data-test-subj": "euiToastHeader__title"
96
65
  }, title));
97
- }), closeButton, optionalBody);
66
+ }), onClose && (0, _react2.jsx)(_i18n.EuiI18n, {
67
+ token: "euiToast.dismissToast",
68
+ default: "Dismiss toast"
69
+ }, function (dismissToast) {
70
+ return (0, _react2.jsx)(_button.EuiButtonIcon, {
71
+ css: baseStyles.euiToast__closeButton,
72
+ iconType: "cross",
73
+ color: "text",
74
+ size: "xs",
75
+ "aria-label": dismissToast,
76
+ onClick: onClose,
77
+ "data-test-subj": "toastCloseButton"
78
+ });
79
+ }), children && (0, _react2.jsx)(_text.EuiText, {
80
+ size: "s",
81
+ "data-test-subj": "euiToastBody"
82
+ }, children));
98
83
  };
99
84
  exports.EuiToast = EuiToast;
@@ -3,23 +3,24 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.euiToastStyles = exports.euiToastHeaderStyles = exports.euiToastBodyStyles = void 0;
6
+ exports.euiToastStyles = exports.euiToastHeaderStyles = void 0;
7
7
  var _react = require("@emotion/react");
8
8
  var _global_styling = require("../../global_styling");
9
9
  var _amsterdam = require("../../themes/amsterdam");
10
10
  var _title = require("../title/title.styles");
11
- function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } /*
12
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
13
- * or more contributor license agreements. Licensed under the Elastic License
14
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
15
- * in compliance with, at your election, the Elastic License 2.0 or the Server
16
- * Side Public License, v 1.
17
- */
11
+ /*
12
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
13
+ * or more contributor license agreements. Licensed under the Elastic License
14
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
15
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
16
+ * Side Public License, v 1.
17
+ */
18
+
18
19
  var euiToastStyles = function euiToastStyles(euiThemeContext) {
19
20
  var euiTheme = euiThemeContext.euiTheme;
20
21
  return {
21
22
  // Base
22
- euiToast: /*#__PURE__*/(0, _react.css)("border-radius:", euiTheme.border.radius.medium, ";", (0, _amsterdam.euiShadowLarge)(euiThemeContext), " position:relative;", (0, _global_styling.logicalCSS)('padding-horizontal', euiTheme.size.base), " ", (0, _global_styling.logicalCSS)('padding-vertical', euiTheme.size.base), " background-color:", euiTheme.colors.emptyShade, ";", (0, _global_styling.logicalCSS)('width', '100%'), " &:hover,&:focus{[class*='euiToast__closeButton']{opacity:1;}};label:euiToast;"),
23
+ euiToast: /*#__PURE__*/(0, _react.css)("border-radius:", euiTheme.border.radius.medium, ";", (0, _amsterdam.euiShadowLarge)(euiThemeContext), " position:relative;", (0, _global_styling.logicalCSS)('padding-horizontal', euiTheme.size.base), " ", (0, _global_styling.logicalCSS)('padding-vertical', euiTheme.size.base), " background-color:", euiTheme.colors.emptyShade, ";", (0, _global_styling.logicalCSS)('width', '100%'), " ", (0, _global_styling.euiTextBreakWord)(), "&:hover,&:focus{[class*='euiToast__closeButton']{opacity:1;}};label:euiToast;"),
23
24
  // Elements
24
25
  euiToast__closeButton: /*#__PURE__*/(0, _react.css)("position:absolute;", (0, _global_styling.logicalCSS)('top', euiTheme.size.base), " ", (0, _global_styling.logicalCSS)('right', euiTheme.size.base), ";;label:euiToast__closeButton;"),
25
26
  // Variants
@@ -42,19 +43,4 @@ var euiToastHeaderStyles = function euiToastHeaderStyles(euiThemeContext) {
42
43
  withBody: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('margin-bottom', euiTheme.size.s), ";;label:withBody;")
43
44
  };
44
45
  };
45
- exports.euiToastHeaderStyles = euiToastHeaderStyles;
46
- var _ref = process.env.NODE_ENV === "production" ? {
47
- name: "1xv63y1-euiToastBody",
48
- styles: "word-wrap:break-word;label:euiToastBody;"
49
- } : {
50
- name: "1xv63y1-euiToastBody",
51
- styles: "word-wrap:break-word;label:euiToastBody;",
52
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
53
- };
54
- var euiToastBodyStyles = function euiToastBodyStyles() {
55
- return {
56
- // Base
57
- euiToastBody: _ref
58
- };
59
- };
60
- exports.euiToastBodyStyles = euiToastBodyStyles;
46
+ exports.euiToastHeaderStyles = euiToastHeaderStyles;
@@ -1,20 +1,23 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
- exports.useEuiNumberFormat = exports.useEuiFontSize = exports.euiTextTruncate = exports.euiTextBreakWord = exports.euiNumberFormat = exports.euiFontSize = void 0;
7
+ exports.useEuiFontSize = exports.euiTextTruncate = exports.euiTextBreakWord = exports.euiNumberFormat = exports.euiFontSize = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
9
  var _typography = require("../functions/typography");
8
- var _hooks = require("../../services/theme/hooks");
10
+ var _theme = require("../../services/theme");
11
+ var _typography2 = require("../variables/typography");
9
12
  var _functions = require("../functions");
10
- /*
11
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
12
- * or more contributor license agreements. Licensed under the Elastic License
13
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
14
- * in compliance with, at your election, the Elastic License 2.0 or the Server
15
- * Side Public License, v 1.
16
- */
17
-
13
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
14
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } /*
15
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
16
+ * or more contributor license agreements. Licensed under the Elastic License
17
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
18
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
19
+ * Side Public License, v 1.
20
+ */
18
21
  /**
19
22
  * Returns font-size and line-height
20
23
  */
@@ -27,15 +30,23 @@ var euiFontSize = function euiFontSize(_ref, scale, options) {
27
30
  };
28
31
  exports.euiFontSize = euiFontSize;
29
32
  var useEuiFontSize = function useEuiFontSize(scale, options) {
30
- var euiTheme = (0, _hooks.useEuiTheme)();
31
- return euiFontSize(euiTheme, scale, options);
33
+ var euiTheme = (0, _theme.useEuiTheme)();
34
+ var memoizedFontSizes = (0, _theme.useEuiMemoizedStyles)(euiFontSizes);
35
+ return !options ? memoizedFontSizes[scale] : euiFontSize(euiTheme, scale, options);
36
+ };
37
+ // Memomize a basic set of font sizes. We unfortunately can't
38
+ // memoize all possible options, there's too many permutations
39
+ exports.useEuiFontSize = useEuiFontSize;
40
+ var euiFontSizes = function euiFontSizes(euiThemeContext) {
41
+ return _typography2.EuiThemeFontScales.reduce(function (map, scale) {
42
+ return _objectSpread(_objectSpread({}, map), {}, (0, _defineProperty2.default)({}, scale, euiFontSize(euiThemeContext, scale)));
43
+ }, {});
32
44
  };
33
45
 
34
46
  /**
35
47
  * Force text to wrap on natural word breaks (e.g. spaces & hyphens)
36
48
  * https://css-tricks.com/snippets/css/prevent-long-urls-from-breaking-out-of-container/
37
49
  */
38
- exports.useEuiFontSize = useEuiFontSize;
39
50
  var euiTextBreakWord = function euiTextBreakWord() {
40
51
  return "\n overflow-wrap: break-word !important; // makes sure the long string will wrap and not bust out of the container\n word-break: break-word;\n";
41
52
  };
@@ -58,9 +69,4 @@ var euiNumberFormat = function euiNumberFormat(_ref2) {
58
69
  var euiTheme = _ref2.euiTheme;
59
70
  return "\n font-feature-settings: ".concat(euiTheme.font.featureSettings, ", 'tnum' 1;\n");
60
71
  };
61
- exports.euiNumberFormat = euiNumberFormat;
62
- var useEuiNumberFormat = function useEuiNumberFormat() {
63
- var euiTheme = (0, _hooks.useEuiTheme)();
64
- return euiNumberFormat(euiTheme);
65
- };
66
- exports.useEuiNumberFormat = useEuiNumberFormat;
72
+ exports.euiNumberFormat = euiNumberFormat;
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.euiPaletteWarm = exports.euiPalettePositive = exports.euiPaletteNegative = exports.euiPaletteGray = exports.euiPaletteForTemperature = exports.euiPaletteForStatus = exports.euiPaletteForLightBackground = exports.euiPaletteForDarkBackground = exports.euiPaletteCool = exports.euiPaletteComplementary = exports.euiPaletteColorBlindBehindText = exports.euiPaletteColorBlind = void 0;
7
+ exports.euiPaletteWarm = exports.euiPaletteRed = exports.euiPalettePositive = exports.euiPaletteNegative = exports.euiPaletteGreen = exports.euiPaletteGray = exports.euiPaletteForTemperature = exports.euiPaletteForStatus = exports.euiPaletteForLightBackground = exports.euiPaletteForDarkBackground = exports.euiPaletteCool = exports.euiPaletteComplementary = exports.euiPaletteColorBlindBehindText = exports.euiPaletteColorBlind = void 0;
8
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
9
  var _chromaJs = _interopRequireDefault(require("chroma-js"));
10
10
  var _color_palette = require("./color_palette");
@@ -129,19 +129,19 @@ var euiPaletteForDarkBackground = function euiPaletteForDarkBackground() {
129
129
  return ['#1BA9F5', '#7DE2D1', '#F990C0', '#F66', '#FFCE7A'];
130
130
  };
131
131
  exports.euiPaletteForDarkBackground = euiPaletteForDarkBackground;
132
- var positiveColor = '#209280';
133
- var negativeColor = '#CC5642';
134
- var lightNegativeColor = euiPaletteColorBlind()[9];
132
+ var greenColor = '#209280';
133
+ var redColor = '#CC5642';
134
+ var lightRedColor = euiPaletteColorBlind()[9];
135
135
  var coolArray = [euiPaletteColorBlind()[1], '#6092C0'];
136
136
  var warmArray = [euiPaletteColorBlind()[7], euiPaletteColorBlind()[9]];
137
137
  var euiPaletteForStatus = function euiPaletteForStatus(steps) {
138
138
  if (steps === 1) {
139
- return [positiveColor];
139
+ return [greenColor];
140
140
  }
141
141
  if (steps <= 3) {
142
- return euiPalette([positiveColor, euiPaletteColorBlind()[5], negativeColor], steps, true);
142
+ return euiPalette([greenColor, euiPaletteColorBlind()[5], redColor], steps, true);
143
143
  }
144
- return euiPalette([positiveColor, euiPaletteColorBlind()[0], euiPaletteColorBlind()[5], lightNegativeColor, negativeColor], steps, true);
144
+ return euiPalette([greenColor, euiPaletteColorBlind()[0], euiPaletteColorBlind()[5], lightRedColor, redColor], steps, true);
145
145
  };
146
146
  exports.euiPaletteForStatus = euiPaletteForStatus;
147
147
  var euiPaletteForTemperature = function euiPaletteForTemperature(steps) {
@@ -150,7 +150,7 @@ var euiPaletteForTemperature = function euiPaletteForTemperature(steps) {
150
150
  if (steps === 1) {
151
151
  return [cools[0]];
152
152
  } else if (steps <= 3) {
153
- return euiPalette([cools[0], lightNegativeColor], steps, true);
153
+ return euiPalette([cools[0], lightRedColor], steps, true);
154
154
  }
155
155
  return euiPalette([].concat((0, _toConsumableArray2.default)(cools), (0, _toConsumableArray2.default)(warms)), steps, true);
156
156
  };
@@ -162,19 +162,29 @@ var euiPaletteComplementary = function euiPaletteComplementary(steps) {
162
162
  return euiPalette([euiPaletteColorBlind()[1], euiPaletteColorBlind()[7]], steps, true);
163
163
  };
164
164
  exports.euiPaletteComplementary = euiPaletteComplementary;
165
- var euiPaletteNegative = function euiPaletteNegative(steps) {
165
+ var euiPaletteRed = function euiPaletteRed(steps) {
166
166
  if (steps === 1) {
167
- return [lightNegativeColor];
167
+ return [lightRedColor];
168
168
  }
169
- return euiPalette(['white', negativeColor], steps);
169
+ return euiPalette(['white', redColor], steps);
170
170
  };
171
+ /**
172
+ * @deprecated - use `euiPaletteRed` instead
173
+ */
174
+ exports.euiPaletteRed = euiPaletteRed;
175
+ var euiPaletteNegative = euiPaletteRed;
171
176
  exports.euiPaletteNegative = euiPaletteNegative;
172
- var euiPalettePositive = function euiPalettePositive(steps) {
177
+ var euiPaletteGreen = function euiPaletteGreen(steps) {
173
178
  if (steps === 1) {
174
179
  return [euiPaletteColorBlind()[0]];
175
180
  }
176
- return euiPalette(['white', positiveColor], steps);
181
+ return euiPalette(['white', greenColor], steps);
177
182
  };
183
+ /**
184
+ * @deprecated - use `euiPaletteGreen` instead
185
+ */
186
+ exports.euiPaletteGreen = euiPaletteGreen;
187
+ var euiPalettePositive = euiPaletteGreen;
178
188
  exports.euiPalettePositive = euiPalettePositive;
179
189
  var euiPaletteCool = function euiPaletteCool(steps) {
180
190
  if (steps === 1) {
@@ -185,7 +195,7 @@ var euiPaletteCool = function euiPaletteCool(steps) {
185
195
  exports.euiPaletteCool = euiPaletteCool;
186
196
  var euiPaletteWarm = function euiPaletteWarm(steps) {
187
197
  if (steps === 1) {
188
- return [lightNegativeColor];
198
+ return [lightRedColor];
189
199
  }
190
200
  return euiPalette(['#FBFBDC'].concat(warmArray), steps);
191
201
  };
@@ -24,6 +24,8 @@ var _exportNames = {
24
24
  euiPaletteForStatus: true,
25
25
  euiPaletteForTemperature: true,
26
26
  euiPaletteComplementary: true,
27
+ euiPaletteRed: true,
28
+ euiPaletteGreen: true,
27
29
  euiPaletteNegative: true,
28
30
  euiPalettePositive: true,
29
31
  euiPaletteCool: true,
@@ -115,6 +117,12 @@ Object.defineProperty(exports, "euiPaletteGray", {
115
117
  return _eui_palettes.euiPaletteGray;
116
118
  }
117
119
  });
120
+ Object.defineProperty(exports, "euiPaletteGreen", {
121
+ enumerable: true,
122
+ get: function get() {
123
+ return _eui_palettes.euiPaletteGreen;
124
+ }
125
+ });
118
126
  Object.defineProperty(exports, "euiPaletteNegative", {
119
127
  enumerable: true,
120
128
  get: function get() {
@@ -127,6 +135,12 @@ Object.defineProperty(exports, "euiPalettePositive", {
127
135
  return _eui_palettes.euiPalettePositive;
128
136
  }
129
137
  });
138
+ Object.defineProperty(exports, "euiPaletteRed", {
139
+ enumerable: true,
140
+ get: function get() {
141
+ return _eui_palettes.euiPaletteRed;
142
+ }
143
+ });
130
144
  Object.defineProperty(exports, "euiPaletteWarm", {
131
145
  enumerable: true,
132
146
  get: function get() {
@@ -47,6 +47,17 @@ Object.keys(_useLatest).forEach(function (key) {
47
47
  }
48
48
  });
49
49
  });
50
+ var _useDeepEqual = require("./useDeepEqual");
51
+ Object.keys(_useDeepEqual).forEach(function (key) {
52
+ if (key === "default" || key === "__esModule") return;
53
+ if (key in exports && exports[key] === _useDeepEqual[key]) return;
54
+ Object.defineProperty(exports, key, {
55
+ enumerable: true,
56
+ get: function get() {
57
+ return _useDeepEqual[key];
58
+ }
59
+ });
60
+ });
50
61
  var _useMouseMove = require("./useMouseMove");
51
62
  Object.keys(_useMouseMove).forEach(function (key) {
52
63
  if (key === "default" || key === "__esModule") return;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useDeepEqual = void 0;
8
+ var _react = require("react");
9
+ var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
10
+ /*
11
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
12
+ * or more contributor license agreements. Licensed under the Elastic License
13
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
14
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
15
+ * Side Public License, v 1.
16
+ */
17
+
18
+ /**
19
+ * This hook is mostly a performance concern for third-party objs/arrays that EUI
20
+ * has no control over and may not be correctly memoized (i.e., will create a new
21
+ * reference on every rerender unless passed through this hook).
22
+ */
23
+ var useDeepEqual = function useDeepEqual(object) {
24
+ var ref = (0, _react.useRef)(object);
25
+ if (!(0, _isEqual.default)(object, ref.current)) {
26
+ ref.current = object;
27
+ }
28
+ return ref.current;
29
+ };
30
+ exports.useDeepEqual = useDeepEqual;
@@ -34,8 +34,10 @@ var _exportNames = {
34
34
  euiPaletteForStatus: true,
35
35
  euiPaletteForTemperature: true,
36
36
  euiPaletteGray: true,
37
- euiPaletteNegative: true,
37
+ euiPaletteRed: true,
38
+ euiPaletteGreen: true,
38
39
  euiPalettePositive: true,
40
+ euiPaletteNegative: true,
39
41
  euiPaletteWarm: true,
40
42
  getSteppedGradient: true,
41
43
  hexToHsv: true,
@@ -285,6 +287,12 @@ Object.defineProperty(exports, "euiPaletteGray", {
285
287
  return _color.euiPaletteGray;
286
288
  }
287
289
  });
290
+ Object.defineProperty(exports, "euiPaletteGreen", {
291
+ enumerable: true,
292
+ get: function get() {
293
+ return _color.euiPaletteGreen;
294
+ }
295
+ });
288
296
  Object.defineProperty(exports, "euiPaletteNegative", {
289
297
  enumerable: true,
290
298
  get: function get() {
@@ -297,6 +305,12 @@ Object.defineProperty(exports, "euiPalettePositive", {
297
305
  return _color.euiPalettePositive;
298
306
  }
299
307
  });
308
+ Object.defineProperty(exports, "euiPaletteRed", {
309
+ enumerable: true,
310
+ get: function get() {
311
+ return _color.euiPaletteRed;
312
+ }
313
+ });
300
314
  Object.defineProperty(exports, "euiPaletteWarm", {
301
315
  enumerable: true,
302
316
  get: function get() {
@@ -135,6 +135,12 @@ Object.defineProperty(exports, "useEuiThemeCSSVariables", {
135
135
  return _hooks.useEuiThemeCSSVariables;
136
136
  }
137
137
  });
138
+ Object.defineProperty(exports, "withEuiStylesMemoizer", {
139
+ enumerable: true,
140
+ get: function get() {
141
+ return _style_memoization.withEuiStylesMemoizer;
142
+ }
143
+ });
138
144
  Object.defineProperty(exports, "withEuiTheme", {
139
145
  enumerable: true,
140
146
  get: function get() {
@@ -5,7 +5,8 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.useEuiMemoizedStyles = exports.EuiThemeMemoizedStylesProvider = exports.EuiThemeMemoizedStylesContext = void 0;
8
+ exports.withEuiStylesMemoizer = exports.useEuiMemoizedStyles = exports.EuiThemeMemoizedStylesProvider = exports.EuiThemeMemoizedStylesContext = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
11
  var _react = _interopRequireWildcard(require("react"));
11
12
  var _hooks = require("../hooks");
@@ -47,27 +48,59 @@ var EuiThemeMemoizedStylesProvider = function EuiThemeMemoizedStylesProvider(_re
47
48
  }, children);
48
49
  };
49
50
 
51
+ /**
52
+ * Internal util primarily responsible for getting the memoized styles (if they exist)
53
+ * and if not, generating and setting the styles. DRYed out to facilitate usage
54
+ * between both hook/function components and HOC/class components
55
+ */
56
+ exports.EuiThemeMemoizedStylesProvider = EuiThemeMemoizedStylesProvider;
57
+ var getMemoizedStyles = function getMemoizedStyles(stylesGenerator, stylesMap, euiThemeContext) {
58
+ if (!stylesGenerator.name) {
59
+ throw new Error('Styles are memoized per function. Your style functions must be statically defined in order to not create a new map entry every rerender.');
60
+ }
61
+ var existingStyles = stylesMap.get(stylesGenerator);
62
+ if (existingStyles) {
63
+ return existingStyles;
64
+ } else {
65
+ var generatedStyles = stylesGenerator(euiThemeContext);
66
+ stylesMap.set(stylesGenerator, generatedStyles);
67
+ return generatedStyles;
68
+ }
69
+ };
70
+
50
71
  /**
51
72
  * Hook that memoizes the returned values of components style fns/generators
52
73
  * per-theme
53
74
  */
54
- exports.EuiThemeMemoizedStylesProvider = EuiThemeMemoizedStylesProvider;
55
- var useEuiMemoizedStyles = function useEuiMemoizedStyles(styleGenerator) {
75
+ var useEuiMemoizedStyles = function useEuiMemoizedStyles(stylesGenerator) {
56
76
  var memoizedStyles = (0, _react.useContext)(EuiThemeMemoizedStylesContext);
57
77
  var euiThemeContext = (0, _hooks2.useEuiTheme)();
58
78
  var memoizedComponentStyles = (0, _react.useMemo)(function () {
59
- if (!styleGenerator.name) {
60
- throw new Error('Styles are memoized per function. Your style functions must be statically defined in order to not create a new map entry every rerender.');
61
- }
62
- var existingStyles = memoizedStyles.get(styleGenerator);
63
- if (existingStyles) {
64
- return existingStyles;
65
- } else {
66
- var generatedStyles = styleGenerator(euiThemeContext);
67
- memoizedStyles.set(styleGenerator, generatedStyles);
68
- return generatedStyles;
69
- }
70
- }, [styleGenerator, memoizedStyles, euiThemeContext]);
79
+ return getMemoizedStyles(stylesGenerator, memoizedStyles, euiThemeContext);
80
+ }, [stylesGenerator, memoizedStyles, euiThemeContext]);
71
81
  return memoizedComponentStyles;
72
82
  };
73
- exports.useEuiMemoizedStyles = useEuiMemoizedStyles;
83
+
84
+ /**
85
+ * HOC for class components
86
+ * Syntax is mostly copied from withEuiTheme HOC
87
+ */
88
+ exports.useEuiMemoizedStyles = useEuiMemoizedStyles;
89
+ var withEuiStylesMemoizer = function withEuiStylesMemoizer(Component) {
90
+ var componentName = Component.displayName || Component.name || 'ComponentWithStylesMemoizer';
91
+ var Render = function Render(props, ref) {
92
+ var memoizedStyles = (0, _react.useContext)(EuiThemeMemoizedStylesContext);
93
+ var euiThemeContext = (0, _hooks2.useEuiTheme)();
94
+ var stylesMemoizer = (0, _react.useCallback)(function (stylesGenerator) {
95
+ return getMemoizedStyles(stylesGenerator, memoizedStyles, euiThemeContext);
96
+ }, [memoizedStyles, euiThemeContext]);
97
+ return (0, _react2.jsx)(Component, (0, _extends2.default)({
98
+ stylesMemoizer: stylesMemoizer,
99
+ ref: ref
100
+ }, props));
101
+ };
102
+ var WithEuiStylesMemoizer = /*#__PURE__*/(0, _react.forwardRef)(Render);
103
+ WithEuiStylesMemoizer.displayName = componentName;
104
+ return WithEuiStylesMemoizer;
105
+ };
106
+ exports.withEuiStylesMemoizer = withEuiStylesMemoizer;
@@ -4,11 +4,13 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.useEuiButtonFocusCSS = exports.useEuiButtonColorCSS = exports.euiButtonSizeMap = exports.euiButtonFillColor = exports.euiButtonEmptyColor = exports.euiButtonColor = exports.BUTTON_COLORS = void 0;
7
+ exports.useEuiButtonFocusCSS = exports.useEuiButtonColorCSS = exports.euiButtonSizeMap = exports.euiButtonFillColor = exports.euiButtonEmptyColor = exports.euiButtonColor = exports.BUTTON_DISPLAYS = exports.BUTTON_COLORS = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
8
9
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
10
  var _react = require("@emotion/react");
10
11
  var _global_styling = require("../../../../global_styling");
11
12
  var _services = require("../../../../services");
13
+ var _templateObject;
12
14
  /*
13
15
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
14
16
  * or more contributor license agreements. Licensed under the Elastic License
@@ -16,9 +18,10 @@ var _services = require("../../../../services");
16
18
  * in compliance with, at your election, the Elastic License 2.0 or the Server
17
19
  * Side Public License, v 1.
18
20
  */
19
-
20
21
  var BUTTON_COLORS = ['text', 'accent', 'primary', 'success', 'warning', 'danger'];
21
22
  exports.BUTTON_COLORS = BUTTON_COLORS;
23
+ var BUTTON_DISPLAYS = ['base', 'fill', 'empty'];
24
+ exports.BUTTON_DISPLAYS = BUTTON_DISPLAYS;
22
25
  /**
23
26
  * Creates the `base` version of button styles with proper text contrast.
24
27
  * @param euiThemeContext
@@ -139,43 +142,63 @@ var euiButtonEmptyColor = function euiButtonEmptyColor(euiThemeContext, color) {
139
142
  exports.euiButtonEmptyColor = euiButtonEmptyColor;
140
143
  var useEuiButtonColorCSS = function useEuiButtonColorCSS() {
141
144
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
142
- var euiThemeContext = (0, _services.useEuiTheme)();
143
- function stylesByDisplay(color) {
144
- return {
145
- base: /*#__PURE__*/(0, _react.css)(euiButtonColor(euiThemeContext, color), ";;label:base;"),
146
- fill: /*#__PURE__*/(0, _react.css)(euiButtonFillColor(euiThemeContext, color), "outline-color:", euiThemeContext.colorMode === 'DARK' && color === 'text' ? 'currentColor' : euiThemeContext.euiTheme.colors.fullShade, ";;label:fill;"),
147
- empty: /*#__PURE__*/(0, _react.css)("color:", euiButtonEmptyColor(euiThemeContext, color).color, ";&:focus,&:active{background-color:", euiButtonEmptyColor(euiThemeContext, color).backgroundColor, ";};label:empty;")
148
- };
149
- }
150
- return {
151
- text: /*#__PURE__*/(0, _react.css)(stylesByDisplay('text')[options.display || 'base'], ";label:text;"),
152
- accent: /*#__PURE__*/(0, _react.css)(stylesByDisplay('accent')[options.display || 'base'], ";label:accent;"),
153
- primary: /*#__PURE__*/(0, _react.css)(stylesByDisplay('primary')[options.display || 'base'], ";label:primary;"),
154
- success: /*#__PURE__*/(0, _react.css)(stylesByDisplay('success')[options.display || 'base'], ";label:success;"),
155
- warning: /*#__PURE__*/(0, _react.css)(stylesByDisplay('warning')[options.display || 'base'], ";label:warning;"),
156
- danger: /*#__PURE__*/(0, _react.css)(stylesByDisplay('danger')[options.display || 'base'], ";label:danger;"),
157
- disabled: /*#__PURE__*/(0, _react.css)(stylesByDisplay('disabled')[options.display || 'base'], ";label:disabled;")
158
- };
145
+ var _options$display = options.display,
146
+ display = _options$display === void 0 ? 'base' : _options$display;
147
+ var colorsDisplaysMap = (0, _services.useEuiMemoizedStyles)(euiButtonDisplaysColors);
148
+ return colorsDisplaysMap[display];
149
+ };
150
+ exports.useEuiButtonColorCSS = useEuiButtonColorCSS;
151
+ var euiButtonDisplaysColors = function euiButtonDisplaysColors(euiThemeContext) {
152
+ var COLORS = [].concat(BUTTON_COLORS, ['disabled']);
153
+ var displaysColorsMap = {};
154
+ BUTTON_DISPLAYS.forEach(function (display) {
155
+ displaysColorsMap[display] = {};
156
+ COLORS.forEach(function (color) {
157
+ switch (display) {
158
+ case 'base':
159
+ displaysColorsMap[display][color] = /*#__PURE__*/(0, _react.css)(euiButtonColor(euiThemeContext, color), ";;label:displaysColorsMap-display-color;");
160
+ break;
161
+ case 'fill':
162
+ displaysColorsMap[display][color] = /*#__PURE__*/(0, _react.css)(euiButtonFillColor(euiThemeContext, color), "outline-color:", euiThemeContext.colorMode === 'DARK' && color === 'text' ? 'currentColor' : euiThemeContext.euiTheme.colors.fullShade, ";;label:displaysColorsMap-display-color;");
163
+ break;
164
+ case 'empty':
165
+ displaysColorsMap[display][color] = /*#__PURE__*/(0, _react.css)("color:", euiButtonEmptyColor(euiThemeContext, color).color, ";&:focus,&:active{background-color:", euiButtonEmptyColor(euiThemeContext, color).backgroundColor, ";};label:displaysColorsMap-display-color;");
166
+ break;
167
+ }
168
+
169
+ // Tweak auto-generated Emotion label/className output
170
+ var emotionOutput = displaysColorsMap[display][color];
171
+ emotionOutput.styles = emotionOutput.styles.replace('label:displaysColorsMap-display-color;', "label:".concat(display, "-").concat(color, ";"));
172
+ });
173
+ });
174
+ return displaysColorsMap;
159
175
  };
160
176
 
161
177
  /**
162
178
  * Creates the translate animation when button is in focus.
163
179
  * @returns string
164
180
  */
165
- exports.useEuiButtonColorCSS = useEuiButtonColorCSS;
166
181
  var useEuiButtonFocusCSS = function useEuiButtonFocusCSS() {
167
- var _useEuiTheme = (0, _services.useEuiTheme)(),
168
- euiTheme = _useEuiTheme.euiTheme;
169
- return "\n ".concat(_global_styling.euiCanAnimate, " {\n transition: transform ").concat(euiTheme.animation.normal, " ease-in-out,\n background-color ").concat(euiTheme.animation.normal, " ease-in-out;\n\n &:hover:not(:disabled) {\n transform: translateY(-1px);\n }\n\n &:focus {\n animation: euiButtonActive ").concat(euiTheme.animation.normal, "\n ").concat(euiTheme.animation.bounce, ";\n }\n\n &:active:not(:disabled) {\n transform: translateY(1px);\n }\n }\n ");
182
+ return (0, _services.useEuiMemoizedStyles)(euiButtonFocusCSS);
183
+ };
184
+ exports.useEuiButtonFocusCSS = useEuiButtonFocusCSS;
185
+ var euiButtonFocusAnimation = (0, _react.keyframes)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n 50% {\n transform: translateY(1px);\n }\n"])));
186
+ var euiButtonFocusCSS = function euiButtonFocusCSS(_ref) {
187
+ var euiTheme = _ref.euiTheme;
188
+ var focusCSS = /*#__PURE__*/(0, _react.css)(_global_styling.euiCanAnimate, "{transition:transform ", euiTheme.animation.normal, " ease-in-out,background-color ", euiTheme.animation.normal, " ease-in-out;&:hover:not(:disabled){transform:translateY(-1px);}&:focus{animation:", euiButtonFocusAnimation, " ", euiTheme.animation.normal, " ", euiTheme.animation.bounce, ";}&:active:not(:disabled){transform:translateY(1px);}};label:focusCSS;");
189
+ // Remove the auto-generated label.
190
+ // We could typically avoid a label by using a plain string `` instead of css``,
191
+ // but we need css`` for keyframes`` to work for the focus animation
192
+ focusCSS.styles = focusCSS.styles.replace('label:focusCSS;', '');
193
+ return focusCSS;
170
194
  };
171
195
 
172
196
  /**
173
197
  * Map of `size` props to various sizings/scales
174
198
  * that should remain consistent across all buttons
175
199
  */
176
- exports.useEuiButtonFocusCSS = useEuiButtonFocusCSS;
177
- var euiButtonSizeMap = function euiButtonSizeMap(_ref) {
178
- var euiTheme = _ref.euiTheme;
200
+ var euiButtonSizeMap = function euiButtonSizeMap(_ref2) {
201
+ var euiTheme = _ref2.euiTheme;
179
202
  return {
180
203
  xs: {
181
204
  height: euiTheme.size.l,