@elastic/eui 90.0.0 → 91.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/dist/eui_charts_theme.js +1 -15
  2. package/dist/eui_charts_theme.js.map +1 -1
  3. package/dist/eui_theme_dark.css +112 -80
  4. package/dist/eui_theme_dark.min.css +1 -1
  5. package/dist/eui_theme_light.css +112 -80
  6. package/dist/eui_theme_light.min.css +1 -1
  7. package/es/components/accordion/accordion.js +13 -2
  8. package/es/components/accordion/accordion_children/accordion_children.js +4 -3
  9. package/es/components/breadcrumbs/breadcrumb.js +5 -5
  10. package/es/components/breadcrumbs/breadcrumbs.js +5 -5
  11. package/es/components/button/button_display/_button_display.js +1 -1
  12. package/es/components/button/button_group/button_group.js +8 -10
  13. package/es/components/button/button_group/button_group_button.js +8 -51
  14. package/es/components/button/button_group/button_group_button.styles.js +2 -12
  15. package/es/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +8 -0
  16. package/es/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +8 -3
  17. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +7 -3
  18. package/es/components/combo_box/combo_box.js +7 -5
  19. package/es/components/combo_box/combo_box_input/combo_box_input.js +107 -65
  20. package/es/components/combo_box/combo_box_input/combo_box_pill.js +8 -18
  21. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +6 -6
  22. package/es/components/combo_box/utils.js +23 -0
  23. package/es/components/control_bar/control_bar.js +5 -5
  24. package/es/components/datagrid/body/header/data_grid_header_cell.js +1 -1
  25. package/es/components/datagrid/controls/column_selector.js +5 -6
  26. package/es/components/datagrid/controls/column_sorting.js +6 -9
  27. package/es/components/datagrid/controls/display_selector.js +21 -16
  28. package/es/components/datagrid/data_grid.js +3 -864
  29. package/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +92 -26
  30. package/es/components/date_picker/super_date_picker/date_popover/date_popover_button.js +1 -1
  31. package/es/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +1 -2
  32. package/es/components/date_picker/super_date_picker/super_date_picker.js +19 -0
  33. package/es/components/facet/facet_button.js +1 -1
  34. package/es/components/filter_group/filter_group.styles.js +1 -1
  35. package/es/components/header/header_breadcrumbs/header_breadcrumbs.js +5 -5
  36. package/es/components/header/header_links/header_links.js +5 -5
  37. package/es/components/i18n/i18n.js +1 -0
  38. package/es/components/page/page_header/page_header_content.js +5 -5
  39. package/es/components/popover/input_popover.js +1 -1
  40. package/es/components/popover/popover.js +15 -27
  41. package/es/components/popover/popover_arrow/_popover_arrow.styles.js +2 -4
  42. package/es/components/popover/popover_panel/_popover_panel.js +2 -6
  43. package/es/components/popover/popover_panel/_popover_panel.styles.js +6 -1
  44. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +13 -11
  45. package/es/components/toast/global_toast_list.js +11 -1
  46. package/es/components/tour/tour_step.js +5 -5
  47. package/es/global_styling/mixins/_states.js +4 -1
  48. package/es/services/color/eui_palettes.js +0 -6
  49. package/es/services/color/index.js +1 -1
  50. package/es/services/hooks/useCombinedRefs.js +16 -9
  51. package/es/services/index.js +1 -2
  52. package/es/test/rtl/component_helpers.d.ts +2 -0
  53. package/es/test/rtl/component_helpers.js +40 -1
  54. package/eui.d.ts +96 -82
  55. package/i18ntokens.json +199 -181
  56. package/lib/components/accordion/accordion.js +13 -2
  57. package/lib/components/accordion/accordion_children/accordion_children.js +4 -3
  58. package/lib/components/breadcrumbs/breadcrumb.js +5 -5
  59. package/lib/components/button/button_display/_button_display.js +1 -1
  60. package/lib/components/button/button_group/button_group.js +7 -9
  61. package/lib/components/button/button_group/button_group_button.js +8 -51
  62. package/lib/components/button/button_group/button_group_button.styles.js +2 -12
  63. package/lib/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +8 -0
  64. package/lib/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +7 -2
  65. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +6 -2
  66. package/lib/components/combo_box/combo_box.js +7 -5
  67. package/lib/components/combo_box/combo_box_input/combo_box_input.js +107 -65
  68. package/lib/components/combo_box/combo_box_input/combo_box_pill.js +8 -18
  69. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +6 -6
  70. package/lib/components/combo_box/utils.js +31 -0
  71. package/lib/components/datagrid/body/header/data_grid_header_cell.js +1 -1
  72. package/lib/components/datagrid/controls/column_selector.js +5 -6
  73. package/lib/components/datagrid/controls/column_sorting.js +5 -8
  74. package/lib/components/datagrid/controls/display_selector.js +21 -16
  75. package/lib/components/datagrid/data_grid.js +2 -863
  76. package/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +91 -26
  77. package/lib/components/date_picker/super_date_picker/date_popover/date_popover_button.js +1 -1
  78. package/lib/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +1 -2
  79. package/lib/components/date_picker/super_date_picker/super_date_picker.js +19 -0
  80. package/lib/components/facet/facet_button.js +1 -1
  81. package/lib/components/filter_group/filter_group.styles.js +1 -1
  82. package/lib/components/i18n/i18n.js +1 -0
  83. package/lib/components/popover/input_popover.js +1 -1
  84. package/lib/components/popover/popover.js +29 -35
  85. package/lib/components/popover/popover_arrow/_popover_arrow.styles.js +1 -3
  86. package/lib/components/popover/popover_panel/_popover_panel.js +2 -1
  87. package/lib/components/popover/popover_panel/_popover_panel.styles.js +6 -1
  88. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +12 -10
  89. package/lib/components/toast/global_toast_list.js +11 -1
  90. package/lib/global_styling/mixins/_states.js +4 -1
  91. package/lib/services/color/eui_palettes.js +1 -8
  92. package/lib/services/color/index.js +0 -7
  93. package/lib/services/hooks/useCombinedRefs.js +19 -10
  94. package/lib/services/index.js +0 -15
  95. package/lib/test/rtl/component_helpers.d.ts +2 -0
  96. package/lib/test/rtl/component_helpers.js +41 -3
  97. package/optimize/es/components/accordion/accordion.js +5 -2
  98. package/optimize/es/components/accordion/accordion_children/accordion_children.js +4 -3
  99. package/optimize/es/components/button/button_group/button_group.js +7 -8
  100. package/optimize/es/components/button/button_group/button_group_button.js +6 -38
  101. package/optimize/es/components/button/button_group/button_group_button.styles.js +2 -12
  102. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +8 -3
  103. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +7 -3
  104. package/optimize/es/components/combo_box/combo_box.js +7 -5
  105. package/optimize/es/components/combo_box/combo_box_input/combo_box_input.js +107 -65
  106. package/optimize/es/components/combo_box/combo_box_input/combo_box_pill.js +8 -17
  107. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +6 -6
  108. package/optimize/es/components/combo_box/utils.js +23 -0
  109. package/optimize/es/components/datagrid/body/header/data_grid_header_cell.js +1 -1
  110. package/optimize/es/components/datagrid/controls/column_selector.js +5 -6
  111. package/optimize/es/components/datagrid/controls/column_sorting.js +6 -9
  112. package/optimize/es/components/datagrid/controls/display_selector.js +21 -16
  113. package/optimize/es/components/datagrid/data_grid.js +3 -3
  114. package/optimize/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +87 -26
  115. package/optimize/es/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +1 -2
  116. package/optimize/es/components/filter_group/filter_group.styles.js +1 -1
  117. package/optimize/es/components/i18n/i18n.js +1 -0
  118. package/optimize/es/components/popover/input_popover.js +1 -1
  119. package/optimize/es/components/popover/popover.js +10 -22
  120. package/optimize/es/components/popover/popover_arrow/_popover_arrow.styles.js +2 -4
  121. package/optimize/es/components/popover/popover_panel/_popover_panel.js +2 -1
  122. package/optimize/es/components/popover/popover_panel/_popover_panel.styles.js +6 -1
  123. package/optimize/es/components/selectable/selectable_templates/selectable_template_sitewide.js +13 -11
  124. package/optimize/es/components/toast/global_toast_list.js +1 -1
  125. package/optimize/es/global_styling/mixins/_states.js +4 -1
  126. package/optimize/es/services/color/eui_palettes.js +0 -6
  127. package/optimize/es/services/color/index.js +1 -1
  128. package/optimize/es/services/hooks/useCombinedRefs.js +16 -9
  129. package/optimize/es/services/index.js +1 -2
  130. package/optimize/es/test/rtl/component_helpers.d.ts +2 -0
  131. package/optimize/es/test/rtl/component_helpers.js +40 -1
  132. package/optimize/lib/components/accordion/accordion.js +5 -2
  133. package/optimize/lib/components/accordion/accordion_children/accordion_children.js +4 -3
  134. package/optimize/lib/components/button/button_group/button_group.js +6 -7
  135. package/optimize/lib/components/button/button_group/button_group_button.js +6 -38
  136. package/optimize/lib/components/button/button_group/button_group_button.styles.js +2 -12
  137. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +7 -2
  138. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +6 -2
  139. package/optimize/lib/components/combo_box/combo_box.js +7 -5
  140. package/optimize/lib/components/combo_box/combo_box_input/combo_box_input.js +107 -65
  141. package/optimize/lib/components/combo_box/combo_box_input/combo_box_pill.js +8 -17
  142. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +6 -6
  143. package/optimize/lib/components/combo_box/utils.js +31 -0
  144. package/optimize/lib/components/datagrid/body/header/data_grid_header_cell.js +1 -1
  145. package/optimize/lib/components/datagrid/controls/column_selector.js +5 -6
  146. package/optimize/lib/components/datagrid/controls/column_sorting.js +5 -8
  147. package/optimize/lib/components/datagrid/controls/display_selector.js +21 -16
  148. package/optimize/lib/components/datagrid/data_grid.js +2 -2
  149. package/optimize/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +86 -26
  150. package/optimize/lib/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +1 -2
  151. package/optimize/lib/components/filter_group/filter_group.styles.js +1 -1
  152. package/optimize/lib/components/i18n/i18n.js +1 -0
  153. package/optimize/lib/components/popover/input_popover.js +1 -1
  154. package/optimize/lib/components/popover/popover.js +24 -35
  155. package/optimize/lib/components/popover/popover_arrow/_popover_arrow.styles.js +1 -3
  156. package/optimize/lib/components/popover/popover_panel/_popover_panel.js +2 -1
  157. package/optimize/lib/components/popover/popover_panel/_popover_panel.styles.js +6 -1
  158. package/optimize/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +12 -10
  159. package/optimize/lib/components/toast/global_toast_list.js +1 -1
  160. package/optimize/lib/global_styling/mixins/_states.js +4 -1
  161. package/optimize/lib/services/color/eui_palettes.js +1 -8
  162. package/optimize/lib/services/color/index.js +0 -7
  163. package/optimize/lib/services/hooks/useCombinedRefs.js +19 -10
  164. package/optimize/lib/services/index.js +0 -15
  165. package/optimize/lib/test/rtl/component_helpers.d.ts +2 -0
  166. package/optimize/lib/test/rtl/component_helpers.js +41 -3
  167. package/package.json +10 -10
  168. package/src/components/combo_box/_combo_box.scss +46 -14
  169. package/src/components/combo_box/combo_box_input/_combo_box_pill.scss +0 -17
  170. package/src/components/combo_box/combo_box_input/_index.scss +0 -2
  171. package/src/components/datagrid/_data_grid_data_row.scss +1 -2
  172. package/src/components/date_picker/super_date_picker/date_popover/_absolute_tab.scss +21 -0
  173. package/src/components/date_picker/super_date_picker/quick_select_popover/_quick_select_popover.scss +0 -4
  174. package/src/components/form/form_control_layout/_form_control_layout.scss +0 -1
  175. package/src/global_styling/variables/_typography.scss +2 -2
  176. package/test-env/components/accordion/accordion.js +13 -2
  177. package/test-env/components/accordion/accordion_children/accordion_children.js +4 -3
  178. package/test-env/components/breadcrumbs/breadcrumb.js +5 -5
  179. package/test-env/components/button/button_display/_button_display.js +1 -1
  180. package/test-env/components/button/button_group/button_group.js +7 -9
  181. package/test-env/components/button/button_group/button_group_button.js +8 -51
  182. package/test-env/components/button/button_group/button_group_button.styles.js +2 -12
  183. package/test-env/components/collapsible_nav/collapsible_nav_group/collapsible_nav_group.js +8 -0
  184. package/test-env/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +7 -2
  185. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_group.js +6 -2
  186. package/test-env/components/combo_box/combo_box.js +7 -5
  187. package/test-env/components/combo_box/combo_box_input/combo_box_input.js +107 -65
  188. package/test-env/components/combo_box/combo_box_input/combo_box_pill.js +8 -18
  189. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.js +6 -6
  190. package/test-env/components/combo_box/utils.js +31 -0
  191. package/test-env/components/datagrid/body/header/data_grid_header_cell.js +1 -1
  192. package/test-env/components/datagrid/controls/column_selector.js +5 -6
  193. package/test-env/components/datagrid/controls/column_sorting.js +5 -8
  194. package/test-env/components/datagrid/controls/display_selector.js +21 -16
  195. package/test-env/components/datagrid/data_grid.js +2 -863
  196. package/test-env/components/date_picker/super_date_picker/date_popover/absolute_tab.js +86 -26
  197. package/test-env/components/date_picker/super_date_picker/date_popover/date_popover_button.js +1 -1
  198. package/test-env/components/date_picker/super_date_picker/quick_select_popover/quick_select_popover.js +1 -2
  199. package/test-env/components/date_picker/super_date_picker/super_date_picker.js +19 -0
  200. package/test-env/components/facet/facet_button.js +1 -1
  201. package/test-env/components/filter_group/filter_group.styles.js +1 -1
  202. package/test-env/components/i18n/i18n.js +1 -0
  203. package/test-env/components/popover/input_popover.js +1 -1
  204. package/test-env/components/popover/popover.js +29 -35
  205. package/test-env/components/popover/popover_arrow/_popover_arrow.styles.js +1 -3
  206. package/test-env/components/popover/popover_panel/_popover_panel.js +2 -1
  207. package/test-env/components/popover/popover_panel/_popover_panel.styles.js +6 -1
  208. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +12 -10
  209. package/test-env/components/toast/global_toast_list.js +11 -1
  210. package/test-env/global_styling/mixins/_states.js +4 -1
  211. package/test-env/services/color/eui_palettes.js +1 -8
  212. package/test-env/services/color/index.js +0 -7
  213. package/test-env/services/hooks/useCombinedRefs.js +19 -10
  214. package/test-env/services/index.js +0 -15
  215. package/test-env/test/rtl/component_helpers.js +41 -3
  216. package/es/services/random.js +0 -94
  217. package/es/services/utils.js +0 -25
  218. package/es/test/patch_random.js +0 -18
  219. package/lib/services/random.js +0 -100
  220. package/lib/services/utils.js +0 -35
  221. package/lib/test/patch_random.js +0 -25
  222. package/optimize/es/services/random.js +0 -85
  223. package/optimize/es/services/utils.js +0 -25
  224. package/optimize/es/test/patch_random.js +0 -18
  225. package/optimize/lib/services/random.js +0 -91
  226. package/optimize/lib/services/utils.js +0 -35
  227. package/optimize/lib/test/patch_random.js +0 -25
  228. package/src/components/combo_box/combo_box_input/_combo_box_input.scss +0 -12
  229. package/src/components/combo_box/combo_box_input/_combo_box_placeholder.scss +0 -11
  230. package/test-env/services/random.js +0 -91
  231. package/test-env/services/utils.js +0 -35
  232. package/test-env/test/patch_random.js +0 -25
