@elastic/eui 119.0.0 → 119.1.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 (285) hide show
  1. package/dist/eui-icons.json +93 -90
  2. package/dist/svgs/cursor_default.svg +3 -0
  3. package/dist/svgs/log_in.svg +4 -0
  4. package/dist/svgs/route_split.svg +3 -0
  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 +4 -4
  9. package/es/components/basic_table/in_memory_table.js +4 -4
  10. package/es/components/button/button.js +4 -2
  11. package/es/components/button/button_display/_button_display_content.js +1 -1
  12. package/es/components/button/button_empty/button_empty.js +1 -1
  13. package/es/components/button/button_group/button_group.js +87 -9
  14. package/es/components/button/button_group/button_group.styles.js +48 -9
  15. package/es/components/button/button_icon/button_icon.js +5 -3
  16. package/es/components/button/split_button/split_button.js +39 -16
  17. package/es/components/button/split_button/split_button.styles.js +28 -32
  18. package/es/components/button/split_button/split_button_actions.js +16 -5
  19. package/es/components/button/use_button_common_props.js +6 -2
  20. package/es/components/call_out/call_out.js +2 -2
  21. package/es/components/card/card.js +1 -1
  22. package/es/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  23. package/es/components/comment_list/comment.js +2 -2
  24. package/es/components/comment_list/comment_event.js +1 -1
  25. package/es/components/comment_list/comment_list.js +2 -2
  26. package/es/components/comment_list/comment_timeline.js +1 -1
  27. package/es/components/context_menu/context_menu_item.js +1 -1
  28. package/es/components/datagrid/body/cell/data_grid_cell.js +24 -24
  29. package/es/components/datagrid/body/data_grid_body.js +13 -13
  30. package/es/components/datagrid/body/data_grid_body_custom.js +13 -13
  31. package/es/components/datagrid/body/data_grid_body_virtualized.js +13 -13
  32. package/es/components/datagrid/body/header/column_actions.js +3 -1
  33. package/es/components/datagrid/body/header/data_grid_header_cell.js +12 -12
  34. package/es/components/datagrid/controls/column_sorting.js +13 -13
  35. package/es/components/datagrid/controls/column_sorting_draggable.js +1 -1
  36. package/es/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
  37. package/es/components/datagrid/utils/in_memory.js +12 -12
  38. package/es/components/date_picker/date_picker.js +2 -2
  39. package/es/components/date_picker/date_picker_range.js +1 -1
  40. package/es/components/empty_prompt/empty_prompt.js +1 -1
  41. package/es/components/flyout/flyout_menu/flyout_menu.js +39 -14
  42. package/es/components/form/field_number/field_number.js +2 -2
  43. package/es/components/form/field_text/field_text.js +2 -2
  44. package/es/components/form/file_picker/file_picker.js +187 -224
  45. package/es/components/form/file_picker/file_picker.styles.js +1 -1
  46. package/es/components/form/form_control_button/form_control_button.js +1 -1
  47. package/es/components/form/form_control_layout/append_prepend/form_append_prepend.js +2 -2
  48. package/es/components/form/form_control_layout/form_control_layout.js +2 -2
  49. package/es/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  50. package/es/components/form/text_area/text_area.js +2 -2
  51. package/es/components/header/header_links/header_link.js +1 -1
  52. package/es/components/header/header_links/header_links.js +1 -1
  53. package/es/components/header/header_logo/header_logo.js +1 -1
  54. package/es/components/header/header_section/header_section_item_button.js +1 -1
  55. package/es/components/icon/assets/cursor_default.js +35 -0
  56. package/es/components/icon/assets/log_in.js +35 -0
  57. package/es/components/icon/assets/route_split.js +33 -0
  58. package/es/components/icon/icon.js +1 -1
  59. package/es/components/icon/icon_map.js +15 -0
  60. package/es/components/icon/svgs/cursor_default.svg +3 -0
  61. package/es/components/icon/svgs/log_in.svg +4 -0
  62. package/es/components/icon/svgs/route_split.svg +3 -0
  63. package/es/components/key_pad_menu/key_pad_menu_item.js +1 -1
  64. package/es/components/list_group/list_group.js +2 -2
  65. package/es/components/list_group/list_group_item.js +2 -2
  66. package/es/components/list_group/list_group_item_extra_action.js +1 -1
  67. package/es/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
  68. package/es/components/loading/loading_logo.js +1 -1
  69. package/es/components/markdown_editor/markdown_editor.js +1 -1
  70. package/es/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
  71. package/es/components/markdown_editor/markdown_editor_footer.js +1 -1
  72. package/es/components/markdown_editor/markdown_editor_toolbar.js +1 -1
  73. package/es/components/page/page_header/page_header_content.js +1 -1
  74. package/es/components/pagination/pagination_button.js +1 -1
  75. package/es/components/selectable/selectable_list/selectable_list.js +1 -1
  76. package/es/components/selectable/selectable_list/selectable_list_item.js +1 -1
  77. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  78. package/es/components/table/table_header_cell.js +1 -1
  79. package/es/components/timeline/timeline_item_icon.js +1 -1
  80. package/es/components/toast/global_toast_list.js +2 -2
  81. package/es/components/toast/toast.js +2 -2
  82. package/es/components/tool_tip/icon_tip.js +1 -1
  83. package/es/global_styling/mixins/_button.js +6 -0
  84. package/es/services/accessibility/html_id_generator.js +26 -1
  85. package/eui.d.ts +241 -329
  86. package/i18ntokens.json +2678 -2660
  87. package/lib/components/avatar/avatar.js +1 -1
  88. package/lib/components/badge/badge.js +1 -1
  89. package/lib/components/badge/beta_badge/beta_badge.js +1 -1
  90. package/lib/components/basic_table/basic_table.js +4 -4
  91. package/lib/components/basic_table/in_memory_table.js +4 -4
  92. package/lib/components/button/button.js +4 -2
  93. package/lib/components/button/button_display/_button_display_content.js +1 -1
  94. package/lib/components/button/button_empty/button_empty.js +1 -1
  95. package/lib/components/button/button_group/button_group.js +86 -10
  96. package/lib/components/button/button_group/button_group.styles.js +47 -8
  97. package/lib/components/button/button_icon/button_icon.js +5 -3
  98. package/lib/components/button/split_button/split_button.js +37 -15
  99. package/lib/components/button/split_button/split_button.styles.js +29 -31
  100. package/lib/components/button/split_button/split_button_actions.js +15 -4
  101. package/lib/components/button/use_button_common_props.js +6 -2
  102. package/lib/components/call_out/call_out.js +2 -2
  103. package/lib/components/card/card.js +1 -1
  104. package/lib/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  105. package/lib/components/comment_list/comment.js +2 -2
  106. package/lib/components/comment_list/comment_event.js +1 -1
  107. package/lib/components/comment_list/comment_list.js +2 -2
  108. package/lib/components/comment_list/comment_timeline.js +1 -1
  109. package/lib/components/context_menu/context_menu_item.js +1 -1
  110. package/lib/components/datagrid/body/cell/data_grid_cell.js +24 -24
  111. package/lib/components/datagrid/body/data_grid_body.js +13 -13
  112. package/lib/components/datagrid/body/data_grid_body_custom.js +13 -13
  113. package/lib/components/datagrid/body/data_grid_body_virtualized.js +13 -13
  114. package/lib/components/datagrid/body/header/column_actions.js +3 -1
  115. package/lib/components/datagrid/body/header/data_grid_header_cell.js +12 -12
  116. package/lib/components/datagrid/controls/column_sorting.js +13 -13
  117. package/lib/components/datagrid/controls/column_sorting_draggable.js +1 -1
  118. package/lib/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
  119. package/lib/components/datagrid/utils/in_memory.js +12 -12
  120. package/lib/components/date_picker/date_picker.js +2 -2
  121. package/lib/components/date_picker/date_picker_range.js +1 -1
  122. package/lib/components/empty_prompt/empty_prompt.js +1 -1
  123. package/lib/components/flyout/flyout_menu/flyout_menu.js +39 -14
  124. package/lib/components/form/field_number/field_number.js +2 -2
  125. package/lib/components/form/field_text/field_text.js +2 -2
  126. package/lib/components/form/file_picker/file_picker.js +193 -227
  127. package/lib/components/form/file_picker/file_picker.styles.js +1 -1
  128. package/lib/components/form/form_control_button/form_control_button.js +1 -1
  129. package/lib/components/form/form_control_layout/append_prepend/form_append_prepend.js +2 -2
  130. package/lib/components/form/form_control_layout/form_control_layout.js +2 -2
  131. package/lib/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  132. package/lib/components/form/text_area/text_area.js +2 -2
  133. package/lib/components/header/header_links/header_link.js +1 -1
  134. package/lib/components/header/header_links/header_links.js +1 -1
  135. package/lib/components/header/header_logo/header_logo.js +1 -1
  136. package/lib/components/header/header_section/header_section_item_button.js +1 -1
  137. package/lib/components/icon/assets/cursor_default.js +42 -0
  138. package/lib/components/icon/assets/log_in.js +42 -0
  139. package/lib/components/icon/assets/route_split.js +40 -0
  140. package/lib/components/icon/icon.js +1 -1
  141. package/lib/components/icon/icon_map.js +21 -0
  142. package/lib/components/icon/svgs/cursor_default.svg +3 -0
  143. package/lib/components/icon/svgs/log_in.svg +4 -0
  144. package/lib/components/icon/svgs/route_split.svg +3 -0
  145. package/lib/components/key_pad_menu/key_pad_menu_item.js +1 -1
  146. package/lib/components/list_group/list_group.js +2 -2
  147. package/lib/components/list_group/list_group_item.js +2 -2
  148. package/lib/components/list_group/list_group_item_extra_action.js +1 -1
  149. package/lib/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
  150. package/lib/components/loading/loading_logo.js +1 -1
  151. package/lib/components/markdown_editor/markdown_editor.js +1 -1
  152. package/lib/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
  153. package/lib/components/markdown_editor/markdown_editor_footer.js +1 -1
  154. package/lib/components/markdown_editor/markdown_editor_toolbar.js +1 -1
  155. package/lib/components/page/page_header/page_header_content.js +1 -1
  156. package/lib/components/pagination/pagination_button.js +1 -1
  157. package/lib/components/selectable/selectable_list/selectable_list.js +1 -1
  158. package/lib/components/selectable/selectable_list/selectable_list_item.js +1 -1
  159. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  160. package/lib/components/table/table_header_cell.js +1 -1
  161. package/lib/components/timeline/timeline_item_icon.js +1 -1
  162. package/lib/components/toast/global_toast_list.js +2 -2
  163. package/lib/components/toast/toast.js +2 -2
  164. package/lib/components/tool_tip/icon_tip.js +1 -1
  165. package/lib/global_styling/mixins/_button.js +6 -0
  166. package/lib/services/accessibility/html_id_generator.js +26 -1
  167. package/optimize/es/components/button/button.js +4 -2
  168. package/optimize/es/components/button/button_group/button_group.js +55 -8
  169. package/optimize/es/components/button/button_group/button_group.styles.js +48 -9
  170. package/optimize/es/components/button/button_icon/button_icon.js +4 -2
  171. package/optimize/es/components/button/split_button/split_button.js +36 -16
  172. package/optimize/es/components/button/split_button/split_button.styles.js +28 -32
  173. package/optimize/es/components/button/split_button/split_button_actions.js +16 -5
  174. package/optimize/es/components/button/use_button_common_props.js +6 -2
  175. package/optimize/es/components/datagrid/body/header/column_actions.js +3 -1
  176. package/optimize/es/components/flyout/flyout_menu/flyout_menu.js +32 -9
  177. package/optimize/es/components/form/file_picker/file_picker.js +182 -216
  178. package/optimize/es/components/form/file_picker/file_picker.styles.js +1 -1
  179. package/optimize/es/components/icon/assets/cursor_default.js +34 -0
  180. package/optimize/es/components/icon/assets/log_in.js +34 -0
  181. package/optimize/es/components/icon/assets/route_split.js +32 -0
  182. package/optimize/es/components/icon/icon_map.js +15 -0
  183. package/optimize/es/components/icon/svgs/cursor_default.svg +3 -0
  184. package/optimize/es/components/icon/svgs/log_in.svg +4 -0
  185. package/optimize/es/components/icon/svgs/route_split.svg +3 -0
  186. package/optimize/es/global_styling/mixins/_button.js +6 -0
  187. package/optimize/es/services/accessibility/html_id_generator.js +26 -1
  188. package/optimize/lib/components/button/button.js +4 -2
  189. package/optimize/lib/components/button/button_group/button_group.js +55 -9
  190. package/optimize/lib/components/button/button_group/button_group.styles.js +47 -8
  191. package/optimize/lib/components/button/button_icon/button_icon.js +4 -2
  192. package/optimize/lib/components/button/split_button/split_button.js +35 -15
  193. package/optimize/lib/components/button/split_button/split_button.styles.js +29 -31
  194. package/optimize/lib/components/button/split_button/split_button_actions.js +15 -4
  195. package/optimize/lib/components/button/use_button_common_props.js +6 -2
  196. package/optimize/lib/components/datagrid/body/header/column_actions.js +3 -1
  197. package/optimize/lib/components/flyout/flyout_menu/flyout_menu.js +32 -9
  198. package/optimize/lib/components/form/file_picker/file_picker.js +183 -215
  199. package/optimize/lib/components/form/file_picker/file_picker.styles.js +1 -1
  200. package/optimize/lib/components/icon/assets/cursor_default.js +42 -0
  201. package/optimize/lib/components/icon/assets/log_in.js +42 -0
  202. package/optimize/lib/components/icon/assets/route_split.js +40 -0
  203. package/optimize/lib/components/icon/icon_map.js +21 -0
  204. package/optimize/lib/components/icon/svgs/cursor_default.svg +3 -0
  205. package/optimize/lib/components/icon/svgs/log_in.svg +4 -0
  206. package/optimize/lib/components/icon/svgs/route_split.svg +3 -0
  207. package/optimize/lib/global_styling/mixins/_button.js +6 -0
  208. package/optimize/lib/services/accessibility/html_id_generator.js +26 -1
  209. package/package.json +11 -17
  210. package/test-env/components/avatar/avatar.js +1 -1
  211. package/test-env/components/badge/badge.js +1 -1
  212. package/test-env/components/badge/beta_badge/beta_badge.js +1 -1
  213. package/test-env/components/basic_table/basic_table.js +4 -4
  214. package/test-env/components/basic_table/in_memory_table.js +4 -4
  215. package/test-env/components/button/button.js +4 -2
  216. package/test-env/components/button/button_display/_button_display_content.js +1 -1
  217. package/test-env/components/button/button_empty/button_empty.js +1 -1
  218. package/test-env/components/button/button_group/button_group.js +84 -10
  219. package/test-env/components/button/button_group/button_group.styles.js +47 -8
  220. package/test-env/components/button/button_icon/button_icon.js +5 -3
  221. package/test-env/components/button/split_button/split_button.js +35 -15
  222. package/test-env/components/button/split_button/split_button.styles.js +29 -31
  223. package/test-env/components/button/split_button/split_button_actions.js +15 -4
  224. package/test-env/components/button/use_button_common_props.js +6 -2
  225. package/test-env/components/call_out/call_out.js +2 -2
  226. package/test-env/components/card/card.js +1 -1
  227. package/test-env/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +1 -1
  228. package/test-env/components/comment_list/comment.js +2 -2
  229. package/test-env/components/comment_list/comment_event.js +1 -1
  230. package/test-env/components/comment_list/comment_list.js +2 -2
  231. package/test-env/components/comment_list/comment_timeline.js +1 -1
  232. package/test-env/components/context_menu/context_menu_item.js +1 -1
  233. package/test-env/components/datagrid/body/cell/data_grid_cell.js +24 -24
  234. package/test-env/components/datagrid/body/data_grid_body.js +13 -13
  235. package/test-env/components/datagrid/body/data_grid_body_custom.js +13 -13
  236. package/test-env/components/datagrid/body/data_grid_body_virtualized.js +13 -13
  237. package/test-env/components/datagrid/body/header/column_actions.js +3 -1
  238. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +12 -12
  239. package/test-env/components/datagrid/controls/column_sorting.js +13 -13
  240. package/test-env/components/datagrid/controls/column_sorting_draggable.js +1 -1
  241. package/test-env/components/datagrid/controls/data_grid_toolbar_control.js +1 -1
  242. package/test-env/components/datagrid/utils/in_memory.js +12 -12
  243. package/test-env/components/date_picker/date_picker.js +2 -2
  244. package/test-env/components/date_picker/date_picker_range.js +1 -1
  245. package/test-env/components/empty_prompt/empty_prompt.js +1 -1
  246. package/test-env/components/flyout/flyout_menu/flyout_menu.js +39 -14
  247. package/test-env/components/form/field_number/field_number.js +2 -2
  248. package/test-env/components/form/field_text/field_text.js +2 -2
  249. package/test-env/components/form/file_picker/file_picker.js +184 -216
  250. package/test-env/components/form/file_picker/file_picker.styles.js +1 -1
  251. package/test-env/components/form/form_control_button/form_control_button.js +1 -1
  252. package/test-env/components/form/form_control_layout/append_prepend/form_append_prepend.js +2 -2
  253. package/test-env/components/form/form_control_layout/form_control_layout.js +2 -2
  254. package/test-env/components/form/form_control_layout/form_control_layout_custom_icon.js +1 -1
  255. package/test-env/components/form/text_area/text_area.js +2 -2
  256. package/test-env/components/header/header_links/header_link.js +1 -1
  257. package/test-env/components/header/header_links/header_links.js +1 -1
  258. package/test-env/components/header/header_logo/header_logo.js +1 -1
  259. package/test-env/components/header/header_section/header_section_item_button.js +1 -1
  260. package/test-env/components/icon/assets/cursor_default.js +42 -0
  261. package/test-env/components/icon/assets/log_in.js +42 -0
  262. package/test-env/components/icon/assets/route_split.js +40 -0
  263. package/test-env/components/icon/icon_map.js +21 -0
  264. package/test-env/components/key_pad_menu/key_pad_menu_item.js +1 -1
  265. package/test-env/components/list_group/list_group.js +2 -2
  266. package/test-env/components/list_group/list_group_item.js +2 -2
  267. package/test-env/components/list_group/list_group_item_extra_action.js +1 -1
  268. package/test-env/components/list_group/pinnable_list_group/pinnable_list_group.js +4 -4
  269. package/test-env/components/loading/loading_logo.js +1 -1
  270. package/test-env/components/markdown_editor/markdown_editor.js +1 -1
  271. package/test-env/components/markdown_editor/markdown_editor_drop_zone.js +1 -1
  272. package/test-env/components/markdown_editor/markdown_editor_footer.js +1 -1
  273. package/test-env/components/markdown_editor/markdown_editor_toolbar.js +1 -1
  274. package/test-env/components/page/page_header/page_header_content.js +1 -1
  275. package/test-env/components/pagination/pagination_button.js +1 -1
  276. package/test-env/components/selectable/selectable_list/selectable_list.js +1 -1
  277. package/test-env/components/selectable/selectable_list/selectable_list_item.js +1 -1
  278. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +1 -1
  279. package/test-env/components/table/table_header_cell.js +1 -1
  280. package/test-env/components/timeline/timeline_item_icon.js +1 -1
  281. package/test-env/components/toast/global_toast_list.js +2 -2
  282. package/test-env/components/toast/toast.js +2 -2
  283. package/test-env/components/tool_tip/icon_tip.js +1 -1
  284. package/test-env/global_styling/mixins/_button.js +6 -0
  285. package/test-env/services/accessibility/html_id_generator.js +11 -0
