@elastic/eui 95.2.0 → 95.3.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 (129) hide show
  1. package/dist/eui_theme_dark.css +8 -364
  2. package/dist/eui_theme_dark.min.css +1 -1
  3. package/dist/eui_theme_light.css +8 -364
  4. package/dist/eui_theme_light.min.css +1 -1
  5. package/es/components/color_picker/color_palette_display/color_palette_display.js +9 -9
  6. package/es/components/color_picker/color_palette_display/color_palette_display.styles.js +24 -0
  7. package/es/components/color_picker/color_palette_display/color_palette_display_fixed.js +2 -0
  8. package/es/components/color_picker/color_palette_display/color_palette_display_fixed.styles.js +14 -0
  9. package/es/components/color_picker/color_palette_picker/color_palette_picker.js +34 -26
  10. package/es/components/color_picker/color_picker.js +26 -39
  11. package/es/components/color_picker/color_picker.styles.js +15 -5
  12. package/es/components/color_picker/color_picker_swatch.js +5 -1
  13. package/es/components/color_picker/color_picker_swatch.styles.js +19 -0
  14. package/es/components/color_picker/hue.js +11 -6
  15. package/es/components/color_picker/hue.styles.js +29 -0
  16. package/es/components/color_picker/saturation.js +29 -16
  17. package/es/components/color_picker/saturation.styles.js +23 -0
  18. package/es/components/form/file_picker/file_picker.js +5 -5
  19. package/es/components/form/range/range.styles.js +1 -1
  20. package/es/components/modal/modal.styles.js +1 -1
  21. package/es/components/popover/popover.js +5 -3
  22. package/es/components/provider/provider.js +2 -2
  23. package/es/global_styling/mixins/_helpers.js +10 -2
  24. package/es/services/breakpoint/current_breakpoint.js +5 -3
  25. package/es/services/theme/provider.js +10 -2
  26. package/eui.d.ts +6747 -6681
  27. package/i18ntokens.json +53 -53
  28. package/lib/components/color_picker/color_palette_display/color_palette_display.js +9 -9
  29. package/lib/components/color_picker/color_palette_display/color_palette_display.styles.js +30 -0
  30. package/lib/components/color_picker/color_palette_display/color_palette_display_fixed.js +2 -0
  31. package/lib/components/color_picker/color_palette_display/color_palette_display_fixed.styles.js +19 -0
  32. package/lib/components/color_picker/color_palette_picker/color_palette_picker.js +37 -27
  33. package/lib/components/color_picker/color_picker.js +26 -39
  34. package/lib/components/color_picker/color_picker.styles.js +15 -5
  35. package/lib/components/color_picker/color_picker_swatch.js +5 -1
  36. package/lib/components/color_picker/color_picker_swatch.styles.js +25 -0
  37. package/lib/components/color_picker/hue.js +11 -6
  38. package/lib/components/color_picker/hue.styles.js +35 -0
  39. package/lib/components/color_picker/saturation.js +27 -14
  40. package/lib/components/color_picker/saturation.styles.js +29 -0
  41. package/lib/components/form/file_picker/file_picker.js +5 -5
  42. package/lib/components/form/range/range.styles.js +1 -1
  43. package/lib/components/modal/modal.styles.js +1 -1
  44. package/lib/components/popover/popover.js +5 -3
  45. package/lib/components/provider/provider.js +1 -1
  46. package/lib/global_styling/mixins/_helpers.js +10 -2
  47. package/lib/services/breakpoint/current_breakpoint.js +6 -4
  48. package/lib/services/theme/provider.js +9 -1
  49. package/optimize/es/components/color_picker/color_palette_display/color_palette_display.js +8 -8
  50. package/optimize/es/components/color_picker/color_palette_display/color_palette_display.styles.js +24 -0
  51. package/optimize/es/components/color_picker/color_palette_display/color_palette_display_fixed.js +2 -0
  52. package/optimize/es/components/color_picker/color_palette_display/color_palette_display_fixed.styles.js +14 -0
  53. package/optimize/es/components/color_picker/color_palette_picker/color_palette_picker.js +34 -26
  54. package/optimize/es/components/color_picker/color_picker.js +26 -39
  55. package/optimize/es/components/color_picker/color_picker.styles.js +15 -5
  56. package/optimize/es/components/color_picker/color_picker_swatch.js +5 -1
  57. package/optimize/es/components/color_picker/color_picker_swatch.styles.js +19 -0
  58. package/optimize/es/components/color_picker/hue.js +11 -6
  59. package/optimize/es/components/color_picker/hue.styles.js +29 -0
  60. package/optimize/es/components/color_picker/saturation.js +29 -16
  61. package/optimize/es/components/color_picker/saturation.styles.js +23 -0
  62. package/optimize/es/components/form/file_picker/file_picker.js +5 -5
  63. package/optimize/es/components/form/range/range.styles.js +1 -1
  64. package/optimize/es/components/modal/modal.styles.js +1 -1
  65. package/optimize/es/components/popover/popover.js +5 -3
  66. package/optimize/es/components/provider/provider.js +2 -2
  67. package/optimize/es/global_styling/mixins/_helpers.js +10 -2
  68. package/optimize/es/services/breakpoint/current_breakpoint.js +5 -3
  69. package/optimize/es/services/theme/provider.js +10 -2
  70. package/optimize/lib/components/color_picker/color_palette_display/color_palette_display.js +8 -8
  71. package/optimize/lib/components/color_picker/color_palette_display/color_palette_display.styles.js +30 -0
  72. package/optimize/lib/components/color_picker/color_palette_display/color_palette_display_fixed.js +2 -0
  73. package/optimize/lib/components/color_picker/color_palette_display/color_palette_display_fixed.styles.js +19 -0
  74. package/optimize/lib/components/color_picker/color_palette_picker/color_palette_picker.js +38 -27
  75. package/optimize/lib/components/color_picker/color_picker.js +26 -39
  76. package/optimize/lib/components/color_picker/color_picker.styles.js +15 -5
  77. package/optimize/lib/components/color_picker/color_picker_swatch.js +5 -1
  78. package/optimize/lib/components/color_picker/color_picker_swatch.styles.js +25 -0
  79. package/optimize/lib/components/color_picker/hue.js +11 -6
  80. package/optimize/lib/components/color_picker/hue.styles.js +35 -0
  81. package/optimize/lib/components/color_picker/saturation.js +27 -14
  82. package/optimize/lib/components/color_picker/saturation.styles.js +29 -0
  83. package/optimize/lib/components/form/file_picker/file_picker.js +5 -5
  84. package/optimize/lib/components/form/range/range.styles.js +1 -1
  85. package/optimize/lib/components/modal/modal.styles.js +1 -1
  86. package/optimize/lib/components/popover/popover.js +5 -3
  87. package/optimize/lib/components/provider/provider.js +1 -1
  88. package/optimize/lib/global_styling/mixins/_helpers.js +10 -2
  89. package/optimize/lib/services/breakpoint/current_breakpoint.js +6 -4
  90. package/optimize/lib/services/theme/provider.js +9 -1
  91. package/package.json +10 -7
  92. package/src/components/index.scss +0 -1
  93. package/src/global_styling/mixins/_shadow.scss +5 -0
  94. package/src/themes/amsterdam/overrides/_index.scss +0 -1
  95. package/test-env/components/color_picker/color_palette_display/color_palette_display.js +9 -9
  96. package/test-env/components/color_picker/color_palette_display/color_palette_display.styles.js +30 -0
  97. package/test-env/components/color_picker/color_palette_display/color_palette_display_fixed.js +2 -0
  98. package/test-env/components/color_picker/color_palette_display/color_palette_display_fixed.styles.js +19 -0
  99. package/test-env/components/color_picker/color_palette_picker/color_palette_picker.js +38 -27
  100. package/test-env/components/color_picker/color_picker.js +26 -39
  101. package/test-env/components/color_picker/color_picker.styles.js +15 -5
  102. package/test-env/components/color_picker/color_picker_swatch.js +5 -1
  103. package/test-env/components/color_picker/color_picker_swatch.styles.js +25 -0
  104. package/test-env/components/color_picker/hue.js +11 -6
  105. package/test-env/components/color_picker/hue.styles.js +35 -0
  106. package/test-env/components/color_picker/saturation.js +27 -14
  107. package/test-env/components/color_picker/saturation.styles.js +29 -0
  108. package/test-env/components/form/file_picker/file_picker.js +5 -5
  109. package/test-env/components/form/range/range.styles.js +1 -1
  110. package/test-env/components/modal/modal.styles.js +1 -1
  111. package/test-env/components/popover/popover.js +5 -3
  112. package/test-env/components/provider/provider.js +1 -1
  113. package/test-env/global_styling/mixins/_helpers.js +10 -2
  114. package/test-env/services/breakpoint/current_breakpoint.js +6 -4
  115. package/test-env/services/theme/provider.js +9 -1
  116. package/src/components/color_picker/_color_picker.scss +0 -37
  117. package/src/components/color_picker/_color_picker_swatch.scss +0 -18
  118. package/src/components/color_picker/_hue.scss +0 -88
  119. package/src/components/color_picker/_index.scss +0 -7
  120. package/src/components/color_picker/_saturation.scss +0 -57
  121. package/src/components/color_picker/_variables.scss +0 -6
  122. package/src/components/color_picker/color_palette_display/_color_palette_display.scss +0 -18
  123. package/src/components/color_picker/color_palette_display/_color_palette_display_fixed.scss +0 -12
  124. package/src/components/color_picker/color_palette_display/_index.scss +0 -4
  125. package/src/components/color_picker/color_palette_display/_mixins.scss +0 -22
  126. package/src/components/color_picker/color_palette_display/_variables.scss +0 -6
  127. package/src/components/color_picker/color_palette_picker/_color_palette_picker.scss +0 -9
  128. package/src/components/color_picker/color_palette_picker/_index.scss +0 -1
  129. package/src/themes/amsterdam/overrides/_hue.scss +0 -44
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiHueStyles = void 0;
7
+ var _react = require("@emotion/react");
8
+ var _services = require("../../services");
9
+ var _global_styling = require("../../global_styling");
10
+ var _range = require("../form/range/range.styles");
11
+ /*
12
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
13
+ * or more contributor license agreements. Licensed under the Elastic License
14
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
15
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
16
+ * Side Public License, v 1.
17
+ */
18
+
19
+ var euiHueStyles = exports.euiHueStyles = function euiHueStyles(euiThemeContext) {
20
+ var euiTheme = euiThemeContext.euiTheme;
21
+ var height = euiTheme.size.m;
22
+ var thumbSize = euiTheme.size.l;
23
+ var thumbBorder = (0, _global_styling.mathWithUnits)(euiTheme.border.width.thick, function (x) {
24
+ return x * 1.5;
25
+ });
26
+ var thumbBoxShadow = "\n 0 2px 2px -1px ".concat((0, _services.transparentize)(euiTheme.colors.shadow, 0.2), ",\n 0 1px 5px -2px ").concat((0, _services.transparentize)(euiTheme.colors.shadow, 0.2));
27
+ return {
28
+ // This wraps the range and sets a rainbow gradient,
29
+ // which allows the range thumb to be larger than the visible track
30
+ euiHue: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('height', height), " border-radius:", height, ";background:linear-gradient(\n to right,\n #ff3232 0%,\n #fff130 20%,\n #45ff30 35%,\n #28fff0 52%,\n #282cff 71%,\n #ff28fb 88%,\n #ff0094 100%\n );;label:euiHue;"),
31
+ euiHue__range: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('height', thumbSize), (0, _global_styling.logicalCSS)('width', "calc(100% + 2px)"), (0, _global_styling.logicalCSS)('margin-horizontal', '-1px'), " ", (0, _global_styling.logicalCSS)('margin-top', (0, _global_styling.mathWithUnits)(height, function (x) {
32
+ return x / -2;
33
+ })), "appearance:none;background:transparent;&::-webkit-slider-thumb{-webkit-appearance:none;}", (0, _range.euiRangeThumbPerBrowser)([(0, _range.euiRangeThumbStyle)(euiThemeContext), 'background-color: inherit', "border-width: ".concat(thumbBorder), 'border-radius: 100%', "box-shadow: ".concat(thumbBoxShadow)].join(';\n')), "&:focus{outline:none;}&:focus-visible{", (0, _range.euiRangeThumbPerBrowser)((0, _range.euiRangeThumbFocusBoxShadow)(euiThemeContext)), ";};label:euiHue__range;")
34
+ };
35
+ };
@@ -14,10 +14,12 @@ var _react = _interopRequireWildcard(require("react"));
14
14
  var _classnames = _interopRequireDefault(require("classnames"));
