@elastic/eui 93.1.0 → 93.2.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 (358) hide show
  1. package/dist/eui_theme_dark.css +0 -311
  2. package/dist/eui_theme_dark.min.css +1 -1
  3. package/dist/eui_theme_light.css +0 -311
  4. package/dist/eui_theme_light.min.css +1 -1
  5. package/es/components/avatar/avatar.js +1 -1
  6. package/es/components/badge/badge.js +1 -1
  7. package/es/components/badge/beta_badge/beta_badge.js +1 -1
  8. package/es/components/basic_table/basic_table.js +1 -1
  9. package/es/components/basic_table/in_memory_table.js +1 -1
  10. package/es/components/beacon/beacon.js +2 -3
  11. package/es/components/button/button.js +1 -1
  12. package/es/components/button/button_display/_button_display.js +1 -1
  13. package/es/components/button/button_display/_button_display_content.js +1 -1
  14. package/es/components/button/button_empty/button_empty.js +1 -1
  15. package/es/components/button/button_group/button_group.js +1 -1
  16. package/es/components/button/button_group/button_group_button.js +1 -1
  17. package/es/components/button/button_icon/button_icon.js +1 -1
  18. package/es/components/call_out/call_out.js +1 -1
  19. package/es/components/card/card.js +2 -2
  20. package/es/components/card/card_select/card_select.js +1 -1
  21. package/es/components/code/code.js +2 -3
  22. package/es/components/code/code.styles.js +4 -2
  23. package/es/components/code/code_block.js +10 -12
  24. package/es/components/code/code_block.styles.js +6 -4
  25. package/es/components/code/code_block_controls.js +2 -3
  26. package/es/components/code/code_block_controls.styles.js +4 -2
  27. package/es/components/code/code_block_full_screen.js +2 -3
  28. package/es/components/code/code_syntax.styles.js +33 -38
  29. package/es/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  30. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -1
  31. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
  32. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
  33. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
  34. package/es/components/comment_list/comment.js +2 -2
  35. package/es/components/comment_list/comment_event.js +1 -1
  36. package/es/components/comment_list/comment_list.js +2 -2
  37. package/es/components/comment_list/comment_timeline.js +1 -1
  38. package/es/components/datagrid/body/cell/data_grid_cell.js +24 -24
  39. package/es/components/datagrid/body/data_grid_body.js +13 -13
  40. package/es/components/datagrid/body/data_grid_body_custom.js +13 -13
  41. package/es/components/datagrid/body/data_grid_body_virtualized.js +13 -13
  42. package/es/components/datagrid/body/header/data_grid_header_cell.js +12 -12
  43. package/es/components/datagrid/body/header/data_grid_header_row.js +13 -13
  44. package/es/components/datagrid/controls/column_sorting_draggable.js +1 -1
  45. package/es/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
  46. package/es/components/datagrid/utils/grid_height_width.js +4 -1
  47. package/es/components/datagrid/utils/in_memory.js +12 -12
  48. package/es/components/date_picker/date_picker.js +2 -2
  49. package/es/components/date_picker/date_picker_range.js +1 -1
  50. package/es/components/empty_prompt/empty_prompt.js +1 -1
  51. package/es/components/facet/facet_button.js +1 -1
  52. package/es/components/form/field_number/field_number.js +1 -1
  53. package/es/components/form/field_text/field_text.js +2 -2
  54. package/es/components/form/form_control_layout/form_control_layout.js +2 -2
  55. package/es/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  56. package/es/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  57. package/es/components/form/text_area/text_area.js +2 -2
  58. package/es/components/header/header_links/header_link.js +1 -1
  59. package/es/components/header/header_links/header_links.js +1 -1
  60. package/es/components/header/header_logo/header_logo.js +1 -1
  61. package/es/components/header/header_section/header_section_item_button.js +1 -1
  62. package/es/components/icon/assets/diff.js +33 -0
  63. package/es/components/icon/assets/new_chat.js +37 -0
  64. package/es/components/icon/icon.js +1 -1
  65. package/es/components/icon/icon_map.js +2 -0
  66. package/es/components/key_pad_menu/key_pad_menu_item.js +1 -1
  67. package/es/components/list_group/list_group.js +2 -2
  68. package/es/components/list_group/list_group_item.js +2 -2
  69. package/es/components/list_group/list_group_item_extra_action.js +1 -1
  70. package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
  71. package/es/components/loading/loading_logo.js +1 -1
  72. package/es/components/markdown_editor/markdown_editor.js +1 -1
  73. package/es/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
  74. package/es/components/markdown_editor/markdown_editor_footer.js +1 -1
  75. package/es/components/markdown_editor/markdown_editor_toolbar.js +1 -1
  76. package/es/components/page/page_header/page_header_content.js +1 -1
  77. package/es/components/page/page_sidebar/page_sidebar.js +8 -2
  78. package/es/components/page/page_sidebar/page_sidebar.styles.js +5 -1
  79. package/es/components/page_template/page_template.js +1 -1
  80. package/es/components/pagination/pagination_button.js +1 -1
  81. package/es/components/selectable/selectable_list/selectable_list.js +1 -1
  82. package/es/components/selectable/selectable_list/selectable_list_item.js +1 -1
  83. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  84. package/es/components/side_nav/_side_nav_heading.js +61 -0
  85. package/es/components/side_nav/side_nav.js +63 -88
  86. package/es/components/side_nav/side_nav.styles.js +35 -0
  87. package/es/components/side_nav/side_nav_item.js +51 -50
  88. package/es/components/side_nav/side_nav_item.styles.js +72 -0
  89. package/es/components/table/table_header_button.js +1 -1
  90. package/es/components/timeline/timeline_item_icon.js +1 -1
  91. package/es/components/toast/global_toast_list.js +1 -1
  92. package/es/components/toast/toast.js +1 -1
  93. package/es/components/tool_tip/icon_tip.js +1 -1
  94. package/es/components/tree_view/tree_view.js +4 -2
  95. package/es/components/tree_view/{_tree_view_item.js → tree_view_item.js} +29 -1
  96. package/{optimize/es/components/tree_view/_tree_view_item.styles.js → es/components/tree_view/tree_view_item.styles.js} +10 -1
  97. package/es/services/theme/index.js +1 -0
  98. package/es/services/theme/provider.js +2 -1
  99. package/es/services/theme/style_memoization.js +65 -0
  100. package/eui.d.ts +230 -83
  101. package/i18ntokens.json +28 -10
  102. package/lib/components/avatar/avatar.js +1 -1
  103. package/lib/components/badge/badge.js +1 -1
  104. package/lib/components/badge/beta_badge/beta_badge.js +1 -1
  105. package/lib/components/basic_table/basic_table.js +1 -1
  106. package/lib/components/basic_table/in_memory_table.js +1 -1
  107. package/lib/components/beacon/beacon.js +1 -2
  108. package/lib/components/button/button.js +1 -1
  109. package/lib/components/button/button_display/_button_display.js +1 -1
  110. package/lib/components/button/button_display/_button_display_content.js +1 -1
  111. package/lib/components/button/button_empty/button_empty.js +1 -1
  112. package/lib/components/button/button_group/button_group.js +1 -1
  113. package/lib/components/button/button_group/button_group_button.js +1 -1
  114. package/lib/components/button/button_icon/button_icon.js +1 -1
  115. package/lib/components/call_out/call_out.js +1 -1
  116. package/lib/components/card/card.js +2 -2
  117. package/lib/components/card/card_select/card_select.js +1 -1
  118. package/lib/components/code/code.js +1 -2
  119. package/lib/components/code/code.styles.js +4 -2
  120. package/lib/components/code/code_block.js +9 -11
  121. package/lib/components/code/code_block.styles.js +6 -4
  122. package/lib/components/code/code_block_controls.js +1 -2
  123. package/lib/components/code/code_block_controls.styles.js +4 -2
  124. package/lib/components/code/code_block_full_screen.js +1 -2
  125. package/lib/components/code/code_syntax.styles.js +34 -39
  126. package/lib/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  127. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -1
  128. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
  129. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
  130. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
  131. package/lib/components/comment_list/comment.js +2 -2
  132. package/lib/components/comment_list/comment_event.js +1 -1
  133. package/lib/components/comment_list/comment_list.js +2 -2
  134. package/lib/components/comment_list/comment_timeline.js +1 -1
  135. package/lib/components/datagrid/body/cell/data_grid_cell.js +24 -24
  136. package/lib/components/datagrid/body/data_grid_body.js +13 -13
  137. package/lib/components/datagrid/body/data_grid_body_custom.js +13 -13
  138. package/lib/components/datagrid/body/data_grid_body_virtualized.js +13 -13
  139. package/lib/components/datagrid/body/header/data_grid_header_cell.js +12 -12
  140. package/lib/components/datagrid/body/header/data_grid_header_row.js +13 -13
  141. package/lib/components/datagrid/controls/column_sorting_draggable.js +1 -1
  142. package/lib/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
  143. package/lib/components/datagrid/utils/grid_height_width.js +4 -1
  144. package/lib/components/datagrid/utils/in_memory.js +12 -12
  145. package/lib/components/date_picker/date_picker.js +2 -2
  146. package/lib/components/date_picker/date_picker_range.js +1 -1
  147. package/lib/components/empty_prompt/empty_prompt.js +1 -1
  148. package/lib/components/facet/facet_button.js +1 -1
  149. package/lib/components/form/field_number/field_number.js +1 -1
  150. package/lib/components/form/field_text/field_text.js +2 -2
  151. package/lib/components/form/form_control_layout/form_control_layout.js +2 -2
  152. package/lib/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  153. package/lib/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  154. package/lib/components/form/text_area/text_area.js +2 -2
  155. package/lib/components/header/header_links/header_link.js +1 -1
  156. package/lib/components/header/header_links/header_links.js +1 -1
  157. package/lib/components/header/header_logo/header_logo.js +1 -1
  158. package/lib/components/header/header_section/header_section_item_button.js +1 -1
  159. package/lib/components/icon/assets/diff.js +41 -0
  160. package/lib/components/icon/assets/new_chat.js +45 -0
  161. package/lib/components/icon/icon.js +1 -1
  162. package/lib/components/icon/icon_map.js +2 -0
  163. package/lib/components/icon/svgs/diff.svg +1 -0
  164. package/lib/components/icon/svgs/new_chat.svg +4 -0
  165. package/lib/components/key_pad_menu/key_pad_menu_item.js +1 -1
  166. package/lib/components/list_group/list_group.js +2 -2
  167. package/lib/components/list_group/list_group_item.js +2 -2
  168. package/lib/components/list_group/list_group_item_extra_action.js +1 -1
  169. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
  170. package/lib/components/loading/loading_logo.js +1 -1
  171. package/lib/components/markdown_editor/markdown_editor.js +1 -1
  172. package/lib/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
  173. package/lib/components/markdown_editor/markdown_editor_footer.js +1 -1
  174. package/lib/components/markdown_editor/markdown_editor_toolbar.js +1 -1
  175. package/lib/components/page/page_header/page_header_content.js +1 -1
  176. package/lib/components/page/page_sidebar/page_sidebar.js +8 -2
  177. package/lib/components/page/page_sidebar/page_sidebar.styles.js +5 -1
  178. package/lib/components/page_template/page_template.js +1 -1
  179. package/lib/components/pagination/pagination_button.js +1 -1
  180. package/lib/components/selectable/selectable_list/selectable_list.js +1 -1
  181. package/lib/components/selectable/selectable_list/selectable_list_item.js +1 -1
  182. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  183. package/lib/components/side_nav/_side_nav_heading.js +67 -0
  184. package/lib/components/side_nav/side_nav.js +65 -89
  185. package/lib/components/side_nav/side_nav.styles.js +40 -0
  186. package/lib/components/side_nav/side_nav_item.js +51 -49
  187. package/lib/components/side_nav/side_nav_item.styles.js +78 -0
  188. package/lib/components/table/table_header_button.js +1 -1
  189. package/lib/components/timeline/timeline_item_icon.js +1 -1
  190. package/lib/components/toast/global_toast_list.js +1 -1
  191. package/lib/components/toast/toast.js +1 -1
  192. package/lib/components/tool_tip/icon_tip.js +1 -1
  193. package/lib/components/tree_view/tree_view.js +4 -2
  194. package/lib/components/tree_view/{_tree_view_item.js → tree_view_item.js} +29 -1
  195. package/lib/components/tree_view/tree_view_item.styles.js +52 -0
  196. package/lib/services/theme/index.js +7 -0
  197. package/lib/services/theme/provider.js +2 -1
  198. package/lib/services/theme/style_memoization.js +73 -0
  199. package/optimize/es/components/beacon/beacon.js +2 -3
  200. package/optimize/es/components/code/code.js +2 -3
  201. package/optimize/es/components/code/code.styles.js +4 -2
  202. package/optimize/es/components/code/code_block.js +10 -12
  203. package/optimize/es/components/code/code_block.styles.js +6 -4
  204. package/optimize/es/components/code/code_block_controls.js +2 -3
  205. package/optimize/es/components/code/code_block_controls.styles.js +4 -2
  206. package/optimize/es/components/code/code_block_full_screen.js +2 -3
  207. package/optimize/es/components/code/code_syntax.styles.js +33 -38
  208. package/optimize/es/components/datagrid/utils/grid_height_width.js +4 -1
  209. package/optimize/es/components/icon/assets/diff.js +32 -0
  210. package/optimize/es/components/icon/assets/new_chat.js +36 -0
  211. package/optimize/es/components/icon/icon_map.js +2 -0
  212. package/optimize/es/components/page/page_sidebar/page_sidebar.js +4 -2
  213. package/optimize/es/components/page/page_sidebar/page_sidebar.styles.js +5 -1
  214. package/optimize/es/components/page_template/page_template.js +1 -1
  215. package/optimize/es/components/side_nav/_side_nav_heading.js +47 -0
  216. package/optimize/es/components/side_nav/side_nav.js +61 -72
  217. package/optimize/es/components/side_nav/side_nav.styles.js +35 -0
  218. package/optimize/es/components/side_nav/side_nav_item.js +51 -50
  219. package/optimize/es/components/side_nav/side_nav_item.styles.js +69 -0
  220. package/optimize/es/components/tree_view/tree_view.js +4 -2
  221. package/optimize/es/components/tree_view/{_tree_view_item.js → tree_view_item.js} +1 -1
  222. package/{es/components/tree_view/_tree_view_item.styles.js → optimize/es/components/tree_view/tree_view_item.styles.js} +10 -1
  223. package/optimize/es/services/theme/index.js +1 -0
  224. package/optimize/es/services/theme/provider.js +2 -1
  225. package/optimize/es/services/theme/style_memoization.js +60 -0
  226. package/optimize/lib/components/beacon/beacon.js +1 -2
  227. package/optimize/lib/components/code/code.js +1 -2
  228. package/optimize/lib/components/code/code.styles.js +4 -2
  229. package/optimize/lib/components/code/code_block.js +9 -11
  230. package/optimize/lib/components/code/code_block.styles.js +6 -4
  231. package/optimize/lib/components/code/code_block_controls.js +1 -2
  232. package/optimize/lib/components/code/code_block_controls.styles.js +4 -2
  233. package/optimize/lib/components/code/code_block_full_screen.js +1 -2
  234. package/optimize/lib/components/code/code_syntax.styles.js +34 -39
  235. package/optimize/lib/components/datagrid/utils/grid_height_width.js +4 -1
  236. package/optimize/lib/components/icon/assets/diff.js +41 -0
  237. package/optimize/lib/components/icon/assets/new_chat.js +45 -0
  238. package/optimize/lib/components/icon/icon_map.js +2 -0
  239. package/optimize/lib/components/icon/svgs/diff.svg +1 -0
  240. package/optimize/lib/components/icon/svgs/new_chat.svg +4 -0
  241. package/optimize/lib/components/page/page_sidebar/page_sidebar.js +4 -2
  242. package/optimize/lib/components/page/page_sidebar/page_sidebar.styles.js +5 -1
  243. package/optimize/lib/components/page_template/page_template.js +1 -1
  244. package/optimize/lib/components/side_nav/_side_nav_heading.js +53 -0
  245. package/optimize/lib/components/side_nav/side_nav.js +63 -73
  246. package/optimize/lib/components/side_nav/side_nav.styles.js +40 -0
  247. package/optimize/lib/components/side_nav/side_nav_item.js +51 -49
  248. package/optimize/lib/components/side_nav/side_nav_item.styles.js +76 -0
  249. package/optimize/lib/components/tree_view/tree_view.js +4 -2
  250. package/optimize/lib/components/tree_view/{_tree_view_item.js → tree_view_item.js} +1 -1
  251. package/optimize/lib/components/tree_view/tree_view_item.styles.js +52 -0
  252. package/optimize/lib/services/theme/index.js +7 -0
  253. package/optimize/lib/services/theme/provider.js +2 -1
  254. package/optimize/lib/services/theme/style_memoization.js +73 -0
  255. package/package.json +1 -1
  256. package/src/components/index.scss +0 -1
  257. package/src/themes/amsterdam/overrides/_index.scss +0 -1
  258. package/test-env/components/avatar/avatar.js +1 -1
  259. package/test-env/components/badge/badge.js +1 -1
  260. package/test-env/components/badge/beta_badge/beta_badge.js +1 -1
  261. package/test-env/components/basic_table/basic_table.js +1 -1
  262. package/test-env/components/basic_table/in_memory_table.js +1 -1
  263. package/test-env/components/beacon/beacon.js +1 -2
  264. package/test-env/components/button/button.js +1 -1
  265. package/test-env/components/button/button_display/_button_display.js +1 -1
  266. package/test-env/components/button/button_display/_button_display_content.js +1 -1
  267. package/test-env/components/button/button_empty/button_empty.js +1 -1
  268. package/test-env/components/button/button_group/button_group.js +1 -1
  269. package/test-env/components/button/button_group/button_group_button.js +1 -1
  270. package/test-env/components/button/button_icon/button_icon.js +1 -1
  271. package/test-env/components/call_out/call_out.js +1 -1
  272. package/test-env/components/card/card.js +2 -2
  273. package/test-env/components/card/card_select/card_select.js +1 -1
  274. package/test-env/components/code/code.styles.js +4 -2
  275. package/test-env/components/code/code_block.styles.js +6 -4
  276. package/test-env/components/code/code_block_controls.js +1 -2
  277. package/test-env/components/code/code_block_controls.styles.js +4 -2
  278. package/test-env/components/code/code_block_full_screen.js +1 -2
  279. package/test-env/components/code/code_syntax.styles.js +34 -39
  280. package/test-env/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  281. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +1 -1
  282. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +2 -2
  283. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +2 -2
  284. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +4 -4
  285. package/test-env/components/comment_list/comment.js +2 -2
  286. package/test-env/components/comment_list/comment_event.js +1 -1
  287. package/test-env/components/comment_list/comment_list.js +2 -2
  288. package/test-env/components/comment_list/comment_timeline.js +1 -1
  289. package/test-env/components/datagrid/body/cell/data_grid_cell.js +24 -24
  290. package/test-env/components/datagrid/body/data_grid_body.js +13 -13
  291. package/test-env/components/datagrid/body/data_grid_body_custom.js +13 -13
  292. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +13 -13
  293. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +12 -12
  294. package/test-env/components/datagrid/body/header/data_grid_header_row.js +13 -13
  295. package/test-env/components/datagrid/controls/column_sorting_draggable.js +1 -1
  296. package/test-env/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
  297. package/test-env/components/datagrid/utils/grid_height_width.js +4 -1
  298. package/test-env/components/datagrid/utils/in_memory.js +12 -12
  299. package/test-env/components/date_picker/date_picker.js +2 -2
  300. package/test-env/components/date_picker/date_picker_range.js +1 -1
  301. package/test-env/components/empty_prompt/empty_prompt.js +1 -1
  302. package/test-env/components/facet/facet_button.js +1 -1
  303. package/test-env/components/form/field_number/field_number.js +1 -1
  304. package/test-env/components/form/field_text/field_text.js +2 -2
  305. package/test-env/components/form/form_control_layout/form_control_layout.js +2 -2
  306. package/test-env/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  307. package/test-env/components/form/form_control_layout/form_control_layout_icons.js +2 -2
  308. package/test-env/components/form/text_area/text_area.js +2 -2
  309. package/test-env/components/header/header_links/header_link.js +1 -1
  310. package/test-env/components/header/header_links/header_links.js +1 -1
  311. package/test-env/components/header/header_logo/header_logo.js +1 -1
  312. package/test-env/components/header/header_section/header_section_item_button.js +1 -1
  313. package/test-env/components/icon/assets/diff.js +41 -0
  314. package/test-env/components/icon/assets/new_chat.js +45 -0
  315. package/test-env/components/icon/icon_map.js +2 -0
  316. package/test-env/components/key_pad_menu/key_pad_menu_item.js +1 -1
  317. package/test-env/components/list_group/list_group.js +2 -2
  318. package/test-env/components/list_group/list_group_item.js +2 -2
  319. package/test-env/components/list_group/list_group_item_extra_action.js +1 -1
  320. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
  321. package/test-env/components/loading/loading_logo.js +1 -1
  322. package/test-env/components/markdown_editor/markdown_editor.js +1 -1
  323. package/test-env/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
  324. package/test-env/components/markdown_editor/markdown_editor_footer.js +1 -1
  325. package/test-env/components/markdown_editor/markdown_editor_toolbar.js +1 -1
  326. package/test-env/components/page/page_header/page_header_content.js +1 -1
  327. package/test-env/components/page/page_sidebar/page_sidebar.js +8 -2
  328. package/test-env/components/page/page_sidebar/page_sidebar.styles.js +5 -1
  329. package/test-env/components/page_template/page_template.js +1 -1
  330. package/test-env/components/pagination/pagination_button.js +1 -1
  331. package/test-env/components/selectable/selectable_list/selectable_list.js +1 -1
  332. package/test-env/components/selectable/selectable_list/selectable_list_item.js +1 -1
  333. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  334. package/test-env/components/side_nav/_side_nav_heading.js +66 -0
  335. package/test-env/components/side_nav/side_nav.js +65 -89
  336. package/test-env/components/side_nav/side_nav.styles.js +40 -0
  337. package/test-env/components/side_nav/side_nav_item.js +51 -49
  338. package/test-env/components/side_nav/side_nav_item.styles.js +76 -0
  339. package/test-env/components/table/table_header_button.js +1 -1
  340. package/test-env/components/timeline/timeline_item_icon.js +1 -1
  341. package/test-env/components/toast/global_toast_list.js +1 -1
  342. package/test-env/components/toast/toast.js +1 -1
  343. package/test-env/components/tool_tip/icon_tip.js +1 -1
  344. package/test-env/components/tree_view/tree_view.js +4 -2
  345. package/test-env/components/tree_view/{_tree_view_item.js → tree_view_item.js} +29 -1
  346. package/test-env/components/tree_view/tree_view_item.styles.js +52 -0
  347. package/test-env/services/theme/index.js +7 -0
  348. package/test-env/services/theme/provider.js +2 -1
  349. package/test-env/services/theme/style_memoization.js +73 -0
  350. package/lib/components/tree_view/_tree_view_item.styles.js +0 -45
  351. package/optimize/lib/components/tree_view/_tree_view_item.styles.js +0 -45
  352. package/src/components/side_nav/_index.scss +0 -5
  353. package/src/components/side_nav/_mixins.scss +0 -7
  354. package/src/components/side_nav/_side_nav.scss +0 -47
  355. package/src/components/side_nav/_side_nav_item.scss +0 -181
  356. package/src/components/side_nav/_variables.scss +0 -15
  357. package/src/themes/amsterdam/overrides/_side_nav.scss +0 -17
  358. package/test-env/components/tree_view/_tree_view_item.styles.js +0 -45
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.EuiSideNavHeading = void 0;
7
+ var _react = require("@emotion/react");
8
+ var _react2 = _interopRequireDefault(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ var _services = require("../../services");
12
+ var _title = require("../title");
13
+ var _accessibility = require("../accessibility");
14
+ var _excluded = ["children", "id", "className", "element", "screenReaderOnly", "size", "textTransform"];
15
+ /*
16
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
17
+ * or more contributor license agreements. Licensed under the Elastic License
18
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
19
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
20
+ * Side Public License, v 1.
21
+ */
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+ 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); }
24
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
25
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
26
+ var EuiSideNavHeading = function EuiSideNavHeading(_ref) {
27
+ var children = _ref.children,
28
+ id = _ref.id,
29
+ className = _ref.className,
30
+ _ref$element = _ref.element,
31
+ HeadingElement = _ref$element === void 0 ? 'h2' : _ref$element,
32
+ _ref$screenReaderOnly = _ref.screenReaderOnly,
33
+ screenReaderOnly = _ref$screenReaderOnly === void 0 ? false : _ref$screenReaderOnly,
34
+ _ref$size = _ref.size,
35
+ size = _ref$size === void 0 ? 'xs' : _ref$size,
36
+ textTransform = _ref.textTransform,
37
+ rest = _objectWithoutProperties(_ref, _excluded);
38
+ var classes = (0, _classnames.default)('euiSideNav__heading', className);
39
+ var _useEuiTheme = (0, _services.useEuiTheme)(),
40
+ euiTheme = _useEuiTheme.euiTheme;
41
+ return screenReaderOnly ? (0, _react.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react.jsx)(HeadingElement, _extends({
42
+ id: id,
43
+ className: classes
44
+ }, rest), children)) : (0, _react.jsx)(_title.EuiTitle, {
45
+ size: size,
46
+ textTransform: textTransform
47
+ }, (0, _react.jsx)(HeadingElement, _extends({
48
+ id: id,
49
+ className: classes,
50
+ css: /*#__PURE__*/(0, _react.css)({
51
+ marginBlockEnd: euiTheme.size.l
52
+ }, ";label:EuiSideNavHeading;")
53
+ }, rest), children));
54
+ };
55
+ exports.EuiSideNavHeading = EuiSideNavHeading;
56
+ EuiSideNavHeading.propTypes = {
57
+ children: _propTypes.default.node.isRequired,
58
+ /**
59
+ * The actual HTML heading element to wrap the `heading`.
60
+ * Default is `h2`
61
+ */
62
+ element: _propTypes.default.oneOf(["h1", "h2", "h3", "h4", "h5", "h6", "span"]),
63
+ /**
64
+ * For best accessibility, `<nav>` elements should have a nested heading. But you can hide this element if it's redundent from something else (except on mobile).
65
+ */
66
+ screenReaderOnly: _propTypes.default.bool
67
+ };
@@ -3,20 +3,20 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.EuiSideNav = void 0;
6
+ exports.EuiSideNavClass = exports.EuiSideNav = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _classnames = _interopRequireDefault(require("classnames"));
10
- var _side_nav_item = require("./side_nav_item");
11
10
  var _button = require("../button");