@@ -4,7 +4,7 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" ==
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.EuiButtonGroup = exports.BUTTON_GROUP_GUTTER_SIZES = void 0;
7
+ exports.EuiButtonGroupChildren = exports.EuiButtonGroup = exports.BUTTON_GROUP_GUTTER_SIZES = void 0;
8
8
  var _classnames = _interopRequireDefault(require("classnames"));
9
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
10
10
  var _react = _interopRequireWildcard(require("react"));
@@ -15,7 +15,7 @@ var _button_context = require("../button_context");
15
15
  var _button_group = require("./button_group.styles");
16
16
  var _react2 = require("@emotion/react");
17
17
  var _excluded = ["className", "buttonSize", "color", "idSelected", "idToSelectedMap", "isDisabled", "hasAriaDisabled", "isFullWidth", "isIconOnly", "legend", "name", "onChange", "options", "type"],
18
- _excluded2 = ["className", "children", "legend", "buttonSize", "variant", "gutterSize", "isDisabled", "hasAriaDisabled", "isFullWidth", "onChange"];
18
+ _excluded2 = ["className", "children", "legend", "buttonSize", "variant", "gutterSize", "isDisabled", "hasAriaDisabled", "isFullWidth", "showDividers", "wrap", "layout", "onChange"];
19
19
  /*
20
20
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
21
21
  * or more contributor license agreements. Licensed under the Elastic License
@@ -23,12 +23,33 @@ var _excluded = ["className", "buttonSize", "color", "idSelected", "idToSelected
23
23
  * in compliance with, at your election, the Elastic License 2.0 or the Server
24
24
  * Side Public License, v 1.
25
25
  */