15
15
  var _services = require("../../services");
16
16
  var _predicate = require("../../services/predicate");
17
+ var _global_styling = require("../../global_styling");
17
18
  var _i18n = require("../i18n");
18
19
  var _utils = require("./utils");
20
+ var _saturation = require("./saturation.styles");
19
21
  var _react2 = require("@emotion/react");
20
- var _excluded = ["className", "color", "data-test-subj", "hex", "id", "onChange"];
22
+ var _excluded = ["className", "color", "data-test-subj", "hex", "id", "onChange", "onKeyDown"];
21
23
  /*
22
24
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
23
25
  * or more contributor license agreements. Licensed under the Elastic License
@@ -37,9 +39,17 @@ var EuiSaturation = exports.EuiSaturation = /*#__PURE__*/(0, _react.forwardRef)(
37
39
  _ref$dataTestSubj = _ref['data-test-subj'],
38
40
  dataTestSubj = _ref$dataTestSubj === void 0 ? 'euiSaturation' : _ref$dataTestSubj,
39
41
  hex = _ref.hex,
40
- id = _ref.id,
42
+ _id = _ref.id,
41
43
  onChange = _ref.onChange,
44
+ onKeyDown = _ref.onKeyDown,
42
45
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
46
+ var classes = (0, _classnames.default)('euiSaturation', className);
47
+ var styles = (0, _services.useEuiMemoizedStyles)(_saturation.euiSaturationStyles);
48
+ var id = (0, _services.useGeneratedHtmlId)({
49
+ conditionalId: _id
50
+ });
51
+ var instructionsId = "".concat(id, "-instructions");
52
+ var indicatorId = "".concat(id, "-saturationIndicator");
43
53
  var _useEuiI18n = (0, _i18n.useEuiI18n)(['euiSaturation.ariaLabel', 'euiSaturation.screenReaderInstructions'], ['HSV color mode saturation and value 2-axis slider', "Arrow keys to navigate the square color gradient. Coordinates will be used to calculate HSV color mode 'saturation' and 'value' numbers, in the range of 0 to 1. Left and right to change the saturation. Up and down change the value."]),
44
54
  _useEuiI18n2 = (0, _slicedToArray2.default)(_useEuiI18n, 2),
45
55
  roleDescString = _useEuiI18n2[0],
@@ -71,7 +81,7 @@ var EuiSaturation = exports.EuiSaturation = /*#__PURE__*/(0, _react.forwardRef)(
71
81
  });