12
- var _title = require("../title");
13
- var _accessibility = require("../accessibility");
11
+ var _i18n = require("../i18n");
14
12
  var _services = require("../../services");
15
13
  var _responsive = require("../responsive");
14
+ var _side_nav_heading = require("./_side_nav_heading");
15
+ var _side_nav_item = require("./side_nav_item");
16
+ var _side_nav = require("./side_nav.styles");
16
17
  var _react2 = require("@emotion/react");
17
18
  var _excluded = ["id", "name", "isSelected", "items", "icon", "onClick", "href", "forceOpen"],
18
- _excluded2 = ["className", "items", "toggleOpenOnMobile", "isOpenOnMobile", "mobileTitle", "mobileBreakpoints", "renderItem", "truncate", "heading", "headingProps"],
19
- _excluded3 = ["screenReaderOnly", "element"];
19
+ _excluded2 = ["className", "items", "toggleOpenOnMobile", "isOpenOnMobile", "mobileTitle", "mobileBreakpoints", "renderItem", "truncate", "heading", "headingProps", "theme"];
20
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
21
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
22
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -43,12 +43,12 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
43
43
  * in compliance with, at your election, the Elastic License 2.0 or the Server
44
44
  * Side Public License, v 1.
45
45
  */
46
- var EuiSideNav = /*#__PURE__*/function (_Component) {
47
- _inherits(EuiSideNav, _Component);
48
- var _super = _createSuper(EuiSideNav);
49
- function EuiSideNav() {
46
+ var EuiSideNavClass = /*#__PURE__*/function (_Component) {
47
+ _inherits(EuiSideNavClass, _Component);
48
+ var _super = _createSuper(EuiSideNavClass);
49
+ function EuiSideNavClass() {
50
50
  var _this;
51
- _classCallCheck(this, EuiSideNav);
51
+ _classCallCheck(this, EuiSideNavClass);
52
52
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
53
53
  args[_key] = arguments[_key];
54
54
  }
@@ -114,7 +114,7 @@ var EuiSideNav = /*#__PURE__*/function (_Component) {
114
114
  });
115
115
  return _this;
116
116
  }
117
- _createClass(EuiSideNav, [{
117
+ _createClass(EuiSideNavClass, [{
118
118
  key: "render",
119
119
  value: function render() {
120
120
  var _this$props2 = this.props,
@@ -127,89 +127,77 @@ var EuiSideNav = /*#__PURE__*/function (_Component) {
127
127
  renderItem = _this$props2.renderItem,
128
128
  truncate = _this$props2.truncate,
129
129
  heading = _this$props2.heading,
130
- _this$props2$headingP = _this$props2.headingProps,
131
- headingProps = _this$props2$headingP === void 0 ? {} : _this$props2$headingP,
130
+ headingProps = _this$props2.headingProps,
131
+ theme = _this$props2.theme,
132
132
  rest = _objectWithoutProperties(_this$props2, _excluded2);
133
133
  var classes = (0, _classnames.default)('euiSideNav', className, {
134
134
  'euiSideNav-isOpenMobile': isOpenOnMobile
135
135
  });
136
-
137
- // To support the extra CSS needed to show/hide/animate the content,
138
- // We add a className for every breakpoint supported
139
- var contentClasses = (0, _classnames.default)('euiSideNav__content', mobileBreakpoints === null || mobileBreakpoints === void 0 ? void 0 : mobileBreakpoints.map(function (breakpointName) {
140
- return "euiSideNav__contentMobile-".concat(breakpointName);
141
- }));
136
+ var styles = (0, _side_nav.euiSideNavMobileStyles)(theme);
137
+ var contentClasses = (0, _classnames.default)('euiSideNav__content');
142
138
  var sideNavContentId = this.generateId('content');
143
- var navContent = (0, _react2.jsx)("div", {
144
- id: sideNavContentId,
145
- className: contentClasses
146
- }, this.renderTree(items));
147
- var _ref = headingProps,
148
- _ref$screenReaderOnly = _ref.screenReaderOnly,
149
- headingScreenReaderOnly = _ref$screenReaderOnly === void 0 ? false : _ref$screenReaderOnly,
150
- _ref$element = _ref.element,
151
- HeadingElement = _ref$element === void 0 ? 'h2' : _ref$element,
152
- titleProps = _objectWithoutProperties(_ref, _excluded3);
139
+ var mobileContentStyles = [styles.content.euiSideNav__mobileContent, isOpenOnMobile ? styles.content.open : styles.content.hidden];
153
140
  var hasMobileVersion = mobileBreakpoints && mobileBreakpoints.length > 0;
154
- var hasHeader = !!heading;
155
- var headingNode;
156
- var sharedHeadingProps = {
157
- id: (headingProps === null || headingProps === void 0 ? void 0 : headingProps.id) || this.generateId('heading'),
158
- className: headingProps === null || headingProps === void 0 ? void 0 : headingProps.className,
159
- 'data-test-subj': headingProps === null || headingProps === void 0 ? void 0 : headingProps['data-test-subj'],
160
- 'aria-label': headingProps === null || headingProps === void 0 ? void 0 : headingProps['aria-label']
141
+ var mobileToggleText = mobileTitle || heading;
142
+ var mobileHeadingUnset = {
143
+ marginBlockEnd: 0,
144
+ label: 'mobile'
161
145
  };
162
- if (hasHeader) {
163
- headingNode = (0, _react2.jsx)(HeadingElement, sharedHeadingProps, heading);
164
- if (headingScreenReaderOnly) {
165
- headingNode = (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, headingNode);
166
- } else {
167
- headingNode = (0, _react2.jsx)(_title.EuiTitle, _extends({
168
- size: "xs"
169
- }, titleProps, {
170
- className: (0, _classnames.default)('euiSideNav__heading', headingProps === null || headingProps === void 0 ? void 0 : headingProps.className)
171
- }), (0, _react2.jsx)(HeadingElement, sharedHeadingProps, heading));
172
- }
173
- }
174
- var mobileNode;
175
- var breakpoints = mobileBreakpoints;
176
- if (hasMobileVersion) {
177
- mobileNode = (0, _react2.jsx)(_responsive.EuiShowFor, {
178
- sizes: breakpoints || 'none'
179
- }, (0, _react2.jsx)("nav", _extends({
180
- "aria-labelledby": sharedHeadingProps.id,
181
- className: classes
182
- }, rest), (0, _react2.jsx)(HeadingElement, sharedHeadingProps, (0, _react2.jsx)(_button.EuiButtonEmpty, {
146
+ var headingId = (headingProps === null || headingProps === void 0 ? void 0 : headingProps.id) || this.generateId('heading');
147
+ var headingScreenReaderOnly = !!(headingProps !== null && headingProps !== void 0 && headingProps.screenReaderOnly);
148
+ return (0, _react2.jsx)(_react.default.Fragment, null, hasMobileVersion && (0, _react2.jsx)(_responsive.EuiShowFor, {
149
+ sizes: mobileBreakpoints || 'none'
150
+ }, (0, _react2.jsx)("nav", _extends({
151
+ "aria-labelledby": headingId,
152
+ className: classes
153
+ }, rest), (0, _react2.jsx)(_side_nav_heading.EuiSideNavHeading, _extends({
154
+ id: headingId
155
+ }, headingProps, {
156
+ screenReaderOnly: false,
157
+ css: mobileHeadingUnset
158
+ }), (0, _react2.jsx)(_i18n.EuiI18n, {
159
+ token: "euiSideNav.mobileToggleAriaLabel",
160
+ default: "Toggle navigation"
161
+ }, function (mobileToggleAriaLabel) {
162
+ return (0, _react2.jsx)(_button.EuiButtonEmpty, {
183
163
  className: "euiSideNav__mobileToggle",
184
- textProps: {
185
- className: 'euiSideNav__mobileToggleText'
186
- },
164
+ css: styles.euiSideNav__mobileToggle,
187
165
  contentProps: {
188
- className: 'euiSideNav__mobileToggleContent'
166
+ className: 'euiSideNav__mobileToggleContent',
167
+ css: styles.euiSideNav__mobileToggleContent
189
168
  },
190
169
  onClick: toggleOpenOnMobile,
191
170
  iconType: "apps",
192
171
  iconSide: "right",
193
172
  "aria-controls": sideNavContentId,
194
- "aria-expanded": isOpenOnMobile
195
- }, mobileTitle || heading)), navContent));
196
- }
197
- return (0, _react2.jsx)(_react.default.Fragment, null, mobileNode, (0, _react2.jsx)(_responsive.EuiHideFor, {
198
- sizes: breakpoints || 'none'
173
+ "aria-expanded": isOpenOnMobile,
174
+ "aria-label": !mobileToggleText || headingScreenReaderOnly ? mobileToggleAriaLabel : undefined
175
+ }, !headingScreenReaderOnly && mobileToggleText);
176
+ })), (0, _react2.jsx)("div", {
177
+ id: sideNavContentId,
178
+ className: contentClasses,
179
+ css: mobileContentStyles
180
+ }, this.renderTree(items)))), (0, _react2.jsx)(_responsive.EuiHideFor, {
181
+ sizes: mobileBreakpoints || 'none'
199
182
  }, (0, _react2.jsx)("nav", _extends({
200
- "aria-labelledby": headingNode ? sharedHeadingProps.id : undefined,
183
+ "aria-labelledby": heading ? headingId : undefined,
201
184
  className: classes
202
- }, rest), headingNode, navContent)));
185
+ }, rest), heading && (0, _react2.jsx)(_side_nav_heading.EuiSideNavHeading, _extends({
186
+ id: headingId
187
+ }, headingProps), heading), (0, _react2.jsx)("div", {
188
+ id: sideNavContentId,
189
+ className: contentClasses
190
+ }, this.renderTree(items)))));
203
191
  }
204
192
  }]);
205
- return EuiSideNav;
193
+ return EuiSideNavClass;
206
194
  }(_react.Component);
207
- exports.EuiSideNav = EuiSideNav;
208
- _defineProperty(EuiSideNav, "defaultProps", {
195
+ exports.EuiSideNavClass = EuiSideNavClass;
196
+ _defineProperty(EuiSideNavClass, "defaultProps", {
209
197
  items: [],
210
198
  mobileBreakpoints: ['xs', 's']
211
199
  });
212
- EuiSideNav.propTypes = {
200
+ EuiSideNavClass.propTypes = {
213
201
  /**
214
202
  * Class names to be merged into the final `className` property.
215
203
  */
@@ -224,21 +212,7 @@ EuiSideNav.propTypes = {
224
212
  /**
225
213
  * Adds a couple extra #EuiSideNavHeading props and extends the props of EuiTitle that wraps the `heading`
226
214
  */
227
- headingProps: _propTypes.default.shape({
228
- className: _propTypes.default.string,
229
- "aria-label": _propTypes.default.string,
230
- "data-test-subj": _propTypes.default.string,
231
- css: _propTypes.default.any,
232
- /**
233
- * The actual HTML heading element to wrap the `heading`.
234
- * Default is `h2`
235
- */
236
- element: _propTypes.default.oneOf(["h1", "h2", "h3", "h4", "h5", "h6", "span"]),
237
- /**
238
- * For best accessibility, `<nav>` elements should have a nested heading. But you can hide this element if it's redundent from something else (except on mobile).
239
- */
240
- screenReaderOnly: _propTypes.default.bool
241
- }),
215
+ headingProps: _propTypes.default.any,
242
216
  /**
243
217
  * When called, toggles visibility of the navigation menu at mobile responsive widths. The callback should set the `isOpenOnMobile` prop to actually toggle navigation visibility.
244
218
  */
@@ -310,4 +284,6 @@ EuiSideNav.propTypes = {
310
284
  * Truncates the text of all items to stick to a single line
311
285
  */
312
286
  truncate: _propTypes.default.bool
313
- };
287
+ };
288
+ var EuiSideNav = (0, _services.withEuiTheme)(EuiSideNavClass);
289
+ exports.EuiSideNav = EuiSideNav;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiSideNavMobileStyles = void 0;
7
+ var _react = require("@emotion/react");
8
+ var _global_styling = require("../../global_styling");
9
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } /*
10
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
11
+ * or more contributor license agreements. Licensed under the Elastic License
12
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
13
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
14
+ * Side Public License, v 1.
15
+ */
16
+ var _ref = process.env.NODE_ENV === "production" ? {
17
+ name: "f0todx-euiSideNav__mobileToggleContent",
18
+ styles: "justify-content:space-between;label:euiSideNav__mobileToggleContent;"
19
+ } : {
20
+ name: "f0todx-euiSideNav__mobileToggleContent",
21
+ styles: "justify-content:space-between;label:euiSideNav__mobileToggleContent;",
22
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
23
+ };
24
+ var euiSideNavMobileStyles = function euiSideNavMobileStyles(euiThemeContext) {
25
+ var euiTheme = euiThemeContext.euiTheme;
26
+ var fastTransition = "".concat(euiTheme.animation.extraFast, " ").concat(euiTheme.animation.resistance);
27
+ var slowTransition = "".concat(euiTheme.animation.extraSlow, " ").concat(euiTheme.animation.resistance);
28
+ return {
29
+ // Mobile button
30
+ euiSideNav__mobileToggle: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('width', '100%'), " ", (0, _global_styling.logicalCSS)('height', 'auto'), "padding:1em;font-size:inherit;text-align:start;border-radius:0;", (0, _global_styling.logicalCSS)('border-bottom', euiTheme.border.thin), ";;label:euiSideNav__mobileToggle;"),
31
+ euiSideNav__mobileToggleContent: _ref,
32
+ // Mobile content
33
+ content: {
34
+ euiSideNav__mobileContent: /*#__PURE__*/(0, _react.css)(_global_styling.euiCanAnimate, "{transition:max-block-size ", fastTransition, ",padding-block ", fastTransition, ",opacity ", slowTransition, ",visibility ", slowTransition, ";};label:euiSideNav__mobileContent;"),
35
+ hidden: /*#__PURE__*/(0, _react.css)("overflow:hidden;visibility:hidden;opacity:0;max-block-size:0;padding-inline:", euiTheme.size.l, ";;label:hidden;"),
36
+ open: /*#__PURE__*/(0, _react.css)("visibility:visible;opacity:1;max-block-size:5000px;padding:", euiTheme.size.l, ";;label:open;")
37
+ }
38
+ };
39
+ };
40
+ exports.euiSideNavMobileStyles = euiSideNavMobileStyles;
@@ -4,16 +4,17 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.EuiSideNavItem = EuiSideNavItem;
7
+ exports.EuiSideNavItem = void 0;
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
  var _classnames = _interopRequireDefault(require("classnames"));
10
- var _icon = require("../icon");
11
10
  var _services = require("../../services");
12
11
  var _href_validator = require("../../services/security/href_validator");
13
12
  var _inner_text = require("../inner_text");
13
+ var _icon = require("../icon");
14
+ var _side_nav_item = require("./side_nav_item.styles");
14
15
  var _react2 = require("@emotion/react");
15
16
  var _excluded = ["href", "target", "rel", "onClick", "className", "children", "disabled"],
16
- _excluded2 = ["isOpen", "isSelected", "isParent", "icon", "onClick", "href", "rel", "target", "items", "children", "renderItem", "depth", "className", "truncate", "emphasize", "buttonClassName", "childrenOnly"];
17
+ _excluded2 = ["isOpen", "isSelected", "isParent", "icon", "onClick", "href", "rel", "target", "items", "children", "renderItem", "depth", "className", "css", "style", "truncate", "emphasize", "buttonClassName", "childrenOnly"];
17
18
  /*
18
19
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
19
20
  * or more contributor license agreements. Licensed under the Elastic License
@@ -73,7 +74,7 @@ var DefaultRenderItem = function DefaultRenderItem(_ref) {
73
74
  className: className
74
75
  }, rest), children);
75
76
  };
76
- function EuiSideNavItem(_ref2) {
77
+ var EuiSideNavItem = function EuiSideNavItem(_ref2) {
77
78
  var isOpen = _ref2.isOpen,
78
79
  isSelected = _ref2.isSelected,
79
80
  isParent = _ref2.isParent,
@@ -89,15 +90,17 @@ function EuiSideNavItem(_ref2) {
89
90
  _ref2$depth = _ref2.depth,
90
91
  depth = _ref2$depth === void 0 ? 0 : _ref2$depth,
91
92
  className = _ref2.className,
93
+ css = _ref2.css,
94
+ style = _ref2.style,
92
95
  _ref2$truncate = _ref2.truncate,
93
96
  truncate = _ref2$truncate === void 0 ? true : _ref2$truncate,
94
97
  emphasize = _ref2.emphasize,
95
98
  buttonClassName = _ref2.buttonClassName,
96
99
  childrenOnly = _ref2.childrenOnly,
97
100
  rest = _objectWithoutProperties(_ref2, _excluded2);
101
+ var euiTheme = (0, _services.useEuiTheme)();
98
102
  var isHrefValid = !_href || (0, _href_validator.validateHref)(_href);
99
103
  var href = isHrefValid ? _href : '';
100
- var isClickable = onClick || href;
101
104
 
102
105
  // Forcing accordion style item if not linked, but has children
103
106
  var _useState = (0, _react.useState)(isOpen),
@@ -107,63 +110,62 @@ function EuiSideNavItem(_ref2) {
107
110
  (0, _react.useEffect)(function () {
108
111
  setItemIsOpen(isOpen);
109
112
  }, [isOpen]);
110
- var toggleItemOpen = function toggleItemOpen() {
113
+ var toggleItemOpen = (0, _react.useCallback)(function () {
111
114
  setItemIsOpen(function (isOpen) {
112
115
  return !isOpen;
113
116
  });
114
- };
115
- var childItems;
116
- if (items && itemIsOpen) {
117
- childItems = (0, _react2.jsx)("div", {
118
- className: "euiSideNavItem__items"
119
- }, items);
120
- }
121
- var buttonIcon;
122
- if (icon) {
123
- buttonIcon = /*#__PURE__*/(0, _react.cloneElement)(icon, {
124
- className: (0, _classnames.default)('euiSideNavItemButton__icon', icon.props.className)
125
- });
126
- }
117
+ }, []);
118
+ var isRoot = depth === 0;
119
+ var isTrunk = depth === 1;
120
+ var isBranch = depth > 1;
121
+ var hasCaret = depth > 0 && childrenOnly;
122
+ var hasChildItems = items && itemIsOpen;
127
123
  var classes = (0, _classnames.default)('euiSideNavItem', {
128
- 'euiSideNavItem--root': depth === 0,
129
- 'euiSideNavItem--rootIcon': depth === 0 && icon,
130
- 'euiSideNavItem--trunk': depth === 1,
131
- 'euiSideNavItem--branch': depth > 1,
132
- 'euiSideNavItem--hasChildItems': !!childItems,
133
- 'euiSideNavItem--emphasized': emphasize
124
+ 'euiSideNavItem--root': isRoot,
125
+ 'euiSideNavItem--trunk': isTrunk,
126
+ 'euiSideNavItem--branch': isBranch,
127
+ 'euiSideNavItem--emphasized': emphasize,
128
+ 'euiSideNavItem-hasChildItems': hasChildItems
134
129
  }, className);
130
+ var styles = (0, _side_nav_item.euiSideNavItemStyles)(euiTheme);
131
+ var cssStyles = [styles.euiSideNavItem, isRoot && styles.root, isTrunk && styles.trunk, isBranch && styles.branch, emphasize && styles.emphasized, css];
132
+ var itemsStyles = hasChildItems && [styles.items.euiSideNavItem__items, isRoot && icon && styles.items.rootWithIcon, isTrunk && styles.items.trunk, isBranch && styles.items.branch];
135
133
  var buttonClasses = (0, _classnames.default)('euiSideNavItemButton', {
136
- 'euiSideNavItemButton--isClickable': isClickable,
137
134
  'euiSideNavItemButton-isOpen': depth > 0 && itemIsOpen && !isSelected,
138
135
  'euiSideNavItemButton-isSelected': isSelected
139
136
  }, buttonClassName);
140
- var caret;
141
- if (depth > 0 && childrenOnly) {
142
- caret = (0, _react2.jsx)(_icon.EuiIcon, {
143
- type: itemIsOpen ? 'arrowDown' : 'arrowRight',
144
- size: "s"
145
- });
146
- }
147
- var buttonContent = (0, _react2.jsx)("span", {
137
+ var buttonStyles = (0, _side_nav_item.euiSideNavItemButtonStyles)(euiTheme);
138
+ var buttonCssStyles = [buttonStyles.euiSideNavItemButton, isSelected && buttonStyles.selected, emphasize && buttonStyles.emphasized, isRoot && buttonStyles.root, isTrunk && buttonStyles.trunk, isBranch && buttonStyles.branch];
139
+ var labelCssStyles = [buttonStyles.label.euiSideNavItemButton__label, isRoot && buttonStyles.label.root];
140
+ return (0, _react2.jsx)("div", {
141
+ css: cssStyles,
142
+ className: classes,
143
+ style: style
144
+ }, (0, _react2.jsx)(RenderItem, _extends({
145
+ css: buttonCssStyles,
146
+ className: buttonClasses,
147
+ href: href,
148
+ rel: rel,
149
+ target: target,
150
+ onClick: childrenOnly ? toggleItemOpen : onClick
151
+ }, rest), (0, _react2.jsx)("span", {
152
+ css: buttonStyles.euiSideNavItemButton__content,
148
153
  className: "euiSideNavItemButton__content"
149
- }, buttonIcon, (0, _react2.jsx)(_inner_text.EuiInnerText, null, function (ref, innerText) {
154
+ }, icon, (0, _react2.jsx)(_inner_text.EuiInnerText, null, function (ref, innerText) {
150
155
  return (0, _react2.jsx)("span", {
151
156
  ref: ref,
152
157
  title: truncate ? innerText : undefined,
158
+ css: labelCssStyles,
153
159
  className: (0, _classnames.default)('euiSideNavItemButton__label', {
154
- 'euiSideNavItemButton__label--truncated': truncate
160
+ 'eui-textTruncate': truncate
155
161
  })
156
162
  }, children);
157
- }), caret);
158
- var renderItemProps = {
159
- href: href,
160
- rel: rel,
161
- target: target,
162
- onClick: childrenOnly ? toggleItemOpen : onClick,
163
- className: buttonClasses,
164
- children: buttonContent
165
- };
166
- return (0, _react2.jsx)("div", {
167
- className: classes
168
- }, (0, _react2.jsx)(RenderItem, _extends({}, renderItemProps, rest)), childItems);
169
- }
163
+ }), hasCaret && (0, _react2.jsx)(_icon.EuiIcon, {
164
+ type: itemIsOpen ? 'arrowDown' : 'arrowRight',
165
+ size: "s"
166
+ }))), hasChildItems && (0, _react2.jsx)("div", {
167
+ css: itemsStyles,
168
+ className: "euiSideNavItem__items"
169
+ }, items));
170
+ };
171
+ exports.EuiSideNavItem = EuiSideNavItem;
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ 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); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.euiSideNavItemStyles = exports.euiSideNavItemButtonStyles = void 0;
8
+ var _react = require("@emotion/react");
9
+ var _services = require("../../services");
10
+ var _global_styling = require("../../global_styling");
11
+ var _title = require("../title/title.styles");
12
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
13
+ 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; }
14
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
16
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
17
+ 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)."; } /*
18
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
19
+ * or more contributor license agreements. Licensed under the Elastic License
20
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
21
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
22
+ * Side Public License, v 1.
23
+ */
24
+ var euiSideNavItemStyles = function euiSideNavItemStyles(euiThemeContext) {
25
+ var euiTheme = euiThemeContext.euiTheme;
26
+ var emphasizedBackgroundColor = (0, _services.transparentize)(euiTheme.colors.lightShade, 0.3);
27
+ return {
28
+ euiSideNavItem: /*#__PURE__*/(0, _react.css)(";label:euiSideNavItem;"),
29
+ emphasized: /*#__PURE__*/(0, _react.css)("background-color:", emphasizedBackgroundColor, ";color:", euiTheme.colors.title, ";box-shadow:100px 0 0 0 ", emphasizedBackgroundColor, ",-100px 0 0 0 ", emphasizedBackgroundColor, ";& &{background-color:transparent;box-shadow:none;};label:emphasized;"),
30
+ // Layout
31
+ root: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('padding-bottom', euiTheme.size.s), " &+&{", (0, _global_styling.logicalCSS)('margin-top', euiTheme.size.s), " ", (0, _global_styling.logicalCSS)('padding-top', euiTheme.size.s), ";};label:root;"),
32
+ trunk: /*#__PURE__*/(0, _react.css)("color:", euiTheme.colors.title, ";;label:trunk;"),
33
+ branch: /*#__PURE__*/(0, _react.css)("position:relative;color:", euiTheme.colors.subduedText, ";&::after{position:absolute;content:'';", (0, _global_styling.logicalCSS)('vertical', 0), " ", (0, _global_styling.logicalCSS)('left', 0), " ", (0, _global_styling.logicalCSS)('width', euiTheme.border.width.thin), " background-color:", euiTheme.border.color, ";}&:last-of-type::after{", (0, _global_styling.logicalCSS)('height', euiTheme.size.m), ";};label:branch;"),
34
+ items: {
35
+ euiSideNavItem__items: /*#__PURE__*/(0, _react.css)(";label:euiSideNavItem__items;"),
36
+ rootWithIcon: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('margin-left', euiTheme.size.l), ";;label:rootWithIcon;"),
37
+ trunk: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('width', '100%'), (0, _global_styling.logicalCSS)('margin-left', euiTheme.size.s), ";;label:trunk;"),
38
+ branch: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('margin-left', euiTheme.size.base), ";;label:branch;")
39
+ }
40
+ };
41
+ };
42
+ exports.euiSideNavItemStyles = euiSideNavItemStyles;
43
+ var _ref = process.env.NODE_ENV === "production" ? {
44
+ name: "1nca8qt-euiSideNavItemButton__label",
45
+ styles: "flex-grow:1;label:euiSideNavItemButton__label;"
46
+ } : {
47
+ name: "1nca8qt-euiSideNavItemButton__label",
48
+ styles: "flex-grow:1;label:euiSideNavItemButton__label;",
49
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
50
+ };
51
+ var euiSideNavItemButtonStyles = function euiSideNavItemButtonStyles(euiThemeContext) {
52
+ var euiTheme = euiThemeContext.euiTheme;
53
+ var lineHeightOverride = (0, _global_styling.euiFontSize)(euiThemeContext, 'm').lineHeight;
54
+
55
+ // Create padding around focus area without indenting the item itself.
56
+ var paddingMarginOffset = "\n padding-inline: ".concat(euiTheme.size.s, ";\n ").concat((0, _global_styling.logicalCSS)('margin-left', "-".concat(euiTheme.size.s)), "\n ").concat((0, _global_styling.logicalCSS)('width', "calc(100% + ".concat((0, _global_styling.mathWithUnits)(euiTheme.size.s, function (x) {
57
+ return x * 2;
58
+ }), ")")), ";\n ");
59
+ return {
60
+ euiSideNavItemButton: /*#__PURE__*/(0, _react.css)("display:block;", (0, _global_styling.logicalCSS)('width', '100%'), "padding-block:", euiTheme.size.xxs, ";font-size:", (0, _global_styling.euiFontSize)(euiThemeContext, 's').fontSize, ";line-height:", lineHeightOverride, ";text-align:start;color:inherit;&:is(a, button):not(:disabled){&:hover{cursor:pointer;}&:hover,&:focus{.euiSideNavItemButton__label{text-decoration:underline;}}}&:disabled{cursor:not-allowed;color:", euiTheme.colors.disabledText, ";};label:euiSideNavItemButton;"),
61
+ selected: /*#__PURE__*/(0, _react.css)("color:", euiTheme.colors.primaryText, ";font-weight:", euiTheme.font.weight.bold, ";.euiSideNavItemButton__label{text-decoration:underline;};label:selected;"),
62
+ emphasized: /*#__PURE__*/(0, _react.css)("font-weight:", euiTheme.font.weight.bold, ";;label:emphasized;"),
63
+ // Layout
64
+ root: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('margin-bottom', euiTheme.size.xs), " padding-block:0;", paddingMarginOffset, ";;label:root;"),
65
+ trunk: /*#__PURE__*/(0, _react.css)(paddingMarginOffset, ";;label:trunk;"),
66
+ branch: /*#__PURE__*/(0, _react.css)("position:relative;padding-inline:", euiTheme.size.s, ";&::after{position:absolute;content:'';", (0, _global_styling.logicalCSS)('top', euiTheme.size.m), " ", (0, _global_styling.logicalCSS)('left', 0), " ", (0, _global_styling.logicalCSS)('width', euiTheme.size.xs), " ", (0, _global_styling.logicalCSS)('height', euiTheme.border.width.thin), " background-color:", euiTheme.border.color, ";};label:branch;"),
67
+ // Child elements
68
+ euiSideNavItemButton__content: /*#__PURE__*/(0, _react.css)("display:flex;align-items:center;gap:", euiTheme.size.s, ";;label:euiSideNavItemButton__content;"),
69
+ label: {
70
+ euiSideNavItemButton__label: _ref,
71
+ root: _objectSpread(_objectSpread({}, (0, _title.euiTitle)(euiThemeContext, 'xxs')), {}, {
72
+ lineHeight: lineHeightOverride,
73
+ color: 'inherit'
74
+ })
75
+ }
76
+ };
77
+ };
78
+ exports.euiSideNavItemButtonStyles = euiSideNavItemButtonStyles;