@elastic/eui 67.0.0 → 67.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 (141) hide show
  1. package/dist/eui_theme_dark.css +0 -98
  2. package/dist/eui_theme_dark.min.css +1 -1
  3. package/dist/eui_theme_light.css +0 -98
  4. package/dist/eui_theme_light.min.css +1 -1
  5. package/es/components/badge/badge.js +84 -78
  6. package/es/components/badge/badge.styles.js +56 -0
  7. package/es/components/basic_table/in_memory_table.js +8 -0
  8. package/es/components/button/button.js +0 -1
  9. package/es/components/button/button_display/_button_display.js +10 -5
  10. package/es/components/button/button_display/_button_display.styles.js +2 -2
  11. package/es/components/button/button_display/_button_display_content.js +5 -3
  12. package/es/components/button/button_display/_button_display_content.styles.js +4 -1
  13. package/es/components/card/card.js +2 -2
  14. package/es/components/card/card.styles.js +5 -2
  15. package/es/components/notification/notification_event.js +1 -1
  16. package/es/components/notification/notification_event_meta.js +1 -1
  17. package/es/components/popover/popover_title.js +2 -2
  18. package/es/components/popover/popover_title.styles.js +18 -6
  19. package/es/components/search_bar/filters/custom_component_filter.js +16 -0
  20. package/es/components/search_bar/filters/filters.js +6 -0
  21. package/es/components/search_bar/query/ast.js +12 -0
  22. package/es/components/search_bar/query/ast_to_es_query_dsl.js +15 -10
  23. package/es/components/search_bar/query/query.js +17 -0
  24. package/es/components/search_bar/search_bar.js +4 -0
  25. package/es/components/search_bar/search_filters.js +4 -0
  26. package/es/components/selectable/selectable_list/selectable_list.js +2 -2
  27. package/es/components/selectable/selectable_list/selectable_list_item.js +2 -2
  28. package/es/services/color/contrast.js +2 -0
  29. package/es/services/index.js +1 -1
  30. package/es/services/theme/context.js +2 -1
  31. package/es/services/theme/hooks.js +27 -1
  32. package/es/services/theme/index.js +1 -1
  33. package/es/services/theme/provider.js +15 -1
  34. package/eui.d.ts +104 -28
  35. package/lib/components/badge/badge.js +92 -80
  36. package/lib/components/badge/badge.styles.js +61 -0
  37. package/lib/components/basic_table/in_memory_table.js +8 -0
  38. package/lib/components/button/button.js +0 -1
  39. package/lib/components/button/button_display/_button_display.js +10 -5
  40. package/lib/components/button/button_display/_button_display.styles.js +2 -2
  41. package/lib/components/button/button_display/_button_display_content.js +9 -4
  42. package/lib/components/button/button_display/_button_display_content.styles.js +4 -1
  43. package/lib/components/card/card.js +2 -2
  44. package/lib/components/card/card.styles.js +5 -2
  45. package/lib/components/notification/notification_event.js +1 -1
  46. package/lib/components/notification/notification_event_meta.js +1 -1
  47. package/lib/components/popover/popover_title.js +2 -2
  48. package/lib/components/popover/popover_title.styles.js +19 -7
  49. package/lib/components/search_bar/filters/custom_component_filter.js +29 -0
  50. package/lib/components/search_bar/filters/filters.js +7 -0
  51. package/lib/components/search_bar/query/ast.js +12 -0
  52. package/lib/components/search_bar/query/ast_to_es_query_dsl.js +16 -11
  53. package/lib/components/search_bar/query/query.js +17 -0
  54. package/lib/components/search_bar/search_bar.js +4 -0
  55. package/lib/components/search_bar/search_filters.js +4 -0
  56. package/lib/components/selectable/selectable_list/selectable_list.js +2 -2
  57. package/lib/components/selectable/selectable_list/selectable_list_item.js +2 -2
  58. package/lib/services/color/contrast.js +6 -1
  59. package/lib/services/index.js +7 -0
  60. package/lib/services/theme/context.js +4 -2
  61. package/lib/services/theme/hooks.js +28 -0
  62. package/lib/services/theme/index.js +12 -0
  63. package/lib/services/theme/provider.js +23 -2
  64. package/optimize/es/components/badge/badge.js +82 -76
  65. package/optimize/es/components/badge/badge.styles.js +56 -0
  66. package/optimize/es/components/basic_table/in_memory_table.js +4 -0
  67. package/optimize/es/components/button/button.js +0 -1
  68. package/optimize/es/components/button/button_display/_button_display.js +8 -3
  69. package/optimize/es/components/button/button_display/_button_display.styles.js +2 -2
  70. package/optimize/es/components/button/button_display/_button_display_content.js +3 -1
  71. package/optimize/es/components/button/button_display/_button_display_content.styles.js +4 -1
  72. package/optimize/es/components/card/card.js +2 -2
  73. package/optimize/es/components/card/card.styles.js +5 -2
  74. package/optimize/es/components/popover/popover_title.js +2 -2
  75. package/optimize/es/components/popover/popover_title.styles.js +18 -6
  76. package/optimize/es/components/search_bar/filters/custom_component_filter.js +16 -0
  77. package/optimize/es/components/search_bar/filters/filters.js +6 -0
  78. package/optimize/es/components/search_bar/query/ast.js +12 -0
  79. package/optimize/es/components/search_bar/query/ast_to_es_query_dsl.js +14 -9
  80. package/optimize/es/components/search_bar/query/query.js +17 -0
  81. package/optimize/es/services/color/contrast.js +2 -0
  82. package/optimize/es/services/index.js +1 -1
  83. package/optimize/es/services/theme/context.js +2 -1
  84. package/optimize/es/services/theme/hooks.js +27 -1
  85. package/optimize/es/services/theme/index.js +1 -1
  86. package/optimize/es/services/theme/provider.js +14 -1
  87. package/optimize/lib/components/badge/badge.js +90 -78
  88. package/optimize/lib/components/badge/badge.styles.js +61 -0
  89. package/optimize/lib/components/basic_table/in_memory_table.js +4 -0
  90. package/optimize/lib/components/button/button.js +0 -1
  91. package/optimize/lib/components/button/button_display/_button_display.js +8 -3
  92. package/optimize/lib/components/button/button_display/_button_display.styles.js +2 -2
  93. package/optimize/lib/components/button/button_display/_button_display_content.js +6 -2
  94. package/optimize/lib/components/button/button_display/_button_display_content.styles.js +4 -1
  95. package/optimize/lib/components/card/card.js +2 -2
  96. package/optimize/lib/components/card/card.styles.js +5 -2
  97. package/optimize/lib/components/popover/popover_title.js +2 -2
  98. package/optimize/lib/components/popover/popover_title.styles.js +19 -7
  99. package/optimize/lib/components/search_bar/filters/custom_component_filter.js +29 -0
  100. package/optimize/lib/components/search_bar/filters/filters.js +7 -0
  101. package/optimize/lib/components/search_bar/query/ast.js +12 -0
  102. package/optimize/lib/components/search_bar/query/ast_to_es_query_dsl.js +16 -11
  103. package/optimize/lib/components/search_bar/query/query.js +17 -0
  104. package/optimize/lib/services/color/contrast.js +5 -1
  105. package/optimize/lib/services/index.js +7 -0
  106. package/optimize/lib/services/theme/context.js +4 -2
  107. package/optimize/lib/services/theme/hooks.js +28 -0
  108. package/optimize/lib/services/theme/index.js +12 -0
  109. package/optimize/lib/services/theme/provider.js +23 -9
  110. package/package.json +5 -5
  111. package/src/components/badge/_index.scss +0 -1
  112. package/test-env/components/badge/badge.js +92 -80
  113. package/test-env/components/badge/badge.styles.js +61 -0
  114. package/test-env/components/basic_table/in_memory_table.js +8 -0
  115. package/test-env/components/button/button.js +0 -1
  116. package/test-env/components/button/button_display/_button_display.js +10 -5
  117. package/test-env/components/button/button_display/_button_display.styles.js +2 -2
  118. package/test-env/components/button/button_display/_button_display_content.js +8 -4
  119. package/test-env/components/button/button_display/_button_display_content.styles.js +4 -1
  120. package/test-env/components/card/card.js +2 -2
  121. package/test-env/components/card/card.styles.js +5 -2
  122. package/test-env/components/notification/notification_event.js +1 -1
  123. package/test-env/components/notification/notification_event_meta.js +1 -1
  124. package/test-env/components/popover/popover_title.js +2 -2
  125. package/test-env/components/popover/popover_title.styles.js +19 -7
  126. package/test-env/components/search_bar/filters/custom_component_filter.js +29 -0
  127. package/test-env/components/search_bar/filters/filters.js +7 -0
  128. package/test-env/components/search_bar/query/ast.js +12 -0
  129. package/test-env/components/search_bar/query/ast_to_es_query_dsl.js +16 -11
  130. package/test-env/components/search_bar/query/query.js +17 -0
  131. package/test-env/components/search_bar/search_bar.js +4 -0
  132. package/test-env/components/search_bar/search_filters.js +4 -0
  133. package/test-env/components/selectable/selectable_list/selectable_list.js +2 -2
  134. package/test-env/components/selectable/selectable_list/selectable_list_item.js +2 -2
  135. package/test-env/services/color/contrast.js +5 -1
  136. package/test-env/services/index.js +7 -0
  137. package/test-env/services/theme/context.js +4 -2
  138. package/test-env/services/theme/hooks.js +28 -0
  139. package/test-env/services/theme/index.js +12 -0
  140. package/test-env/services/theme/provider.js +23 -9
  141. package/src/components/badge/_badge.scss +0 -133