72
82
  }
73
83
  }, [color, lastColor]);
74
- var calculateColor = function calculateColor(_ref2) {
84
+ var calculateColor = (0, _react.useCallback)(function (_ref2) {
75
85
  var top = _ref2.top,
76
86
  height = _ref2.height,
77
87
  left = _ref2.left,
@@ -81,8 +91,8 @@ var EuiSaturation = exports.EuiSaturation = /*#__PURE__*/(0, _react.forwardRef)(
81
91
  var s = left / width;
82
92
  var v = 1 - top / height;
83
93
  return [h, s, v];
84
- };
85
- var handleUpdate = function handleUpdate(box) {
94
+ }, [color]);
95
+ var handleUpdate = (0, _react.useCallback)(function (box) {
86
96
  var left = box.left,
87
97
  top = box.top;
88
98
  setIndicator({
@@ -92,17 +102,18 @@ var EuiSaturation = exports.EuiSaturation = /*#__PURE__*/(0, _react.forwardRef)(
92
102
  var newColor = calculateColor(box);
93
103
  setLastColor(newColor);
94
104
  onChange(newColor);
95
- };
96
- var handleChange = function handleChange(location) {
105
+ }, [calculateColor, onChange]);
106
+ var handleChange = (0, _react.useCallback)(function (location) {
97
107
  if ((0, _predicate.isNil)(boxRef === null || boxRef === void 0 ? void 0 : boxRef.current)) return;
98
108
  var box = (0, _utils.getEventPosition)(location, boxRef.current);
99
109
  handleUpdate(box);
100
- };
110
+ }, [handleUpdate]);
101
111
  var _useMouseMove = (0, _services.useMouseMove)(handleChange, boxRef.current),
102
112
  _useMouseMove2 = (0, _slicedToArray2.default)(_useMouseMove, 2),
103
113
  handleMouseDown = _useMouseMove2[0],
104
114
  handleInteraction = _useMouseMove2[1];
105
- var handleKeyDown = function handleKeyDown(event) {
115
+ var handleKeyDown = (0, _react.useCallback)(function (event) {
116
+ onKeyDown === null || onKeyDown === void 0 || onKeyDown(event);
106
117
  if ((0, _predicate.isNil)(boxRef === null || boxRef === void 0 ? void 0 : boxRef.current)) return;
107
118
  var _boxRef$current$getBo2 = boxRef.current.getBoundingClientRect(),
108
119
  height = _boxRef$current$getBo2.height,
@@ -143,15 +154,14 @@ var EuiSaturation = exports.EuiSaturation = /*#__PURE__*/(0, _react.forwardRef)(
143
154
  height: height
144
155
  }, newPosition));
145
156
  onChange(newColor);
146
- };
147
- var classes = (0, _classnames.default)('euiSaturation', className);
148
- var instructionsId = "".concat(id, "-instructions");
157
+ }, [calculateColor, indicator, onChange, onKeyDown]);
149
158
  return (0, _react2.jsx)("div", (0, _extends2.default)({
150
159
  onMouseDown: handleMouseDown,
151
160
  onTouchStart: handleInteraction,
152
161
  onTouchMove: handleInteraction,
153
162
  onKeyDown: handleKeyDown,
154
163
  ref: ref,
164
+ css: styles.euiSaturation,
155
165
  className: classes,
156
166
  "data-test-subj": dataTestSubj,
157
167
  style: {
@@ -159,14 +169,17 @@ var EuiSaturation = exports.EuiSaturation = /*#__PURE__*/(0, _react.forwardRef)(
159
169
  },
160
170
  tabIndex: -1
161
171
  }, rest), (0, _react2.jsx)("div", {
172
+ css: styles.euiSaturation__lightness,
162
173
  className: "euiSaturation__lightness",
163
174
  ref: boxRef
164
175
  }, (0, _react2.jsx)("div", {
176
+ css: styles.euiSaturation__saturation,
165
177
  className: "euiSaturation__saturation"
166
178
  })), (0, _react2.jsx)("button", {
167
- id: "".concat(id, "-saturationIndicator"),
179
+ id: indicatorId,
180
+ css: styles.euiSaturation__indicator,
168
181
  className: "euiSaturation__indicator",
169
- style: _objectSpread({}, indicator),
182
+ style: (0, _global_styling.logicalStyles)(indicator),
170
183
  "aria-roledescription": roleDescString,
171
184
  "aria-label": hex,
172
185
  "aria-describedby": instructionsId
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiSaturationStyles = void 0;
7
+ var _react = require("@emotion/react");
8
+ var _global_styling = require("../../global_styling");
9
+ /*
10
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
11
+ * or more contributor license agreements. Licensed under the Elastic License
12
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
13
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
14
+ * Side Public License, v 1.
15
+ */
16
+
17
+ var euiSaturationStyles = exports.euiSaturationStyles = function euiSaturationStyles(euiThemeContext) {
18
+ var euiTheme = euiThemeContext.euiTheme;
19
+ var indicatorSize = euiTheme.size.m;
20
+ var borderRadius = (0, _global_styling.mathWithUnits)(euiTheme.border.radius.medium, function (x) {
21
+ return x / 2;
22
+ });
23
+ return {
24
+ euiSaturation: /*#__PURE__*/(0, _react.css)("z-index:3;position:relative;", (0, _global_styling.logicalCSS)('width', '100%'), " ", (0, _global_styling.logicalCSS)('padding-bottom', '100%'), " border-radius:", borderRadius, ";touch-action:none;&:focus,&:focus-within{outline:none;.euiSaturation__indicator{outline:none;box-shadow:0 0 0 ", euiTheme.focus.width, " ", euiTheme.colors.primary, ";border-color:", euiTheme.colors.primary, ";}};label:euiSaturation;"),
25
+ euiSaturation__lightness: /*#__PURE__*/(0, _react.css)("position:absolute;inset:0;", (0, _global_styling.logicalCSS)('top', '-1px'), "border-radius:", borderRadius, ";background:linear-gradient(\n to right,\n rgba(255, 255, 255, 1),\n rgba(255, 255, 255, 0)\n );;label:euiSaturation__lightness;"),
26
+ euiSaturation__saturation: /*#__PURE__*/(0, _react.css)("position:absolute;inset:0;", (0, _global_styling.logicalCSS)('top', '-1px'), "border-radius:", borderRadius, ";background:linear-gradient(to top, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));;label:euiSaturation__saturation;"),
27
+ euiSaturation__indicator: /*#__PURE__*/(0, _react.css)("position:absolute;", (0, _global_styling.logicalSizeCSS)(indicatorSize), " transform:translateX(-50%) translateY(-50%);border:", euiTheme.border.width.thin, " solid ", euiTheme.colors.darkestShade, ";border-radius:100%;&::before{content:'';position:absolute;inset:0;border-radius:100%;border:", euiTheme.border.width.thin, " solid ", euiTheme.colors.lightestShade, ";};label:euiSaturation__indicator;")
28
+ };
29
+ };
@@ -110,9 +110,9 @@ var EuiFilePickerClass = exports.EuiFilePickerClass = /*#__PURE__*/function (_Co
110
110
  var _ref = this.context,
111
111
  defaultFullWidth = _ref.defaultFullWidth;
112
112
  return (0, _react2.jsx)(_i18n.EuiI18n, {
113
- token: "euiFilePicker.clearSelectedFiles",
114
- default: "Clear selected files"
115
- }, function (clearSelectedFiles) {
113
+ token: "euiFilePicker.removeSelectedAriaLabel",
114
+ default: "Remove selected files"
115
+ }, function (removeSelectedAriaLabel) {
116
116
  var _this2$props = _this2.props,
117
117
  stylesMemoizer = _this2$props.stylesMemoizer,
118
118
  id = _this2$props.id,
@@ -154,7 +154,7 @@ var EuiFilePickerClass = exports.EuiFilePickerClass = /*#__PURE__*/function (_Co
154
154
  } else if (isOverridingInitialPrompt && !disabled) {
155
155
  if (normalFormControl) {
156
156
  clearButton = (0, _react2.jsx)(_form_control_layout_clear_button.EuiFormControlLayoutClearButton, {
157
- "aria-label": clearSelectedFiles,
157
+ "aria-label": removeSelectedAriaLabel,
158
158
  css: [styles.euiFilePicker__clearButton, rightIconStyles, ";label:clearButton;"],
159
159
  className: "euiFilePicker__clearButton",
160
160
  onClick: _this2.removeFiles,
@@ -162,7 +162,7 @@ var EuiFilePickerClass = exports.EuiFilePickerClass = /*#__PURE__*/function (_Co
162
162
  });
163
163
  } else {
164
164
  clearButton = (0, _react2.jsx)(_button.EuiButtonEmpty, {
165
- "aria-label": clearSelectedFiles,
165
+ "aria-label": removeSelectedAriaLabel,
166
166
  css: styles.euiFilePicker__clearButton,
167
167
  className: "euiFilePicker__clearButton",
168
168
  size: "xs",
@@ -88,7 +88,7 @@ var euiRangeThumbStyle = exports.euiRangeThumbStyle = function euiRangeThumbStyl
88
88
  return "\n ".concat(euiRangeThumbBoxShadow(euiThemeContext), ";\n ").concat(euiRangeThumbBorder(euiThemeContext), ";\n cursor: pointer;\n background-color: ").concat(range.thumbBackgroundColor, ";\n padding: 0;\n block-size: ").concat(range.thumbHeight, ";\n inline-size: ").concat(range.thumbWidth, ";\n box-sizing: border-box; // required for firefox or the border makes the width and height to increase\n ");
89
89
  };
90
90
  var euiRangeThumbPerBrowser = exports.euiRangeThumbPerBrowser = function euiRangeThumbPerBrowser(content) {
91
- return "\n &::-webkit-slider-thumb { ".concat(content, "; }\n &::-moz-range-thumb { ").concat(content, "; }\n &::-ms-thumb {").concat(content, "; }\n ");
91
+ return "\n &::-webkit-slider-thumb { ".concat(content, "; }\n &::-moz-range-thumb { ").concat(content, "; }\n &::-ms-thumb {").concat(content, "; }\n ");
92
92
  };
93
93
  var euiRangeThumbFocus = exports.euiRangeThumbFocus = function euiRangeThumbFocus(euiThemeContext, color) {
94
94
  var range = euiRangeVariables(euiThemeContext);
@@ -19,7 +19,7 @@ var _form = require("../form/form.styles");
19
19
  var euiModalStyles = exports.euiModalStyles = function euiModalStyles(euiThemeContext) {
20
20
  var euiTheme = euiThemeContext.euiTheme;
21
21
  return {
22
- euiModal: /*#__PURE__*/(0, _react.css)((0, _mixins.euiShadowXLarge)(euiThemeContext), " display:flex;flex-direction:column;max-block-size:75vh;position:relative;background-color:", euiTheme.colors.emptyShade, ";border-radius:", euiTheme.border.radius.medium, ";z-index:", euiTheme.levels.modal, ";min-inline-size:", (0, _form.euiFormVariables)(euiThemeContext).maxWidth, ";max-inline-size:calc(100vw - ", euiTheme.size.base, ");", _global_styling.euiCanAnimate, "{animation:", (0, _global_styling.euiAnimSlideInUp)(euiTheme.size.xxl), " ", euiTheme.animation.slow, " ", euiTheme.animation.bounce, ";}", (0, _global_styling.euiMaxBreakpoint)(euiThemeContext, 'm'), "{position:fixed;inset:0;border-radius:0;inline-size:100vw!important;min-inline-size:0!important;max-inline-size:none!important;max-block-size:100vh!important;}&:focus{outline:none;};label:euiModal;"),
22
+ euiModal: /*#__PURE__*/(0, _react.css)((0, _mixins.euiShadowXLarge)(euiThemeContext), " display:flex;flex-direction:column;max-block-size:75vh;position:relative;background-color:", euiTheme.colors.emptyShade, ";border-radius:", euiTheme.border.radius.medium, ";z-index:", euiTheme.levels.modal, ";min-inline-size:", (0, _form.euiFormVariables)(euiThemeContext).maxWidth, ";max-inline-size:calc(100vw - ", euiTheme.size.base, ");overflow:hidden;", _global_styling.euiCanAnimate, "{animation:", (0, _global_styling.euiAnimSlideInUp)(euiTheme.size.xxl), " ", euiTheme.animation.slow, " ", euiTheme.animation.bounce, ";}", (0, _global_styling.euiMaxBreakpoint)(euiThemeContext, 'm'), "{position:fixed;inset:0;border-radius:0;inline-size:100vw!important;min-inline-size:0!important;max-inline-size:none!important;max-block-size:100vh!important;}&:focus{outline:none;};label:euiModal;"),
23
23
  // Variants
24
24
  defaultMaxWidth: /*#__PURE__*/(0, _react.css)("max-inline-size:min(\n ", euiTheme.breakpoint.m, "px,\n calc(100vw - ", euiTheme.size.base, ")\n );;label:defaultMaxWidth;"),
25
25
  confirmation: /*#__PURE__*/(0, _react.css)("min-inline-size:", (0, _form.euiFormVariables)(euiThemeContext).maxWidth, ";", (0, _global_styling.euiMaxBreakpoint)(euiThemeContext, 'm'), "{", (0, _mixins.euiShadowXLarge)(euiThemeContext, {
@@ -119,9 +119,11 @@ var EuiPopover = exports.EuiPopover = /*#__PURE__*/function (_Component) {
119
119
  });
120
120
  (0, _defineProperty2.default)(_this, "handleStrandedFocus", function () {
121
121
  _this.strandedFocusTimeout = window.setTimeout(function () {
122
- // If `returnFocus` failed and focus was stranded on the body,
123
- // attempt to manually restore focus to the toggle button
124
- if (document.activeElement === document.body) {
122
+ // If `returnFocus` failed and focus was stranded,
123
+ // attempt to manually restore focus to the toggle button.
124
+ // The stranded focus is either in most cases on body but
125
+ // it will be on the panel instead on mount when isOpen=true
126
+ if (document.activeElement === document.body || document.activeElement === _this.panel) {
125
127
  if (!_this.button) return;
126
128
  var focusableItems = (0, _tabbable.focusable)(_this.button);
127
129
  if (!focusableItems.length) return;
@@ -83,5 +83,5 @@ var EuiProvider = exports.EuiProvider = function EuiProvider(_ref) {
83
83
  children: Utilities && (0, _react2.jsx)(Utilities, null)
84
84
  })), (0, _react2.jsx)(_component_defaults.EuiComponentDefaultsProvider, {
85
85
  componentDefaults: componentDefaults
86
- }, (0, _react2.jsx)(_services.CurrentEuiBreakpointProvider, null, children)))));
86
+ }, children))));
87
87
  };
@@ -72,10 +72,18 @@ var euiOverflowShadowStyles = function euiOverflowShadowStyles(_ref3) {
72
72
  gradient = "".concat(gradientEnd);
73
73
  }
74
74
  }
75
+
76
+ // Chrome+Edge has a very bizarre edge case bug where `mask-image` stops working
77
+ // This workaround forces a stacking context on the scrolling container, which
78
+ // hopefully addresses the bug. @see:
79
+ // - https://issues.chromium.org/issues/40778541
80
+ // - https://github.com/elastic/kibana/issues/180828
81
+ // - https://github.com/elastic/eui/pull/6343#issuecomment-1302732021
82
+ var chromiumMaskWorkaround = 'transform: translateZ(0);';
75
83
  if (direction === 'y') {
76
- return "mask-image: linear-gradient(to bottom, ".concat(gradient, ");");
84
+ return "mask-image: linear-gradient(to bottom, ".concat(gradient, "); ").concat(chromiumMaskWorkaround);
77
85
  } else {
78
- return "mask-image: linear-gradient(to right, ".concat(gradient, ");");
86
+ return "mask-image: linear-gradient(to right, ".concat(gradient, "); ").concat(chromiumMaskWorkaround);
79
87
  }
80
88
  };
81
89
 
@@ -9,7 +9,7 @@ exports.CurrentEuiBreakpointProvider = exports.CurrentEuiBreakpointContext = voi
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
  var _common = require("../../components/common");
12
- var _theme = require("../theme");
12
+ var _hooks = require("../theme/hooks");
13
13
  var _throttle = require("../throttle");
14
14
  var _sorting = require("./_sorting");
15
15
  var _react2 = require("@emotion/react");
@@ -26,13 +26,15 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
26
26
  var CurrentEuiBreakpointContext = exports.CurrentEuiBreakpointContext = /*#__PURE__*/(0, _react.createContext)(undefined);
27
27
 
28
28
  /**
29
- * Top level provider (nested within EuiProvider) which provides a single
30
- * resize listener that returns the current breakpoint based on window width
29
+ * Returns the current breakpoint based on window width.
30
+ * Typically only called by the top-level `EuiProvider` (to reduce the number
31
+ * of window resize listeners on the page). Also conditionally called if a
32
+ * nested `EuiThemeProvider` defines a `modify.breakpoint` override
31
33
  */
32
34
  var CurrentEuiBreakpointProvider = exports.CurrentEuiBreakpointProvider = function CurrentEuiBreakpointProvider(_ref) {
33
35
  var children = _ref.children;
34
36
  // Obtain the breakpoints map from the EUI theme
35
- var _useEuiTheme = (0, _theme.useEuiTheme)(),
37
+ var _useEuiTheme = (0, _hooks.useEuiTheme)(),
36
38
  breakpoints = _useEuiTheme.euiTheme.breakpoint;
37
39
 
38
40
  // Ensure the breakpoints map is sorted from largest value to smallest
@@ -16,6 +16,7 @@ var _react2 = _interopRequireWildcard(require("react"));
16
16
  var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
17
17
  var _emotion = require("../emotion");
18
18
  var _css2 = require("../emotion/css");
19
+ var _current_breakpoint = require("../breakpoint/current_breakpoint");
19
20
  var _context = require("./context");
20
21
  var _emotion2 = require("./emotion");
21
22
  var _style_memoization = require("./style_memoization");
@@ -52,6 +53,13 @@ var EuiThemeProvider = exports.EuiThemeProvider = function EuiThemeProvider(_ref
52
53
  system = _useState2[0],
53
54
  setSystem = _useState2[1];
54
55
  var prevSystemKey = (0, _react2.useRef)(system.key);
56
+
57
+ // To reduce the number of window resize listeners, only render a
58
+ // CurrentEuiBreakpointProvider for the top level parent theme, or for
59
+ // nested themes only if modified breakpoint overrides are passed
60
+ var EuiConditionalBreakpointProvider = (0, _react2.useMemo)(function () {
61
+ return isGlobalTheme || _modifications !== null && _modifications !== void 0 && _modifications.breakpoint ? _current_breakpoint.CurrentEuiBreakpointProvider : _react2.Fragment;
62
+ }, [isGlobalTheme, _modifications]);
55
63
  var _useState3 = (0, _react2.useState)((0, _utils.mergeDeep)(parentModifications, _modifications)),
56
64
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
57
65
  modifications = _useState4[0],
@@ -161,5 +169,5 @@ var EuiThemeProvider = exports.EuiThemeProvider = function EuiThemeProvider(_ref
161
169
  value: theme
162
170
  }, (0, _react.jsx)(_context.EuiNestedThemeContext.Provider, {
163
171
  value: nestedThemeContext
164
- }, (0, _react.jsx)(_style_memoization.EuiThemeMemoizedStylesProvider, null, (0, _react.jsx)(_emotion2.EuiEmotionThemeProvider, null, renderedChildren))))))));
172
+ }, (0, _react.jsx)(_style_memoization.EuiThemeMemoizedStylesProvider, null, (0, _react.jsx)(_emotion2.EuiEmotionThemeProvider, null, (0, _react.jsx)(EuiConditionalBreakpointProvider, null, renderedChildren)))))))));
165
173
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@elastic/eui",
3
3
  "description": "Elastic UI Component Library",
4
- "version": "95.2.0",
4
+ "version": "95.3.0",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "main": "lib",
7
7
  "module": "es",
@@ -118,7 +118,8 @@
118
118
  "@storybook/addon-links": "^8.0.5",
119
119
  "@storybook/addon-webpack5-compiler-babel": "^3.0.3",
120
120
  "@storybook/blocks": "^8.0.5",
121
- "@storybook/manager-api": "^8.1.2",
121
+ "@storybook/manager-api": "^8.1.3",
122
+ "@storybook/preview-api": "^8.1.3",
122
123
  "@storybook/react": "^8.0.5",
123
124
  "@storybook/react-webpack5": "^8.0.5",
124
125
  "@storybook/test": "^8.0.5",
@@ -134,7 +135,8 @@
134
135
  "@types/chroma-js": "^2.4.0",
135
136
  "@types/classnames": "^2.3.1",
136
137
  "@types/enzyme": "^3.10.5",
137
- "@types/jest": "^24.0.6",
138
+ "@types/jest": "^29.5.12",
139
+ "@types/prettier": "2.7.3",
138
140
  "@types/react": "^18.2.14",
139
141
  "@types/react-dom": "^18.2.6",
140
142
  "@types/react-is": "^17.0.3",
@@ -150,7 +152,7 @@
150
152
  "assert": "^2.0.0",
151
153
  "autoprefixer": "^9.8.6",
152
154
  "axe-core": "^4.9.0",
153
- "babel-jest": "^24.1.0",
155
+ "babel-jest": "^29.7.0",
154
156
  "babel-loader": "^9.1.2",
155
157
  "babel-plugin-add-module-exports": "^1.0.4",
156
158
  "babel-plugin-inline-react-svg": "^2.0.2",
@@ -179,7 +181,7 @@
179
181
  "eslint-config-prettier": "^8.8.0",
180
182
  "eslint-import-resolver-webpack": "^0.13.2",
181
183
  "eslint-plugin-import": "^2.27.5",
182
- "eslint-plugin-jest": "^24.1.0",
184
+ "eslint-plugin-jest": "^28.5.0",
183
185
  "eslint-plugin-jsx-a11y": "^6.7.1",
184
186
  "eslint-plugin-local": "^1.0.0",
185
187
  "eslint-plugin-mocha": "^10.1.0",
@@ -196,8 +198,9 @@
196
198
  "html-format": "^1.0.1",
197
199
  "html-webpack-plugin": "^5.5.0",
198
200
  "inquirer": "^9.1.4",
199
- "jest": "^24.1.0",
200
- "jest-cli": "^24.1.0",
201
+ "jest": "^29.7.0",
202
+ "jest-cli": "^29.7.0",
203
+ "jest-environment-jsdom": "^29.7.0",
201
204
  "loki": "^0.35.0",
202
205
  "moment": "^2.27.0",
203
206
  "moment-timezone": "^0.5.31",
@@ -1,6 +1,5 @@
1
1
  // Components
2
2
 
3
- @import 'color_picker/index';
4
3
  @import 'combo_box/index';
5
4
  @import 'date_picker/index';
6
5
  @import 'datagrid/index';
@@ -100,4 +100,9 @@
100
100
  } @else {
101
101
  @warn "euiOverflowShadow() expects direction to be 'y' or 'x' but got '#{$direction}'";
102
102
  }
