@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
@@ -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
  };
@@ -99,33 +99,31 @@ export var EuiFlyout = /*#__PURE__*/forwardRef(function (_ref, ref) {
99
99
  resizeRef = _useState2[0],
100
100
  setResizeRef = _useState2[1];
101
101
  var setRef = useCombinedRefs([setResizeRef, ref]);
102
- // TODO: Allow this hook to be conditional
103
- var dimensions = useResizeObserver(resizeRef);
102
+ var _useResizeObserver = useResizeObserver(isPushed ? resizeRef : null, 'width'),
103
+ width = _useResizeObserver.width;
104
104
  useEffect(function () {
105
- // This class doesn't actually do anything by EUI, but is nice to add for consumers (JIC)
106
- document.body.classList.add('euiBody--hasFlyout');
107
-
108
105
  /**
109
106
  * Accomodate for the `isPushed` state by adding padding to the body equal to the width of the element
110
107
  */
111
108
  if (isPushed) {
112
- if (side === 'right') {
113
- document.body.style.paddingInlineEnd = "".concat(dimensions.width, "px");
114
- } else if (side === 'left') {
115
- document.body.style.paddingInlineStart = "".concat(dimensions.width, "px");
116
- }
109
+ var paddingSide = side === 'left' ? 'paddingInlineStart' : 'paddingInlineEnd';
110
+ document.body.style[paddingSide] = "".concat(width, "px");
111
+ return function () {
112
+ document.body.style[paddingSide] = '';
113
+ };
117
114
  }
115
+ }, [isPushed, side, width]);
116
+
117
+ /**
118
+ * This class doesn't actually do anything by EUI, but is nice to add for consumers (JIC)
119
+ */
120
+ useEffect(function () {
121
+ document.body.classList.add('euiBody--hasFlyout');
118
122
  return function () {
123
+ // Remove the hasFlyout class when the flyout is unmounted
119
124
  document.body.classList.remove('euiBody--hasFlyout');
120
- if (isPushed) {
121
- if (side === 'right') {
122
- document.body.style.paddingInlineEnd = '';
123
- } else if (side === 'left') {
124
- document.body.style.paddingInlineStart = '';
125
- }
126
- }
127
125
  };
128
- }, [side, dimensions, isPushed]);
126
+ }, []);
129
127
 
130
128
  /**
131
129
  * ESC key closes flyout (always?)
@@ -13,24 +13,22 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
13
13
  import React from 'react';
14
14
  import PropTypes from "prop-types";
15
15
  import classNames from 'classnames';
16
+ import { useEuiMemoizedStyles } from '../../../services';
16
17
  import { EuiBreadcrumbs } from '../../breadcrumbs';
17
18
  import { euiHeaderBreadcrumbsStyles } from './header_breadcrumbs.styles';
18
- import { useEuiTheme } from '../../../services';
19
19
  import { jsx as ___EmotionJSX } from "@emotion/react";
20
20
  export var EuiHeaderBreadcrumbs = function EuiHeaderBreadcrumbs(_ref) {
21
21
  var className = _ref.className,
22
22
  breadcrumbs = _ref.breadcrumbs,
23
23
  rest = _objectWithoutProperties(_ref, _excluded);
24
24
  var classes = classNames('euiHeaderBreadcrumbs', className);
25
- var euiTheme = useEuiTheme();
26
- var styles = euiHeaderBreadcrumbsStyles(euiTheme);
27
- var cssHeaderBreadcrumbStyles = [styles.euiHeaderBreadcrumbs];
25
+ var styles = useEuiMemoizedStyles(euiHeaderBreadcrumbsStyles);
28
26
  return ___EmotionJSX(EuiBreadcrumbs, _extends({
29
27
  max: 4,
30
28
  truncate: true,
31
29
  breadcrumbs: breadcrumbs,
32
30
  className: classes,
33
- css: cssHeaderBreadcrumbStyles,
31
+ css: styles.euiHeaderBreadcrumbs,
34
32
  type: "application"
35
33
  }, rest));
36
34
  };
@@ -88,12 +86,14 @@ EuiHeaderBreadcrumbs.propTypes = {
88
86
  */
89
87
  "aria-current": PropTypes.any,
90
88
  /**
91
- * Creates a breadcrumb that toggles a popover dialog
89
+ * Creates a breadcrumb that toggles a popover dialog. Takes any rendered node(s),
90
+ * or a render function that will pass callback allowing you to close the
91
+ * breadcrumb popover from within your popover content.
92
92
  *
93
93
  * If passed, both `href` and `onClick` will be ignored - the breadcrumb's
94
94
  * click behavior should only trigger a popover.
95
95
  */