@@ -18,15 +18,27 @@ var _title = require("../title/title.styles");
18
18
  * in compliance with, at your election, the Elastic License 2.0 or the Server
19
19
  * Side Public License, v 1.
20
20
  */
21
- var euiPopoverTitleStyles = function euiPopoverTitleStyles(euiThemeContext, panelPadding) {
22
- var euiTheme = euiThemeContext.euiTheme; // If the popover's containing panel has padding applied,
23
- // ensure the title expands to cover that padding and
24
-
25
- var panelPaddingSize = (0, _global_styling.euiPaddingSize)(euiThemeContext, panelPadding);
21
+ var euiPopoverTitleStyles = function euiPopoverTitleStyles(euiThemeContext) {
22
+ var euiTheme = euiThemeContext.euiTheme;
26
23
  return {
27
24
  // Base
28
- euiPopoverTitle: /*#__PURE__*/(0, _react.css)((0, _title.euiTitle)(euiThemeContext, 'xxs'), ";", (0, _global_styling.logicalCSS)('border-bottom', euiTheme.border.thin), ";margin:-", panelPaddingSize, " -", panelPaddingSize, " ", panelPaddingSize, ";;label:euiPopoverTitle;")
25
+ euiPopoverTitle: /*#__PURE__*/(0, _react.css)((0, _title.euiTitle)(euiThemeContext, 'xxs'), ";", (0, _global_styling.logicalCSS)('border-bottom', euiTheme.border.thin), ";;label:euiPopoverTitle;"),
26
+ // If the popover's containing panel has padding applied,
27
+ // ensure the title expands to cover that padding via negative margins
28
+ panelPaddingSizes: {
29
+ none: /*#__PURE__*/(0, _react.css)(";label:none;"),
30
+ xs: /*#__PURE__*/(0, _react.css)(getPaddingOffset(euiThemeContext, 'xs'), ";;label:xs;"),
31
+ s: /*#__PURE__*/(0, _react.css)(getPaddingOffset(euiThemeContext, 's'), ";;label:s;"),
32
+ m: /*#__PURE__*/(0, _react.css)(getPaddingOffset(euiThemeContext, 'm'), ";;label:m;"),
33
+ l: /*#__PURE__*/(0, _react.css)(getPaddingOffset(euiThemeContext, 'l'), ";;label:l;"),
34
+ xl: /*#__PURE__*/(0, _react.css)(getPaddingOffset(euiThemeContext, 'xl'), ";;label:xl;")
35
+ }
29
36
  };
30
37
  };
31
38
 
32
- exports.euiPopoverTitleStyles = euiPopoverTitleStyles;
39
+ exports.euiPopoverTitleStyles = euiPopoverTitleStyles;
40
+
41
+ var getPaddingOffset = function getPaddingOffset(euiThemeContext, size) {
42
+ var panelPaddingSize = (0, _global_styling.euiPaddingSize)(euiThemeContext, size);
43
+ return "margin: -".concat(panelPaddingSize, " -").concat(panelPaddingSize, " ").concat(panelPaddingSize, ";");
44
+ };
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.CustomComponentFilter = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _react2 = require("@emotion/react");
13
+
14
+ /*
15
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
16
+ * or more contributor license agreements. Licensed under the Elastic License
17
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
18
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
19
+ * Side Public License, v 1.
20
+ */
21
+ var CustomComponentFilter = function CustomComponentFilter(props) {
22
+ var CustomComponent = props.config.component;
23
+ return (0, _react2.jsx)(CustomComponent, {
24
+ query: props.query,
25
+ onChange: props.onChange
26
+ });
27
+ };
28
+
29
+ exports.CustomComponentFilter = CustomComponentFilter;
@@ -19,6 +19,8 @@ var _field_value_toggle_filter = require("./field_value_toggle_filter");
19
19
 
20
20
  var _field_value_toggle_group_filter = require("./field_value_toggle_group_filter");
21
21
 
22
+ var _custom_component_filter = require("./custom_component_filter");
23
+
22
24
  var _react2 = require("@emotion/react");
23
25
 
24
26
  /*
@@ -60,6 +62,11 @@ var createFilter = function createFilter(index, config, query, onChange) {
60
62
  config: config
61
63
  }));
62
64
 
65
+ case 'custom_component':
66
+ return (0, _react2.jsx)(_custom_component_filter.CustomComponentFilter, (0, _extends2.default)({}, props, {
67
+ config: config
68
+ }));
69
+
63
70
  default:
64
71
  // @ts-ignore TS knows that we've checked `config.type` exhaustively
65
72
  throw new Error("Unknown search filter type [".concat(config.type, "]"));
@@ -533,6 +533,18 @@ var _AST = /*#__PURE__*/function () {
533
533
  return !Is.isInstance(clause) || clause.flag !== flag;
534
534
  }));