103
+
104
+ // Chrome+Edge has a very bizarre edge case bug where `mask-image` stops working
105
+ // This workaround forces a stacking context on the scrolling container, which
106
+ // hopefully addresses the bug. @see https://github.com/elastic/eui/pull/7855
107
+ transform: translateZ(0);
103
108
  }
@@ -3,4 +3,3 @@
3
3
  @import 'form_control_layout';
4
4
  @import 'form_control_layout_delimited';
5
5
  @import 'form_controls';
6
- @import 'hue';
@@ -10,9 +10,10 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _classnames = _interopRequireDefault(require("classnames"));
13
- var _common = require("../../common");
13
+ var _services = require("../../../services");
14
14
  var _color_palette_display_fixed = require("./color_palette_display_fixed");
15
15
  var _color_palette_display_gradient = require("./color_palette_display_gradient");
16
+ var _color_palette_display = require("./color_palette_display.styles");
16
17
  var _react2 = require("@emotion/react");
17
18
  var _excluded = ["type", "palette", "className", "size"];
18
19
  /*
@@ -22,12 +23,7 @@ var _excluded = ["type", "palette", "className", "size"];
22
23
  * in compliance with, at your election, the Elastic License 2.0 or the Server
23
24
  * Side Public License, v 1.
24
25
  */