26
+ // removes outer fragment wrappers only; no nested traversal of children
27
+ // uses forEach over .toArray() to avoid mutating keys; only unwraps one Fragment level
26
28
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
27
29
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
28
30
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
31
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
32
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
33
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
34
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
35
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
29
36
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
30
37
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], t.indexOf(o) >= 0 || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
31
38
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.indexOf(n) >= 0) continue; t[n] = r[n]; } return t; }
39
+ function flattenButtonGroupChildren(children) {
40
+ var result = [];
41
+ _react.default.Children.forEach(children, function (child) {
42
+ if (! /*#__PURE__*/_react.default.isValidElement(child)) return;
43
+ if (child.type === _react.default.Fragment) {
44
+ _react.default.Children.forEach(child.props.children, function (fragmentChild) {
45
+ if ( /*#__PURE__*/_react.default.isValidElement(fragmentChild)) result.push(fragmentChild);
46
+ });
47
+ } else {
48
+ result.push(child);
49
+ }
50
+ });
51
+ return result;
52
+ }
32
53
  var EuiButtonGroupOptions = function EuiButtonGroupOptions(_ref) {
33
54
  var className = _ref.className,
34
55
  _ref$buttonSize = _ref.buttonSize,
@@ -209,9 +230,9 @@ EuiButtonGroupOptions.propTypes = {
209
230
  idToSelectedMap: _propTypes.default.shape({})
210
231
  };
211
232
  var BUTTON_GROUP_GUTTER_SIZES = exports.BUTTON_GROUP_GUTTER_SIZES = ['none', 'xs', 's', 'm', 'l', 'xl'];
212
- var EuiButtonGroupChildren = function EuiButtonGroupChildren(_ref2) {
233
+ var EuiButtonGroupChildren = exports.EuiButtonGroupChildren = function EuiButtonGroupChildren(_ref2) {
213
234
  var className = _ref2.className,
214
- children = _ref2.children,
235
+ _children = _ref2.children,
215
236
  legend = _ref2.legend,
216
237
  _ref2$buttonSize = _ref2.buttonSize,
217
238
  buttonSize = _ref2$buttonSize === void 0 ? 's' : _ref2$buttonSize,
@@ -225,36 +246,63 @@ var EuiButtonGroupChildren = function EuiButtonGroupChildren(_ref2) {
225
246
  hasAriaDisabled = _ref2$hasAriaDisabled === void 0 ? false : _ref2$hasAriaDisabled,
226
247
  _ref2$isFullWidth = _ref2.isFullWidth,
227
248
  isFullWidth = _ref2$isFullWidth === void 0 ? false : _ref2$isFullWidth,
249
+ _ref2$showDividers = _ref2.showDividers,
250
+ showDividers = _ref2$showDividers === void 0 ? false : _ref2$showDividers,
251
+ _ref2$wrap = _ref2.wrap,
252
+ wrap = _ref2$wrap === void 0 ? true : _ref2$wrap,
253
+ _ref2$layout = _ref2.layout,
254
+ layout = _ref2$layout === void 0 ? 'horizontal' : _ref2$layout,
228
255
  _onChange = _ref2.onChange,
229
256
  rest = _objectWithoutProperties(_ref2, _excluded2);
257
+ var isSegmented = variant === 'segmented';
258
+ var hasGutterSize = variant === 'default' && gutterSize !== 'none';
230
259
  var wrapperCssStyles = [_button_group.euiButtonGroupStyles.euiButtonGroup, isFullWidth && _button_group.euiButtonGroupStyles.fullWidth];
231
260
  var styles = (0, _services.useEuiMemoizedStyles)(_button_group.euiButtonGroupButtonsStyles);
232
- var cssStyles = [styles.euiButtonGroup__buttons, isFullWidth && styles.fullWidth, gutterSize && gutterSize !== 'none' && styles.gutterSize[gutterSize]];
261
+ var cssStyles = [styles.euiButtonGroup__buttons, hasGutterSize && styles.gutterSize[gutterSize], isSegmented && !wrap && styles.noWrap];
262
+ var containerCssStyles = [styles.euiButtonGroup__container, isFullWidth && layout !== 'vertical' && styles.fullWidth];
233
263
  var classes = (0, _classnames.default)('euiButtonGroup', {
234
264
  'euiButtonGroup-isDisabled': isDisabled
235
265
  }, className);
236
266
  var contextValue = (0, _react.useMemo)(function () {
237
- return {
267
+ return _objectSpread({
238
268
  size: buttonSize,
239
269
  isDisabled: isDisabled || undefined,
240
270
  hasAriaDisabled: hasAriaDisabled || undefined,
241
271
  fullWidth: isFullWidth
242
- };
243
- }, [buttonSize, isDisabled, hasAriaDisabled, isFullWidth]);
272
+ }, isSegmented && {
273
+ display: 'base',
274
+ color: 'text',
275
+ fill: false
276
+ });
277
+ }, [buttonSize, isDisabled, hasAriaDisabled, isFullWidth, isSegmented]);
278
+
279
+ // wrap children in a wrapper to be able to apply required styles
280
+ var children = isSegmented ? flattenButtonGroupChildren(_children).map(function (child, index) {
281
+ var _child$key;
282
+ return (0, _react2.jsx)("div", {
283
+ key: (_child$key = child.key) !== null && _child$key !== void 0 ? _child$key : "euiButtonGroupItem-".concat(index),
284
+ className: "euiButtonGroup__item"
285
+ }, child);
286
+ }) : _children;
244
287
  return (0, _react2.jsx)("div", _extends({
245
288
  css: wrapperCssStyles,
246
289
  className: classes,
247
290
  role: "group",
248
291
  "data-variant": variant,
249
292
  "data-size": buttonSize,
293
+ "data-layout": isSegmented ? layout : undefined,
294
+ "data-dividers": isSegmented && showDividers || undefined,
250
295
  "aria-label": legend,
251
296
  "aria-disabled": isDisabled || undefined
252
297
  }, rest), (0, _react2.jsx)("div", {
298
+ css: containerCssStyles,
299
+ className: "euiButtonGroup__container"
300
+ }, (0, _react2.jsx)("div", {
253
301
  css: cssStyles,
254
302
  className: "euiButtonGroup__buttons"
255
303
  }, (0, _react2.jsx)(_button_context.EuiButtonContext.Provider, {
256
304
  value: contextValue
257
- }, children)));
305
+ }, children))));
258
306
  };
259
307
 
260
308
  /* Overloaded call signatures let one `EuiButtonGroup` component support both
@@ -276,27 +324,55 @@ EuiButtonGroupChildren.propTypes = {
276
324
  /**
277
325
  * Pass button components (`EuiButton`, `EuiButtonEmpty`, `EuiButtonIcon`) as children,
278
326
  * some specific wrappers, like `EuiToolTip` and `EuiPopover` are allowed.
327
+ *
328
+ * Do not pass children as combined custom component. Each child needs to be a standalone component.
279
329
  */
280
330
  children: _propTypes.default.node.isRequired,
281
331
  /**
282
332
  * Typical sizing is `s`. Medium `m` size should be reserved for major features.
333
+ * @default 's'
283
334
  */
284
335
  buttonSize: _propTypes.default.oneOf(["s", "m"]),
285
336
  /**
286
337
  * Defines the type of a button group, which renders visually and functionally different:
287
338
  * - default: arranges buttons in a horizontal row with optional gutter via `gutterSize`
339
+ * - segmented: arranges buttons in a horizontal or vertical row with no gutter.
340
+ * The buttons are placed inset and dividers can optionally be shown between them.
341
+ * @default 'default'
288
342
  */