96
- popoverContent: PropTypes.node,
96
+ popoverContent: PropTypes.oneOfType([PropTypes.node.isRequired, PropTypes.func.isRequired]),
97
97
  /**
98
98
  * Allows customizing the popover if necessary. Accepts any props that
99
99
  * [EuiPopover](/#/layout/popover) accepts, except for props that control state.
@@ -1,4 +1,4 @@
1
- var _excluded = ["type", "size", "color", "className", "tabIndex", "title", "onIconLoad", "theme", "style"];
1
+ var _excluded = ["type", "size", "color", "className", "tabIndex", "title", "onIconLoad", "style", "stylesMemoizer"];
2
2
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
3
3
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
4
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -33,7 +33,7 @@ import { keysOf } from '../common';
33
33
  import { typeToPathMap } from './icon_map';
34
34
  import { icon as empty } from './assets/empty';
35
35
  import { enqueueStateChange } from '../../services/react';
36
- import { htmlIdGenerator, withEuiTheme } from '../../services';
36
+ import { htmlIdGenerator, withEuiStylesMemoizer } from '../../services';
37
37
  export { COLORS } from './named_colors';
38
38
  import { isNamedColor } from './named_colors';
39
39
  import { euiIconStyles } from './icon.styles';
@@ -185,8 +185,8 @@ export var EuiIconClass = /*#__PURE__*/function (_PureComponent) {
185
185
  tabIndex = _this$props.tabIndex,
186
186
  title = _this$props.title,
187
187
  onIconLoad = _this$props.onIconLoad,
188
- theme = _this$props.theme,
189
188
  style = _this$props.style,
189
+ stylesMemoizer = _this$props.stylesMemoizer,
190
190
  rest = _objectWithoutProperties(_this$props, _excluded);
191
191
  var _this$state = this.state,
192
192
  isLoading = _this$state.isLoading,
@@ -208,7 +208,7 @@ export var EuiIconClass = /*#__PURE__*/function (_PureComponent) {
208
208
  var classes = classNames('euiIcon', className);
209
209
 
210
210
  // Emotion styles
211
- var styles = euiIconStyles(theme);
211
+ var styles = stylesMemoizer(euiIconStyles);
212
212
  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];
213
213
  var icon = this.state.icon || empty;
214
214
  if (typeof icon === 'string') {
@@ -225,30 +225,27 @@ export var EuiIconClass = /*#__PURE__*/function (_PureComponent) {
225
225
 
226
226
  // If it's an empty icon, or if there is no aria-label, aria-labelledby, or title it gets aria-hidden true
227
227
  var isAriaHidden = icon === empty || !(this.props['aria-label'] || this.props['aria-labelledby'] || this.props.title);
228
- var hideIconEmpty = isAriaHidden && {
229
- 'aria-hidden': true
230
- };
231
- var titleId;
232
228
 
233
229
  // If no aria-label or aria-labelledby is provided but there's a title, a titleId is generated
234
230
  // The svg aria-labelledby attribute gets this titleId
235
231
  // The svg title element gets this titleId as an id
236
- if (!this.props['aria-label'] && !this.props['aria-labelledby'] && title) {
237
- titleId = {
238
- titleId: generateId()
239
- };
240
- }
232
+ var titleId = !this.props['aria-label'] && !this.props['aria-labelledby'] && title ? {
233
+ titleId: generateId()
234
+ } : undefined;
241
235
  return ___EmotionJSX(Svg, _extends({
242
236
  className: classes,
243
237
  style: optionalCustomStyles,
244
238
  css: cssStyles,
245
239
  tabIndex: tabIndex,
246
240
  role: "img",
247
- title: title,
241
+ title: title
242
+ }, titleId, {
248
243
  "data-icon-type": iconTitle,
249
244
  "data-is-loaded": isLoaded || undefined,
250
245
  "data-is-loading": isLoading || undefined
251
- }, titleId, rest, hideIconEmpty));
246
+ }, rest, {
247
+ "aria-hidden": isAriaHidden || undefined
248
+ }));
252
249
  }
253
250
  }
254
251
  }]);
@@ -289,4 +286,4 @@ EuiIconClass.propTypes = {
289
286
  */
290
287
  onIconLoad: PropTypes.func
291
288
  };
292
- export var EuiIcon = withEuiTheme(EuiIconClass);
289
+ 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;"),
@@ -12,7 +12,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
12
12
 