535
535
  }
536
+ }, {
537
+ key: "removeIsClauses",
538
+ value: function removeIsClauses() {
539
+ return new _AST(this._clauses.filter(function (clause) {
540
+ return !Is.isInstance(clause);
541
+ }));
542
+ }
543
+ }, {
544
+ key: "removeAllClauses",
545
+ value: function removeAllClauses() {
546
+ return new _AST();
547
+ }
536
548
  }, {
537
549
  key: "getGroupClauses",
538
550
  value: function getGroupClauses() {
@@ -7,19 +7,19 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.astToEsQueryDsl = exports._termValuesToQuery = exports._isFlagToQuery = exports._fieldValuesToQuery = void 0;
9
9
 
10
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
-
12
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
11
 
14
- var _date_format = require("./date_format");
12
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
13
 
16
- var _date_value = require("./date_value");
14
+ var _predicate = require("../../../services/predicate");
15
+
16
+ var _common = require("../../common");
17
17
 
18
18
  var _ast = require("./ast");
19
19
 
20
- var _predicate = require("../../../services/predicate");
20
+ var _date_format = require("./date_format");
21
21
 
22
- var _common = require("../../common");
22
+ var _date_value = require("./date_value");
23
23
 
24
24
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
25
25
 
@@ -118,12 +118,17 @@ var _fieldValuesToQuery = function _fieldValuesToQuery(field, operations, andOr)
118
118
  }
119
119
  });