289
- variant: _propTypes.default.oneOf(["default"]),
343
+ variant: _propTypes.default.oneOf(["default", "segmented"]),
290
344
  /**
291
345
  * Defines the gutter size between children buttons.
292
346
  * Applies only when `variant="default"`.
347
+ * @default 's'
293
348
  */
294
349
  gutterSize: _propTypes.default.any,
295
350
  /**
296
351
  * Expands the whole group to the full width of the container.
297
352
  * `EuiButton` children will stretch to fill the available space via their `fullWidth` prop.
353
+ * Does not apply when `layout="vertical"`.
354
+ * @default false
298
355
  */
299
356
  isFullWidth: _propTypes.default.bool,
357
+ /**
358
+ * Shows dividers between buttons.
359
+ * Applies only when `variant="segmented"`.
360
+ * @default false
361
+ */
362
+ showDividers: _propTypes.default.bool,
363
+ /**
364
+ * Defines the layout direction of the button group.
365
+ * `layout="vertical"` should only be used with EuiButtonIcon children.
366
+ * Applies only when `variant="segmented"`.
367
+ * @default 'horizontal'
368
+ */
369
+ layout: _propTypes.default.oneOf(["horizontal", "vertical"]),
370
+ /**
371
+ * Defines if buttons wrap or shrink.
372
+ * Applies only when `variant="segmented"`.
373
+ * @default true
374
+ */
375
+ wrap: _propTypes.default.bool,
300
376
  /**
301
377
  * Callback fired when a child button is selected.
302
378
  * Returns the `id` of the clicked option.
@@ -15,8 +15,12 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
15
15
  * in compliance with, at your election, the Elastic License 2.0 or the Server
16
16
  * Side Public License, v 1.
17
17
  */
18
+ var hasButtonOnlySelector = ':not(:has(.euiButtonIcon))';
19
+ var hasButtonIconOnlySelector = ':not(:has(.euiButton, .euiButtonEmpty))';
20
+ var buttonItemSelector = '.euiButtonGroup__item, .euiToolTipAnchor, .euiPopover, .euiButton';
21
+ var buttonOnlyItemSelector = "*:is(".concat(buttonItemSelector, "):not(:has(.euiButtonIcon))");
18
22
  var euiButtonGroupStyles = exports.euiButtonGroupStyles = {
19
- euiButtonGroup: /*#__PURE__*/(0, _react.css)("display:inline-block;", (0, _global_styling.logicalCSS)('max-width', '100%'), " position:relative;;label:euiButtonGroup;"),
23
+ euiButtonGroup: /*#__PURE__*/(0, _react.css)("display:inline-block;", (0, _global_styling.logicalCSS)('max-width', '100%'), " position:relative;&:where([data-variant='segmented']){&", hasButtonIconOnlySelector, "{display:flex;}};label:euiButtonGroup;"),
20
24
  fullWidth: process.env.NODE_ENV === "production" ? {
21
25
  name: "jl0hie-fullWidth",
22
26
  styles: "display:block;label:fullWidth;"
@@ -28,23 +32,58 @@ var euiButtonGroupStyles = exports.euiButtonGroupStyles = {
28
32
  };
29
33
  var euiButtonGroupButtonsStyles = exports.euiButtonGroupButtonsStyles = function euiButtonGroupButtonsStyles(euiThemeContext) {
30
34
  var euiTheme = euiThemeContext.euiTheme;
31
- var buttonSizes = {
32
- s: "\n border-radius: ".concat(euiTheme.border.radius.small, ";\n ").concat(_highContrastStyles(euiThemeContext), "\n "),
33
- m: "\n border-radius: ".concat(euiTheme.border.radius.medium, ";\n ").concat(_highContrastStyles(euiThemeContext), "\n ")
35
+ var buttonSizeMap = (0, _global_styling.euiButtonSizeMap)(euiThemeContext);
36
+ var containerPadding = euiTheme.size.xs;
37
+ var splitPadding = (0, _global_styling.mathWithUnits)(containerPadding, function (x) {
38
+ return x / 2;
39
+ });
40
+ var insetSize = function insetSize(height) {
41
+ return (0, _global_styling.mathWithUnits)([height, containerPadding], function (x, y) {
42
+ return x - y * 2;
43
+ });
34
44
  };
45
+ var buttonGroupVariables = {
46
+ gap: {
47
+ regular: euiTheme.size.xs,
48
+ dividers: (0, _global_styling.mathWithUnits)([euiTheme.size.xs, euiTheme.border.width.thin], function (x, y) {
49
+ return x + y;
50
+ })
51
+ },
52
+ // TODO: use from buttonSizeMap once added via EuiSplitButton:
53
+ // https://github.com/elastic/eui/pull/9865
54
+ radius: {
55
+ outer: euiTheme.border.radius.medium,
56
+ inner: '2px' // should eventually be a token, but currently small and medium have the same value
57
+ },
58
+ size: {
59
+ s: insetSize(buttonSizeMap.s.height),
60
+ m: insetSize(buttonSizeMap.m.height)
61
+ }
62
+ };
63
+ var dividerOffset = (0, _global_styling.mathWithUnits)([buttonGroupVariables.gap.dividers, euiTheme.border.width.thin], function (x, y) {
64
+ return (x + y) / 2;
65
+ });
35
66
  var _euiFormVariables = (0, _form.euiFormVariables)(euiThemeContext),
36
67
  controlCompressedHeight = _euiFormVariables.controlCompressedHeight,
37
68
  controlCompressedBorderRadius = _euiFormVariables.controlCompressedBorderRadius,
38
69
  backgroundColor = _euiFormVariables.backgroundColor,
39
70
  borderColor = _euiFormVariables.borderColor;
71
+ var dividerStyles = "\n gap: ".concat(buttonGroupVariables.gap.dividers, ";\n\n .euiButtonGroup__item {\n position: relative;\n\n /* block border */\n &::before {\n content: '';\n position: absolute;\n inset-block-start: -").concat(dividerOffset, ";\n inset-inline-start: -").concat((0, _global_styling.mathWithUnits)(containerPadding, function (x) {
72
+ return x / 2;
73
+ }), ";\n inline-size: calc(\n 100% + ").concat((0, _global_styling.mathWithUnits)(containerPadding, function (x) {
74
+ return x * 2;
75
+ }), "\n );\n block-size: ").concat(euiTheme.border.width.thin, ";\n border-block-start: ").concat(euiTheme.border.width.thin, " solid\n ").concat(euiTheme.colors.borderBasePlain, ";\n pointer-events: none;\n }\n\n /* inline border */\n &::after {\n content: '';\n position: absolute;\n inset-inline-start: -").concat(dividerOffset, ";\n block-size: calc(\n var(--euiButtonGroupButtonInsetSize) - ").concat(euiTheme.size.s, "\n );\n inline-size: ").concat(euiTheme.border.width.thin, ";\n border-inline-start: ").concat(euiTheme.border.width.thin, " solid\n ").concat(euiTheme.colors.borderBasePlain, ";\n pointer-events: none;\n }\n }\n\n &:where([data-layout='horizontal'] &) {\n &:where(:is(").concat(hasButtonIconOnlySelector, ") &) {\n .euiButtonGroup__item::before {\n inset-inline-start: 0;\n inline-size: 100%;\n }\n }\n }\n\n &:where([data-layout='vertical'] &) {\n &:where(:is(").concat(hasButtonIconOnlySelector, ") &) {\n .euiButtonGroup__item::before {\n inset-inline-start: auto;\n inline-size: calc(\n var(--euiButtonGroupButtonInsetSize) - ").concat(euiTheme.size.s, "\n );\n }\n }\n }\n ");
76
+ var segmentedChildrenStyles = "\n /* Buttons are used inset and shouldn't have their own borders */\n .euiButton,\n .euiButtonIcon {\n border: none;\n pointer-events: auto; /* Ensure buttons are still clickable in jsdom */\n\n &::before {\n border-radius: inherit;\n }\n }\n\n /* Adjust children for inset behavior */\n ".concat(buttonItemSelector, ", \n .euiButtonIcon {\n display: inline-flex;\n align-items: center;\n block-size: var(--euiButtonGroupButtonInsetSize);\n border-radius: ").concat(buttonGroupVariables.radius.inner, ";\n }\n\n .euiButtonIcon {\n inline-size: var(--euiButtonGroupButtonInsetSize);\n }\n\n /* Only non-icon buttons auto-grow/shrink */\n .euiButton,\n ").concat(buttonOnlyItemSelector, " {\n flex: 1;\n min-inline-size: auto;\n }\n ");
40
77
  return {
41
78
  // Base
42
- euiButtonGroup__buttons: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('max-width', '100%'), " display:flex;align-items:center;&:where([data-variant='default'] &){flex-wrap:wrap;}&:where([data-size='s'] &){", buttonSizes.s, ";}&:where([data-size='m'] &){", buttonSizes.m, ";};label:euiButtonGroup__buttons;"),
43
- fullWidth: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('width', '100%'), " .euiButtonGroupButton,.euiButtonGroup__tooltipWrapper{flex:1;", (0, _global_styling.logicalCSS)('width', '100%'), ";}.euiButton{flex-grow:1;inline-size:auto;}.euiButtonEmpty{flex-shrink:0;};label:fullWidth;"),
79
+ euiButtonGroup__container: /*#__PURE__*/(0, _react.css)("&:where([data-variant='segmented'] &){position:relative;display:inline-flex;align-items:center;max-inline-size:100%;padding:", splitPadding, ";border-radius:", buttonGroupVariables.radius.outer, ";background-color:", euiTheme.colors.backgroundBasePlain, ";&:where([data-size='s'] &){--euiButtonGroupButtonInsetSize:", buttonGroupVariables.size.s, ";min-block-size:", buttonSizeMap.s.height, ";}&:where([data-size='m'] &){--euiButtonGroupButtonInsetSize:", buttonGroupVariables.size.m, ";min-block-size:", buttonSizeMap.m.height, ";}&::after{content:'';position:absolute;inset:0;border:", euiTheme.border.width.thin, " solid ", euiTheme.colors.borderBasePlain, ";border-radius:inherit;pointer-events:none;}};label:euiButtonGroup__container;"),
80
+ euiButtonGroup__buttons: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('max-width', '100%'), " display:flex;align-items:center;&:where([data-variant='default'] &){flex-wrap:wrap;}&:where([data-variant='segmented'] &){position:relative;display:inline-flex;align-items:center;flex-wrap:wrap;gap:", buttonGroupVariables.gap.regular, ";max-inline-size:100%;padding:", splitPadding, ";overflow:hidden;*:where(.euiButton, .euiButtonIcon):is(", _global_styling.euiDisabledSelector, "){background-color:transparent;}&:where([data-dividers='true'] &){", dividerStyles, ";}", segmentedChildrenStyles, " &:where([data-layout='vertical'] &){flex-direction:column;.euiButtonGroup__item{justify-content:center;}}};label:euiButtonGroup__buttons;"),
81
+ noWrap: /*#__PURE__*/(0, _react.css)("&:where([data-variant='segmented'] &){flex-wrap:nowrap;", buttonOnlyItemSelector, "{flex:0 1 auto;min-inline-size:0;.euiButton .eui-textTruncate{min-inline-size:0;}}&", hasButtonIconOnlySelector, "{overflow-inline:auto;}};label:noWrap;"),
82
+ fullWidth: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('width', '100%'), " .euiButtonGroupButton,.euiButtonGroup__tooltipWrapper{flex:1;", (0, _global_styling.logicalCSS)('width', '100%'), ";}&:where([data-variant='default'] &){.euiButton{flex-grow:1;inline-size:auto;}.euiButtonEmpty{flex-shrink:0;}}&:where([data-variant='segmented'] &){&", hasButtonIconOnlySelector, "{inline-size:auto;}&", hasButtonOnlySelector, "{.euiButtonGroup__buttons{inline-size:100%;}", buttonOnlyItemSelector, "{flex-grow:1;}}};label:fullWidth;"),
44
83
  // Sizes
45
84
  size: {
46
- m: /*#__PURE__*/(0, _react.css)(buttonSizes.m, ";;label:m;"),
47
- s: /*#__PURE__*/(0, _react.css)(buttonSizes.s, ";;label:s;"),
85
+ m: /*#__PURE__*/(0, _react.css)("border-radius:", euiTheme.border.radius.medium, ";", _highContrastStyles(euiThemeContext), ";;label:m;"),
86
+ s: /*#__PURE__*/(0, _react.css)("border-radius:", euiTheme.border.radius.small, ";", _highContrastStyles(euiThemeContext), ";;label:s;"),
48
87
  compressed: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('height', controlCompressedHeight), " background-color:", backgroundColor, ";border:", euiTheme.border.width.thin, " solid ", borderColor, ";border-radius:", controlCompressedBorderRadius, ";", _highContrastStyles(euiThemeContext, true), ";;label:compressed;")
49
88
  },
