@elastic/eui 62.0.3 → 63.0.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 (500) hide show
  1. package/dist/eui_charts_theme.js +330 -330
  2. package/dist/eui_charts_theme.js.map +1 -1
  3. package/dist/eui_theme_dark.css +4 -1053
  4. package/dist/eui_theme_dark.json +0 -57
  5. package/dist/eui_theme_dark.json.d.ts +0 -57
  6. package/dist/eui_theme_dark.min.css +1 -1
  7. package/dist/eui_theme_light.css +4 -1053
  8. package/dist/eui_theme_light.json +0 -57
  9. package/dist/eui_theme_light.json.d.ts +0 -57
  10. package/dist/eui_theme_light.min.css +1 -1
  11. package/es/components/bottom_bar/bottom_bar.js +20 -3
  12. package/es/components/breadcrumbs/breadcrumb.js +199 -0
  13. package/es/components/breadcrumbs/breadcrumb.styles.js +61 -0
  14. package/es/components/breadcrumbs/breadcrumbs.js +115 -187
  15. package/es/components/breadcrumbs/breadcrumbs.styles.js +30 -0
  16. package/es/components/code/code_block.js +119 -107
  17. package/es/components/collapsible_nav/collapsible_nav.js +2 -2
  18. package/es/components/control_bar/control_bar.js +13 -0
  19. package/es/components/datagrid/body/data_grid_body.js +12 -2
  20. package/es/components/datagrid/body/data_grid_cell.js +31 -3
  21. package/es/components/datagrid/body/header/data_grid_header_row.js +1 -1
  22. package/es/components/datagrid/controls/column_sorting_draggable.js +1 -1
  23. package/es/components/datagrid/data_grid.js +10 -2
  24. package/es/components/datagrid/utils/row_heights.js +33 -4
  25. package/es/components/date_picker/super_date_picker/super_date_picker.js +2 -2
  26. package/es/components/date_picker/super_date_picker/super_update_button.js +1 -1
  27. package/es/components/description_list/description_list.js +22 -26
  28. package/es/components/description_list/description_list.styles.js +25 -0
  29. package/es/components/description_list/description_list_context.js +14 -0
  30. package/es/components/description_list/description_list_description.js +43 -2
  31. package/es/components/description_list/description_list_description.styles.js +47 -0
  32. package/es/components/description_list/description_list_title.js +43 -2
  33. package/es/components/description_list/description_list_title.styles.js +37 -0
  34. package/es/components/description_list/description_list_types.js +10 -0
  35. package/es/components/header/header.js +3 -27
  36. package/es/components/header/header_breadcrumbs/header_breadcrumbs.js +22 -2
  37. package/es/components/header/header_breadcrumbs/header_breadcrumbs.styles.js +15 -0
  38. package/es/components/header/header_links/header_links.js +11 -10
  39. package/es/components/icon/assets/tokenStruct.js +1 -1
  40. package/es/components/index.js +1 -0
  41. package/es/components/page/_bottom_border.js +1 -0
  42. package/es/components/page/_restrict_width.js +34 -7
  43. package/es/components/page/index.js +5 -3
  44. package/es/components/page/page.js +19 -30
  45. package/es/components/page/page.styles.js +43 -0
  46. package/es/components/page/page_body/page_body.js +18 -26
  47. package/es/components/page/page_body/page_body.styles.js +16 -0
  48. package/es/components/page/page_content/index.js +4 -4
  49. package/es/components/page/page_content/page_content.js +7 -2
  50. package/es/components/page/page_content/page_content_body.js +12 -7
  51. package/es/components/page/page_content/page_content_header.js +7 -2
  52. package/es/components/page/page_content/page_content_header_section.js +7 -2
  53. package/es/components/page/page_header/page_header.js +29 -171
  54. package/es/components/page/page_header/page_header.styles.js +16 -0
  55. package/es/components/page/page_header/page_header_content.js +85 -16
  56. package/es/components/page/page_header/page_header_content.styles.js +84 -0
  57. package/es/components/page/page_section/index.js +8 -0
  58. package/es/components/page/page_section/page_section.js +102 -0
  59. package/es/components/page/page_section/page_section.styles.js +43 -0
  60. package/es/components/page/page_side_bar/index.js +1 -1
  61. package/es/components/page/page_side_bar/page_side_bar.js +8 -3
  62. package/es/components/page/page_sidebar/index.js +8 -0
  63. package/es/components/page/page_sidebar/page_sidebar.js +110 -0
  64. package/es/components/page/page_sidebar/page_sidebar.styles.js +29 -0
  65. package/es/components/page/page_template.js +54 -153
  66. package/es/components/page_template/bottom_bar/page_bottom_bar.js +102 -0
  67. package/es/components/page_template/empty_prompt/page_empty_prompt.js +107 -0
  68. package/es/components/page_template/index.js +8 -0
  69. package/es/components/page_template/inner/index.js +8 -0
  70. package/es/components/page_template/inner/page_inner.js +51 -0
  71. package/es/components/page_template/inner/page_inner.styles.js +22 -0
  72. package/es/components/page_template/outer/index.js +8 -0
  73. package/es/components/page_template/outer/page_outer.js +59 -0
  74. package/es/components/page_template/outer/page_outer.styles.js +49 -0
  75. package/es/components/page_template/page_template.js +376 -0
  76. package/es/components/pagination/pagination.js +1 -1
  77. package/es/components/panel/split_panel/split_panel.js +2 -2
  78. package/es/components/provider/provider.js +2 -2
  79. package/es/components/responsive/hide_for.js +6 -38
  80. package/es/components/responsive/show_for.js +6 -38
  81. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +17 -36
  82. package/es/components/side_nav/side_nav.js +1 -1
  83. package/es/components/table/table_row_cell.js +1 -2
  84. package/es/components/toast/global_toast_list.js +208 -241
  85. package/es/components/toast/global_toast_list.styles.js +38 -0
  86. package/es/components/toast/global_toast_list_item.js +12 -7
  87. package/es/components/toast/toast.js +25 -25
  88. package/es/components/toast/toast.styles.js +55 -0
  89. package/es/components/token/index.js +2 -1
  90. package/es/components/token/token.js +48 -112
  91. package/es/components/token/token.styles.js +93 -0
  92. package/es/components/token/token_map.js +6 -9
  93. package/es/components/token/token_types.js +11 -0
  94. package/es/global_styling/functions/logicals.js +1 -1
  95. package/es/global_styling/mixins/_helpers.js +27 -9
  96. package/es/global_styling/reset/global_styles.js +1 -1
  97. package/es/services/{breakpoint.js → breakpoint/breakpoint.js} +4 -9
  98. package/es/services/{hooks/useIsWithinBreakpoints.js → breakpoint/currentEuiBreakpoint.js} +36 -28
  99. package/es/services/breakpoint/index.js +10 -0
  100. package/es/services/breakpoint/useIsWithinBreakpoints.js +24 -0
  101. package/es/services/hooks/index.js +0 -1
  102. package/es/services/index.js +1 -1
  103. package/es/test/rtl/component_helpers.js +60 -1
  104. package/eui.d.ts +2100 -1504
  105. package/i18ntokens.json +36 -36
  106. package/lib/components/bottom_bar/bottom_bar.js +20 -3
  107. package/lib/components/breadcrumbs/breadcrumb.js +225 -0
  108. package/lib/components/breadcrumbs/breadcrumb.styles.js +68 -0
  109. package/lib/components/breadcrumbs/breadcrumbs.js +125 -188
  110. package/lib/components/breadcrumbs/breadcrumbs.styles.js +33 -0
  111. package/lib/components/code/code_block.js +118 -106
  112. package/lib/components/collapsible_nav/collapsible_nav.js +2 -2
  113. package/lib/components/control_bar/control_bar.js +13 -0
  114. package/lib/components/datagrid/body/data_grid_body.js +12 -2
  115. package/lib/components/datagrid/body/data_grid_cell.js +31 -3
  116. package/lib/components/datagrid/body/header/data_grid_header_row.js +1 -1
  117. package/lib/components/datagrid/controls/column_sorting_draggable.js +1 -1
  118. package/lib/components/datagrid/data_grid.js +10 -2
  119. package/lib/components/datagrid/utils/row_heights.js +33 -4
  120. package/lib/components/date_picker/super_date_picker/super_date_picker.js +2 -2
  121. package/lib/components/date_picker/super_date_picker/super_update_button.js +1 -1
  122. package/lib/components/description_list/description_list.js +25 -31
  123. package/lib/components/description_list/description_list.styles.js +36 -0
  124. package/lib/components/description_list/description_list_context.js +24 -0
  125. package/lib/components/description_list/description_list_description.js +52 -2
  126. package/lib/components/description_list/description_list_description.styles.js +51 -0
  127. package/lib/components/description_list/description_list_title.js +52 -2
  128. package/lib/components/description_list/description_list_title.styles.js +50 -0
  129. package/lib/components/description_list/description_list_types.js +20 -0
  130. package/lib/components/header/header.js +3 -27
  131. package/lib/components/header/header_breadcrumbs/header_breadcrumbs.js +24 -2
  132. package/lib/components/header/header_breadcrumbs/header_breadcrumbs.styles.js +26 -0
  133. package/lib/components/header/header_links/header_links.js +10 -9
  134. package/lib/components/icon/assets/tokenStruct.js +1 -1
  135. package/lib/components/icon/svgs/tokens/tokenStruct.svg +1 -1
  136. package/lib/components/index.js +13 -0
  137. package/lib/components/page/_bottom_border.js +5 -0
  138. package/lib/components/page/_restrict_width.js +38 -7
  139. package/lib/components/page/index.js +28 -12
  140. package/lib/components/page/page.js +22 -34
  141. package/lib/components/page/page.styles.js +46 -0
  142. package/lib/components/page/page_body/page_body.js +20 -29
  143. package/lib/components/page/page_body/page_body.styles.js +27 -0
  144. package/lib/components/page/page_content/index.js +8 -8
  145. package/lib/components/page/page_content/page_content.js +8 -4
  146. package/lib/components/page/page_content/page_content_body.js +13 -9
  147. package/lib/components/page/page_content/page_content_header.js +8 -4
  148. package/lib/components/page/page_content/page_content_header_section.js +8 -4
  149. package/lib/components/page/page_header/page_header.js +31 -174
  150. package/lib/components/page/page_header/page_header.styles.js +27 -0
  151. package/lib/components/page/page_header/page_header_content.js +111 -18
  152. package/lib/components/page/page_header/page_header_content.styles.js +87 -0
  153. package/lib/components/page/page_section/index.js +13 -0
  154. package/lib/components/page/page_section/page_section.js +113 -0
  155. package/lib/components/page/page_section/page_section.styles.js +51 -0
  156. package/lib/components/page/page_side_bar/index.js +2 -2
  157. package/lib/components/page/page_side_bar/page_side_bar.js +9 -5
  158. package/lib/components/page/page_sidebar/index.js +13 -0
  159. package/lib/components/page/page_sidebar/page_sidebar.js +124 -0
  160. package/lib/components/page/page_sidebar/page_sidebar.styles.js +32 -0
  161. package/lib/components/page/page_template.js +76 -176
  162. package/lib/components/page_template/bottom_bar/page_bottom_bar.js +114 -0
  163. package/lib/components/page_template/empty_prompt/page_empty_prompt.js +116 -0
  164. package/lib/components/page_template/index.js +13 -0
  165. package/lib/components/page_template/inner/index.js +13 -0
  166. package/lib/components/page_template/inner/page_inner.js +60 -0
  167. package/lib/components/page_template/inner/page_inner.styles.js +35 -0
  168. package/lib/components/page_template/outer/index.js +13 -0
  169. package/lib/components/page_template/outer/page_outer.js +68 -0
  170. package/lib/components/page_template/outer/page_outer.styles.js +51 -0
  171. package/lib/components/page_template/page_template.js +399 -0
  172. package/lib/components/pagination/pagination.js +1 -1
  173. package/lib/components/panel/split_panel/split_panel.js +3 -3
  174. package/lib/components/provider/provider.js +1 -1
  175. package/lib/components/responsive/hide_for.js +12 -44
  176. package/lib/components/responsive/show_for.js +12 -44
  177. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +15 -35
  178. package/lib/components/side_nav/side_nav.js +1 -1
  179. package/lib/components/table/table_row_cell.js +1 -3
  180. package/lib/components/toast/global_toast_list.js +209 -238
  181. package/lib/components/toast/global_toast_list.styles.js +45 -0
  182. package/lib/components/toast/global_toast_list_item.js +14 -7
  183. package/lib/components/toast/toast.js +27 -25
  184. package/lib/components/toast/toast.styles.js +66 -0
  185. package/lib/components/token/index.js +5 -3
  186. package/lib/components/token/token.js +50 -120
  187. package/lib/components/token/token.styles.js +101 -0
  188. package/lib/components/token/token_map.js +6 -9
  189. package/lib/components/token/token_types.js +22 -0
  190. package/lib/global_styling/functions/logicals.js +1 -1
  191. package/lib/global_styling/mixins/_helpers.js +27 -9
  192. package/lib/global_styling/reset/global_styles.js +1 -1
  193. package/{test-env/services → lib/services/breakpoint}/breakpoint.js +5 -9
  194. package/lib/services/breakpoint/currentEuiBreakpoint.js +80 -0
  195. package/lib/services/breakpoint/index.js +44 -0
  196. package/lib/services/breakpoint/useIsWithinBreakpoints.js +34 -0
  197. package/lib/services/hooks/index.js +0 -13
  198. package/lib/services/index.js +28 -0
  199. package/lib/test/rtl/component_helpers.js +69 -3
  200. package/optimize/es/components/bottom_bar/bottom_bar.js +1 -1
  201. package/optimize/es/components/breadcrumbs/breadcrumb.js +136 -0
  202. package/optimize/es/components/breadcrumbs/breadcrumb.styles.js +61 -0
  203. package/optimize/es/components/breadcrumbs/breadcrumbs.js +92 -165
  204. package/optimize/es/components/breadcrumbs/breadcrumbs.styles.js +30 -0
  205. package/optimize/es/components/code/code_block.js +106 -107
  206. package/optimize/es/components/datagrid/body/data_grid_body.js +2 -0
  207. package/optimize/es/components/datagrid/body/data_grid_cell.js +13 -1
  208. package/optimize/es/components/datagrid/utils/row_heights.js +33 -4
  209. package/optimize/es/components/description_list/description_list.js +20 -24
  210. package/optimize/es/components/description_list/description_list.styles.js +25 -0
  211. package/optimize/es/components/description_list/description_list_context.js +14 -0
  212. package/optimize/es/components/description_list/description_list_description.js +32 -2
  213. package/optimize/es/components/description_list/description_list_description.styles.js +47 -0
  214. package/optimize/es/components/description_list/description_list_title.js +32 -2
  215. package/optimize/es/components/description_list/description_list_title.styles.js +37 -0
  216. package/optimize/es/components/description_list/description_list_types.js +10 -0
  217. package/optimize/es/components/header/header.js +2 -0
  218. package/optimize/es/components/header/header_breadcrumbs/header_breadcrumbs.js +8 -1
  219. package/optimize/es/components/header/header_breadcrumbs/header_breadcrumbs.styles.js +15 -0
  220. package/optimize/es/components/header/header_links/header_links.js +10 -9
  221. package/optimize/es/components/icon/assets/tokenStruct.js +1 -1
  222. package/optimize/es/components/index.js +1 -0
  223. package/optimize/es/components/page/_bottom_border.js +1 -0
  224. package/optimize/es/components/page/_restrict_width.js +34 -7
  225. package/optimize/es/components/page/index.js +5 -3
  226. package/optimize/es/components/page/page.js +18 -28
  227. package/optimize/es/components/page/page.styles.js +43 -0
  228. package/optimize/es/components/page/page_body/page_body.js +18 -25
  229. package/optimize/es/components/page/page_body/page_body.styles.js +16 -0
  230. package/optimize/es/components/page/page_content/index.js +4 -4
  231. package/optimize/es/components/page/page_content/page_content.js +6 -1
  232. package/optimize/es/components/page/page_content/page_content_body.js +10 -5
  233. package/optimize/es/components/page/page_content/page_content_header.js +6 -1
  234. package/optimize/es/components/page/page_content/page_content_header_section.js +6 -1
  235. package/optimize/es/components/page/page_header/page_header.js +20 -32
  236. package/optimize/es/components/page/page_header/page_header.styles.js +16 -0
  237. package/optimize/es/components/page/page_header/page_header_content.js +62 -14
  238. package/optimize/es/components/page/page_header/page_header_content.styles.js +84 -0
  239. package/optimize/es/components/page/page_section/index.js +8 -0
  240. package/optimize/es/components/page/page_section/page_section.js +51 -0
  241. package/optimize/es/components/page/page_section/page_section.styles.js +43 -0
  242. package/optimize/es/components/page/page_side_bar/index.js +1 -1
  243. package/optimize/es/components/page/page_side_bar/page_side_bar.js +6 -1
  244. package/optimize/es/components/page/page_sidebar/index.js +8 -0
  245. package/optimize/es/components/page/page_sidebar/page_sidebar.js +60 -0
  246. package/optimize/es/components/page/page_sidebar/page_sidebar.styles.js +29 -0
  247. package/optimize/es/components/page/page_template.js +29 -9
  248. package/optimize/es/components/page_template/bottom_bar/page_bottom_bar.js +70 -0
  249. package/optimize/es/components/page_template/empty_prompt/page_empty_prompt.js +61 -0
  250. package/optimize/es/components/page_template/index.js +8 -0
  251. package/optimize/es/components/page_template/inner/index.js +8 -0
  252. package/optimize/es/components/page_template/inner/page_inner.js +47 -0
  253. package/optimize/es/components/page_template/inner/page_inner.styles.js +22 -0
  254. package/optimize/es/components/page_template/outer/index.js +8 -0
  255. package/optimize/es/components/page_template/outer/page_outer.js +33 -0
  256. package/optimize/es/components/page_template/outer/page_outer.styles.js +49 -0
  257. package/optimize/es/components/page_template/page_template.js +202 -0
  258. package/optimize/es/components/panel/split_panel/split_panel.js +1 -1
  259. package/optimize/es/components/provider/provider.js +2 -2
  260. package/optimize/es/components/responsive/hide_for.js +5 -27
  261. package/optimize/es/components/responsive/show_for.js +5 -27
  262. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide.js +16 -35
  263. package/optimize/es/components/table/table_row_cell.js +1 -2
  264. package/optimize/es/components/toast/global_toast_list.js +199 -230
  265. package/optimize/es/components/toast/global_toast_list.styles.js +38 -0
  266. package/optimize/es/components/toast/global_toast_list_item.js +11 -6
  267. package/optimize/es/components/toast/toast.js +24 -24
  268. package/optimize/es/components/toast/toast.styles.js +55 -0
  269. package/optimize/es/components/token/index.js +2 -1
  270. package/optimize/es/components/token/token.js +46 -69
  271. package/optimize/es/components/token/token.styles.js +83 -0
  272. package/optimize/es/components/token/token_map.js +6 -9
  273. package/optimize/es/components/token/token_types.js +11 -0
  274. package/optimize/es/global_styling/functions/logicals.js +1 -1
  275. package/optimize/es/global_styling/mixins/_helpers.js +27 -9
  276. package/optimize/es/global_styling/reset/global_styles.js +1 -1
  277. package/optimize/es/services/{breakpoint.js → breakpoint/breakpoint.js} +4 -9
  278. package/optimize/es/services/breakpoint/currentEuiBreakpoint.js +53 -0
  279. package/optimize/es/services/breakpoint/index.js +10 -0
  280. package/optimize/es/services/breakpoint/useIsWithinBreakpoints.js +24 -0
  281. package/optimize/es/services/hooks/index.js +0 -1
  282. package/optimize/es/services/index.js +1 -1
  283. package/optimize/es/test/rtl/component_helpers.js +60 -1
  284. package/optimize/lib/components/bottom_bar/bottom_bar.js +1 -1
  285. package/optimize/lib/components/breadcrumbs/breadcrumb.js +162 -0
  286. package/optimize/lib/components/breadcrumbs/breadcrumb.styles.js +68 -0
  287. package/optimize/lib/components/breadcrumbs/breadcrumbs.js +99 -164
  288. package/optimize/lib/components/breadcrumbs/breadcrumbs.styles.js +33 -0
  289. package/optimize/lib/components/code/code_block.js +105 -106
  290. package/optimize/lib/components/datagrid/body/data_grid_body.js +2 -0
  291. package/optimize/lib/components/datagrid/body/data_grid_cell.js +13 -1
  292. package/optimize/lib/components/datagrid/utils/row_heights.js +33 -4
  293. package/optimize/lib/components/description_list/description_list.js +23 -28
  294. package/optimize/lib/components/description_list/description_list.styles.js +36 -0
  295. package/optimize/lib/components/description_list/description_list_context.js +24 -0
  296. package/optimize/lib/components/description_list/description_list_description.js +43 -2
  297. package/optimize/lib/components/description_list/description_list_description.styles.js +51 -0
  298. package/optimize/lib/components/description_list/description_list_title.js +43 -2
  299. package/optimize/lib/components/description_list/description_list_title.styles.js +50 -0
  300. package/optimize/lib/components/description_list/description_list_types.js +20 -0
  301. package/optimize/lib/components/header/header.js +2 -0
  302. package/optimize/lib/components/header/header_breadcrumbs/header_breadcrumbs.js +10 -1
  303. package/optimize/lib/components/header/header_breadcrumbs/header_breadcrumbs.styles.js +26 -0
  304. package/optimize/lib/components/header/header_links/header_links.js +9 -8
  305. package/optimize/lib/components/icon/assets/tokenStruct.js +1 -1
  306. package/optimize/lib/components/icon/svgs/tokens/tokenStruct.svg +1 -1
  307. package/optimize/lib/components/index.js +13 -0
  308. package/optimize/lib/components/page/_bottom_border.js +5 -0
  309. package/optimize/lib/components/page/_restrict_width.js +38 -7
  310. package/optimize/lib/components/page/index.js +28 -12
  311. package/optimize/lib/components/page/page.js +21 -33
  312. package/optimize/lib/components/page/page.styles.js +46 -0
  313. package/optimize/lib/components/page/page_body/page_body.js +20 -29
  314. package/optimize/lib/components/page/page_body/page_body.styles.js +27 -0
  315. package/optimize/lib/components/page/page_content/index.js +8 -8
  316. package/optimize/lib/components/page/page_content/page_content.js +7 -3
  317. package/optimize/lib/components/page/page_content/page_content_body.js +11 -7
  318. package/optimize/lib/components/page/page_content/page_content_header.js +7 -3
  319. package/optimize/lib/components/page/page_content/page_content_header_section.js +7 -3
  320. package/optimize/lib/components/page/page_header/page_header.js +22 -36
  321. package/optimize/lib/components/page/page_header/page_header.styles.js +27 -0
  322. package/optimize/lib/components/page/page_header/page_header_content.js +68 -15
  323. package/optimize/lib/components/page/page_header/page_header_content.styles.js +87 -0
  324. package/optimize/lib/components/page/page_section/index.js +13 -0
  325. package/optimize/lib/components/page/page_section/page_section.js +62 -0
  326. package/optimize/lib/components/page/page_section/page_section.styles.js +51 -0
  327. package/optimize/lib/components/page/page_side_bar/index.js +2 -2
  328. package/optimize/lib/components/page/page_side_bar/page_side_bar.js +7 -3
  329. package/optimize/lib/components/page/page_sidebar/index.js +13 -0
  330. package/optimize/lib/components/page/page_sidebar/page_sidebar.js +79 -0
  331. package/optimize/lib/components/page/page_sidebar/page_sidebar.styles.js +32 -0
  332. package/optimize/lib/components/page/page_template.js +51 -33
  333. package/optimize/lib/components/page_template/bottom_bar/page_bottom_bar.js +85 -0
  334. package/optimize/lib/components/page_template/empty_prompt/page_empty_prompt.js +71 -0
  335. package/optimize/lib/components/page_template/index.js +13 -0
  336. package/optimize/lib/components/page_template/inner/index.js +13 -0
  337. package/optimize/lib/components/page_template/inner/page_inner.js +57 -0
  338. package/optimize/lib/components/page_template/inner/page_inner.styles.js +35 -0
  339. package/optimize/lib/components/page_template/outer/index.js +13 -0
  340. package/optimize/lib/components/page_template/outer/page_outer.js +42 -0
  341. package/optimize/lib/components/page_template/outer/page_outer.styles.js +51 -0
  342. package/optimize/lib/components/page_template/page_template.js +228 -0
  343. package/optimize/lib/components/panel/split_panel/split_panel.js +2 -2
  344. package/optimize/lib/components/provider/provider.js +1 -1
  345. package/optimize/lib/components/responsive/hide_for.js +4 -33
  346. package/optimize/lib/components/responsive/show_for.js +4 -33
  347. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +14 -34
  348. package/optimize/lib/components/table/table_row_cell.js +1 -3
  349. package/optimize/lib/components/toast/global_toast_list.js +206 -220
  350. package/optimize/lib/components/toast/global_toast_list.styles.js +47 -0
  351. package/optimize/lib/components/toast/global_toast_list_item.js +14 -7
  352. package/optimize/lib/components/toast/toast.js +26 -24
  353. package/optimize/lib/components/toast/toast.styles.js +66 -0
  354. package/optimize/lib/components/token/index.js +5 -3
  355. package/optimize/lib/components/token/token.js +50 -76
  356. package/optimize/lib/components/token/token.styles.js +91 -0
  357. package/optimize/lib/components/token/token_map.js +6 -9
  358. package/optimize/lib/components/token/token_types.js +22 -0
  359. package/optimize/lib/global_styling/functions/logicals.js +1 -1
  360. package/optimize/lib/global_styling/mixins/_helpers.js +27 -9
  361. package/optimize/lib/global_styling/reset/global_styles.js +1 -1
  362. package/optimize/lib/services/{breakpoint.js → breakpoint/breakpoint.js} +5 -9
  363. package/optimize/lib/services/breakpoint/currentEuiBreakpoint.js +81 -0
  364. package/optimize/lib/services/breakpoint/index.js +44 -0
  365. package/optimize/lib/services/breakpoint/useIsWithinBreakpoints.js +34 -0
  366. package/optimize/lib/services/hooks/index.js +0 -13
  367. package/optimize/lib/services/index.js +28 -0
  368. package/optimize/lib/test/rtl/component_helpers.js +69 -3
  369. package/package.json +2 -2
  370. package/src/components/control_bar/_control_bar.scss +1 -1
  371. package/src/components/header/_index.scss +0 -1
  372. package/src/components/index.scss +0 -5
  373. package/src/components/page/_index.scss +0 -5
  374. package/src/components/page/page_content/_page_content_body.scss +10 -1
  375. package/src/components/tabs/_tabs.scss +2 -0
  376. package/src/themes/amsterdam/overrides/_breadcrumbs.scss +0 -12
  377. package/src/themes/amsterdam/overrides/_index.scss +0 -4
  378. package/test-env/components/bottom_bar/bottom_bar.js +20 -3
  379. package/test-env/components/breadcrumbs/breadcrumb.js +211 -0
  380. package/test-env/components/breadcrumbs/breadcrumb.styles.js +68 -0
  381. package/test-env/components/breadcrumbs/breadcrumbs.js +122 -174
  382. package/test-env/components/breadcrumbs/breadcrumbs.styles.js +33 -0
  383. package/test-env/components/collapsible_nav/collapsible_nav.js +2 -2
  384. package/test-env/components/control_bar/control_bar.js +13 -0
  385. package/test-env/components/datagrid/body/data_grid_body.js +12 -2
  386. package/test-env/components/datagrid/body/data_grid_cell.js +31 -3
  387. package/test-env/components/datagrid/body/header/data_grid_header_row.js +1 -1
  388. package/test-env/components/datagrid/controls/column_sorting_draggable.js +1 -1
  389. package/test-env/components/datagrid/data_grid.js +10 -2
  390. package/test-env/components/datagrid/utils/row_heights.js +33 -4
  391. package/test-env/components/date_picker/super_date_picker/super_date_picker.js +2 -2
  392. package/test-env/components/date_picker/super_date_picker/super_update_button.js +1 -1
  393. package/test-env/components/description_list/description_list.js +25 -30
  394. package/test-env/components/description_list/description_list.styles.js +36 -0
  395. package/test-env/components/description_list/description_list_context.js +24 -0
  396. package/test-env/components/description_list/description_list_description.js +43 -2
  397. package/test-env/components/description_list/description_list_description.styles.js +51 -0
  398. package/test-env/components/description_list/description_list_title.js +43 -2
  399. package/test-env/components/description_list/description_list_title.styles.js +50 -0
  400. package/test-env/components/description_list/description_list_types.js +20 -0
  401. package/test-env/components/header/header.js +3 -27
  402. package/test-env/components/header/header_breadcrumbs/header_breadcrumbs.js +24 -2
  403. package/test-env/components/header/header_breadcrumbs/header_breadcrumbs.styles.js +26 -0
  404. package/test-env/components/header/header_links/header_links.js +10 -9
  405. package/test-env/components/icon/assets/tokenStruct.js +1 -1
  406. package/test-env/components/index.js +13 -0
  407. package/test-env/components/observer/resize_observer/resize_observer.js +43 -126
  408. package/test-env/components/page/_bottom_border.js +5 -0
  409. package/test-env/components/page/_restrict_width.js +38 -7
  410. package/test-env/components/page/index.js +28 -12
  411. package/test-env/components/page/page.js +22 -34
  412. package/test-env/components/page/page.styles.js +46 -0
  413. package/test-env/components/page/page_body/page_body.js +20 -29
  414. package/test-env/components/page/page_body/page_body.styles.js +27 -0
  415. package/test-env/components/page/page_content/index.js +8 -8
  416. package/test-env/components/page/page_content/page_content.js +8 -4
  417. package/test-env/components/page/page_content/page_content_body.js +13 -9
  418. package/test-env/components/page/page_content/page_content_header.js +8 -4
  419. package/test-env/components/page/page_content/page_content_header_section.js +8 -4
  420. package/test-env/components/page/page_header/page_header.js +31 -174
  421. package/test-env/components/page/page_header/page_header.styles.js +27 -0
  422. package/test-env/components/page/page_header/page_header_content.js +112 -18
  423. package/test-env/components/page/page_header/page_header_content.styles.js +87 -0
  424. package/test-env/components/page/page_section/index.js +13 -0
  425. package/test-env/components/page/page_section/page_section.js +110 -0
  426. package/test-env/components/page/page_section/page_section.styles.js +51 -0
  427. package/test-env/components/page/page_side_bar/index.js +2 -2
  428. package/test-env/components/page/page_side_bar/page_side_bar.js +9 -5
  429. package/test-env/components/page/page_sidebar/index.js +13 -0
  430. package/test-env/components/page/page_sidebar/page_sidebar.js +113 -0
  431. package/test-env/components/page/page_sidebar/page_sidebar.styles.js +32 -0
  432. package/test-env/components/page/page_template.js +76 -177
  433. package/test-env/components/page_template/bottom_bar/page_bottom_bar.js +102 -0
  434. package/test-env/components/page_template/empty_prompt/page_empty_prompt.js +114 -0
  435. package/test-env/components/page_template/index.js +13 -0
  436. package/test-env/components/page_template/inner/index.js +13 -0
  437. package/test-env/components/page_template/inner/page_inner.js +57 -0
  438. package/test-env/components/page_template/inner/page_inner.styles.js +35 -0
  439. package/test-env/components/page_template/outer/index.js +13 -0
  440. package/test-env/components/page_template/outer/page_outer.js +65 -0
  441. package/test-env/components/page_template/outer/page_outer.styles.js +51 -0
  442. package/test-env/components/page_template/page_template.js +387 -0
  443. package/test-env/components/pagination/pagination.js +1 -1
  444. package/test-env/components/panel/split_panel/split_panel.js +3 -3
  445. package/test-env/components/provider/provider.js +1 -1
  446. package/test-env/components/responsive/hide_for.js +5 -34
  447. package/test-env/components/responsive/show_for.js +5 -34
  448. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +15 -35
  449. package/test-env/components/side_nav/side_nav.js +1 -1
  450. package/test-env/components/table/table_row_cell.js +1 -3
  451. package/test-env/components/toast/global_toast_list.js +206 -220
  452. package/test-env/components/toast/global_toast_list.styles.js +47 -0
  453. package/test-env/components/toast/global_toast_list_item.js +14 -7
  454. package/test-env/components/toast/toast.js +27 -25
  455. package/test-env/components/toast/toast.styles.js +66 -0
  456. package/test-env/components/token/index.js +5 -3
  457. package/test-env/components/token/token.js +51 -120
  458. package/test-env/components/token/token.styles.js +91 -0
  459. package/test-env/components/token/token_map.js +6 -9
  460. package/test-env/components/token/token_types.js +22 -0
  461. package/test-env/global_styling/functions/logicals.js +1 -1
  462. package/test-env/global_styling/mixins/_helpers.js +27 -9
  463. package/test-env/global_styling/reset/global_styles.js +1 -1
  464. package/{lib/services → test-env/services/breakpoint}/breakpoint.js +5 -9
  465. package/test-env/services/breakpoint/currentEuiBreakpoint.js +37 -0
  466. package/test-env/services/breakpoint/index.js +44 -0
  467. package/test-env/services/breakpoint/useIsWithinBreakpoints.js +34 -0
  468. package/test-env/services/hooks/index.js +0 -13
  469. package/test-env/services/index.js +28 -0
  470. package/test-env/test/rtl/component_helpers.js +69 -3
  471. package/lib/services/hooks/useIsWithinBreakpoints.js +0 -57
  472. package/optimize/es/services/hooks/useIsWithinBreakpoints.js +0 -46
  473. package/optimize/lib/services/hooks/useIsWithinBreakpoints.js +0 -57
  474. package/src/components/breadcrumbs/_breadcrumbs.scss +0 -79
  475. package/src/components/breadcrumbs/_index.scss +0 -2
  476. package/src/components/breadcrumbs/_variables.scss +0 -2
  477. package/src/components/description_list/_description_list.scss +0 -211
  478. package/src/components/description_list/_index.scss +0 -1
  479. package/src/components/header/header_breadcrumbs/_header_breadcrumbs.scss +0 -8
  480. package/src/components/header/header_breadcrumbs/_index.scss +0 -1
  481. package/src/components/page/_mixins.scss +0 -12
  482. package/src/components/page/_page.scss +0 -41
  483. package/src/components/page/page_body/_index.scss +0 -1
  484. package/src/components/page/page_body/_page_body.scss +0 -45
  485. package/src/components/page/page_header/_index.scss +0 -3
  486. package/src/components/page/page_header/_page_header.scss +0 -78
  487. package/src/components/page/page_header/_page_header_content.scss +0 -15
  488. package/src/components/page/page_header/_page_header_section.scss +0 -26
  489. package/src/components/portal/_index.scss +0 -1
  490. package/src/components/portal/_portal.scss +0 -6
  491. package/src/components/toast/_global_toast_list.scss +0 -90
  492. package/src/components/toast/_index.scss +0 -4
  493. package/src/components/toast/_toast.scss +0 -103
  494. package/src/components/token/_index.scss +0 -2
  495. package/src/components/token/_token.scss +0 -85
  496. package/src/components/token/_variables.scss +0 -13
  497. package/src/themes/amsterdam/overrides/_header_breadcrumbs.scss +0 -71
  498. package/src/themes/amsterdam/overrides/_toast.scss +0 -21
  499. package/src/themes/amsterdam/overrides/_token.scss +0 -4
  500. package/test-env/services/hooks/useIsWithinBreakpoints.js +0 -57