13
13
  import React from 'react';
14
14
  import PropTypes from "prop-types";
15
- import { useEuiTheme } from '../../services';
15
+ import { useEuiMemoizedStyles } from '../../services';
16
16
  import { logicalStyle } from '../../global_styling';
17
17
  import { EuiIcon } from '../icon';
18
18
  import { EuiI18n, useEuiI18n } from '../i18n';
@@ -23,16 +23,19 @@ import { EuiScreenReaderOnly } from '../accessibility';
23
23
  * screen readers. Used internally by at EuiLink and EuiListGroupItem
24
24
  */
25
25
  import { jsx as ___EmotionJSX } from "@emotion/react";
26
- export var EuiExternalLinkIcon = function EuiExternalLinkIcon(_ref) {
27
- var target = _ref.target,
28
- external = _ref.external,
29
- rest = _objectWithoutProperties(_ref, _excluded);
30
- var _useEuiTheme = useEuiTheme(),
31
- euiTheme = _useEuiTheme.euiTheme;
26
+ var iconStyle = function iconStyle(_ref) {
27
+ var euiTheme = _ref.euiTheme;
28
+ return logicalStyle('margin-left', euiTheme.size.xs);
29
+ };
30
+ export var EuiExternalLinkIcon = function EuiExternalLinkIcon(_ref2) {
31
+ var target = _ref2.target,
32
+ external = _ref2.external,
33
+ rest = _objectWithoutProperties(_ref2, _excluded);
34
+ var iconCssStyle = useEuiMemoizedStyles(iconStyle);
32
35
  var showExternalLinkIcon = target === '_blank' && external !== false || external === true;
33
36
  var iconAriaLabel = useEuiI18n('euiExternalLinkIcon.ariaLabel', 'External link');
34
37
  return ___EmotionJSX(React.Fragment, null, showExternalLinkIcon && ___EmotionJSX(EuiIcon, _extends({
35
- css: logicalStyle('margin-left', euiTheme.size.xs),
38
+ css: iconCssStyle,
36
39
  "aria-label": iconAriaLabel,
37
40
  size: "s",
38
41
  type: "popout"
@@ -19,7 +19,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
19
19
  import React, { forwardRef } from 'react';
20
20
  import PropTypes from "prop-types";
21
21
  import classNames from 'classnames';
22
- import { getSecureRelForTarget, useEuiTheme } from '../../services';
22
+ import { getSecureRelForTarget, useEuiMemoizedStyles } from '../../services';
23
23
  import { validateHref } from '../../services/security/href_validator';
24
24
  import { EuiExternalLinkIcon } from './external_link_icon';
25
25
  import { euiLinkStyles } from './link.styles';
@@ -39,8 +39,7 @@ var EuiLink = /*#__PURE__*/forwardRef(function (_ref, ref) {
39
39
  onClick = _ref.onClick,
40
40
  _disabled = _ref.disabled,
41
41
  rest = _objectWithoutProperties(_ref, _excluded);
42
- var euiTheme = useEuiTheme();
43
- var styles = euiLinkStyles(euiTheme);
42
+ var styles = useEuiMemoizedStyles(euiLinkStyles);
44
43
  var cssStyles = [styles.euiLink];
45
44
  var isHrefValid = !href || validateHref(href);
46
45
  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
  };
@@ -74,7 +74,8 @@ export var EuiConfirmModal = function EuiConfirmModal(_ref) {
74
74
  return ___EmotionJSX(EuiModal, _extends({
75
75
  className: classes,
76
76
  css: cssStyles,
77
- onClose: onCancel
77
+ onClose: onCancel,
78
+ role: "alertdialog"
78
79
  }, rest), modalTitle, message && ___EmotionJSX(EuiModalBody, null, ___EmotionJSX(EuiText, {
79
80
  "data-test-subj": "confirmModalBodyText"
80
81
  }, message)), ___EmotionJSX(EuiModalFooter, null, ___EmotionJSX(EuiButtonEmpty, {
@@ -1,5 +1,5 @@
1
1
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
- var _excluded = ["className", "children", "initialFocus", "onClose", "maxWidth", "style"];
2
+ var _excluded = ["className", "children", "initialFocus", "onClose", "maxWidth", "role", "style"];
3
3
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
4
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5
5
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -33,6 +33,8 @@ export var EuiModal = function EuiModal(_ref) {
33
33
  onClose = _ref.onClose,
34
34
  _ref$maxWidth = _ref.maxWidth,
35
35
  maxWidth = _ref$maxWidth === void 0 ? true : _ref$maxWidth,
36
+ _ref$role = _ref.role,
37
+ role = _ref$role === void 0 ? 'dialog' : _ref$role,
36
38
  style = _ref.style,
37
39
  rest = _objectWithoutProperties(_ref, _excluded);
38
40
  var onKeyDown = function onKeyDown(event) {
@@ -62,7 +64,9 @@ export var EuiModal = function EuiModal(_ref) {
62
64
  className: classes,
63
65
  onKeyDown: onKeyDown,
64
66
  tabIndex: 0,
65
- style: newStyle
67
+ style: newStyle,
68
+ role: role,
69
+ "aria-modal": true
66
70
  }, rest), ___EmotionJSX(EuiI18n, {
67
71
  token: "euiModal.closeModal",
68
72
  default: "Closes this modal window"
@@ -96,5 +100,10 @@ EuiModal.propTypes = {
96
100
  * Specifies what element should initially have focus.
97
101
  * Can be a DOM node, or a selector string (which will be passed to document.querySelector() to find the DOM node), or a function that returns a DOM node.
98
102
  */
99
- initialFocus: PropTypes.oneOfType([PropTypes.any.isRequired, PropTypes.func.isRequired, PropTypes.string.isRequired])
103
+ initialFocus: PropTypes.oneOfType([PropTypes.any.isRequired, PropTypes.func.isRequired, PropTypes.string.isRequired]),
104
+ /**
105
+ * Identifies a modal dialog to screen readers. Modal dialogs that confirm destructive actions
106
+ * or need a user's attention should use "alertdialog".
107
+ */
108
+ role: PropTypes.oneOf(["dialog", "alertdialog"])
100
109
  };
@@ -44,14 +44,13 @@ export var EuiResizeObserver = /*#__PURE__*/function (_EuiObserver) {
44
44
  height: 0,
45
45
  width: 0
46
46
  });
47
- _defineProperty(_assertThisInitialized(_this), "onResize", function () {
48
- // `entry.contentRect` provides incomplete `height` and `width` data.
49
- // Use `getBoundingClientRect` to account for padding and border.
50
- // https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly
51
- if (!_this.childNode) return;
52
- var _this$childNode$getBo = _this.childNode.getBoundingClientRect(),
53
- height = _this$childNode$getBo.height,
54
- width = _this$childNode$getBo.width;
47
+ _defineProperty(_assertThisInitialized(_this), "onResize", function (_ref) {
48
+ var _ref2 = _slicedToArray(_ref, 1),
49
+ entry = _ref2[0];
50
+ var _entry$borderBoxSize$ = entry.borderBoxSize[0],
51
+ width = _entry$borderBoxSize$.inlineSize,
52
+ height = _entry$borderBoxSize$.blockSize;
53
+
55
54
  // Check for actual resize event
56
55
  if (_this.state.height === height && _this.state.width === width) {
57
56
  return;
@@ -105,23 +104,15 @@ export var useResizeObserver = function useResizeObserver(container, dimension)
105
104
  }, [dimension]);
106
105
  useEffect(function () {
107
106
  if (container != null) {
108
- // ResizeObserver's first call to the observation callback is scheduled in the future
109
- // so find the container's initial dimensions now
110
- var boundingRect = container.getBoundingClientRect();
111
- setSize({
112
- width: boundingRect.width,
113
- height: boundingRect.height
114
- });
115
- var observer = makeResizeObserver(container, function () {
116
- // `entry.contentRect` provides incomplete `height` and `width` data.
117
- // Use `getBoundingClientRect` to account for padding and border.
118
- // https://developer.mozilla.org/en-US/docs/Web/API/DOMRectReadOnly
119
- var _container$getBoundin = container.getBoundingClientRect(),
120
- height = _container$getBoundin.height,
121
- width = _container$getBoundin.width;
107
+ var observer = makeResizeObserver(container, function (_ref3) {
108
+ var _ref4 = _slicedToArray(_ref3, 1),
109
+ entry = _ref4[0];
110
+ var _entry$borderBoxSize$2 = entry.borderBoxSize[0],
111
+ inlineSize = _entry$borderBoxSize$2.inlineSize,
112
+ blockSize = _entry$borderBoxSize$2.blockSize;
122
113
  setSize({
123
- width: width,
124
- height: height
114
+ width: inlineSize,
115
+ height: blockSize
125
116
  });
126
117
  });
127
118
  return function () {