50
89
  gutterSize: {
@@ -44,7 +44,7 @@ var EuiButtonIcon = exports.EuiButtonIcon = function EuiButtonIcon(_ref) {
44
44
  _ref$type = _ref.type,
45
45
  type = _ref$type === void 0 ? 'button' : _ref$type,
46
46
  _ref$display = _ref.display,
47
- display = _ref$display === void 0 ? 'empty' : _ref$display,
47
+ _display = _ref$display === void 0 ? 'empty' : _ref$display,
48
48
  target = _ref.target,
49
49
  rel = _ref.rel,
50
50
  _ref$size = _ref.size,
@@ -58,6 +58,7 @@ var EuiButtonIcon = exports.EuiButtonIcon = function EuiButtonIcon(_ref) {
58
58
  color: _color,
59
59
  isDisabled: _isDisabled,
60
60
  hasAriaDisabled: _hasAriaDisabled,
61
+ display: _display,
61
62
  href: href,
62
63
  disabled: disabled,
63
64
  isLoading: isLoading
@@ -66,7 +67,8 @@ var EuiButtonIcon = exports.EuiButtonIcon = function EuiButtonIcon(_ref) {
66
67
  color = _useEuiButtonCommonPr.color,
67
68
  isDisabled = _useEuiButtonCommonPr.isDisabled,
68
69
  _useEuiButtonCommonPr2 = _useEuiButtonCommonPr.hasAriaDisabled,
69
- hasAriaDisabled = _useEuiButtonCommonPr2 === void 0 ? false : _useEuiButtonCommonPr2;
70
+ hasAriaDisabled = _useEuiButtonCommonPr2 === void 0 ? false : _useEuiButtonCommonPr2,
71
+ display = _useEuiButtonCommonPr.display;
70
72
  var _useEuiDisabledElemen = (0, _useEuiDisabledElement.useEuiDisabledElement)({
71
73
  isDisabled: isDisabled,
72
74
  hasAriaDisabled: hasAriaDisabled,
@@ -152,7 +154,7 @@ EuiButtonIcon.propTypes = {
152
154
  type: _propTypes.default.any,
153
155
  href: _propTypes.default.string,
154
156
  onClick: _propTypes.default.func,
155
- iconType: _propTypes.default.oneOfType([_propTypes.default.oneOf(["accessibility", "addDataApp", "addToChat", "addToDashboard", "advancedSettingsApp", "agentApp", "aggregate", "alignBottom", "alignBottomLeft", "alignBottomRight", "alignCenterHorizontal", "alignCenterVertical", "alignLeft", "alignRight", "alignTop", "alignTopLeft", "alignTopRight", "analyzeEvent", "annotation", "chartAnomaly", "anomalySwimLane", "apmApp", "chartWaterfall", "appSearchApp", "apps", "chevronSingleDown", "chevronSingleLeft", "chevronSingleRight", "chevronSingleUp", "chevronLimitLeft", "chevronLimitRight", "article", "asterisk", "at", "archive", "axisX", "axisYLeft", "axisYRight", "auditbeatApp", "backgroundTask", "bell", "bellSlash", "beta", "bolt", "boxesVertical", "branch", "briefcase", "branchUser", "broom", "brush", "bug", "bulb", "bullseye", "calendar", "canvasApp", "casesApp", "chartChangePoint", "chartArea", "visArea", "chartAreaStack", "chartBarHorizontal", "chartBarHorizontalStack", "chartBarVertical", "visBarVertical", "chartBarVerticalStack", "chartGauge", "visGauge", "chartHeatmap", "chartLine", "visLine", "chartPie", "visPie", "chartTagCloud", "chartThreshold", "check", "checkCircle", "checkCircleFill", "popper", "classificationJob", "clickLeft", "clickRight", "clock", "clockCounter", "clockControl", "cloud", "cloudDrizzle", "cloudStormy", "cloudSunny", "cluster", "code", "codeApp", "paintBucket", "commandLine", "comment", "editorComment", "compare", "processor", "compute", "consoleApp", "container", "continuityAbove", "continuityAboveBelow", "continuityBelow", "continuityWithin", "contrast", "contrastFill", "controls", "copy", "crossProjectSearch", "createAdvancedJob", "createGenericJob", "createGeoJob", "createMultiMetricJob", "createPopulationJob", "createSingleMetricJob", "cross", "crossClusterReplicationApp", "crossCircle", "crosshair", "money", "scissors", "dashboardApp", "dashedCircle", "dataVisualizer", "database", "display", "devToolsApp", "discoverApp", "distributeHorizontal", "distributeVertical", "download", "drag", "dragHorizontal", "dragVertical", "document", "documentation", "documents", "dot", "dotInCircle", "chevronDoubleLeft", "chevronDoubleRight", "ellipsis", "textAlignCenter", "textAlignLeft", "textAlignRight", "textBold", "listCheck", "textHeading", "textItalic", "listNumber", "redo", "textStrike", "table", "visTable", "textUnderline", "undo", "listBullet", "list", "mail", "empty", "emsApp", "endpoint", "query", "eraser", "error", "errorFill", "esqlVis", "logOut", "maximize", "export", "upload", "external", "eye", "eyeSlash", "faceHappy", "faceNeutral", "faceSad", "tableInfo", "filebeatApp", "filter", "filterExclude", "filterIgnore", "filterInclude", "flask", "flag", "fleetApp", "fold", "folder", "folderClosed", "folderClose", "folderCheck", "folderExclamation", "folderOpen", "folderOpened", "frameNext", "framePrevious", "fullScreen", "fullScreenExit", "function", "gear", "gisApp", "globe", "gradient", "graphApp", "grid", "grokApp", "heart", "heartbeatApp", "help", "home", "hourglass", "if", "info", "image", "index", "indexClose", "tableCross", "indexEdit", "tablePencil", "indexManagementApp", "mapping", "indexOpen", "tablePlus", "indexPatternApp", "indexRollupApp", "indexRuntime", "tablePlay", "indexSettings", "tableGear", "tableTime", "infinity", "inputOutput", "inspect", "ip", "key", "keyboard", "queryField", "kqlFunction", "queryOperand", "querySelector", "queryValue", "kubernetesNode", "kubernetesPod", "cube", "rocket", "layers", "lensApp", "text", "lineBreak", "lineBreakSlash", "lineDash", "lineDot", "lineSolid", "link", "linkSlash", "lock", "lockOpen", "pattern", "logRateAnalysis", "logoAWS", "logoAWSMono", "logoAerospike", "logoApache", "logoAppSearch", "logoAzure", "logoAzureMono", "logoBeats", "logoBusinessAnalytics", "logoCeph", "logoCloud", "logoCloudEnterprise", "logoCode", "logoCodesandbox", "logoCouchbase", "logoDocker", "logoDropwizard", "logoElastic", "logoElasticStack", "logoElasticsearch", "logoEnterpriseSearch", "logoEtcd", "logoGCP", "logoGCPMono", "logoGithub", "logoGmail", "logoGolang", "logoGoogleG", "logoHAproxy", "logoIBM", "logoIBMMono", "logoKafka", "logoKibana", "logoKubernetes", "logoLogging", "logoLogstash", "logoMaps", "logoMemcached", "logoMetrics", "logoMongodb", "logoMySQL", "logoNginx", "logoObservability", "logoOsquery", "logoPhp", "logoPostgres", "logoPrometheus", "logoRabbitmq", "logoRedis", "logoSecurity", "logoSiteSearch", "logoSketch", "logoSlack", "logoUptime", "logoVectorDB", "logoVulnerabilityManagement", "logoWebhook", "logoWindows", "logoWorkplaceSearch", "logsApp", "logstashFilter", "logstashInput", "logstashOutput", "queue", "machineLearningApp", "magnet", "magnify", "search", "magnifyExclamation", "magnifyMinus", "magnifyPlus", "managementApp", "map", "mapMarker", "waypoint", "megaphone", "memory", "menu", "menuDown", "menuLeft", "menuRight", "menuUp", "merge", "metricbeatApp", "metricsApp", "minimize", "minus", "minusCircle", "minusSquare", "mobile", "monitoringApp", "moon", "move", "namespace", "nested", "vectorTriangle", "notebookApp", "number", "wifiSlash", "wifi", "outlierDetectionJob", "package", "packetbeatApp", "pageSelect", "pagesSelect", "documentsCheck", "palette", "paperClip", "partial", "pause", "payment", "pencil", "percent", "pin", "pinFill", "pinFilled", "pipelineApp", "pivot", "play", "plugs", "plus", "plusCircle", "plusSquare", "presentation", "productAgent", "productCloudInfra", "productDashboard", "productDiscover", "productML", "productStreamsClassic", "productStreamsWired", "send", "question", "quote", "radar", "readOnly", "recentlyViewedApp", "refresh", "regressionJob", "reporter", "reportingApp", "return", "save", "savedObjectsApp", "scale", "searchProfilerApp", "section", "securityAnalyticsApp", "securityApp", "securitySignalDetected", "securitySignalResolved", "server", "sessionViewer", "shard", "share", "significantEvents", "singleMetricViewer", "snowflake", "sortAscending", "sortDescending", "sortDown", "sortLeft", "sortRight", "sortUp", "sortable", "spaces", "spacesApp", "sparkles", "sqlApp", "star", "starEmpty", "starEmptySpace", "starFill", "starFilled", "starFillSpace", "starMinusEmpty", "starMinusFill", "starPlusEmpty", "starPlusFill", "stats", "stop", "stopFill", "stopSlash", "storage", "string", "sun", "swatchInput", "symlink", "tableDensityHigh", "tableDensityLow", "tableOfContents", "tag", "tear", "thermometer", "temperature", "thumbDown", "thumbUp", "timeline", "timelineWithArrow", "timelinePointer", "timelionApp", "refreshTime", "transitionBottomIn", "transitionBottomOut", "transitionLeftIn", "transitionLeftOut", "transitionTopIn", "transitionTopOut", "translate", "trash", "unfold", "upgradeAssistantApp", "uptimeApp", "user", "users", "usersRolesApp", "unarchive", "vectorSquare", "videoPlayer", "visGoal", "chartMetric", "visTimelion", "visVisualBuilder", "visualizeApp", "vulnerabilityManagementApp", "warning", "alert", "warningFill", "watchesApp", "web", "wordWrap", "wordWrapDisabled", "workflowsApp", "workflow", "workplaceSearchApp", "wrench", "tokenAlias", "tokenAnnotation", "tokenArray", "tokenBinary", "tokenBoolean", "tokenClass", "tokenCompletionSuggester", "tokenConstant", "tokenDate", "tokenDimension", "tokenElement", "tokenEnum", "tokenEnumMember", "tokenEvent", "tokenException", "tokenField", "tokenFile", "tokenFlattened", "tokenFunction", "tokenGeo", "tokenHistogram", "tokenInterface", "tokenIP", "tokenJoin", "tokenKey", "tokenKeyword", "tokenMethod", "tokenMetricCounter", "tokenMetricGauge", "tokenModule", "tokenNamespace", "tokenNested", "tokenNull", "tokenNumber", "tokenObject", "tokenOperator", "tokenPackage", "tokenParameter", "tokenPercolator", "tokenProperty", "tokenRange", "tokenRankFeature", "tokenRankFeatures", "tokenRepo", "tokenSearchType", "tokenSemanticText", "tokenShape", "tokenString", "tokenStruct", "tokenSymbol", "tokenTag", "tokenText", "tokenTokenCount", "tokenVariable", "tokenVectorDense", "tokenVectorSparse"]).isRequired, _propTypes.default.string.isRequired, _propTypes.default.elementType.isRequired]).isRequired,
157
+ iconType: _propTypes.default.oneOfType([_propTypes.default.oneOf(["accessibility", "addDataApp", "addToChat", "addToDashboard", "advancedSettingsApp", "agentApp", "aggregate", "alignBottom", "alignBottomLeft", "alignBottomRight", "alignCenterHorizontal", "alignCenterVertical", "alignLeft", "alignRight", "alignTop", "alignTopLeft", "alignTopRight", "analyzeEvent", "annotation", "chartAnomaly", "anomalySwimLane", "apmApp", "chartWaterfall", "appSearchApp", "apps", "chevronSingleDown", "chevronSingleLeft", "chevronSingleRight", "chevronSingleUp", "chevronLimitLeft", "chevronLimitRight", "article", "asterisk", "at", "archive", "axisX", "axisYLeft", "axisYRight", "auditbeatApp", "backgroundTask", "bell", "bellSlash", "beta", "bolt", "boxesVertical", "branch", "briefcase", "branchUser", "broom", "brush", "bug", "bulb", "bullseye", "calendar", "canvasApp", "casesApp", "chartChangePoint", "chartArea", "visArea", "chartAreaStack", "chartBarHorizontal", "chartBarHorizontalStack", "chartBarVertical", "visBarVertical", "chartBarVerticalStack", "chartGauge", "visGauge", "chartHeatmap", "chartLine", "visLine", "chartPie", "visPie", "chartTagCloud", "chartThreshold", "check", "checkCircle", "checkCircleFill", "popper", "classificationJob", "clickLeft", "clickRight", "clock", "clockCounter", "clockControl", "cloud", "cloudDrizzle", "cloudStormy", "cloudSunny", "cluster", "code", "codeApp", "paintBucket", "commandLine", "comment", "editorComment", "compare", "processor", "compute", "consoleApp", "container", "continuityAbove", "continuityAboveBelow", "continuityBelow", "continuityWithin", "contrast", "contrastFill", "controls", "copy", "crossProjectSearch", "createAdvancedJob", "createGenericJob", "createGeoJob", "createMultiMetricJob", "createPopulationJob", "createSingleMetricJob", "cross", "crossClusterReplicationApp", "crossCircle", "crosshair", "cursorDefault", "money", "scissors", "dashboardApp", "dashedCircle", "dataVisualizer", "database", "display", "devToolsApp", "discoverApp", "distributeHorizontal", "distributeVertical", "download", "drag", "dragHorizontal", "dragVertical", "document", "documentation", "documents", "dot", "dotInCircle", "chevronDoubleLeft", "chevronDoubleRight", "ellipsis", "textAlignCenter", "textAlignLeft", "textAlignRight", "textBold", "listCheck", "textHeading", "textItalic", "listNumber", "redo", "textStrike", "table", "visTable", "textUnderline", "undo", "listBullet", "list", "mail", "empty", "emsApp", "endpoint", "query", "eraser", "error", "errorFill", "esqlVis", "logIn", "logOut", "maximize", "export", "upload", "external", "eye", "eyeSlash", "faceHappy", "faceNeutral", "faceSad", "tableInfo", "filebeatApp", "filter", "filterExclude", "filterIgnore", "filterInclude", "flask", "flag", "fleetApp", "fold", "folder", "folderClosed", "folderClose", "folderCheck", "folderExclamation", "folderOpen", "folderOpened", "frameNext", "framePrevious", "fullScreen", "fullScreenExit", "function", "gear", "gisApp", "globe", "gradient", "graphApp", "grid", "grokApp", "heart", "heartbeatApp", "help", "home", "hourglass", "if", "info", "image", "index", "indexClose", "tableCross", "indexEdit", "tablePencil", "indexManagementApp", "mapping", "indexOpen", "tablePlus", "indexPatternApp", "indexRollupApp", "indexRuntime", "tablePlay", "indexSettings", "tableGear", "tableTime", "infinity", "inputOutput", "inspect", "ip", "key", "keyboard", "queryField", "kqlFunction", "queryOperand", "querySelector", "queryValue", "kubernetesNode", "kubernetesPod", "cube", "rocket", "layers", "lensApp", "text", "lineBreak", "lineBreakSlash", "lineDash", "lineDot", "lineSolid", "link", "linkSlash", "lock", "lockOpen", "pattern", "logRateAnalysis", "logoAWS", "logoAWSMono", "logoAerospike", "logoApache", "logoAppSearch", "logoAzure", "logoAzureMono", "logoBeats", "logoBusinessAnalytics", "logoCeph", "logoCloud", "logoCloudEnterprise", "logoCode", "logoCodesandbox", "logoCouchbase", "logoDocker", "logoDropwizard", "logoElastic", "logoElasticStack", "logoElasticsearch", "logoEnterpriseSearch", "logoEtcd", "logoGCP", "logoGCPMono", "logoGithub", "logoGmail", "logoGolang", "logoGoogleG", "logoHAproxy", "logoIBM", "logoIBMMono", "logoKafka", "logoKibana", "logoKubernetes", "logoLogging", "logoLogstash", "logoMaps", "logoMemcached", "logoMetrics", "logoMongodb", "logoMySQL", "logoNginx", "logoObservability", "logoOsquery", "logoPhp", "logoPostgres", "logoPrometheus", "logoRabbitmq", "logoRedis", "logoSecurity", "logoSiteSearch", "logoSketch", "logoSlack", "logoUptime", "logoVectorDB", "logoVulnerabilityManagement", "logoWebhook", "logoWindows", "logoWorkplaceSearch", "logsApp", "logstashFilter", "logstashInput", "logstashOutput", "queue", "machineLearningApp", "magnet", "magnify", "search", "magnifyExclamation", "magnifyMinus", "magnifyPlus", "managementApp", "map", "mapMarker", "waypoint", "megaphone", "memory", "menu", "menuDown", "menuLeft", "menuRight", "menuUp", "merge", "metricbeatApp", "metricsApp", "minimize", "minus", "minusCircle", "minusSquare", "mobile", "monitoringApp", "moon", "move", "namespace", "nested", "vectorTriangle", "notebookApp", "number", "wifiSlash", "wifi", "outlierDetectionJob", "package", "packetbeatApp", "pageSelect", "pagesSelect", "documentsCheck", "palette", "paperClip", "partial", "pause", "payment", "pencil", "percent", "pin", "pinFill", "pinFilled", "pipelineApp", "pivot", "play", "plugs", "plus", "plusCircle", "plusSquare", "presentation", "productAgent", "productCloudInfra", "productDashboard", "productDiscover", "productML", "productStreamsClassic", "productStreamsWired", "send", "question", "quote", "radar", "readOnly", "recentlyViewedApp", "refresh", "regressionJob", "reporter", "reportingApp", "return", "routeSplit", "save", "savedObjectsApp", "scale", "searchProfilerApp", "section", "securityAnalyticsApp", "securityApp", "securitySignalDetected", "securitySignalResolved", "server", "sessionViewer", "shard", "share", "significantEvents", "singleMetricViewer", "snowflake", "sortAscending", "sortDescending", "sortDown", "sortLeft", "sortRight", "sortUp", "sortable", "spaces", "spacesApp", "sparkles", "sqlApp", "star", "starEmpty", "starEmptySpace", "starFill", "starFilled", "starFillSpace", "starMinusEmpty", "starMinusFill", "starPlusEmpty", "starPlusFill", "stats", "stop", "stopFill", "stopSlash", "storage", "string", "sun", "swatchInput", "symlink", "tableDensityHigh", "tableDensityLow", "tableOfContents", "tag", "tear", "thermometer", "temperature", "thumbDown", "thumbUp", "timeline", "timelineWithArrow", "timelinePointer", "timelionApp", "refreshTime", "transitionBottomIn", "transitionBottomOut", "transitionLeftIn", "transitionLeftOut", "transitionTopIn", "transitionTopOut", "translate", "trash", "unfold", "upgradeAssistantApp", "uptimeApp", "user", "users", "usersRolesApp", "unarchive", "vectorSquare", "videoPlayer", "visGoal", "chartMetric", "visTimelion", "visVisualBuilder", "visualizeApp", "vulnerabilityManagementApp", "warning", "alert", "warningFill", "watchesApp", "web", "wordWrap", "wordWrapDisabled", "workflowsApp", "workflow", "workplaceSearchApp", "wrench", "tokenAlias", "tokenAnnotation", "tokenArray", "tokenBinary", "tokenBoolean", "tokenClass", "tokenCompletionSuggester", "tokenConstant", "tokenDate", "tokenDimension", "tokenElement", "tokenEnum", "tokenEnumMember", "tokenEvent", "tokenException", "tokenField", "tokenFile", "tokenFlattened", "tokenFunction", "tokenGeo", "tokenHistogram", "tokenInterface", "tokenIP", "tokenJoin", "tokenKey", "tokenKeyword", "tokenMethod", "tokenMetricCounter", "tokenMetricGauge", "tokenModule", "tokenNamespace", "tokenNested", "tokenNull", "tokenNumber", "tokenObject", "tokenOperator", "tokenPackage", "tokenParameter", "tokenPercolator", "tokenProperty", "tokenRange", "tokenRankFeature", "tokenRankFeatures", "tokenRepo", "tokenSearchType", "tokenSemanticText", "tokenShape", "tokenString", "tokenStruct", "tokenSymbol", "tokenTag", "tokenText", "tokenTokenCount", "tokenVariable", "tokenVectorDense", "tokenVectorSparse"]).isRequired, _propTypes.default.string.isRequired, _propTypes.default.elementType.isRequired]).isRequired,
156
158
  /**
157
159
  * Any of the named color palette options.
158
160
  *
@@ -8,6 +8,7 @@ exports._EuiSplitButton = exports.EuiSplitButton = void 0;
8
8
  var _classnames = _interopRequireDefault(require("classnames"));
9
9
  var _propTypes = _interopRequireDefault(require("prop-types"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
+ var _euiThemeCommon = require("@elastic/eui-theme-common");
11
12
  var _services = require("../../../services");
12
13
  var _global_styling = require("../../../global_styling");
13
14
  var _split_button_context = require("./split_button_context");
@@ -26,6 +27,11 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
26
27
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
27
28
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
28
29
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
30
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
31
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
32
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
33
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
34
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
29
35
  function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
30
36
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
31
37
  function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
@@ -48,29 +54,41 @@ var _EuiSplitButton = exports._EuiSplitButton = function _EuiSplitButton(_ref) {
48
54
  isLoading = _ref.isLoading,
49
55
  rest = _objectWithoutProperties(_ref, _excluded);
50
56
  var euiThemeContext = (0, _services.useEuiTheme)();
51
- var highContrastMode = euiThemeContext.highContrastMode;
57
+ var euiTheme = euiThemeContext.euiTheme,
58
+ highContrastMode = euiThemeContext.highContrastMode;
52
59
  var _children = _slicedToArray(children, 2),
53
60
  primaryAction = _children[0],
54
61
  secondaryAction = _children[1];
55
62
  var key = (0, _services.useGeneratedHtmlId)({
56
63
  suffix: 'EuiSplitButton'
57
64
  });
58
- var commonProps = {
59
- size: size,
60
- color: color,
61
- fill: fill,
62
- isDisabled: isDisabled,
63
- hasAriaDisabled: hasAriaDisabled,
64
- isLoading: isLoading
65
- };
65
+ var commonProps = (0, _react.useMemo)(function () {
66
+ return {
67
+ size: size,
68
+ color: color,
69
+ fill: fill,
70
+ isDisabled: isDisabled,
71
+ hasAriaDisabled: hasAriaDisabled,
72
+ isLoading: isLoading
73
+ };
74
+ }, [size, color, fill, isDisabled, hasAriaDisabled, isLoading]);
66
75
  var buttonFilledColors = (0, _global_styling.getEuiFilledButtonColorValues)(euiThemeContext, isDisabled ? 'disabled' : color);
67
76
  var buttonColors = (0, _global_styling.getEuiButtonColorValues)(euiThemeContext, isDisabled ? 'disabled' : color);
77
+ var borderToken = color === 'text' ? 'borderBasePlain' : (0, _euiThemeCommon.getTokenName)('borderBase', color);
68
78
  var classes = (0, _classnames.default)('euiSplitButton', className);
69
- var styles = (0, _services.useEuiMemoizedStyles)(_split_button.euiSplitButtonStyles);
70
- var cssStyles = [styles.euiSplitButton, fill && styles.fill];
79
+ var styles = (0, _react.useMemo)(function () {
80
+ return (0, _split_button.euiSplitButtonStyles)(euiThemeContext, fill ? buttonFilledColors.backgroundColor : buttonColors.backgroundColor);
81
+ }, [euiThemeContext, fill, buttonFilledColors.backgroundColor, buttonColors.backgroundColor]);
82
+ var cssStyles = [styles.euiSplitButton, (color === 'text' || highContrastMode) && styles.hasBorder];
83
+ var dividerColor = color === 'warning' && fill ? buttonFilledColors.color : euiTheme.colors[borderToken];
71
84
  var dividerStyles = (0, _react.useMemo)(function () {
72
- return (0, _split_button.euiSplitButtonDividerStyles)(euiThemeContext, !fill ? buttonColors.borderColor : highContrastMode && fill ? buttonFilledColors.backgroundColor : 'transparent');
73
- }, [euiThemeContext, highContrastMode, fill, buttonFilledColors.backgroundColor, buttonColors.borderColor]);
85
+ return (0, _split_button.euiSplitButtonDividerStyles)(euiThemeContext, highContrastMode && fill ? buttonFilledColors.color : dividerColor);
86
+ }, [euiThemeContext, highContrastMode, fill, buttonFilledColors.color, dividerColor]);
87
+ var cssVariables = (0, _react.useMemo)(function () {
88
+ return {
89
+ '--euiSplitButtonBorderColor': dividerColor
90
+ };
91
+ }, [dividerColor]);
74
92
 
75
93
  // NOTE: dev-mode-only runtime check to evaluate if correct child components are passed
76
94
  if (process.env.NODE_ENV !== 'production') {
@@ -88,8 +106,12 @@ var _EuiSplitButton = exports._EuiSplitButton = function _EuiSplitButton(_ref) {
88
106
  return (0, _react2.jsx)("div", _extends({
89
107
  role: "group",
90
108
  className: classes,
91
- css: cssStyles
92
- }, rest), (0, _react2.jsx)(_split_button_context.EuiSplitButtonContext.Provider, {
109
+ css: cssStyles,
110
+ "data-size": size,
111
+ "data-fill": fill || undefined
112
+ }, rest, {
113
+ style: _objectSpread({}, cssVariables)
114
+ }), (0, _react2.jsx)(_split_button_context.EuiSplitButtonContext.Provider, {
93
115
  value: commonProps
94
116
  }, (0, _react2.jsx)(_react.Fragment, {
95
117
  key: "".concat(key, "-primaryAction")
@@ -6,50 +6,48 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.euiSplitButtonStyles = exports.euiSplitButtonDividerStyles = exports.euiSplitButtonActionStyles = void 0;
7
7
  var _react = require("@emotion/react");
8
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)."; } /*
9
+ /*
10
10
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
11
11
  * or more contributor license agreements. Licensed under the Elastic License
12
12
  * 2.0 and the Server Side Public License, v 1; you may not use this file except
13
13
  * in compliance with, at your election, the Elastic License 2.0 or the Server
14
14
  * Side Public License, v 1.
15
15
  */
16
- var euiSplitButtonStyles = exports.euiSplitButtonStyles = function euiSplitButtonStyles(euiThemeContext) {
16
+
17
+ var primaryDisabledSelector = ".euiSplitButtonActionPrimary:is(".concat(_global_styling.euiDisabledSelector, ")");
18
+ var secondaryDisabledSelector = ".euiSplitButtonActionSecondary:is(".concat(_global_styling.euiDisabledSelector, ")");
19
+ var euiSplitButtonStyles = exports.euiSplitButtonStyles = function euiSplitButtonStyles(euiThemeContext, backgroundColor) {
17
20
  var euiTheme = euiThemeContext.euiTheme;
18
- var primaryDisabledSelector = ".euiSplitButtonActionPrimary:is(".concat(_global_styling.euiDisabledSelector, ")");
19
- var secondaryDisabledSelector = ".euiSplitButtonActionSecondary:is(".concat(_global_styling.euiDisabledSelector, ")");
20
- var dividerSelector = ".euiSplitButton__divider";
21
+ var buttonSizeMap = (0, _global_styling.euiButtonSizeMap)(euiThemeContext);
22
+ var borderStyles = function borderStyles(color) {
23
+ return "\n &::after {\n content: '';\n position: absolute;\n inset: 0;\n border: ".concat(euiTheme.border.width.thin, " solid ").concat(color, ";\n border-radius: ").concat(euiTheme.border.radius.small, ";\n pointer-events: none;\n }\n ");
24
+ };
21
25
  return {
22
- euiSplitButton: /*#__PURE__*/(0, _react.css)("display:inline-flex;flex-wrap:nowrap;&:has(", primaryDisabledSelector, "):has(", secondaryDisabledSelector, "){", dividerSelector, "{", (0, _global_styling.highContrastModeStyles)(euiThemeContext, {
23
- // When both buttons are disabled set as visual gap
24
- none: "\n border-color: transparent;\n ",
25
- // When both buttons are disabled set a disabled divider color
26
- preferred: "\n border-color: ".concat(euiTheme.colors.borderBaseDisabled, ";\n ")
27
- }), ";}};label:euiSplitButton;"),
28
- // When both buttons are enabled set as visual gap
29
- fill: /*#__PURE__*/(0, _react.css)("&:not(:has(", primaryDisabledSelector, ")):not(\n :has(", secondaryDisabledSelector, ")\n ){", dividerSelector, "{border-color:transparent;}};label:fill;")
26
+ euiSplitButton: /*#__PURE__*/(0, _react.css)("position:relative;display:inline-flex;align-items:center;flex-wrap:nowrap;max-inline-size:fit-content;padding:", euiTheme.size.xs, ";border-radius:", euiTheme.border.radius.small, ";background-color:", backgroundColor, ";&:where([data-size='s']){block-size:", buttonSizeMap.s.height, ";}&:where([data-size='m']){block-size:", buttonSizeMap.m.height, ";}&:has(", primaryDisabledSelector, ", ", secondaryDisabledSelector, "){background-color:", euiTheme.colors.backgroundBaseDisabled, ";};label:euiSplitButton;"),
27
+ hasBorder: /*#__PURE__*/(0, _react.css)((0, _global_styling.highContrastModeStyles)(euiThemeContext, {
28
+ none: "\n &:where(:not([data-fill])):not(:has(".concat(primaryDisabledSelector, ", ").concat(secondaryDisabledSelector, ")) {\n ").concat(borderStyles("var(--euiSplitButtonBorderColor)"), "\n }\n "),
29
+ preferred: "\n &:where(:not([data-fill])) {\n ".concat(borderStyles("var(--euiSplitButtonBorderColor)"), "\n\n &:has(").concat(primaryDisabledSelector, ", ").concat(secondaryDisabledSelector, ") {\n ").concat(borderStyles(euiTheme.colors.borderBaseDisabled), "\n }\n }\n\n &:where([data-fill]):has(").concat(primaryDisabledSelector, ", ").concat(secondaryDisabledSelector, ") {\n ").concat(borderStyles(euiTheme.colors.borderBaseDisabled), "\n }\n "),
30
+ forced: "\n ".concat(borderStyles("var(--euiSplitButtonBorderColor)"), "\n ")
31
+ }), ";;label:hasBorder;")
30
32
  };
31
33
  };
32
- var euiSplitButtonActionStyles = exports.euiSplitButtonActionStyles = {
33
- euiSplitButtonActionPrimary: process.env.NODE_ENV === "production" ? {
34
- name: "12txneb-euiSplitButtonActionPrimary",
35
- styles: "z-index:0;border-inline-end:none;border-start-end-radius:0;border-end-end-radius:0;label:euiSplitButtonActionPrimary;"
36
- } : {
37
- name: "12txneb-euiSplitButtonActionPrimary",
38
- styles: "z-index:0;border-inline-end:none;border-start-end-radius:0;border-end-end-radius:0;label:euiSplitButtonActionPrimary;",
39
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
40
- },
41
- euiSplitButtonActionSecondary: process.env.NODE_ENV === "production" ? {
42
- name: "5uh4vx-euiSplitButtonActionSecondary",
43
- styles: "border-inline-start:none;border-start-start-radius:0;border-end-start-radius:0;label:euiSplitButtonActionSecondary;"
44
- } : {
45
- name: "5uh4vx-euiSplitButtonActionSecondary",
46
- styles: "border-inline-start:none;border-start-start-radius:0;border-end-start-radius:0;label:euiSplitButtonActionSecondary;",
47
- toString: _EMOTION_STRINGIFIED_CSS_ERROR__
48
- }
34
+ var euiSplitButtonActionStyles = exports.euiSplitButtonActionStyles = function euiSplitButtonActionStyles(euiThemeContext, size) {
35
+ var euiTheme = euiThemeContext.euiTheme;
36
+ var buttonSizeMap = (0, _global_styling.euiButtonSizeMap)(euiThemeContext);
37
+
38
+ // uses smaller sizes due to the buttons being inset into the parent container
39
+ var buttonSize = size === 's' ? buttonSizeMap.xs.height : buttonSizeMap.s.height;
40
+ var buttonMinWidth = size === 's' ? buttonSizeMap.xs.minWidth : buttonSizeMap.s.minWidth;
41
+ var buttonRadius = size === 's' ? buttonSizeMap.xs.radiusInset : buttonSizeMap.s.radiusInset;
42
+ var commonStyles = "\n block-size: ".concat(buttonSize, ";\n border-radius: ").concat(buttonRadius, ";\n /* prevent issues in jsdom where pointer-events: none is inherited from the pseudo element */\n pointer-events: auto;\n\n /* zero-specificity ancestor :has() check */\n &:where(:not(:has(").concat(primaryDisabledSelector, ", ").concat(secondaryDisabledSelector, ")) &) {\n border: none;\n }\n \n &:where(:has(").concat(primaryDisabledSelector, ", ").concat(secondaryDisabledSelector, ") &) {\n &:is(").concat(_global_styling.euiDisabledSelector, ") {\n border: none;\n }\n }\n \n ");
43
+ return {
44
+ euiSplitButtonActionPrimary: /*#__PURE__*/(0, _react.css)(commonStyles, " z-index:", euiTheme.levels.content, ";&:not(.euiButtonIcon){min-inline-size:", buttonMinWidth, "px;}&.euiButtonIcon{inline-size:", buttonSize, ";};label:euiSplitButtonActionPrimary;"),
45
+ euiSplitButtonActionSecondary: /*#__PURE__*/(0, _react.css)(commonStyles, " inline-size:", buttonSize, ";;label:euiSplitButtonActionSecondary;")
46
+ };
49
47
  };
50
48
  var euiSplitButtonDividerStyles = exports.euiSplitButtonDividerStyles = function euiSplitButtonDividerStyles(euiThemeContext, color) {
51
49
  var euiTheme = euiThemeContext.euiTheme;
52
50
  return {
53
- divider: /*#__PURE__*/(0, _react.css)("border-inline-start:", euiTheme.border.width.thin, " solid ", color, ";;label:divider;")
51
+ divider: /*#__PURE__*/(0, _react.css)("block-size:calc(100% - ", euiTheme.size.s, ");border-inline-start:", euiTheme.border.width.thin, " solid ", color, ";", (0, _global_styling.logicalCSS)('margin-horizontal', euiTheme.size.xs), ";&:where(\n ", primaryDisabledSelector, " + &,\n :has(~ ", secondaryDisabledSelector, ")\n ){border-color:", euiTheme.colors.borderBaseDisabled, ";};label:divider;")
54
52
  };
55
53
  };