120
120
 
121
- if (_terms.length > 0) {
121
+ if (_terms.length > 1) {
122
+ queries.push({
123
+ bool: (0, _defineProperty2.default)({}, andOr === 'and' ? 'must' : 'should', (0, _toConsumableArray2.default)(_terms.map(function (value) {
124
+ return {
125
+ match: (0, _defineProperty2.default)({}, field, value)
126
+ };
127
+ })))
128
+ });
129
+ } else if (_terms.length === 1) {
122
130
  queries.push({
123
- match: (0, _defineProperty2.default)({}, field, {
124
- query: _terms.join(' '),
125
- operator: andOr
126
- })
131
+ match: (0, _defineProperty2.default)({}, field, _terms[0])
127
132
  });
128
133
  }
129
134
 
@@ -52,6 +52,11 @@ var Query = /*#__PURE__*/function () {
52
52
  }
53
53
 
54
54
  (0, _createClass2.default)(Query, [{
55
+ key: "hasClauses",
56
+ value: function hasClauses() {
57
+ return this.ast.clauses.length > 0;
58
+ }
59
+ }, {
55
60
  key: "hasSimpleFieldClause",
56
61
  value: function hasSimpleFieldClause(field, value) {
57
62
  return this.ast.hasSimpleFieldClause(field, value);
@@ -111,6 +116,12 @@ var Query = /*#__PURE__*/function () {
111
116
  var ast = this.ast.removeOrFieldClauses(field);
112
117
  return new Query(ast, this.syntax);
113
118
  }
119
+ }, {
120
+ key: "removeAllClauses",
121
+ value: function removeAllClauses() {
122
+ var ast = this.ast.removeAllClauses();
123
+ return new Query(ast, this.syntax);
124
+ }
114
125
  }, {
115
126
  key: "hasIsClause",
116
127
  value: function hasIsClause(flag) {
@@ -139,6 +150,12 @@ var Query = /*#__PURE__*/function () {
139
150
  var ast = this.ast.removeIsClause(flag);
140
151
  return new Query(ast, this.syntax);
141
152
  }
153
+ }, {
154
+ key: "removeIsClauses",
155
+ value: function removeIsClauses() {
156
+ var ast = this.ast.removeIsClauses();
157
+ return new Query(ast, this.syntax);
158
+ }
142
159
  /**
143
160
  * Executes this query over the given iterable item and returns
144
161
  * an new array of all items that matched this query. Options:
@@ -425,6 +425,10 @@ EuiSearchBar.propTypes = {
425
425
  operator: _propTypes.default.oneOf(["eq", "exact", "gt", "gte", "lt", "lte"])
426
426
  }).isRequired).isRequired,
427
427
  available: _propTypes.default.func
428
+ }).isRequired, _propTypes.default.shape({
429
+ type: _propTypes.default.oneOf(["custom_component"]).isRequired,
430
+ component: _propTypes.default.elementType.isRequired,
431
+ available: _propTypes.default.func
428
432
  }).isRequired]).isRequired),
429
433
 
430
434
  /**
@@ -159,5 +159,9 @@ EuiSearchFilters.propTypes = {
159
159
  operator: _propTypes.default.oneOf(["eq", "exact", "gt", "gte", "lt", "lte"])
160
160
  }).isRequired).isRequired,
161
161
  available: _propTypes.default.func
162
+ }).isRequired, _propTypes.default.shape({
163
+ type: _propTypes.default.oneOf(["custom_component"]).isRequired,
164
+ component: _propTypes.default.elementType.isRequired,
165
+ available: _propTypes.default.func
162
166
  }).isRequired]).isRequired).isRequired
163
167
  };
@@ -431,12 +431,12 @@ EuiSelectableList.propTypes = {
431
431
  /**
432
432
  * The side of the badge the icon should sit
433
433
  */
434
- iconSide: _propTypes.default.oneOf(["left", "right"]),
434
+ iconSide: _propTypes.default.any,
435
435
 
436
436
  /**
437
437
  * Accepts either our palette colors (primary, success ..etc) or a hex value `#FFFFFF`, `#000`.
438
438
  */
439
- color: _propTypes.default.oneOfType([_propTypes.default.string.isRequired, _propTypes.default.any.isRequired]),
439
+ color: _propTypes.default.oneOfType([_propTypes.default.any.isRequired, _propTypes.default.string.isRequired]),
440
440
 
441
441
  /**
442
442
  * Will override any color passed through the `color` prop.
@@ -275,12 +275,12 @@ EuiSelectableListItem.propTypes = {
275
275
  /**
276
276
  * The side of the badge the icon should sit
277
277
  */
278
- iconSide: _propTypes.default.oneOf(["left", "right"]),
278
+ iconSide: _propTypes.default.any,
279
279
 
280
280
  /**
281
281
  * Accepts either our palette colors (primary, success ..etc) or a hex value `#FFFFFF`, `#000`.
282
282
  */
283
- color: _propTypes.default.oneOfType([_propTypes.default.string.isRequired, _propTypes.default.any.isRequired]),
283
+ color: _propTypes.default.oneOfType([_propTypes.default.any.isRequired, _propTypes.default.string.isRequired]),
284
284
 
285
285
  /**
286
286
  * Will override any color passed through the `color` prop.
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.makeHighContrastColor = exports.makeDisabledContrastColor = void 0;
8
+ exports.wcagContrastMin = exports.makeHighContrastColor = exports.makeDisabledContrastColor = void 0;
9
9
 
10
10
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
11
 
@@ -22,6 +22,7 @@ var _utils = require("../theme/utils");
22
22
  * in compliance with, at your election, the Elastic License 2.0 or the Server
23
23
  * Side Public License, v 1.
24
24
  */
25
+ var wcagContrastMin = 4.5; // WCAG AA minimum contrast ratio for normal (non-large) text
25
26
 
26
27
  /**
27
28
  * Creates a new color that meets or exceeds WCAG level AA
@@ -30,6 +31,9 @@ var _utils = require("../theme/utils");
30
31
  * *
31
32
  * @param themeOrBackground - Color to use as the contrast basis or just pass EuiTheme
32
33
  */
34
+
35
+ exports.wcagContrastMin = wcagContrastMin;
36
+
33
37
  var makeHighContrastColor = function makeHighContrastColor(_foreground) {
34
38
  var ratio = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 4.85;
35
39
  return function (themeOrBackground) {
@@ -57,6 +57,7 @@ var _exportNames = {
57
57
  lightness: true,
58
58
  makeHighContrastColor: true,
59
59
  makeDisabledContrastColor: true,
60
+ wcagContrastMin: true,
60
61
  useColorPickerState: true,
61
62
  useColorStopsState: true,
62
63
  copyToClipboard: true,
@@ -569,6 +570,12 @@ Object.defineProperty(exports, "useIsWithinMinBreakpoint", {
569
570
  return _breakpoint.useIsWithinMinBreakpoint;
570
571
  }
571
572
  });
573
+ Object.defineProperty(exports, "wcagContrastMin", {
574
+ enumerable: true,
575
+ get: function get() {
576
+ return _color.wcagContrastMin;
577
+ }
578
+ });
572
579
 
573
580
  var keys = _interopRequireWildcard(require("./keys"));
574
581
 
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.EuiThemeContext = exports.EuiSystemContext = exports.EuiModificationsContext = exports.EuiColorModeContext = void 0;
6
+ exports.defaultComputedTheme = exports.EuiThemeContext = exports.EuiSystemContext = exports.EuiModificationsContext = exports.EuiColorModeContext = void 0;
7
7
 
8
8
  var _react = require("react");
9
9
 
@@ -24,5 +24,7 @@ var EuiModificationsContext = /*#__PURE__*/(0, _react.createContext)({});
24
24
  exports.EuiModificationsContext = EuiModificationsContext;
25
25
  var EuiColorModeContext = /*#__PURE__*/(0, _react.createContext)(_utils.DEFAULT_COLOR_MODE);
26
26
  exports.EuiColorModeContext = EuiColorModeContext;
27
- var EuiThemeContext = /*#__PURE__*/(0, _react.createContext)((0, _utils.getComputed)(_theme.EuiThemeAmsterdam, {}, _utils.DEFAULT_COLOR_MODE));
27
+ var defaultComputedTheme = (0, _utils.getComputed)(_theme.EuiThemeAmsterdam, {}, _utils.DEFAULT_COLOR_MODE);
28
+ exports.defaultComputedTheme = defaultComputedTheme;
29
+ var EuiThemeContext = /*#__PURE__*/(0, _react.createContext)(defaultComputedTheme);
28
30
  exports.EuiThemeContext = EuiThemeContext;
@@ -15,6 +15,8 @@ var _react = _interopRequireWildcard(require("react"));
15
15
 
16
16
  var _context = require("./context");
17
17
 
18
+ var _provider = require("./provider");
19
+
18
20
  var _react2 = require("@emotion/react");
19
21
 
20
22
  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); }
@@ -28,10 +30,36 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
28
30
  * in compliance with, at your election, the Elastic License 2.0 or the Server
29
31
  * Side Public License, v 1.
30
32
  */
33
+ var providerMessage = "`EuiProvider` is missing which can result in negative effects.\nWrap your component in `EuiProvider`: https://ela.st/euiprovider.";
34
+
31
35
  var useEuiTheme = function useEuiTheme() {
32
36
  var theme = (0, _react.useContext)(_context.EuiThemeContext);
33
37
  var colorMode = (0, _react.useContext)(_context.EuiColorModeContext);
34
38
  var modifications = (0, _react.useContext)(_context.EuiModificationsContext);
39
+
40
+ if (process.env.NODE_ENV !== 'production') {
41
+ var isFallback = theme === _context.defaultComputedTheme;
42
+ var warningLevel = (0, _provider.getEuiDevProviderWarning)();
43
+
44
+ if (isFallback && typeof warningLevel !== 'undefined') {
45
+ switch (warningLevel) {
46
+ case 'log':
47
+ console.log(providerMessage);
48
+ break;
49
+
50
+ case 'warn':
51
+ console.warn(providerMessage);
52
+ break;
53
+
54
+ case 'error':
55
+ throw new Error(providerMessage);
56
+
57
+ default:
58
+ break;
59
+ }
60
+ }
61
+ }
62
+
35
63
  var assembledTheme = (0, _react.useMemo)(function () {
36
64
  return {
37
65
  euiTheme: theme,
@@ -69,6 +69,12 @@ Object.defineProperty(exports, "getComputed", {
69
69
  return _utils.getComputed;
70
70
  }
71
71
  });
72
+ Object.defineProperty(exports, "getEuiDevProviderWarning", {
73
+ enumerable: true,
74
+ get: function get() {
75
+ return _provider.getEuiDevProviderWarning;
76
+ }
77
+ });
72
78
  Object.defineProperty(exports, "getOn", {
73
79
  enumerable: true,
74
80
  get: function get() {
@@ -87,6 +93,12 @@ Object.defineProperty(exports, "mergeDeep", {
87
93
  return _utils.mergeDeep;
88
94
  }
89
95
  });
96
+ Object.defineProperty(exports, "setEuiDevProviderWarning", {
97
+ enumerable: true,
98
+ get: function get() {
99
+ return _provider.setEuiDevProviderWarning;
100
+ }
101
+ });
90
102
  Object.defineProperty(exports, "setOn", {
91
103
  enumerable: true,
92
104
  get: function get() {
@@ -7,7 +7,9 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.EuiThemeProvider = void 0;
10
+ exports.setEuiDevProviderWarning = exports.getEuiDevProviderWarning = exports.EuiThemeProvider = void 0;
11
+
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
13
 
12
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
15
 
@@ -25,13 +27,24 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
25
27
 
26
28
  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; }
27
29
 
28
- /*
29
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
30
- * or more contributor license agreements. Licensed under the Elastic License
31
- * 2.0 and the Server Side Public License, v 1; you may not use this file except
32
- * in compliance with, at your election, the Elastic License 2.0 or the Server
33
- * Side Public License, v 1.
34
- */
30
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
31
+
32
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
33
+
34
+ var providerWarning = undefined;
35
+
36
+ var setEuiDevProviderWarning = function setEuiDevProviderWarning(level) {
37
+ return providerWarning = level;
38
+ };
39
+
40
+ exports.setEuiDevProviderWarning = setEuiDevProviderWarning;
41
+
42
+ var getEuiDevProviderWarning = function getEuiDevProviderWarning() {
43
+ return providerWarning;
44
+ };
45
+
46
+ exports.getEuiDevProviderWarning = getEuiDevProviderWarning;
47
+
35
48
  var EuiThemeProvider = function EuiThemeProvider(_ref) {
36
49
  var _system = _ref.theme,
37
50
  _colorMode = _ref.colorMode,
@@ -64,7 +77,8 @@ var EuiThemeProvider = function EuiThemeProvider(_ref) {
64
77
  var prevColorMode = (0, _react.useRef)(colorMode);
65
78
  var isParentTheme = (0, _react.useRef)(prevSystemKey.current === parentSystem.key && colorMode === parentColorMode && (0, _isEqual.default)(parentModifications, modifications));
66
79
 
67
- var _useState7 = (0, _react.useState)(isParentTheme.current && Object.keys(parentTheme).length ? parentTheme : (0, _utils.getComputed)(system, (0, _utils.buildTheme)(modifications, "_".concat(system.key)), colorMode)),
80
+ var _useState7 = (0, _react.useState)(isParentTheme.current && Object.keys(parentTheme).length ? _objectSpread({}, parentTheme) // Intentionally create a new object to break referential equality
81
+ : (0, _utils.getComputed)(system, (0, _utils.buildTheme)(modifications, "_".concat(system.key)), colorMode)),
68
82
  _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
69
83
  theme = _useState8[0],
70
84
  setTheme = _useState8[1];
@@ -1,133 +0,0 @@
1
- /**
2
- * 1. Accounts for the border
3
- */
4
- .euiBadge {
5
- font-size: $euiFontSizeXS;
6
- font-weight: $euiFontWeightMedium;
7
- line-height: $euiSize + 2px; /* 1 */
8
- padding: 0 $euiSizeS;
9
- display: inline-block;
10
- text-decoration: none;
11
- border-radius: $euiBorderRadius / 2;
12
- border: solid 1px transparent;
13
- background-color: transparent;
14
- white-space: nowrap;
15
- vertical-align: middle;
16
- cursor: default;
17
- max-width: 100%;
18
- // The badge will only ever be as wide as its content
19
- // So, make the text left aligned to ensure all badges line up the same
20
- text-align: left;
21
-
22
- &.euiBadge-isDisabled {
23
- // sass-lint:disable-block no-important
24
- // Using !important to override inline styles
25
- color: makeHighContrastColor($euiButtonColorDisabled, $euiButtonColorDisabled, 2) !important;
26
- background-color: $euiButtonColorDisabled !important;
27
- }
28
-
29
- &:focus-within {
30
- @include euiFocusRing('small');
31
- }
32
-
33
- + .euiBadge {
34
- margin-left: $euiSizeXS;
35
- }
36
-
37
- .euiBadge__content {
38
- min-height: $euiSize + ($euiBorderWidthThin * 2); // Ensure proper height in case of just displaying an icon
39
- display: flex;
40
- align-items: center;
41
- overflow: hidden;
42
- }
43
-
44
- .euiBadge__childButton {
45
- @include euiTextTruncate;
46
- text-align: inherit;
47
- font-weight: inherit;
48
- line-height: inherit;
49
- color: inherit;
50
-
51
- &:disabled {
52
- cursor: not-allowed;
53
- }
54
-
55
- &:not(:disabled) {
56
- &:hover,
57
- &:focus {
58
- text-decoration: underline;
59
- }
60
- }
61
- }
62
-
63
- .euiBadge__iconButton {
64
- font-size: 0; // Makes the button only as large as the icon so it aligns vertically better
65
- margin-left: $euiSizeXS;
66
-
67
- &:focus {
68
- background-color: transparentize($euiColorGhost, .2);
69
- color: $euiColorInk;
70
- border-radius: 2px;
71
- }
72
-
73
- &:disabled {
74
- cursor: not-allowed;
75
- }
76
-
77
- .euiBadge__icon {
78
- // Remove margins from icon itself so that focus state doesn't include that space
79
- margin: 0 !important; // sass-lint:disable-line no-important
80
- }
81
- }
82
-
83
- .euiBadge__text {
84
- @include euiTextTruncate;
85
- cursor: default;
86
- }
87
-
88
- .euiBadge__icon {
89
- &:not(:only-child) {
90
- margin-left: $euiSizeXS;
91
- }
92
- }
93
-
94
- &.euiBadge--iconLeft {
95
- .euiBadge__content {
96
- flex-direction: row-reverse;
97
- }
98
-
99
- .euiBadge__iconButton,
100
- .euiBadge__icon:not(:only-child) {
101
- margin-right: $euiSizeXS;
102
- margin-left: 0;
103
- }
104
- }
105
- }
106
-
107
- .euiBadge-isClickable {
108
- &:not(:disabled) {
109
- &:hover,
110
- &:focus {
111
- text-decoration: underline;
112
- }
113
- }
114
-
115
- &.euiBadge-isDisabled {
116
- cursor: not-allowed;
117
- }
118
-
119
- &:focus {
120
- @include euiFocusRing('small');
121
- }
122
-
123
- .euiBadge__text {
124
- cursor: inherit;
125
- }
126
- }
127
-
128
- // Hollow has a border and is mostly used for autocompleters.
129
- .euiBadge--hollow {
130
- background-color: $euiColorEmptyShade;
131
- border-color: lightOrDarkTheme($euiBorderColor, tint($euiBorderColor, 15%));
132
- color: $euiTextColor;
133
- }