@@ -123,7 +123,7 @@ var useDataGridColumnSelector = function useDataGridColumnSelector(availableColu
123
123
  return setIsOpen(!isOpen);
124
124
  }
125
125
  }, buttonText)
126
- }, (0, _react2.jsx)("div", null, allowColumnHiding && (0, _react2.jsx)(_popover.EuiPopoverTitle, null, (0, _react2.jsx)(_i18n.EuiI18n, {
126
+ }, allowColumnHiding && (0, _react2.jsx)(_popover.EuiPopoverTitle, null, (0, _react2.jsx)(_i18n.EuiI18n, {
127
127
  tokens: ['euiColumnSelector.search', 'euiColumnSelector.searchcolumns'],
128
128
  defaults: ['Search', 'Search columns']
129
129
  }, function (_ref3) {
@@ -140,13 +140,12 @@ var useDataGridColumnSelector = function useDataGridColumnSelector(availableColu
140
140
  },
141
141
  "data-test-subj": "dataGridColumnSelectorSearch"
142
142
  });
143
- })), (0, _react2.jsx)("div", {
144
- className: "euiDataGrid__controlScroll"
145
- }, (0, _react2.jsx)(_drag_and_drop.EuiDragDropContext, {
143
+ })), (0, _react2.jsx)(_drag_and_drop.EuiDragDropContext, {
146
144
  onDragEnd: onDragEnd
147
145
  }, (0, _react2.jsx)(_drag_and_drop.EuiDroppable, {
148
146
  droppableId: "columnOrder",
149
- isDropDisabled: !isDragEnabled
147
+ isDropDisabled: !isDragEnabled,
148
+ className: "euiDataGrid__controlScroll"
150
149
  }, (0, _react2.jsx)(_react.default.Fragment, null, filteredColumns.map(function (id, index) {
151
150
  return (0, _react2.jsx)(_drag_and_drop.EuiDraggable, {
152
151
  key: id,
@@ -199,7 +198,7 @@ var useDataGridColumnSelector = function useDataGridColumnSelector(availableColu
199
198
  color: "subdued"
200
199
  }))));
201
200
  });
202
- })))))), allowColumnHiding && (0, _react2.jsx)(_popover.EuiPopoverFooter, null, (0, _react2.jsx)(_flex.EuiFlexGroup, {
201
+ })))), allowColumnHiding && (0, _react2.jsx)(_popover.EuiPopoverFooter, null, (0, _react2.jsx)(_flex.EuiFlexGroup, {
203
202
  gutterSize: "s",
204
203
  responsive: false,
205
204
  justifyContent: "spaceBetween"
@@ -130,15 +130,12 @@ var useDataGridColumnSorting = function useDataGridColumnSorting(columns, sortin
130
130
  return setIsOpen(!isOpen);
131
131
  }
132
132
  }, sorting.columns.length > 0 ? sortingButtonTextActive : sortingButtonText)
133
- }, sorting.columns.length > 0 ? (0, _react2.jsx)("div", {
134
- role: "region",
135
- "aria-live": "assertive",
136
- className: "euiDataGrid__controlScroll"
137
- }, (0, _react2.jsx)(_drag_and_drop.EuiDragDropContext, {
133
+ }, sorting.columns.length > 0 ? (0, _react2.jsx)(_drag_and_drop.EuiDragDropContext, {
138
134
  onDragEnd: onDragEnd
139
135
  }, (0, _react2.jsx)(_drag_and_drop.EuiDroppable, {
140
- droppableId: "columnSorting"
141
- }, (0, _react2.jsx)(_react.Fragment, null, sorting.columns.map(function (_ref6, index) {
136
+ droppableId: "columnSorting",
137
+ className: "euiDataGrid__controlScroll"
138
+ }, (0, _react2.jsx)(_react.default.Fragment, null, sorting.columns.map(function (_ref6, index) {
142
139
  var id = _ref6.id,
143
140
  direction = _ref6.direction;
144
141
  return (0, _react2.jsx)(_column_sorting_draggable.EuiDataGridColumnSortingDraggable, {
@@ -151,7 +148,7 @@ var useDataGridColumnSorting = function useDataGridColumnSorting(columns, sortin
151
148
  schema: schema,
152
149
  schemaDetectors: schemaDetectors
153
150
  });
154
- }))))) : (0, _react2.jsx)(_text.EuiText, {
151
+ })))) : (0, _react2.jsx)(_text.EuiText, {
155
152
  size: "s",
156
153
  color: "subdued"
157
154
  }, (0, _react2.jsx)("p", {
@@ -82,6 +82,7 @@ var convertRowHeightsOptionsToSelection = function convertRowHeightsOptionsToSel
82
82
  }
83
83
  return rowHeightButtonOptions[0];
84
84
  };
85
+ var defaultLineCountValue = String(2);
85
86
  var useDataGridDisplaySelector = function useDataGridDisplaySelector(showDisplaySelector, initialStyles, initialRowHeightsOptions) {
86
87
  var _showDisplaySelector$, _rowHeightsOptions$de2;
87
88
  var _useState = (0, _react.useState)(false),
@@ -109,10 +110,10 @@ var useDataGridDisplaySelector = function useDataGridDisplaySelector(showDisplay
109
110
  }, []);
110
111
 
111
112
  // Row height logic
112
- var _useState7 = (0, _react.useState)(2),
113
+ var _useState7 = (0, _react.useState)(defaultLineCountValue),
113
114
  _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
114
- lineCount = _useState8[0],
115
- setLineCount = _useState8[1];
115
+ lineCountInput = _useState8[0],
116
+ setLineCountInput = _useState8[1];
116
117
  var setRowHeight = (0, _react.useCallback)(function (option) {
117
118
  var rowHeightsOptions = {
118
119
  rowHeights: {} // Unset all row-specific heights
@@ -122,25 +123,27 @@ var useDataGridDisplaySelector = function useDataGridDisplaySelector(showDisplay
122
123
  rowHeightsOptions.defaultHeight = 'auto';
123
124
  } else if (option === 'lineCount') {
124
125
  rowHeightsOptions.defaultHeight = {
125
- lineCount: lineCount
126
+ lineCount: Number(lineCountInput)
126
127
  };
127
128
  } else {
128
129
  rowHeightsOptions.defaultHeight = undefined;
129
130
  }
130
131
  setUserRowHeightsOptions(rowHeightsOptions);
131
- }, [lineCount]);
132
+ }, [lineCountInput]);
132
133
  var setLineCountHeight = (0, _react.useCallback)(function (event) {
134
+ setLineCountInput(event.currentTarget.value);
133
135
  var newLineCount = Number(event.currentTarget.value);
134
- if (newLineCount < 1) return; // Don't let users set a 0 or negative line count
135
136
 
136
- setLineCount(newLineCount);
137
- setUserRowHeightsOptions({
138
- rowHeights: {},
139
- // Unset all row-specific line counts
140
- defaultHeight: {
141
- lineCount: newLineCount
142
- }
143
- });
137
+ // Don't let users set a 0 or negative line count
138
+ if (newLineCount > 0) {
139
+ setUserRowHeightsOptions({
140
+ rowHeights: {},
141
+ // Unset all row-specific line counts
142
+ defaultHeight: {
143
+ lineCount: newLineCount
144
+ }
145
+ });
146
+ }
144
147
  }, []);
145
148
 
146
149
  // Merge the developer-specified configurations with user overrides
@@ -160,8 +163,9 @@ var useDataGridDisplaySelector = function useDataGridDisplaySelector(showDisplay
160
163
  }, [rowHeightsOptions]);