25
- var sizeToClassNameMap = {
26
- xs: 'euiColorPaletteDisplay--sizeExtraSmall',
27
- s: 'euiColorPaletteDisplay--sizeSmall',
28
- m: 'euiColorPaletteDisplay--sizeMedium'
29
- };
30
- var SIZES = exports.SIZES = (0, _common.keysOf)(sizeToClassNameMap);
26
+ var SIZES = exports.SIZES = ['xs', 's', 'm'];
31
27
  var EuiColorPaletteDisplay = exports.EuiColorPaletteDisplay = function EuiColorPaletteDisplay(_ref) {
32
28
  var _ref$type = _ref.type,
33
29
  type = _ref$type === void 0 ? 'fixed' : _ref$type,
@@ -36,11 +32,15 @@ var EuiColorPaletteDisplay = exports.EuiColorPaletteDisplay = function EuiColorP
36
32
  _ref$size = _ref.size,
37
33
  size = _ref$size === void 0 ? 's' : _ref$size,
38
34
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
39
- var classes = (0, _classnames.default)('euiColorPaletteDisplay', className, sizeToClassNameMap[size]);
35
+ var classes = (0, _classnames.default)('euiColorPaletteDisplay', className);
36
+ var styles = (0, _services.useEuiMemoizedStyles)(_color_palette_display.euiColorPaletteDisplayStyles);
37
+ var cssStyles = [styles.euiColorPaletteDisplay, styles[size]];
40
38
  return (0, _react2.jsx)(_react.default.Fragment, null, type === 'fixed' ? (0, _react2.jsx)(_color_palette_display_fixed.EuiColorPaletteDisplayFixed, (0, _extends2.default)({
39
+ css: cssStyles,
41
40
  className: classes,
42
41
  palette: palette
43
42
  }, rest)) : (0, _react2.jsx)(_color_palette_display_gradient.EuiColorPaletteDisplayGradient, (0, _extends2.default)({
43
+ css: cssStyles,
44
44
  className: classes,
45
45
  palette: palette
46
46
  }, rest)));
@@ -49,7 +49,7 @@ EuiColorPaletteDisplay.propTypes = {
49
49
  /**
50
50
  * Height of the palette display
51
51
  */
52
- size: _propTypes.default.oneOf(["xs", "s", "m"]),
52
+ size: _propTypes.default.any,
53
53
  /**
54
54
  * Specify the type of palette.
55
55
  * `gradient`: each color fades into the next.
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiColorPaletteDisplayStyles = void 0;
7
+ var _react = require("@emotion/react");
8
+ var _services = require("../../../services");
9
+ var _global_styling = require("../../../global_styling");
10
+ /*
11
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
12
+ * or more contributor license agreements. Licensed under the Elastic License
13
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
14
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
15
+ * Side Public License, v 1.
16
+ */
17
+
18
+ var euiColorPaletteDisplayStyles = exports.euiColorPaletteDisplayStyles = function euiColorPaletteDisplayStyles(euiThemeContext) {
19
+ var euiTheme = euiThemeContext.euiTheme;
20
+
21
+ // Border is a pseudo element with transparency
22
+ var border = "".concat(euiTheme.border.width.thin, " solid ").concat((0, _services.transparentize)(euiTheme.colors.darkestShade, 0.2));
23
+ return {
24
+ euiColorPaletteDisplay: /*#__PURE__*/(0, _react.css)("position:relative;display:flex;flex-direction:row;overflow:hidden;&::after{content:'';position:absolute;inset:0;pointer-events:none;border:", border, ";border-radius:inherit;};label:euiColorPaletteDisplay;"),
25
+ // Sizes
26
+ xs: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('height', euiTheme.size.xs), " border-radius:", euiTheme.size.xs, ";;label:xs;"),
27
+ s: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('height', euiTheme.size.s), " border-radius:", euiTheme.size.s, ";;label:s;"),
28
+ m: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('height', euiTheme.size.base), " border-radius:", euiTheme.size.base, ";;label:m;")
29
+ };
30
+ };
@@ -10,6 +10,7 @@ var _react = _interopRequireDefault(require("react"));
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
  var _utils = require("../utils");