@@ -0,0 +1,61 @@
1
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
2
+
3
+ /*
4
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
5
+ * or more contributor license agreements. Licensed under the Elastic License
6
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
7
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
8
+ * Side Public License, v 1.
9
+ */
10
+ import { css } from '@emotion/react';
11
+ import { transparentize } from '../../services/color';
12
+ import { euiFontSize, euiTextTruncate, euiFocusRing, logicalCSS } from '../../global_styling';
13
+
14
+ var _ref = process.env.NODE_ENV === "production" ? {
15
+ name: "1k7t4ns-isCollapsed",
16
+ styles: "flex-shrink:0;label:isCollapsed;"
17
+ } : {
18
+ name: "1k7t4ns-isCollapsed",
19
+ styles: "flex-shrink:0;label:isCollapsed;",
20
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
21
+ };
22
+
23
+ var _ref2 = process.env.NODE_ENV === "production" ? {
24
+ name: "p0bcva-isTruncated",
25
+ styles: "overflow:hidden;label:isTruncated;"
26
+ } : {
27
+ name: "p0bcva-isTruncated",
28
+ styles: "overflow:hidden;label:isTruncated;",
29
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
30
+ };
31
+
32
+ export var euiBreadcrumbStyles = function euiBreadcrumbStyles(euiThemeContext) {
33
+ // Styles cast to <li> element
34
+ var euiTheme = euiThemeContext.euiTheme;
35
+ return {
36
+ euiBreadcrumb: /*#__PURE__*/css("align-items:center;display:flex;", logicalCSS( // See .euiBreadcrumbs__list's negative margin-bottom
37
+ 'margin-bottom', euiTheme.size.xs), ";;label:euiBreadcrumb;"),
38
+ isTruncated: _ref2,
39
+ isCollapsed: _ref,
40
+ // Types
41
+ page: /*#__PURE__*/css("&:not(:last-of-type){&:after{background:", euiTheme.colors.lightShade, ";content:'';flex-shrink:0;", logicalCSS('margin-top', euiTheme.size.xs), " ", logicalCSS('margin-bottom', 0), " ", logicalCSS('margin-horizontal', euiTheme.size.s), " ", logicalCSS('height', euiTheme.size.base), " ", logicalCSS('width', '1px'), " transform:translateY(-1px) rotate(15deg);}};label:page;"),
42
+ application: /*#__PURE__*/css("&:not(:last-of-type){", logicalCSS('margin-right', "-".concat(euiTheme.size.xs)), ";};label:application;")
43
+ };
44
+ };
45
+ export var euiBreadcrumbContentStyles = function euiBreadcrumbContentStyles(euiThemeContext) {
46
+ // Styles cast to <a>, <span>, or collapsed <button> elements
47
+ var euiTheme = euiThemeContext.euiTheme;
48
+ return {
49
+ euiBreadcrumb__content: /*#__PURE__*/css("font-weight:", euiTheme.font.weight.medium, ";text-align:center;vertical-align:baseline;;label:euiBreadcrumb__content;"),
50
+ isTruncated: /*#__PURE__*/css(euiTextTruncate("".concat(parseFloat(euiTheme.size.base) * 10, "px")), ";;label:isTruncated;"),
51
+ isTruncatedLast: /*#__PURE__*/css(euiTextTruncate('none'), ";;label:isTruncatedLast;"),
52
+ // Types
53
+ page: /*#__PURE__*/css("&:is(a):focus{", euiFocusRing(euiTheme, 'inset'), ";}&:is(button):focus{", euiFocusRing(euiTheme, 'center'), ";};label:page;"),
54
+ application: /*#__PURE__*/css(euiFontSize(euiThemeContext, 'xs'), ";background-color:", transparentize(euiTheme.colors.darkestShade, 0.2), ";clip-path:polygon(\n 0 0,\n calc(100% - ", euiTheme.size.s, ") 0,\n 100% 50%,\n calc(100% - ", euiTheme.size.s, ") 100%,\n 0 100%,\n ", euiTheme.size.s, " 50%\n );color:", euiTheme.colors.darkestShade, ";line-height:", euiTheme.size.base, ";", logicalCSS('padding-vertical', euiTheme.size.xs), " ", logicalCSS('padding-horizontal', euiTheme.size.base), " &:is(a),&:is(button){background-color:", transparentize(euiTheme.colors.primary, 0.2), ";color:", euiTheme.colors.link, ";:focus{", euiFocusRing(euiTheme, 'inset'), ";:focus-visible{border-radius:", euiTheme.border.radius.medium, ";clip-path:none;}}};label:application;"),
55
+ applicationStyles: {
56
+ onlyChild: /*#__PURE__*/css("border-radius:", euiTheme.border.radius.medium, ";clip-path:none;", logicalCSS('padding-horizontal', euiTheme.size.m), ",;;label:onlyChild;"),
57
+ firstChild: /*#__PURE__*/css("border-radius:", euiTheme.border.radius.medium, " 0 0 ", euiTheme.border.radius.medium, ";clip-path:polygon(\n 0 0,\n calc(100% - ", euiTheme.size.s, ") 0,\n 100% 50%,\n calc(100% - ", euiTheme.size.s, ") 100%,\n 0 100%\n );", logicalCSS('padding-left', euiTheme.size.m), ",;;label:firstChild;"),
58
+ lastChild: /*#__PURE__*/css("border-radius:0 ", euiTheme.border.radius.medium, " ", euiTheme.border.radius.medium, " 0;clip-path:polygon(\n 0 0,\n 100% 0,\n 100% 100%,\n 0 100%,\n ", euiTheme.size.s, " 50%\n );", logicalCSS('padding-right', euiTheme.size.m), ",;;label:lastChild;")
59
+ }
60
+ };
61
+ };
@@ -1,9 +1,7 @@
1
1
  import _typeof from "@babel/runtime/helpers/typeof";