161
164
  (0, _react.useEffect)(function () {
162
165
  var _rowHeightsOptions$de;
166
+ setLineCountInput(
163
167
  // @ts-ignore - optional chaining operator handles types & cases that aren't lineCount
164
- setLineCount((rowHeightsOptions === null || rowHeightsOptions === void 0 ? void 0 : (_rowHeightsOptions$de = rowHeightsOptions.defaultHeight) === null || _rowHeightsOptions$de === void 0 ? void 0 : _rowHeightsOptions$de.lineCount) || 2);
168
+ (rowHeightsOptions === null || rowHeightsOptions === void 0 ? void 0 : (_rowHeightsOptions$de = rowHeightsOptions.defaultHeight) === null || _rowHeightsOptions$de === void 0 ? void 0 : _rowHeightsOptions$de.lineCount) || defaultLineCountValue);
165
169
  // @ts-ignore - same as above
166
170
  }, [rowHeightsOptions === null || rowHeightsOptions === void 0 ? void 0 : (_rowHeightsOptions$de2 = rowHeightsOptions.defaultHeight) === null || _rowHeightsOptions$de2 === void 0 ? void 0 : _rowHeightsOptions$de2.lineCount]);
167
171
 
@@ -293,7 +297,8 @@ var useDataGridDisplaySelector = function useDataGridDisplaySelector(showDisplay
293
297
  min: 1,
294
298
  max: 20,
295
299
  step: 1,
296
- value: lineCount,
300
+ required: true,
301
+ value: lineCountInput,
297
302
  onChange: setLineCountHeight,
298
303
  "data-test-subj": "lineCountNumber"
299
304
  })));
