@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
@@ -82,6 +82,14 @@ var _ref9 = process.env.NODE_ENV === "production" ? {
82
82
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
83
83
  };
84
84
  var _ref10 = process.env.NODE_ENV === "production" ? {
85
+ name: "1t690q7-column",
86
+ styles: "grid-auto-flow:column;label:column;"
87
+ } : {
88
+ name: "1t690q7-column",
89
+ styles: "grid-auto-flow:column;label:column;",
90
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
91
+ };
92
+ var _ref11 = process.env.NODE_ENV === "production" ? {
85
93
  name: "1uinx0j-euiFlexGrid",
86
94
  styles: "display:grid;label:euiFlexGrid;"
87
95
  } : {
@@ -89,18 +97,17 @@ var _ref10 = process.env.NODE_ENV === "production" ? {
89
97
  styles: "display:grid;label:euiFlexGrid;",
90
98
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
91
99
  };
92
- // Note: the only way to get column direction working with `display: grid`
93
- // the same way `display: flex` works is to manually set `grid-template-rows`,
94
- // calculated based on the number of children in the grid
95
100
  export var euiFlexGridStyles = function euiFlexGridStyles(euiThemeContext) {
96
- var gridTemplateRows = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
97
101
  var euiTheme = euiThemeContext.euiTheme;
98
102
  return {
99
- euiFlexGrid: _ref10,
103
+ euiFlexGrid: _ref11,
100
104
  responsive: /*#__PURE__*/css(euiMaxBreakpoint(euiThemeContext, 'm'), "{grid-template-columns:repeat(1, 1fr);grid-auto-flow:row;};label:responsive;"),
101
105
  direction: {
102
106
  row: /*#__PURE__*/css(";label:row;"),
103
- column: /*#__PURE__*/css("grid-auto-flow:column;grid-template-rows:repeat(", gridTemplateRows, ", 1fr);;label:column;")
107
+ // Note: the only way to get column direction working with `display: grid`
108
+ // the same way `display: flex` works is to manually set `grid-template-rows`,
109
+ // calculated based on the number of children in the grid
110
+ column: _ref10
104
111
  },
105
112
  columnCount: {
106
113
  '1': _ref9,
@@ -9,18 +9,16 @@ var _excluded = ["children", "className", "gutterSize", "alignItems", "responsiv
9
9
  * Side Public License, v 1.
10
10
  */
11
11
 
12
- import React, { forwardRef } from 'react';
12
+ import React, { forwardRef, useEffect } from 'react';
13
13
  import classNames from 'classnames';
14
- import { useEuiTheme } from '../../services';
14
+ import { useEuiMemoizedStyles } from '../../services';
15
15
  import { euiFlexGroupStyles } from './flex_group.styles';
16
16
  import { jsx as ___EmotionJSX } from "@emotion/react";
17
17
  export var GUTTER_SIZES = ['none', 'xs', 's', 'm', 'l', 'xl'];
18
18
  export var ALIGN_ITEMS = ['stretch', 'flexStart', 'flexEnd', 'center', 'baseline'];
19
19
  export var JUSTIFY_CONTENTS = ['flexStart', 'flexEnd', 'center', 'spaceBetween', 'spaceAround', 'spaceEvenly'];
20
20
  export var DIRECTIONS = ['row', 'rowReverse', 'column', 'columnReverse'];
21
- var isValidElement = function isValidElement(component) {
22
- return ['div', 'span'].includes(component);
23
- };
21
+ export var COMPONENT_TYPES = ['div', 'span'];
24
22
  export var EuiFlexGroup = /*#__PURE__*/forwardRef(function (_ref, ref) {
25
23
  var children = _ref.children,
26
24
  className = _ref.className,
@@ -39,13 +37,14 @@ export var EuiFlexGroup = /*#__PURE__*/forwardRef(function (_ref, ref) {
39
37
  _ref$component = _ref.component,
40
38
  component = _ref$component === void 0 ? 'div' : _ref$component,
41
39
  rest = _objectWithoutProperties(_ref, _excluded);
42
- var euiTheme = useEuiTheme();
43
- var styles = euiFlexGroupStyles(euiTheme);
40
+ var styles = useEuiMemoizedStyles(euiFlexGroupStyles);
44
41
  var cssStyles = [styles.euiFlexGroup, responsive && !direction.includes('column') && styles.responsive, wrap && styles.wrap, styles.gutterSizes[gutterSize], styles.justifyContent[justifyContent], styles.alignItems[alignItems], styles.direction[direction]];
45
42
  var classes = classNames('euiFlexGroup', className);
46
- if (!isValidElement(component)) {
47
- throw new Error("".concat(component, " is not a valid element type. Use `div` or `span`."));
48
- }
43
+ useEffect(function () {
44
+ if (!COMPONENT_TYPES.includes(component)) {
45
+ throw new Error("".concat(component, " is not a valid element type. Use `div` or `span`."));
46
+ }
47
+ }, [component]);
49
48
  return component === 'span' ? ___EmotionJSX("span", _extends({
50
49
  css: cssStyles,
51
50
  className: classes,
@@ -9,10 +9,11 @@ var _excluded = ["children", "className", "grow", "component"];
9
9
  * Side Public License, v 1.
10
10
  */
11
11
 
12
- import React from 'react';
12
+ import React, { useEffect } from 'react';
13
13
  import classNames from 'classnames';
14
- import { euiFlexItemStyles } from './flex_item.styles';
14
+ import { euiFlexItemStyles as styles } from './flex_item.styles';
15
15
  import { jsx as ___EmotionJSX } from "@emotion/react";
16
+ var VALID_GROW_VALUES = [null, undefined, true, false, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
16
17
  export var EuiFlexItem = function EuiFlexItem(_ref) {
17
18
  var children = _ref.children,
18
19
  className = _ref.className,
@@ -21,18 +22,15 @@ export var EuiFlexItem = function EuiFlexItem(_ref) {
21
22
  _ref$component = _ref.component,
22
23
  Component = _ref$component === void 0 ? 'div' : _ref$component,
23
24
  rest = _objectWithoutProperties(_ref, _excluded);
24
- validateGrowValue(grow);
25
- var styles = euiFlexItemStyles();
25
+ useEffect(function () {
26
+ if (VALID_GROW_VALUES.indexOf(grow) === -1) {
27
+ throw new Error("Prop `grow` passed to `EuiFlexItem` must be a boolean or an integer between 0 and 10, received `".concat(grow, "`"));
28
+ }
29
+ }, [grow]);
26
30
  var cssStyles = [styles.euiFlexItem, !grow ? styles.growZero : styles.grow, grow && (typeof grow === 'number' ? styles.growSizes[grow] : styles.growSizes['1'])];
27
31
  var classes = classNames('euiFlexItem', className);
28
32
  return ___EmotionJSX(Component, _extends({
29
33
  css: cssStyles,
30
34
  className: classes
31
35
  }, rest), children);
32
- };
33
- export var VALID_GROW_VALUES = [null, undefined, true, false, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
34
- function validateGrowValue(value) {
35
- if (VALID_GROW_VALUES.indexOf(value) === -1) {
36
- throw new Error("Prop `grow` passed to `EuiFlexItem` must be a boolean or an integer between 0 and 10, received `".concat(value, "`"));
37
- }
38
- }
36
+ };
@@ -8,127 +8,112 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
8
8
  */
9
9
 
10
10
  import { css } from '@emotion/react';
11
- var _ref = process.env.NODE_ENV === "production" ? {
12
- name: "n7polf-10",
13
- styles: "flex-grow:10;label:10;"
14
- } : {
15
- name: "n7polf-10",
16
- styles: "flex-grow:10;label:10;",
17
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
18
- };
19
- var _ref2 = process.env.NODE_ENV === "production" ? {
20
- name: "1tyr8p6-9",
21
- styles: "flex-grow:9;label:9;"
22
- } : {
23
- name: "1tyr8p6-9",
24
- styles: "flex-grow:9;label:9;",
25
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
26
- };
27
- var _ref3 = process.env.NODE_ENV === "production" ? {
28
- name: "fjdgzc-8",
29
- styles: "flex-grow:8;label:8;"
30
- } : {
31
- name: "fjdgzc-8",
32
- styles: "flex-grow:8;label:8;",
33
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
34
- };
35
- var _ref4 = process.env.NODE_ENV === "production" ? {
36
- name: "fvh3nz-7",
37
- styles: "flex-grow:7;label:7;"
38
- } : {
39
- name: "fvh3nz-7",
40
- styles: "flex-grow:7;label:7;",
41
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
42
- };
43
- var _ref5 = process.env.NODE_ENV === "production" ? {
44
- name: "1in9iiy-6",
45
- styles: "flex-grow:6;label:6;"
46
- } : {
47
- name: "1in9iiy-6",
48
- styles: "flex-grow:6;label:6;",
49
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
50
- };
51
- var _ref6 = process.env.NODE_ENV === "production" ? {
52
- name: "1cx5fxs-5",
53
- styles: "flex-grow:5;label:5;"
54
- } : {
55
- name: "1cx5fxs-5",
56
- styles: "flex-grow:5;label:5;",
57
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
58
- };
59
- var _ref7 = process.env.NODE_ENV === "production" ? {
60
- name: "k4pnsg-4",
61
- styles: "flex-grow:4;label:4;"
62
- } : {
63
- name: "k4pnsg-4",
64
- styles: "flex-grow:4;label:4;",
65
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
66
- };
67
- var _ref8 = process.env.NODE_ENV === "production" ? {
68
- name: "1sl79ay-3",
69
- styles: "flex-grow:3;label:3;"
70
- } : {
71
- name: "1sl79ay-3",
72
- styles: "flex-grow:3;label:3;",
73
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
74
- };
75
- var _ref9 = process.env.NODE_ENV === "production" ? {
76
- name: "1l86xxh-2",
77
- styles: "flex-grow:2;label:2;"
78
- } : {
79
- name: "1l86xxh-2",
80
- styles: "flex-grow:2;label:2;",
81
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
82
- };
83
- var _ref10 = process.env.NODE_ENV === "production" ? {
84
- name: "1v6uyoj-1",
85
- styles: "flex-grow:1;label:1;"
86
- } : {
87
- name: "1v6uyoj-1",
88
- styles: "flex-grow:1;label:1;",
89
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
90
- };
91
- var _ref11 = process.env.NODE_ENV === "production" ? {
92
- name: "tr4wer-grow",
93
- styles: "flex-basis:0%;label:grow;"
94
- } : {
95
- name: "tr4wer-grow",
96
- styles: "flex-basis:0%;label:grow;",
97
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
98
- };
99
- var _ref12 = process.env.NODE_ENV === "production" ? {
100
- name: "1pat7n0-growZero",
101
- styles: "flex-grow:0;flex-basis:auto;label:growZero;"
102
- } : {
103
- name: "1pat7n0-growZero",
104
- styles: "flex-grow:0;flex-basis:auto;label:growZero;",
105
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
106
- };
107
- var _ref13 = process.env.NODE_ENV === "production" ? {
108
- name: "19hf44n-euiFlexItem",
109
- styles: "display:flex;flex-direction:column;label:euiFlexItem;"
110
- } : {
111
- name: "19hf44n-euiFlexItem",
112
- styles: "display:flex;flex-direction:column;label:euiFlexItem;",
113
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
114
- };
115
- export var euiFlexItemStyles = function euiFlexItemStyles() {
116
- return {
117
- // 1. Allow EuiPanels to expand to fill the item.
118
- euiFlexItem: _ref13,
119
- growZero: _ref12,
120
- grow: _ref11,
121
- growSizes: {
122
- '1': _ref10,
123
- '2': _ref9,
124
- '3': _ref8,
125
- '4': _ref7,
126
- '5': _ref6,
127
- '6': _ref5,
128
- '7': _ref4,
129
- '8': _ref3,
130
- '9': _ref2,
131
- '10': _ref
11
+ export var euiFlexItemStyles = {
12
+ // 1. Allow EuiPanels to expand to fill the item.
13
+ euiFlexItem: process.env.NODE_ENV === "production" ? {
14
+ name: "19hf44n-euiFlexItem",
15
+ styles: "display:flex;flex-direction:column;label:euiFlexItem;"
16
+ } : {
17
+ name: "19hf44n-euiFlexItem",
18
+ styles: "display:flex;flex-direction:column;label:euiFlexItem;",
19
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
20
+ },
21
+ growZero: process.env.NODE_ENV === "production" ? {
22
+ name: "1pat7n0-growZero",
23
+ styles: "flex-grow:0;flex-basis:auto;label:growZero;"
24
+ } : {
25
+ name: "1pat7n0-growZero",
26
+ styles: "flex-grow:0;flex-basis:auto;label:growZero;",
27
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
28
+ },
29
+ grow: process.env.NODE_ENV === "production" ? {
30
+ name: "tr4wer-grow",
31
+ styles: "flex-basis:0%;label:grow;"
32
+ } : {
33
+ name: "tr4wer-grow",
34
+ styles: "flex-basis:0%;label:grow;",
35
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
36
+ },
37
+ growSizes: {
38
+ '1': process.env.NODE_ENV === "production" ? {
39
+ name: "1v6uyoj-1",
40
+ styles: "flex-grow:1;label:1;"
41
+ } : {
42
+ name: "1v6uyoj-1",
43
+ styles: "flex-grow:1;label:1;",
44
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
45
+ },
46
+ '2': process.env.NODE_ENV === "production" ? {
47
+ name: "1l86xxh-2",
48
+ styles: "flex-grow:2;label:2;"
49
+ } : {
50
+ name: "1l86xxh-2",
51
+ styles: "flex-grow:2;label:2;",
52
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
53
+ },
54
+ '3': process.env.NODE_ENV === "production" ? {
55
+ name: "1sl79ay-3",
56
+ styles: "flex-grow:3;label:3;"
57
+ } : {
58
+ name: "1sl79ay-3",
59
+ styles: "flex-grow:3;label:3;",
60
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
61
+ },
62
+ '4': process.env.NODE_ENV === "production" ? {
63
+ name: "k4pnsg-4",
64
+ styles: "flex-grow:4;label:4;"
65
+ } : {
66
+ name: "k4pnsg-4",
67
+ styles: "flex-grow:4;label:4;",
68
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
69
+ },
70
+ '5': process.env.NODE_ENV === "production" ? {
71
+ name: "1cx5fxs-5",
72
+ styles: "flex-grow:5;label:5;"
73
+ } : {
74
+ name: "1cx5fxs-5",
75
+ styles: "flex-grow:5;label:5;",
76
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
77
+ },
78
+ '6': process.env.NODE_ENV === "production" ? {
79
+ name: "1in9iiy-6",
80
+ styles: "flex-grow:6;label:6;"
81
+ } : {
82
+ name: "1in9iiy-6",
83
+ styles: "flex-grow:6;label:6;",
84
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
85
+ },
86
+ '7': process.env.NODE_ENV === "production" ? {
87
+ name: "fvh3nz-7",
88
+ styles: "flex-grow:7;label:7;"
89
+ } : {
90
+ name: "fvh3nz-7",
91
+ styles: "flex-grow:7;label:7;",
92
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
93
+ },
94
+ '8': process.env.NODE_ENV === "production" ? {
95
+ name: "fjdgzc-8",
96
+ styles: "flex-grow:8;label:8;"
97
+ } : {
98
+ name: "fjdgzc-8",
99
+ styles: "flex-grow:8;label:8;",
100
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
101
+ },
102
+ '9': process.env.NODE_ENV === "production" ? {
103
+ name: "1tyr8p6-9",
104
+ styles: "flex-grow:9;label:9;"
105
+ } : {
106
+ name: "1tyr8p6-9",
107
+ styles: "flex-grow:9;label:9;",
108
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
109
+ },
110
+ '10': process.env.NODE_ENV === "production" ? {
111
+ name: "n7polf-10",
112
+ styles: "flex-grow:10;label:10;"
113
+ } : {
114
+ name: "n7polf-10",
115
+ styles: "flex-grow:10;label:10;",
116
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
132
117
  }
133
- };
118
+ }
134
119
  };
@@ -87,33 +87,31 @@ export var EuiFlyout = /*#__PURE__*/forwardRef(function (_ref, ref) {
87
87
  resizeRef = _useState2[0],
88
88
  setResizeRef = _useState2[1];
89
89
  var setRef = useCombinedRefs([setResizeRef, ref]);
90
- // TODO: Allow this hook to be conditional
91
- var dimensions = useResizeObserver(resizeRef);
90
+ var _useResizeObserver = useResizeObserver(isPushed ? resizeRef : null, 'width'),
91
+ width = _useResizeObserver.width;
92
92
  useEffect(function () {
93
- // This class doesn't actually do anything by EUI, but is nice to add for consumers (JIC)
94
- document.body.classList.add('euiBody--hasFlyout');
95
-
96
93
  /**
97
94
  * Accomodate for the `isPushed` state by adding padding to the body equal to the width of the element
98
95
  */
99
96
  if (isPushed) {
100
- if (side === 'right') {
101
- document.body.style.paddingInlineEnd = "".concat(dimensions.width, "px");
102
- } else if (side === 'left') {
103
- document.body.style.paddingInlineStart = "".concat(dimensions.width, "px");
104
- }
97
+ var paddingSide = side === 'left' ? 'paddingInlineStart' : 'paddingInlineEnd';
98
+ document.body.style[paddingSide] = "".concat(width, "px");
99
+ return function () {
100
+ document.body.style[paddingSide] = '';
101
+ };
105
102
  }
103
+ }, [isPushed, side, width]);
104
+
105
+ /**
106
+ * This class doesn't actually do anything by EUI, but is nice to add for consumers (JIC)
107
+ */
108
+ useEffect(function () {
109
+ document.body.classList.add('euiBody--hasFlyout');
106
110
  return function () {
111
+ // Remove the hasFlyout class when the flyout is unmounted
107
112
  document.body.classList.remove('euiBody--hasFlyout');
108
- if (isPushed) {
109
- if (side === 'right') {
110
- document.body.style.paddingInlineEnd = '';
111
- } else if (side === 'left') {
112
- document.body.style.paddingInlineStart = '';
113
- }
114
- }
115
113
  };
116
- }, [side, dimensions, isPushed]);
114
+ }, []);
117
115
 
118
116
  /**
119
117
  * ESC key closes flyout (always?)
@@ -11,24 +11,22 @@ var _excluded = ["className", "breadcrumbs"];
11
11
 
12
12
  import React from 'react';
13
13
  import classNames from 'classnames';
14
+ import { useEuiMemoizedStyles } from '../../../services';
14
15
  import { EuiBreadcrumbs } from '../../breadcrumbs';
15
16
  import { euiHeaderBreadcrumbsStyles } from './header_breadcrumbs.styles';
16
- import { useEuiTheme } from '../../../services';
17
17
  import { jsx as ___EmotionJSX } from "@emotion/react";
18
18
  export var EuiHeaderBreadcrumbs = function EuiHeaderBreadcrumbs(_ref) {
19
19
  var className = _ref.className,
20
20
  breadcrumbs = _ref.breadcrumbs,
21
21
  rest = _objectWithoutProperties(_ref, _excluded);
22
22
  var classes = classNames('euiHeaderBreadcrumbs', className);
23
- var euiTheme = useEuiTheme();
24
- var styles = euiHeaderBreadcrumbsStyles(euiTheme);
25
- var cssHeaderBreadcrumbStyles = [styles.euiHeaderBreadcrumbs];
23
+ var styles = useEuiMemoizedStyles(euiHeaderBreadcrumbsStyles);
26
24
  return ___EmotionJSX(EuiBreadcrumbs, _extends({
27
25
  max: 4,
28
26
  truncate: true,
29
27
  breadcrumbs: breadcrumbs,
30
28
  className: classes,
31
- css: cssHeaderBreadcrumbStyles,
29
+ css: styles.euiHeaderBreadcrumbs,
32
30
  type: "application"
33
31
  }, rest));
34
32
  };
@@ -7,7 +7,7 @@ import _inherits from "@babel/runtime/helpers/inherits";
7
7
  import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
8
8
  import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
9
9
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
10
- var _excluded = ["type", "size", "color", "className", "tabIndex", "title", "onIconLoad", "theme", "style"];
10
+ var _excluded = ["type", "size", "color", "className", "tabIndex", "title", "onIconLoad", "style", "stylesMemoizer"];
11
11
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
12
12
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
13
13
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
@@ -26,7 +26,7 @@ import { keysOf } from '../common';
26
26
  import { typeToPathMap } from './icon_map';
27
27
  import { icon as empty } from './assets/empty';
28
28
  import { enqueueStateChange } from '../../services/react';
29
- import { htmlIdGenerator, withEuiTheme } from '../../services';
29
+ import { htmlIdGenerator, withEuiStylesMemoizer } from '../../services';
30
30
  export { COLORS } from './named_colors';
31
31
  import { isNamedColor } from './named_colors';
32
32
  import { euiIconStyles } from './icon.styles';
@@ -178,8 +178,8 @@ export var EuiIconClass = /*#__PURE__*/function (_PureComponent) {
178
178
  tabIndex = _this$props.tabIndex,
179
179
  title = _this$props.title,
180
180
  onIconLoad = _this$props.onIconLoad,
181
- theme = _this$props.theme,
182
181
  style = _this$props.style,
182
+ stylesMemoizer = _this$props.stylesMemoizer,
183
183
  rest = _objectWithoutProperties(_this$props, _excluded);
184
184
  var _this$state = this.state,
185
185
  isLoading = _this$state.isLoading,
@@ -201,7 +201,7 @@ export var EuiIconClass = /*#__PURE__*/function (_PureComponent) {
201
201
  var classes = classNames('euiIcon', className);
202
202
 
203
203
  // Emotion styles
204
- var styles = euiIconStyles(theme);
204
+ var styles = stylesMemoizer(euiIconStyles);
205
205
  var cssStyles = [styles.euiIcon, styles[size], color && isNamedColor(color) && styles[color], isCustomColor && styles.customColor, isElasticLogoOutline && styles.logoElasticOutline, isAppIcon && !appIconHasColor && styles.app, isLoading && styles.isLoading, !isLoading && neededLoading && styles.isLoaded];
206
206
  var icon = this.state.icon || empty;
207
207
  if (typeof icon === 'string') {
@@ -218,33 +218,30 @@ export var EuiIconClass = /*#__PURE__*/function (_PureComponent) {
218
218
 
219
219
  // If it's an empty icon, or if there is no aria-label, aria-labelledby, or title it gets aria-hidden true
220
220
  var isAriaHidden = icon === empty || !(this.props['aria-label'] || this.props['aria-labelledby'] || this.props.title);
221
- var hideIconEmpty = isAriaHidden && {
222
- 'aria-hidden': true
223
- };
224
- var titleId;
225
221
 
226
222
  // If no aria-label or aria-labelledby is provided but there's a title, a titleId is generated
227
223
  // The svg aria-labelledby attribute gets this titleId
228
224
  // The svg title element gets this titleId as an id
229
- if (!this.props['aria-label'] && !this.props['aria-labelledby'] && title) {
230
- titleId = {
231
- titleId: generateId()
232
- };
233
- }
225
+ var titleId = !this.props['aria-label'] && !this.props['aria-labelledby'] && title ? {
226
+ titleId: generateId()
227
+ } : undefined;
234
228
  return ___EmotionJSX(Svg, _extends({
235
229
  className: classes,
236
230
  style: optionalCustomStyles,
237
231
  css: cssStyles,
238
232
  tabIndex: tabIndex,
239
233
  role: "img",
240
- title: title,
234
+ title: title
235
+ }, titleId, {
241
236
  "data-icon-type": iconTitle,
242
237
  "data-is-loaded": isLoaded || undefined,
243
238
  "data-is-loading": isLoading || undefined
244
- }, titleId, rest, hideIconEmpty));
239
+ }, rest, {
240
+ "aria-hidden": isAriaHidden || undefined
241
+ }));
245
242
  }
246
243
  }
247
244
  }]);
248
245
  return EuiIconClass;
249
246
  }(PureComponent);
250
- export var EuiIcon = withEuiTheme(EuiIconClass);
247
+ export var EuiIcon = withEuiStylesMemoizer(EuiIconClass);
@@ -10,10 +10,7 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
10
10
  */
11
11
 
12
12
  import { css, keyframes } from '@emotion/react';
13
- import { logicalCSS, euiCanAnimate } from '../../global_styling';
14
- var iconSize = function iconSize(size) {
15
- return "\n ".concat(logicalCSS('width', size), ";\n ").concat(logicalCSS('height', size), ";\n ");
16
- };
13
+ import { logicalSizeCSS, euiCanAnimate } from '../../global_styling';
17
14
  export var iconLoadingOpacity = 0.05;
18
15
  var iconLoading = keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n 0% {\n opacity: ", ";\n }\n\n 100% {\n opacity: 1;\n }\n"])), iconLoadingOpacity);
19
16
  var _ref = process.env.NODE_ENV === "production" ? {
@@ -52,11 +49,11 @@ export var euiIconStyles = function euiIconStyles(_ref3) {
52
49
  logoElasticOutline: _ref,
53
50
  // Sizes
54
51
  original: /*#__PURE__*/css(";label:original;"),
55
- s: /*#__PURE__*/css(iconSize(euiTheme.size.m), ";label:s;"),
56
- m: /*#__PURE__*/css(iconSize(euiTheme.size.base), ";label:m;"),
57
- l: /*#__PURE__*/css(iconSize(euiTheme.size.l), ";label:l;"),
58
- xl: /*#__PURE__*/css(iconSize(euiTheme.size.xl), ";label:xl;"),
59
- xxl: /*#__PURE__*/css(iconSize(euiTheme.size.xxl), ";label:xxl;"),
52
+ s: /*#__PURE__*/css(logicalSizeCSS(euiTheme.size.m), ";label:s;"),
53
+ m: /*#__PURE__*/css(logicalSizeCSS(euiTheme.size.base), ";label:m;"),
54
+ l: /*#__PURE__*/css(logicalSizeCSS(euiTheme.size.l), ";label:l;"),
55
+ xl: /*#__PURE__*/css(logicalSizeCSS(euiTheme.size.xl), ";label:xl;"),
56
+ xxl: /*#__PURE__*/css(logicalSizeCSS(euiTheme.size.xxl), ";label:xxl;"),
60
57
  // Variants
61
58
  // App icons are two-toned. This provides the base color.
62
59
  app: /*#__PURE__*/css("fill:", euiTheme.colors.text, ";.euiIcon__fillSecondary{fill:", euiTheme.colors.successText, ";};label:app;"),
@@ -10,7 +10,7 @@ var _excluded = ["target", "external"];
10
10
  */
11
11
 
12
12
  import React from 'react';
13
- import { useEuiTheme } from '../../services';
13
+ import { useEuiMemoizedStyles } from '../../services';
14
14
  import { logicalStyle } from '../../global_styling';
15
15
  import { EuiIcon } from '../icon';
16
16
  import { EuiI18n, useEuiI18n } from '../i18n';
@@ -21,16 +21,19 @@ import { EuiScreenReaderOnly } from '../accessibility';
21
21
  * screen readers. Used internally by at EuiLink and EuiListGroupItem
22
22
  */
23
23
  import { jsx as ___EmotionJSX } from "@emotion/react";
24
- export var EuiExternalLinkIcon = function EuiExternalLinkIcon(_ref) {
25
- var target = _ref.target,
26
- external = _ref.external,
27
- rest = _objectWithoutProperties(_ref, _excluded);
28
- var _useEuiTheme = useEuiTheme(),
29
- euiTheme = _useEuiTheme.euiTheme;
24
+ var iconStyle = function iconStyle(_ref) {
25
+ var euiTheme = _ref.euiTheme;
26
+ return logicalStyle('margin-left', euiTheme.size.xs);
27
+ };
28
+ export var EuiExternalLinkIcon = function EuiExternalLinkIcon(_ref2) {
29
+ var target = _ref2.target,
30
+ external = _ref2.external,
31
+ rest = _objectWithoutProperties(_ref2, _excluded);
32
+ var iconCssStyle = useEuiMemoizedStyles(iconStyle);
30
33
  var showExternalLinkIcon = target === '_blank' && external !== false || external === true;
31
34
  var iconAriaLabel = useEuiI18n('euiExternalLinkIcon.ariaLabel', 'External link');
32
35
  return ___EmotionJSX(React.Fragment, null, showExternalLinkIcon && ___EmotionJSX(EuiIcon, _extends({
33
- css: logicalStyle('margin-left', euiTheme.size.xs),
36
+ css: iconCssStyle,
34
37
  "aria-label": iconAriaLabel,
35
38
  size: "s",
36
39
  type: "popout"
@@ -14,7 +14,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
14
14
 
15
15
  import React, { forwardRef } from 'react';
16
16
  import classNames from 'classnames';
17
- import { getSecureRelForTarget, useEuiTheme } from '../../services';
17
+ import { getSecureRelForTarget, useEuiMemoizedStyles } from '../../services';
18
18
  import { validateHref } from '../../services/security/href_validator';
19
19
  import { EuiExternalLinkIcon } from './external_link_icon';
20
20
  import { euiLinkStyles } from './link.styles';
@@ -34,8 +34,7 @@ var EuiLink = /*#__PURE__*/forwardRef(function (_ref, ref) {
34
34
  onClick = _ref.onClick,
35
35
  _disabled = _ref.disabled,
36
36
  rest = _objectWithoutProperties(_ref, _excluded);
37
- var euiTheme = useEuiTheme();
38
- var styles = euiLinkStyles(euiTheme);
37
+ var styles = useEuiMemoizedStyles(euiLinkStyles);
39
38
  var cssStyles = [styles.euiLink];
40
39
  var isHrefValid = !href || validateHref(href);
41
40
  var disabled = _disabled || !isHrefValid;
@@ -9,18 +9,9 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
9
9
 
10
10
  import { css } from '@emotion/react';
11
11
  import { euiFocusRing, logicalTextAlignCSS } from '../../global_styling';
12
- var _colorCSS = function _colorCSS(color) {
13
- return "\n color: ".concat(color, ";\n\n &:target {\n color: darken(").concat(color, ", 10%);\n }\n ");
14
- };
15
- export var euiLinkHoverCSS = function euiLinkHoverCSS() {
16
- return "\n text-decoration: underline;\n ";
17
- };
18
- export var euiLinkFocusCSS = function euiLinkFocusCSS(euiTheme) {
19
- return "\n text-decoration: underline;\n text-decoration-thickness: ".concat(euiTheme.border.width.thick, ";\n ");
20
- };
21
12
  export var euiLinkCSS = function euiLinkCSS(euiThemeContext) {
22
13
  var euiTheme = euiThemeContext.euiTheme;
23
- return "\n font-weight: ".concat(euiTheme.font.weight.medium, ";\n ").concat(logicalTextAlignCSS('left'), "\n\n &:hover {\n ").concat(euiLinkHoverCSS(), "\n }\n\n &:focus {\n ").concat(euiFocusRing(euiThemeContext, 'outset'), "\n ").concat(euiLinkFocusCSS(euiTheme), "\n }\n ");
14
+ return "\n font-weight: ".concat(euiTheme.font.weight.medium, ";\n ").concat(logicalTextAlignCSS('left'), "\n\n &:hover {\n text-decoration: underline;\n }\n\n &:focus {\n ").concat(euiFocusRing(euiThemeContext, 'outset'), "\n text-decoration: underline;\n text-decoration-thickness: ").concat(euiTheme.border.width.thick, ";\n }\n ");
24
15
  };
25
16
  var _ref = process.env.NODE_ENV === "production" ? {
26
17
  name: "9njbi5-disabled",
@@ -45,4 +36,7 @@ export var euiLinkStyles = function euiLinkStyles(euiThemeContext) {
45
36
  ghost: /*#__PURE__*/css(_colorCSS(euiTheme.colors.ghost), ";label:ghost;"),
46
37
  text: /*#__PURE__*/css(_colorCSS(euiTheme.colors.text), ";label:text;")
47
38
  };
39
+ };
40
+ var _colorCSS = function _colorCSS(color) {
41
+ return "\n color: ".concat(color, ";\n\n &:target {\n color: darken(").concat(color, ", 10%);\n }\n ");
48
42
  };