12
12
  var _accessibility = require("../../accessibility");
13
+ var _color_palette_display_fixed = require("./color_palette_display_fixed.styles");
13
14
  var _react2 = require("@emotion/react");
14
15
  var _excluded = ["palette", "title"];
15
16
  /*
@@ -37,6 +38,7 @@ var EuiColorPaletteDisplayFixed = exports.EuiColorPaletteDisplayFixed = function
37
38
  // aria-hidden="true" is to ensure color blocks are ignored by screen readers,
38
39
  // and the only accessible text for options is the EuiScreenReaderOnly {title}
39
40
  "aria-hidden": "true",
41
+ css: _color_palette_display_fixed.euiColorPaletteDisplayFixed__bleedArea,
40
42
  className: "euiColorPaletteDisplayFixed__bleedArea"
41
43
  }, paletteStops));
42
44
  };
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiColorPaletteDisplayFixed__bleedArea = void 0;
7
+ var _react = require("@emotion/react");
8
+ var _global_styling = require("../../../global_styling");
9
+ /*
10
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
11
+ * or more contributor license agreements. Licensed under the Elastic License
12
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
13
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
14
+ * Side Public License, v 1.
15
+ */
16
+
17
+ // In a few screen sizes the palette display doesn't get a fully 100% width -
18
+ // it gets 1px less on width. For this reason we're adding a horizontal 1px bleed area
19
+ var euiColorPaletteDisplayFixed__bleedArea = exports.euiColorPaletteDisplayFixed__bleedArea = /*#__PURE__*/(0, _react.css)("position:absolute;inset:0;", (0, _global_styling.logicalCSS)('right', '-1px'), " display:flex;;label:euiColorPaletteDisplayFixed__bleedArea;");