@@ -74,7 +74,7 @@ var cellPaddingsToClassMap = {
74
74
  m: '',
75
75
  l: 'euiDataGrid--paddingLarge'
76
76
  };
77
- var EuiDataGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
77
+ var EuiDataGrid = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
78
78
  var _gridItemsRendered$cu;
79
79
  var _props$leadingControl = props.leadingControlColumns,
80
80
  leadingControlColumns = _props$leadingControl === void 0 ? _data_grid_types.emptyControlColumns : _props$leadingControl,
@@ -391,6 +391,6 @@ var EuiDataGrid = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
391
391
  token: "euiDataGrid.screenReaderNotice",
392
392
  default: "Cell contains interactive content."
393
393
  }))))), cellPopover));
394
- });
394
+ }));
395
395
  exports.EuiDataGrid = EuiDataGrid;
396
396
  EuiDataGrid.displayName = 'EuiDataGrid';
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.EuiAbsoluteTab = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
12
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
@@ -16,9 +17,11 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
16
17
  var _react = _interopRequireWildcard(require("react"));
17
18
  var _moment = _interopRequireDefault(require("moment"));
18
19
  var _datemath = _interopRequireDefault(require("@elastic/datemath"));
19
- var _date_picker = require("../../date_picker");
20
+ var _services = require("../../../../services");
20
21
  var _form = require("../../../form");
22
+ var _code = require("../../../code");
21
23
  var _i18n = require("../../../i18n");
24
+ var _date_picker = require("../../date_picker");
22
25
  var _react2 = require("@emotion/react");
23
26
  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); }
24
27
  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; }
@@ -30,48 +33,92 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
30
33
  * in compliance with, at your election, the Elastic License 2.0 or the Server
31
34
  * Side Public License, v 1.
32
35
  */ // eslint-disable-line import/named