2
2
  import _extends from "@babel/runtime/helpers/extends";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
5
- var _excluded = ["breadcrumbs", "className", "responsive", "truncate", "max"],
6
- _excluded2 = ["text", "href", "onClick", "truncate", "className"];
4
+ var _excluded = ["breadcrumbs", "className", "responsive", "truncate", "max", "type", "lastBreadcrumbIsCurrentPage"];
7
5
 
8
6
  /*
9
7
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
@@ -12,99 +10,18 @@ var _excluded = ["breadcrumbs", "className", "responsive", "truncate", "max"],
12
10
  * in compliance with, at your election, the Elastic License 2.0 or the Server
13
11
  * Side Public License, v 1.
14
12
  */
15
- import React, { useEffect, useState } from 'react';
13
+ import React, { useMemo } from 'react';
16
14
  import classNames from 'classnames';
17
15
  import { useEuiI18n } from '../i18n';
18
- import { EuiInnerText } from '../inner_text';
19
- import { EuiLink } from '../link';
20
- import { EuiPopover } from '../popover';
21
- import { EuiIcon } from '../icon';
22
- import { throttle } from '../../services';
23
- import { getBreakpoint } from '../../services/breakpoint';
16
+ import { useEuiTheme, useCurrentEuiBreakpoint } from '../../services';
17
+ import { EuiBreadcrumb, EuiBreadcrumbContent, EuiBreadcrumbCollapsed } from './breadcrumb';
18
+ import { euiBreadcrumbsListStyles } from './breadcrumbs.styles';
24
19
  import { jsx as ___EmotionJSX } from "@emotion/react";