36
+ // Allow users to paste in and have the datepicker parse multiple common date formats,
37
+ // in addition to the configured displayed `dateFormat` prop
38
+ var ALLOWED_USER_DATE_FORMATS = [_moment.default.ISO_8601, _moment.default.RFC_2822, 'X' // Unix timestamp in seconds
39
+ ];
33
40
  var EuiAbsoluteTab = /*#__PURE__*/function (_Component) {
34
41
  (0, _inherits2.default)(EuiAbsoluteTab, _Component);
35
42
  var _super = _createSuper(EuiAbsoluteTab);
43
+ // Store outside of state as a ref for faster/unbatched updates
44
+
36
45
  function EuiAbsoluteTab(props) {
37
46
  var _this;
38
47
  (0, _classCallCheck2.default)(this, EuiAbsoluteTab);
39
48
  _this = _super.call(this, props);
40
49
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", void 0);
41
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleChange", function (date, event) {
50
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isParsing", false);
51
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleChange", function (date) {
42
52
  var onChange = _this.props.onChange;
43
53
  if (date === null) {
44
54
  return;
45
55
  }
46
- onChange(date.toISOString(), event);
56
+ onChange(date.toISOString());
47
57
  var valueAsMoment = (0, _moment.default)(date);
48
58
  _this.setState({
49
59
  valueAsMoment: valueAsMoment,
50
60
  textInputValue: valueAsMoment.format(_this.props.dateFormat),
61
+ hasUnparsedText: false,
51
62
  isTextInvalid: false
52
63
  });
53
64
  });
54
65
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleTextChange", function (event) {
55
- var onChange = _this.props.onChange;
56
- var valueAsMoment = (0, _moment.default)(event.target.value, _this.props.dateFormat, true);
57
- var dateIsValid = valueAsMoment.isValid();
58
- if (dateIsValid) {
59
- onChange(valueAsMoment.toISOString(), event);
60
- }
66
+ if (_this.isParsing) return;
61
67
  _this.setState({
62
68
  textInputValue: event.target.value,
63
- isTextInvalid: !dateIsValid,
64
- valueAsMoment: dateIsValid ? valueAsMoment : null
69
+ hasUnparsedText: true,
70
+ isTextInvalid: false
65
71
  });
66
72
  });
73
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "parseUserDateInput", function (textInputValue) {
74
+ _this.isParsing = true;
75
+ // Wait a tick for state to finish updating (whatever gets returned),
76
+ // and then allow `onChange` user input to continue setting state
77
+ requestAnimationFrame(function () {
78
+ _this.isParsing = false;
79
+ });
80
+ var invalidDateState = {
81
+ textInputValue: textInputValue,
82
+ isTextInvalid: true,
83
+ valueAsMoment: null
84
+ };
85
+ if (!textInputValue) {
86
+ return _this.setState(invalidDateState);
87
+ }
88
+ var _this$props = _this.props,
89
+ onChange = _this$props.onChange,
90
+ dateFormat = _this$props.dateFormat;
91
+
92
+ // Attempt to parse with passed `dateFormat`
93
+ var valueAsMoment = (0, _moment.default)(textInputValue, dateFormat, true);
94
+ var dateIsValid = valueAsMoment.isValid();
95
+
96
+ // If not valid, try a few other other standardized formats
97
+ if (!dateIsValid) {
98
+ valueAsMoment = (0, _moment.default)(textInputValue, ALLOWED_USER_DATE_FORMATS, true);
99
+ dateIsValid = valueAsMoment.isValid();
100
+ }
101
+ if (dateIsValid) {
102
+ onChange(valueAsMoment.toISOString());
103
+ _this.setState({
104
+ textInputValue: valueAsMoment.format(_this.props.dateFormat),
105
+ valueAsMoment: valueAsMoment,
106
+ hasUnparsedText: false,
107
+ isTextInvalid: false
108
+ });
109
+ } else {
110
+ _this.setState(invalidDateState);
111
+ }
112
+ });
67
113
  var parsedValue = _datemath.default.parse(props.value, {
68
114
  roundUp: props.roundUp
69
115
  });
70
116
  var _valueAsMoment = parsedValue && parsedValue.isValid() ? parsedValue : (0, _moment.default)();
71
- var textInputValue = _valueAsMoment.locale(_this.props.locale || 'en').format(_this.props.dateFormat);
117
+ var _textInputValue = _valueAsMoment.locale(_this.props.locale || 'en').format(_this.props.dateFormat);
72
118
  _this.state = {
119
+ hasUnparsedText: false,
73
120
  isTextInvalid: false,
74
- textInputValue: textInputValue,
121
+ textInputValue: _textInputValue,
75
122
  valueAsMoment: _valueAsMoment
76
123
  };
77
124
  return _this;
@@ -80,17 +127,18 @@ var EuiAbsoluteTab = /*#__PURE__*/function (_Component) {
80
127
  key: "render",
81
128
  value: function render() {
82
129
  var _this2 = this;
83
- var _this$props = this.props,
84
- dateFormat = _this$props.dateFormat,
85
- timeFormat = _this$props.timeFormat,
86
- locale = _this$props.locale,
87
- utcOffset = _this$props.utcOffset,
88
- labelPrefix = _this$props.labelPrefix;
130
+ var _this$props2 = this.props,
131
+ dateFormat = _this$props2.dateFormat,
132
+ timeFormat = _this$props2.timeFormat,
133
+ locale = _this$props2.locale,
134
+ utcOffset = _this$props2.utcOffset,
135
+ labelPrefix = _this$props2.labelPrefix;
89
136
  var _this$state = this.state,
90
137
  valueAsMoment = _this$state.valueAsMoment,
91
138
  isTextInvalid = _this$state.isTextInvalid,
139
+ hasUnparsedText = _this$state.hasUnparsedText,
92
140
  textInputValue = _this$state.textInputValue;
93
- return (0, _react2.jsx)("div", null, (0, _react2.jsx)(_date_picker.EuiDatePicker, {
141
+ return (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_date_picker.EuiDatePicker, {
94
142
  inline: true,
95
143
  showTimeSelect: true,
96
144
  shadow: false,
@@ -101,22 +149,34 @@ var EuiAbsoluteTab = /*#__PURE__*/function (_Component) {
101
149
  locale: locale,
102
150
  utcOffset: utcOffset
103
151
  }), (0, _react2.jsx)(_i18n.EuiI18n, {
104
- token: "euiAbsoluteTab.dateFormatError",
105
- default: "Expected format: {dateFormat}",
152
+ tokens: ['euiAbsoluteTab.dateFormatHint', 'euiAbsoluteTab.dateFormatError'],
153
+ defaults: ['Press the Enter key to parse as a date.', 'Allowed formats: {dateFormat}, ISO 8601, RFC 2822, or Unix timestamp.'],
106
154
  values: {
107
- dateFormat: dateFormat
155
+ dateFormat: (0, _react2.jsx)(_code.EuiCode, null, dateFormat)
108
156
  }
109
- }, function (dateFormatError) {
157
+ }, function (_ref) {
158
+ var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
159
+ dateFormatHint = _ref2[0],
160
+ dateFormatError = _ref2[1];
110
161
  return (0, _react2.jsx)(_form.EuiFormRow, {
111
162
  className: "euiSuperDatePicker__absoluteDateFormRow",
112
163
  isInvalid: isTextInvalid,
113
- error: isTextInvalid ? dateFormatError : undefined
164
+ error: isTextInvalid ? dateFormatError : undefined,
165
+ helpText: hasUnparsedText ? isTextInvalid ? dateFormatHint : [dateFormatHint, dateFormatError] : undefined
114
166
  }, (0, _react2.jsx)(_form.EuiFieldText, {
115
167
  compressed: true,
116
168
  isInvalid: isTextInvalid,
117
169
  value: textInputValue,
118
170
  onChange: _this2.handleTextChange,
119
- "data-test-subj": 'superDatePickerAbsoluteDateInput',
171
+ onPaste: function onPaste(event) {
172
+ _this2.parseUserDateInput(event.clipboardData.getData('text'));
173
+ },
174
+ onKeyDown: function onKeyDown(event) {
175
+ if (event.key === _services.keys.ENTER) {
176
+ _this2.parseUserDateInput(textInputValue);
177
+ }
178
+ },
179
+ "data-test-subj": "superDatePickerAbsoluteDateInput",
120
180
  prepend: (0, _react2.jsx)(_form.EuiFormLabel, null, labelPrefix)
121
181
  }));
122
182
  }));
@@ -88,8 +88,7 @@ var EuiQuickSelectPopover = function EuiQuickSelectPopover(_ref) {
88
88
  button: quickSelectButton,
89
89
  isOpen: isOpen,
90
90
  closePopover: closePopover,
91
- anchorPosition: "downLeft",
92
- anchorClassName: "euiQuickSelectPopover__anchor"
91
+ anchorPosition: "downLeft"
93
92
  }, (0, _react2.jsx)(EuiQuickSelectPanels, (0, _extends2.default)({}, props, {
94
93
  applyTime: applyTime,
95
94
  prevQuickSelect: prevQuickSelect
@@ -32,7 +32,7 @@ var euiFilterGroupStyles = function euiFilterGroupStyles(euiThemeContext) {
32
32
  controlCompressedBorderRadius = _euiFormVariables.controlCompressedBorderRadius,
33
33
  controlCompressedHeight = _euiFormVariables.controlCompressedHeight;
34
34
  return {
35
- euiFilterGroup: /*#__PURE__*/(0, _react.css)("display:inline-flex;", (0, _global_styling.logicalCSS)('max-width', '100%'), " overflow:hidden;background-color:", backgroundColor, ";box-shadow:inset 0 0 0 ", euiTheme.border.width.thin, " ", borderColor, ";>*:not(.euiFilterButton){", (0, _filter_button.euiFilterButtonDisplay)(euiThemeContext), ";}.euiPopover__anchor{display:block;.euiFilterButton{", (0, _global_styling.logicalCSS)('width', '100%'), ";}}", (0, _global_styling.euiBreakpoint)(euiThemeContext, ['xs', 's']), "{flex-wrap:wrap;}", (0, _global_styling.euiBreakpoint)(euiThemeContext, ['xs']), "{display:flex;.euiFilterButton{flex-grow:1;}};label:euiFilterGroup;"),
35
+ euiFilterGroup: /*#__PURE__*/(0, _react.css)("display:inline-flex;", (0, _global_styling.logicalCSS)('max-width', '100%'), " overflow:hidden;background-color:", backgroundColor, ";box-shadow:inset 0 0 0 ", euiTheme.border.width.thin, " ", borderColor, ";>*:not(.euiFilterButton){", (0, _filter_button.euiFilterButtonDisplay)(euiThemeContext), ";}.euiPopover>.euiFilterButton{", (0, _global_styling.logicalCSS)('width', '100%'), ";}", (0, _global_styling.euiBreakpoint)(euiThemeContext, ['xs', 's']), "{flex-wrap:wrap;}", (0, _global_styling.euiBreakpoint)(euiThemeContext, ['xs']), "{display:flex;.euiFilterButton{flex-grow:1;}};label:euiFilterGroup;"),
36
36
  fullWidth: _ref,
37
37
  uncompressed: /*#__PURE__*/(0, _react.css)("border-radius:", controlBorderRadius, ";", buttonChildrenBorderRadii(controlBorderRadius), ";;label:uncompressed;"),
38
38
  compressed: /*#__PURE__*/(0, _react.css)("border-radius:", controlCompressedBorderRadius, ";", buttonChildrenBorderRadii(controlCompressedBorderRadius), " .euiFilterButton{", (0, _global_styling.logicalCSS)('height', controlCompressedHeight), ";};label:compressed;"),
@@ -81,6 +81,7 @@ var EuiI18n = function EuiI18n(props) {
81
81
  i18nMapping: mapping,
82
82
  i18nMappingFunc: mappingFunc,
83
83
  valueDefault: props.defaults[idx],
84
+ values: props.values,
84
85
  render: render
85
86
  });
86
87
  }));
@@ -178,7 +178,7 @@ var EuiInputPopover = function EuiInputPopover(_ref) {
178
178
  css: /*#__PURE__*/(0, _react2.css)(fullWidth ? undefined : (0, _global_styling.logicalCSS)('max-width', form.maxWidth), ";label:EuiInputPopover;"),
179
179
  display: display,
180
180
  button: input,
181
- buttonRef: inputRef,
181
+ popoverRef: inputRef,
182
182
  panelRef: panelRef,
183
183
  ref: popoverClassRef,
184
184
  closePopover: closePopover,
@@ -9,7 +9,6 @@ exports.EuiPopover = void 0;
9
9
  exports.getPopoverAlignFromAnchorPosition = getPopoverAlignFromAnchorPosition;
10
10
  exports.getPopoverPositionFromAnchorPosition = getPopoverPositionFromAnchorPosition;
11
11
  exports.popoverAnchorPosition = void 0;
12
- var _react = require("@emotion/react");
13
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
14
13
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
14
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
@@ -21,11 +20,12 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
21
20
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
22
21
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
22
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
24
- var _react2 = _interopRequireWildcard(require("react"));
23
+ var _react = _interopRequireWildcard(require("react"));
25
24
  var _classnames = _interopRequireDefault(require("classnames"));
26
25
  var _tabbable = require("tabbable");
27
26
  var _focus_trap = require("../focus_trap");
28
27
  var _services = require("../../services");
28
+ var _useCombinedRefs = require("../../services/hooks/useCombinedRefs");
29
29
  var _accessibility = require("../accessibility");
30
30
  var _portal = require("../portal");
31
31
  var _mutation_observer = require("../observer/mutation_observer");
@@ -35,6 +35,7 @@ var _outside_click_detector = require("../outside_click_detector");
35
35
  var _popover_arrow = require("./popover_arrow");
36
36
  var _popover2 = require("./popover.styles");
37
37
  var _popover_panel = require("./popover_panel");
38
+ var _react2 = require("@emotion/react");
38
39
  var _excluded = ["anchorClassName", "anchorPosition", "button", "buttonRef", "insert", "isOpen", "ownFocus", "children", "className", "closePopover", "panelClassName", "panelPaddingSize", "panelProps", "panelRef", "panelStyle", "popoverScreenReaderText", "popoverRef", "hasArrow", "arrowChildren", "repositionOnScroll", "repositionToCrossAxis", "hasDragDrop", "zIndex", "attachToAnchor", "display", "offset", "onPositionChange", "buffer", "aria-label", "aria-labelledby", "container", "focusTrapProps", "initialFocus", "tabIndex"];
39
40
  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); }
40
41
  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; }
@@ -267,9 +268,9 @@ var EuiPopover = /*#__PURE__*/function (_Component) {
267
268
  window.addEventListener('resize', _this.positionPopoverFluid);
268
269
  }
269
270
  });
270
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "buttonRef", function (node) {
271
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "popoverRef", function (node) {
271
272
  _this.button = node;
272
- _this.props.buttonRef && _this.props.buttonRef(node);
273
+ (0, _useCombinedRefs.setMultipleRefs)([_this.props.popoverRef, _this.props.buttonRef], node);
273
274
  });
274
275
  _this.state = {
275
276
  prevProps: {
@@ -388,12 +389,12 @@ var EuiPopover = /*#__PURE__*/function (_Component) {
388
389
  var tabIndexProp = (_panelProps$tabIndex = panelProps === null || panelProps === void 0 ? void 0 : panelProps.tabIndex) !== null && _panelProps$tabIndex !== void 0 ? _panelProps$tabIndex : _tabIndexProp;
389
390
  var styles = (0, _popover2.euiPopoverStyles)();
390
391
  var popoverStyles = [styles.euiPopover, {
391
- display: display
392
+ display: display,
393
+ label: display
392
394
  }];
393
395
  var classes = (0, _classnames.default)('euiPopover', {
394
396
  'euiPopover-isOpen': this.state.isOpening
395
- }, className);
396
- var anchorClasses = (0, _classnames.default)('euiPopover__anchor', anchorClassName);
397
+ }, className, anchorClassName);
397
398
  var showArrow = hasArrow && !attachToAnchor;
398
399
  var panel;
399
400
  if (!this.state.suppressingPopover && (isOpen || this.state.isClosing)) {
@@ -417,17 +418,17 @@ var EuiPopover = /*#__PURE__*/function (_Component) {
417
418
  var focusTrapScreenReaderText;
418
419
  if (ownFocus || popoverScreenReaderText) {
419
420
  ariaDescribedby = this.descriptionId;
420
- focusTrapScreenReaderText = (0, _react.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react.jsx)("p", {
421
+ focusTrapScreenReaderText = (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("p", {
421
422
  id: this.descriptionId
422
- }, ownFocus && (0, _react.jsx)(_i18n.EuiI18n, {
423
+ }, ownFocus && (0, _react2.jsx)(_i18n.EuiI18n, {
423
424
  token: "euiPopover.screenReaderAnnouncement",
424
425
  default: "You are in a dialog. Press Escape, or tap/click outside the dialog to close."
425
426
  }), popoverScreenReaderText));
426
427
  }
427
428
  var returnFocus = this.state.isOpenStable ? returnFocusConfig : false;
428
- panel = (0, _react.jsx)(_portal.EuiPortal, {
429
+ panel = (0, _react2.jsx)(_portal.EuiPortal, {
429
430
  insert: insert
430
- }, (0, _react.jsx)(_focus_trap.EuiFocusTrap, (0, _extends2.default)({
431
+ }, (0, _react2.jsx)(_focus_trap.EuiFocusTrap, (0, _extends2.default)({
431
432
  clickOutsideDisables: true,
432
433
  onClickOutside: this.onClickOutside,
433
434
  returnFocus: returnFocus // Ignore temporary state of indecisive focus
@@ -435,7 +436,7 @@ var EuiPopover = /*#__PURE__*/function (_Component) {
435
436
  initialFocus: initialFocus,
436
437
  onEscapeKey: this.onEscapeKey,
437
438
  disabled: !ownFocus || !this.state.isOpenStable || this.state.isClosing
438
- }, focusTrapProps), (0, _react.jsx)(_popover_panel.EuiPopoverPanel, (0, _extends2.default)({}, panelProps, {
439
+ }, focusTrapProps), (0, _react2.jsx)(_popover_panel.EuiPopoverPanel, (0, _extends2.default)({}, panelProps, {
439
440
  panelRef: this.panelRef,
440
441
  isOpen: this.state.isOpening,
441
442
  position: this.state.arrowPosition,
@@ -455,10 +456,10 @@ var EuiPopover = /*#__PURE__*/function (_Component) {
455
456
  // Adding `will-change` to reduce risk of a blurry animation in Chrome 86+
456
457
  willChange: !this.state.isOpenStable ? 'transform, opacity' : undefined
457
458
  })
458
- }), showArrow && this.state.arrowPosition && (0, _react.jsx)(_popover_arrow.EuiPopoverArrow, {
459
+ }), showArrow && this.state.arrowPosition && (0, _react2.jsx)(_popover_arrow.EuiPopoverArrow, {
459
460
  position: this.state.arrowPosition,
460
461
  style: this.state.arrowStyles
461
- }, arrowChildren), focusTrapScreenReaderText, (0, _react.jsx)(_mutation_observer.EuiMutationObserver, {
462
+ }, arrowChildren), focusTrapScreenReaderText, (0, _react2.jsx)(_mutation_observer.EuiMutationObserver, {
462
463
  observerOptions: {
463
464
  attributes: true,
464
465
  // element attribute changes
@@ -471,7 +472,7 @@ var EuiPopover = /*#__PURE__*/function (_Component) {
471
472
 
472
473
  onMutation: this.onMutation
473
474
  }, function (mutationRef) {
474
- return (0, _react.jsx)("div", {
475
+ return (0, _react2.jsx)("div", {
475
476
  ref: mutationRef
476
477
  }, children);
477
478
  }))));
@@ -480,32 +481,20 @@ var EuiPopover = /*#__PURE__*/function (_Component) {
480
481
  // react-focus-on and related do not register outside click detection
481
482
  // when disabled, so we still need to conditionally check for that ourselves
482
483
  if (ownFocus) {
483
- return (0, _react.jsx)("div", (0, _extends2.default)({
484
+ return (0, _react2.jsx)("div", (0, _extends2.default)({
484
485
  css: popoverStyles,
485
486
  className: classes,
486
- ref: popoverRef
487
- }, rest), (0, _react.jsx)("div", {
488
- css: /*#__PURE__*/(0, _react.css)({
489
- display: display
490
- }, ";label:render;"),
491
- className: anchorClasses,
492
- ref: this.buttonRef
493
- }, button instanceof HTMLElement ? null : button), panel);
487
+ ref: this.popoverRef
488
+ }, rest), button instanceof HTMLElement ? null : button, panel);
494
489
  } else {
495
- return (0, _react.jsx)(_outside_click_detector.EuiOutsideClickDetector, {
490
+ return (0, _react2.jsx)(_outside_click_detector.EuiOutsideClickDetector, {
496
491
  onOutsideClick: this.closePopover
497
- }, (0, _react.jsx)("div", (0, _extends2.default)({
492
+ }, (0, _react2.jsx)("div", (0, _extends2.default)({
498
493
  css: popoverStyles,
499
494
  className: classes,
500
- ref: popoverRef,
495
+ ref: this.popoverRef,
501
496
  onKeyDown: this.onKeyDown
502
- }, rest), (0, _react.jsx)("div", {
503
- css: /*#__PURE__*/(0, _react.css)({
504
- display: display
505
- }, ";label:render;"),
506
- className: anchorClasses,
507
- ref: this.buttonRef
508
- }, button instanceof HTMLElement ? null : button), panel));
497
+ }, rest), button instanceof HTMLElement ? null : button, panel));
509
498
  }
510
499
  }
511
500
  }], [{
@@ -531,7 +520,7 @@ var EuiPopover = /*#__PURE__*/function (_Component) {
531
520
  }
532
521
  }]);
533
522
  return EuiPopover;
534
- }(_react2.Component);
523
+ }(_react.Component);
535
524
  exports.EuiPopover = EuiPopover;
536
525
  (0, _defineProperty2.default)(EuiPopover, "defaultProps", {
537
526
  isOpen: false,
@@ -18,9 +18,7 @@ var popoverArrowSize = 'm';
18
18
  exports.popoverArrowSize = popoverArrowSize;
19
19
  var euiPopoverArrowStyles = function euiPopoverArrowStyles(euiThemeContext) {
20
20
  var euiTheme = euiThemeContext.euiTheme;
21
-
22
- // Match the background color of panels
23
- var borderColor = (0, _global_styling.euiBackgroundColor)(euiThemeContext, 'plain');
21
+ var borderColor = 'var(--euiPopoverBackgroundColor)';
24
22
  var arrowSize = euiTheme.size[popoverArrowSize];
25
23
  return {
26
24
  // Base
@@ -45,7 +45,8 @@ var EuiPopoverPanel = function EuiPopoverPanel(_ref) {
45
45
  var euiThemeContext = (0, _services.useEuiTheme)();
46
46
  var cssStyles = (0, _react.useMemo)(function () {
47
47
  var styles = (0, _popover_panel.euiPopoverPanelStyles)(euiThemeContext);
48
- var sharedStyles = [styles.euiPopover__panel, isOpen && styles.isOpen];
48
+ var colorMode = euiThemeContext.colorMode.toLowerCase();
49
+ var sharedStyles = [styles.euiPopover__panel, styles[colorMode], isOpen && styles.isOpen];
49
50
  if (hasDragDrop) {
50
51
  return [].concat(sharedStyles, [styles.hasDragDrop.hasDragDrop, position && styles.hasDragDrop[position]]);
51
52
  }
@@ -7,6 +7,7 @@ exports.openAnimationTiming = exports.euiPopoverPanelStyles = void 0;
7
7
  var _react = require("@emotion/react");
8
8
  var _mixins = require("../../../themes/amsterdam/global_styling/mixins");
9
9
  var _functions = require("../../../themes/amsterdam/global_styling/functions");
10
+ var _services = require("../../../services");
10
11
  var _global_styling = require("../../../global_styling");
11
12
  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)."; } /*
12
13
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
@@ -21,6 +22,7 @@ var openAnimationTiming = 'slow';
21
22
  * 1. Can expand further, but it looks weird if it's smaller than the originating button.
22
23
  * 2. Animation happens on the panel. But don't animate position when using the attached mode like for inputs
23
24
  * 3. Make sure the panel stays within the window.
25
+ * 4. Make the popover lighter on dark mode (too hard to distinguish from plain bgs otherwise), and set a CSS var for the arrow to use
24
26
  */
25
27
  exports.openAnimationTiming = openAnimationTiming;
26
28
  var _ref = process.env.NODE_ENV === "production" ? {
@@ -42,8 +44,11 @@ var euiPopoverPanelStyles = function euiPopoverPanelStyles(euiThemeContext) {
42
44
  }));
43
45
  return {
44
46
  // Base
45
- euiPopover__panel: /*#__PURE__*/(0, _react.css)("position:absolute;", (0, _global_styling.logicalCSS)('min-width', "".concat(euiTheme.base * 7, "px")), (0, _global_styling.logicalCSS)('max-width', "calc(100vw - ".concat(euiTheme.size.xl, ")")), "backface-visibility:hidden;pointer-events:none;opacity:0;", _global_styling.euiCanAnimate, "{transition:", opacityTransition, ",", transformTransition, ";}&:focus{outline-offset:0;};label:euiPopover__panel;"),
47
+ euiPopover__panel: /*#__PURE__*/(0, _react.css)("position:absolute;", (0, _global_styling.logicalCSS)('min-width', "".concat(euiTheme.base * 7, "px")), (0, _global_styling.logicalCSS)('max-width', "calc(100vw - ".concat(euiTheme.size.xl, ")")), "backface-visibility:hidden;pointer-events:none;opacity:0;background-color:var(--euiPopoverBackgroundColor);", _global_styling.euiCanAnimate, "{transition:", opacityTransition, ",", transformTransition, ";}&:focus{outline-offset:0;};label:euiPopover__panel;"),
46
48
  isOpen: _ref,
49
+ /* 4 */
50
+ light: /*#__PURE__*/(0, _react.css)("--euiPopoverBackgroundColor:", euiTheme.colors.emptyShade, ";;label:light;"),
51
+ dark: /*#__PURE__*/(0, _react.css)("--euiPopoverBackgroundColor:", (0, _services.tint)(euiTheme.colors.emptyShade, 0.025), ";;label:dark;"),
47
52
  // Regular popover with an arrow, a transform animation/transition, and a
48
53
  // drop shadow via `filter` (which automatically handles the arrow)
49
54
  hasTransform: {