25
- var CONTENT_CLASSNAME = 'euiBreadcrumb__content';
26
20
  var responsiveDefault = {
27
21
  xs: 1,
28
22
  s: 2,
29
23
  m: 4
30
24
  };
31
-
32
- var limitBreadcrumbs = function limitBreadcrumbs(breadcrumbs, max, allBreadcrumbs) {
33
- var breadcrumbsAtStart = [];
34
- var breadcrumbsAtEnd = [];
35
- var limit = Math.min(max, breadcrumbs.length);
36
- var start = Math.floor(limit / 2);
37
- var overflowBreadcrumbs = allBreadcrumbs.slice(start, start + breadcrumbs.length - limit);
38
-
39
- if (overflowBreadcrumbs.length) {
40
- overflowBreadcrumbs[overflowBreadcrumbs.length - 1]['aria-current'] = 'false';
41
- }
42
-
43
- for (var i = 0; i < limit; i++) {
44
- // We'll alternate with displaying breadcrumbs at the end and at the start, but be biased
45
- // towards breadcrumbs the end so that if max is an odd number, we'll have one more
46
- // breadcrumb visible at the end than at the beginning.
47
- var isEven = i % 2 === 0; // We're picking breadcrumbs from the front AND the back, so we treat each iteration as a
48
- // half-iteration.
49
-
50
- var normalizedIndex = Math.floor(i * 0.5);
51
- var indexOfBreadcrumb = isEven ? breadcrumbs.length - 1 - normalizedIndex : normalizedIndex;
52
- var breadcrumb = breadcrumbs[indexOfBreadcrumb];
53
-
54
- if (isEven) {
55
- breadcrumbsAtEnd.unshift(breadcrumb);
56
- } else {
57
- breadcrumbsAtStart.push(breadcrumb);
58
- }
59
- }
60
-
61
- var EuiBreadcrumbCollapsed = function EuiBreadcrumbCollapsed() {
62
- var _useState = useState(false),
63
- _useState2 = _slicedToArray(_useState, 2),
64
- isPopoverOpen = _useState2[0],
65
- setIsPopoverOpen = _useState2[1];
66
-
67
- var ariaLabel = useEuiI18n('euiBreadcrumbs.collapsedBadge.ariaLabel', 'See collapsed breadcrumbs');
68
-
69
- var ellipsisButton = ___EmotionJSX(EuiLink, {
70
- className: CONTENT_CLASSNAME,
71
- color: "subdued",
72
- "aria-label": ariaLabel,
73
- title: ariaLabel,
74
- onClick: function onClick() {
75
- return setIsPopoverOpen(!isPopoverOpen);
76
- }
77
- }, "\u2026 ", ___EmotionJSX(EuiIcon, {
78
- type: "arrowDown",
79
- size: "s"
80
- }));
81
-
82
- return ___EmotionJSX("li", {
83
- className: "euiBreadcrumb euiBreadcrumb--collapsed"
84
- }, ___EmotionJSX(EuiPopover, {
85
- button: ellipsisButton,
86
- isOpen: isPopoverOpen,
87
- closePopover: function closePopover() {
88
- return setIsPopoverOpen(false);
89
- }
90
- }, ___EmotionJSX(EuiBreadcrumbs, {
91
- className: "euiBreadcrumbs__inPopover",
92
- breadcrumbs: overflowBreadcrumbs,
93
- responsive: false,
94
- truncate: false,
95
- max: 0
96
- })));
97
- };
98
-
99
- if (max < breadcrumbs.length) {
100
- breadcrumbsAtStart.push(___EmotionJSX(EuiBreadcrumbCollapsed, {
101
- key: "collapsed"
102
- }));
103
- }
104
-
105
- return [].concat(breadcrumbsAtStart, breadcrumbsAtEnd);
106
- };
107
-
108
25
  export var EuiBreadcrumbs = function EuiBreadcrumbs(_ref) {
109
26
  var breadcrumbs = _ref.breadcrumbs,
110
27
  className = _ref.className,
@@ -114,96 +31,106 @@ export var EuiBreadcrumbs = function EuiBreadcrumbs(_ref) {
114
31
  truncate = _ref$truncate === void 0 ? true : _ref$truncate,
115
32
  _ref$max = _ref.max,
116
33
  max = _ref$max === void 0 ? 5 : _ref$max,
34
+ _ref$type = _ref.type,
35
+ type = _ref$type === void 0 ? 'page' : _ref$type,
36
+ _ref$lastBreadcrumbIs = _ref.lastBreadcrumbIsCurrentPage,
37
+ lastBreadcrumbIsCurrentPage = _ref$lastBreadcrumbIs === void 0 ? true : _ref$lastBreadcrumbIs,
117
38
  rest = _objectWithoutProperties(_ref, _excluded);
118
39
 
119
40
  var ariaLabel = useEuiI18n('euiBreadcrumbs.nav.ariaLabel', 'Breadcrumbs');
120
-
121
- var _useState3 = useState(getBreakpoint(typeof window === 'undefined' ? -Infinity : window.innerWidth)),
122
- _useState4 = _slicedToArray(_useState3, 2),
123
- currentBreakpoint = _useState4[0],
124
- setCurrentBreakpoint = _useState4[1];
125
-
126
- var functionToCallOnWindowResize = throttle(function () {
127
- var newBreakpoint = getBreakpoint(window.innerWidth);
128
-
129
- if (newBreakpoint !== currentBreakpoint) {
130
- setCurrentBreakpoint(newBreakpoint);
131
- } // reacts every 50ms to resize changes and always gets the final update
132
-
133
- }, 50); // Add window resize handlers
134
-
135
- useEffect(function () {
136
- window.addEventListener('resize', functionToCallOnWindowResize);
137
- return function () {
138
- window.removeEventListener('resize', functionToCallOnWindowResize);
139
- };
140
- }, [responsive, functionToCallOnWindowResize]);
141
- var breadcrumbElements = breadcrumbs.map(function (breadcrumb, index) {
142
- var text = breadcrumb.text,
143
- href = breadcrumb.href,
144
- onClick = breadcrumb.onClick,
145
- truncate = breadcrumb.truncate,
146
- breadcrumbClassName = breadcrumb.className,
147
- breadcrumbRest = _objectWithoutProperties(breadcrumb, _excluded2);
148
-
149
- var isLastBreadcrumb = index === breadcrumbs.length - 1;
150
- var className = classNames('euiBreadcrumb', {
151
- 'euiBreadcrumb--last': isLastBreadcrumb,
152
- 'euiBreadcrumb--truncate': truncate
41
+ var euiTheme = useEuiTheme();
42
+ var breadcrumbsListStyles = euiBreadcrumbsListStyles(euiTheme);
43
+ var cssBreadcrumbsListStyles = [breadcrumbsListStyles.euiBreadcrumbs__list, truncate && breadcrumbsListStyles.isTruncated];
44
+ var responsiveMax = useResponsiveMax(responsive, max);
45
+ var visibleBreadcrumbs = useMemo(function () {
46
+ var shouldCollapseBreadcrumbs = responsiveMax && breadcrumbs.length > responsiveMax;
47
+ return shouldCollapseBreadcrumbs ? limitBreadcrumbs(breadcrumbs, responsiveMax) : breadcrumbs;
48
+ }, [breadcrumbs, responsiveMax]);
49
+ var breadcrumbChildren = useMemo(function () {
50
+ return visibleBreadcrumbs.map(function (breadcrumb, index) {
51
+ var isFirstBreadcrumb = index === 0;
52
+ var isLastBreadcrumb = index === visibleBreadcrumbs.length - 1;
53
+ var isOnlyBreadcrumb = visibleBreadcrumbs.length === 1;
54
+ var sharedProps = {
55
+ type: type,
56
+ truncate: truncate
57
+ };
58
+ return breadcrumb.isCollapsedButton ? ___EmotionJSX(EuiBreadcrumbCollapsed, _extends({
59
+ key: "collapsed"
60
+ }, sharedProps, {
61
+ isFirstBreadcrumb: isFirstBreadcrumb
62
+ }), ___EmotionJSX(EuiBreadcrumbs, {
63
+ breadcrumbs: breadcrumb.overflowBreadcrumbs,
64
+ lastBreadcrumbIsCurrentPage: false,
65
+ responsive: false,
66
+ truncate: false,
67
+ max: 0
68
+ })) : ___EmotionJSX(EuiBreadcrumb, _extends({
69
+ key: index
70
+ }, sharedProps), ___EmotionJSX(EuiBreadcrumbContent, _extends({
71
+ isFirstBreadcrumb: isFirstBreadcrumb,
72
+ isLastBreadcrumb: isLastBreadcrumb,
73
+ isOnlyBreadcrumb: isOnlyBreadcrumb,
74
+ highlightLastBreadcrumb: isLastBreadcrumb && lastBreadcrumbIsCurrentPage
75
+ }, sharedProps, breadcrumb)));
153
76
  });
154
- var linkProps = {
155
- className: classNames(CONTENT_CLASSNAME, breadcrumbClassName),
156
- 'aria-current': isLastBreadcrumb ? 'page' : undefined
157
- };
77
+ }, [visibleBreadcrumbs, truncate, type, lastBreadcrumbIsCurrentPage]);
78
+ return ___EmotionJSX("nav", _extends({
79
+ "aria-label": ariaLabel,
80
+ className: classNames('euiBreadcrumbs', className)
81
+ }, rest), ___EmotionJSX("ol", {
82
+ className: "euiBreadcrumbs__list",
83
+ css: cssBreadcrumbsListStyles
84
+ }, breadcrumbChildren));
85
+ };
86
+ export var useResponsiveMax = function useResponsiveMax(responsive, max) {
87
+ // Use the default object if they simply passed `true` for responsive
88
+ var responsiveObject = _typeof(responsive) === 'object' ? responsive : responsiveDefault; // The max property collapses any breadcrumbs past the max quantity.
89
+ // This is the same behavior we want for responsiveness.
90
+ // So calculate the max value based on the combination of `max` and `responsive`
158
91
 
159
- var link = ___EmotionJSX(EuiInnerText, null, function (ref, innerText) {
160
- var title = innerText === '' ? undefined : innerText;
92
+ var responsiveMax = max; // Set the calculated max to the number associated with the currentBreakpoint key if it exists
161
93
 
162
- if (!href && !onClick) {
163
- return ___EmotionJSX("span", _extends({
164
- ref: ref,
165
- title: title
166
- }, linkProps, breadcrumbRest), text);
167
- }
94
+ var currentBreakpoint = useCurrentEuiBreakpoint();
168
95
 
169
- return ___EmotionJSX(EuiLink, _extends({
170
- ref: ref,
171
- color: isLastBreadcrumb ? 'text' : 'subdued',
172
- onClick: onClick,
173
- href: href,
174
- title: title
175
- }, linkProps, breadcrumbRest), text);
176
- });
96
+ if (responsive && currentBreakpoint && responsiveObject[currentBreakpoint]) {
97
+ responsiveMax = responsiveObject[currentBreakpoint];
98
+ } // Final check is to make sure max is used over a larger breakpoint value
177
99
 
178
- return ___EmotionJSX("li", {
179
- className: className,
180
- key: index
181
- }, link);
182
- }); // Use the default object if they simply passed `true` for responsive
183
100
 
184
- var responsiveObject = _typeof(responsive) === 'object' ? responsive : responsiveDefault; // The max property collapses any breadcrumbs past the max quantity.
185
- // This is the same behavior we want for responsiveness.
186
- // So calculate the max value based on the combination of `max` and `responsive`
101
+ if (max && responsiveMax) {
102
+ responsiveMax = max < responsiveMax ? max : responsiveMax;
103
+ }
187
104
 
188
- var calculatedMax = max; // Set the calculated max to the number associated with the currentBreakpoint key if it exists
105
+ return responsiveMax;
106
+ };
107
+ export var limitBreadcrumbs = function limitBreadcrumbs(breadcrumbs, max) {
108
+ var breadcrumbsAtStart = [];
109
+ var breadcrumbsAtEnd = [];
110
+ var limit = Math.min(max, breadcrumbs.length);
111
+ var start = Math.floor(limit / 2);
112
+ var overflowBreadcrumbs = breadcrumbs.slice(start, start + breadcrumbs.length - limit);
189
113
 
190
- if (responsive && responsiveObject[currentBreakpoint]) {
191
- calculatedMax = responsiveObject[currentBreakpoint];
192
- } // Final check is to make sure max is used over a larger breakpoint value
114
+ for (var i = 0; i < limit; i++) {
115
+ // We'll alternate with displaying breadcrumbs at the end and at the start, but be biased
116
+ // towards breadcrumbs the end so that if max is an odd number, we'll have one more
117
+ // breadcrumb visible at the end than at the beginning.
118
+ var isEven = i % 2 === 0; // We're picking breadcrumbs from the front AND the back, so we treat each iteration as a
119
+ // half-iteration.
193
120
 
121
+ var normalizedIndex = Math.floor(i * 0.5);
122
+ var indexOfBreadcrumb = isEven ? breadcrumbs.length - 1 - normalizedIndex : normalizedIndex;
123
+ var breadcrumb = breadcrumbs[indexOfBreadcrumb];
194
124
 
195
- if (max && calculatedMax) {
196
- calculatedMax = max < calculatedMax ? max : calculatedMax;
125
+ if (isEven) {
126
+ breadcrumbsAtEnd.unshift(breadcrumb);
127
+ } else {
128
+ breadcrumbsAtStart.push(breadcrumb);
129
+ }
197
130
  }
198
131
 
199
- var limitedBreadcrumbs = calculatedMax ? limitBreadcrumbs(breadcrumbElements, calculatedMax, breadcrumbs) : breadcrumbElements;
200
- var classes = classNames('euiBreadcrumbs', className, {
201
- 'euiBreadcrumbs--truncate': truncate
202
- });
203
- return ___EmotionJSX("nav", _extends({
204
- "aria-label": ariaLabel,
205
- className: classes
206
- }, rest), ___EmotionJSX("ol", {
207
- className: "euiBreadcrumbs__list"
208
- }, limitedBreadcrumbs));
132
+ return [].concat(breadcrumbsAtStart, [{
133
+ isCollapsedButton: true,
134
+ overflowBreadcrumbs: overflowBreadcrumbs
135
+ }], breadcrumbsAtEnd);
209
136
  };
@@ -0,0 +1,30 @@
1
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
2
+
3
+ /*
4
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
5
+ * or more contributor license agreements. Licensed under the Elastic License
6
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
7
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
8
+ * Side Public License, v 1.
9
+ */
10
+ import { css } from '@emotion/react';
11
+ import { euiFontSize, logicalCSS } from '../../global_styling';
12
+
13
+ var _ref = process.env.NODE_ENV === "production" ? {
14
+ name: "1bwn7gf-isTruncated",
15
+ styles: "flex-wrap:nowrap;white-space:nowrap;label:isTruncated;"
16
+ } : {
17
+ name: "1bwn7gf-isTruncated",
18
+ styles: "flex-wrap:nowrap;white-space:nowrap;label:isTruncated;",
19
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
20
+ };
21
+
22
+ export var euiBreadcrumbsListStyles = function euiBreadcrumbsListStyles(euiThemeContext) {
23
+ // Styles cast to the <ol> element
24
+ var euiTheme = euiThemeContext.euiTheme;
25
+ return {
26
+ euiBreadcrumbs__list: /*#__PURE__*/css(euiFontSize(euiThemeContext, 's'), ";align-items:center;display:flex;flex-wrap:wrap;line-height:", euiTheme.size.l, ";", logicalCSS( // Add vertical space between breadcrumbs, but make sure the whole breadcrumb set doesn't add space below itself
27
+ 'margin-bottom', "-".concat(euiTheme.size.xs)), " ", logicalCSS('min-width', 0), ";;label:euiBreadcrumbs__list;"),
28
+ isTruncated: _ref
29
+ };
30
+ };