@elastic/eui 72.0.0 → 72.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 (99) hide show
  1. package/dist/eui_charts_theme.js +13 -1
  2. package/dist/eui_charts_theme.js.map +1 -1
  3. package/dist/eui_theme_dark.css +0 -148
  4. package/dist/eui_theme_dark.min.css +1 -1
  5. package/dist/eui_theme_light.css +0 -148
  6. package/dist/eui_theme_light.min.css +1 -1
  7. package/es/components/basic_table/basic_table.js +2 -2
  8. package/es/components/basic_table/in_memory_table.js +3 -6
  9. package/es/components/basic_table/table.a11y.js +128 -0
  10. package/es/components/color_picker/color_picker.styles.js +16 -0
  11. package/es/components/color_picker/color_stops/color_stop_thumb.js +19 -7
  12. package/es/components/color_picker/color_stops/color_stop_thumb.styles.js +59 -0
  13. package/es/components/color_picker/color_stops/color_stops.js +25 -15
  14. package/es/components/color_picker/color_stops/color_stops.styles.js +65 -0
  15. package/es/components/form/range/range_highlight.styles.js +1 -1
  16. package/es/components/form/range/range_levels.styles.js +1 -1
  17. package/es/components/form/range/range_track.js +5 -2
  18. package/es/components/image/image.a11y.js +55 -0
  19. package/es/components/key_pad_menu/key_pad_menu.a11y.js +158 -0
  20. package/es/components/popover/popover.js +2 -2
  21. package/es/components/table/table_footer_cell.js +1 -1
  22. package/es/components/table/table_header_cell.js +1 -1
  23. package/es/components/table/table_row_cell.js +2 -2
  24. package/es/services/color/manipulation.js +9 -0
  25. package/es/services/index.js +11 -11
  26. package/eui.d.ts +154 -106
  27. package/i18ntokens.json +16 -16
  28. package/lib/components/basic_table/basic_table.js +2 -2
  29. package/lib/components/basic_table/in_memory_table.js +3 -6
  30. package/lib/components/basic_table/table.a11y.js +139 -0
  31. package/lib/components/color_picker/color_picker.styles.js +26 -0
  32. package/lib/components/color_picker/color_stops/color_stop_thumb.js +19 -6
  33. package/lib/components/color_picker/color_stops/color_stop_thumb.styles.js +69 -0
  34. package/lib/components/color_picker/color_stops/color_stops.js +25 -14
  35. package/lib/components/color_picker/color_stops/color_stops.styles.js +73 -0
  36. package/lib/components/form/range/range_highlight.styles.js +1 -1
  37. package/lib/components/form/range/range_levels.styles.js +1 -1
  38. package/lib/components/form/range/range_track.js +6 -2
  39. package/lib/components/image/image.a11y.js +61 -0
  40. package/lib/components/key_pad_menu/key_pad_menu.a11y.js +163 -0
  41. package/lib/components/popover/popover.js +2 -2
  42. package/lib/components/table/table_footer_cell.js +1 -1
  43. package/lib/components/table/table_header_cell.js +1 -1
  44. package/lib/components/table/table_row_cell.js +2 -2
  45. package/lib/services/color/manipulation.js +14 -2
  46. package/lib/services/index.js +65 -58
  47. package/optimize/es/components/basic_table/table.a11y.js +128 -0
  48. package/optimize/es/components/color_picker/color_picker.styles.js +16 -0
  49. package/optimize/es/components/color_picker/color_stops/color_stop_thumb.js +19 -7
  50. package/optimize/es/components/color_picker/color_stops/color_stop_thumb.styles.js +59 -0
  51. package/optimize/es/components/color_picker/color_stops/color_stops.js +25 -15
  52. package/optimize/es/components/color_picker/color_stops/color_stops.styles.js +65 -0
  53. package/optimize/es/components/form/range/range_highlight.styles.js +1 -1
  54. package/optimize/es/components/form/range/range_levels.styles.js +1 -1
  55. package/optimize/es/components/form/range/range_track.js +5 -2
  56. package/optimize/es/components/image/image.a11y.js +55 -0
  57. package/optimize/es/components/key_pad_menu/key_pad_menu.a11y.js +148 -0
  58. package/optimize/es/components/popover/popover.js +2 -2
  59. package/optimize/es/services/color/manipulation.js +9 -0
  60. package/optimize/es/services/index.js +11 -11
  61. package/optimize/lib/components/basic_table/table.a11y.js +139 -0
  62. package/optimize/lib/components/color_picker/color_picker.styles.js +26 -0
  63. package/optimize/lib/components/color_picker/color_stops/color_stop_thumb.js +19 -6
  64. package/optimize/lib/components/color_picker/color_stops/color_stop_thumb.styles.js +69 -0
  65. package/optimize/lib/components/color_picker/color_stops/color_stops.js +25 -14
  66. package/optimize/lib/components/color_picker/color_stops/color_stops.styles.js +73 -0
  67. package/optimize/lib/components/form/range/range_highlight.styles.js +1 -1
  68. package/optimize/lib/components/form/range/range_levels.styles.js +1 -1
  69. package/optimize/lib/components/form/range/range_track.js +6 -2
  70. package/optimize/lib/components/image/image.a11y.js +61 -0
  71. package/optimize/lib/components/key_pad_menu/key_pad_menu.a11y.js +163 -0
  72. package/optimize/lib/components/popover/popover.js +2 -2
  73. package/optimize/lib/services/color/manipulation.js +14 -2
  74. package/optimize/lib/services/index.js +65 -58
  75. package/package.json +1 -1
  76. package/src/components/color_picker/_index.scss +0 -1
  77. package/src/themes/amsterdam/overrides/_index.scss +0 -1
  78. package/test-env/components/basic_table/basic_table.js +2 -2
  79. package/test-env/components/basic_table/in_memory_table.js +3 -6
  80. package/test-env/components/basic_table/table.a11y.js +139 -0
  81. package/test-env/components/color_picker/color_picker.styles.js +26 -0
  82. package/test-env/components/color_picker/color_stops/color_stop_thumb.js +19 -6
  83. package/test-env/components/color_picker/color_stops/color_stop_thumb.styles.js +69 -0
  84. package/test-env/components/color_picker/color_stops/color_stops.js +25 -14
  85. package/test-env/components/color_picker/color_stops/color_stops.styles.js +73 -0
  86. package/test-env/components/form/range/range_highlight.styles.js +1 -1
  87. package/test-env/components/form/range/range_levels.styles.js +1 -1
  88. package/test-env/components/form/range/range_track.js +6 -2
  89. package/test-env/components/image/image.a11y.js +61 -0
  90. package/test-env/components/key_pad_menu/key_pad_menu.a11y.js +163 -0
  91. package/test-env/components/popover/popover.js +2 -2
  92. package/test-env/components/table/table_footer_cell.js +1 -1
  93. package/test-env/components/table/table_header_cell.js +1 -1
  94. package/test-env/components/table/table_row_cell.js +2 -2
  95. package/test-env/services/color/manipulation.js +14 -2
  96. package/test-env/services/index.js +65 -58
  97. package/src/components/color_picker/color_stops/_color_stops.scss +0 -101
  98. package/src/components/color_picker/color_stops/_index.scss +0 -1
  99. package/src/themes/amsterdam/overrides/_color_stops.scss +0 -58
@@ -47,6 +47,8 @@ var _spacer = require("../../spacer");
47
47
 
48
48
  var _range_thumb = require("../../form/range/range_thumb");
49
49
 
50
+ var _color_stop_thumb = require("./color_stop_thumb.styles");
51
+
50
52
  var _react2 = require("@emotion/react");
51
53
 
52
54
  var _excluded = ["className", "stop", "color", "onChange", "onFocus", "onRemove", "globalMin", "globalMax", "localMin", "localMax", "min", "max", "isRangeMin", "isRangeMax", "parentRef", "colorPickerMode", "colorPickerShowAlpha", "colorPickerSwatches", "disabled", "readOnly", "isPopoverOpen", "openPopover", "closePopover", "data-index", "aria-valuetext", "style", "valueInputProps"];
@@ -264,13 +266,20 @@ var EuiColorStopThumb = function EuiColorStopThumb(_ref) {
264
266
  }
265
267
  };
266
268
 
267
- var classes = (0, _classnames.default)('euiColorStopPopover', {
268
- 'euiColorStopPopover-hasFocus': hasFocus || isPopoverOpen
269
- }, className);
270
- return (0, _react2.jsx)(_popover.EuiPopover, (0, _extends2.default)({}, rest, {
269
+ var euiTheme = (0, _services.useEuiTheme)();
270
+ var popoverStyles = (0, _color_stop_thumb.euiColorStopThumbPopoverStyles)(euiTheme);
271
+ var cssPopoverStyles = [popoverStyles.euiColorStopThumbPopover, (hasFocus || isPopoverOpen) && popoverStyles.hasFocus];
272
+ var thumbStyles = (0, _color_stop_thumb.euiColorStopThumbStyles)(euiTheme);
273
+ var cssThumbStyles = [thumbStyles.euiColorStopThumb, isPopoverOpen && thumbStyles.isPopoverOpen];
274
+ var colorStopStyles = (0, _color_stop_thumb.euiColorStopStyles)(euiTheme);
275
+ var cssColorStopStyles = colorStopStyles.euiColorStop;
276
+ var classes = (0, _classnames.default)('euiColorStopPopover', className);
277
+ return (0, _react2.jsx)(_popover.EuiPopover, (0, _extends2.default)({
278
+ css: cssPopoverStyles
279
+ }, rest, {
271
280
  ref: popoverRef,
272
281
  className: classes,
273
- anchorClassName: "euiColorStopPopover__anchor",
282
+ anchorClassName: "euiColorStopThumbPopover__anchor",
274
283
  panelPaddingSize: "s",
275
284
  isOpen: isPopoverOpen,
276
285
  closePopover: closePopover,
@@ -278,7 +287,9 @@ var EuiColorStopThumb = function EuiColorStopThumb(_ref) {
278
287
  focusTrapProps: {
279
288
  clickOutsideDisables: false
280
289
  },
281
- panelClassName: numberInputRef ? undefined : 'euiColorStopPopover-isLoadingPanel',
290
+ panelProps: {
291
+ css: numberInputRef ? undefined : popoverStyles.isLoadingPanel
292
+ },
282
293
  style: _objectSpread(_objectSpread({}, style), {}, {
283
294
  left: "".concat(getPositionFromStopFn(stop), "%")
284
295
  }),
@@ -310,6 +321,7 @@ var EuiColorStopThumb = function EuiColorStopThumb(_ref) {
310
321
  "aria-label": ariaLabel,
311
322
  title: title,
312
323
  className: "euiColorStopThumb",
324
+ css: cssThumbStyles,
313
325
  tabIndex: -1,
314
326
  style: {
315
327
  background: background
@@ -319,6 +331,7 @@ var EuiColorStopThumb = function EuiColorStopThumb(_ref) {
319
331
  })
320
332
  }), (0, _react2.jsx)("div", {
321
333
  className: "euiColorStop",
334
+ css: cssColorStopStyles,
322
335
  "data-test-subj": "euiColorStopPopover"
323
336
  }, (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("p", {
324
337
  "aria-live": "polite"
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiColorStopThumbStyles = exports.euiColorStopThumbPopoverStyles = exports.euiColorStopStyles = void 0;
7
+
8
+ var _react = require("@emotion/react");
9
+
10
+ var _global_styling = require("../../../global_styling");
11
+
12
+ var _range = require("../../form/range/range.styles");
13
+
14
+ var _color_picker = require("../color_picker.styles");
15
+
16
+ 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)."; }
17
+
18
+ var _ref2 = process.env.NODE_ENV === "production" ? {
19
+ name: "zrzkfg-euiColorStopThumb",
20
+ styles: "&:not(:disabled){inset-block-start:0;margin-block-start:0;pointer-events:auto;cursor:grab;&:active{cursor:grabbing;}};label:euiColorStopThumb;"
21
+ } : {
22
+ name: "zrzkfg-euiColorStopThumb",
23
+ styles: "&:not(:disabled){inset-block-start:0;margin-block-start:0;pointer-events:auto;cursor:grab;&:active{cursor:grabbing;}};label:euiColorStopThumb;",
24
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
25
+ };
26
+
27
+ var euiColorStopThumbStyles = function euiColorStopThumbStyles(euiThemeContext) {
28
+ return {
29
+ // Base
30
+ euiColorStopThumb: _ref2,
31
+ isPopoverOpen: /*#__PURE__*/(0, _react.css)((0, _range.euiRangeThumbFocus)(euiThemeContext), ";;label:isPopoverOpen;")
32
+ };
33
+ };
34
+
35
+ exports.euiColorStopThumbStyles = euiColorStopThumbStyles;
36
+
37
+ var _ref = process.env.NODE_ENV === "production" ? {
38
+ name: "1wndm4s-isLoadingPanel",
39
+ styles: "visibility:hidden!important;label:isLoadingPanel;"
40
+ } : {
41
+ name: "1wndm4s-isLoadingPanel",
42
+ styles: "visibility:hidden!important;label:isLoadingPanel;",
43
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
44
+ };
45
+
46
+ var euiColorStopThumbPopoverStyles = function euiColorStopThumbPopoverStyles(euiThemeContext) {
47
+ var range = (0, _range.euiRangeVariables)(euiThemeContext);
48
+ var euiTheme = euiThemeContext.euiTheme;
49
+ return {
50
+ // Base
51
+ euiColorStopThumbPopover: /*#__PURE__*/(0, _react.css)("position:absolute;inset-block-start:50%;inline-size:", range.thumbWidth, ";block-size:", range.thumbHeight, ";margin-block-start:", (0, _global_styling.mathWithUnits)(range.thumbHeight, function (x) {
52
+ return x * -0.5;
53
+ }), ";.euiColorStopThumbPopover__anchor{position:absolute;inline-size:100%;block-size:100%;&::before{content:'';display:block;position:absolute;inset-inline-start:0;inset-block-start:0;block-size:", range.thumbHeight, ";inline-size:", range.thumbWidth, ";border-radius:", range.thumbHeight, ";background:", euiTheme.colors.emptyShade, ";}};label:euiColorStopThumbPopover;"),
54
+ isLoadingPanel: _ref,
55
+ hasFocus: /*#__PURE__*/(0, _react.css)("z-index:", range.thumbZIndex, ";;label:hasFocus;")
56
+ };
57
+ };
58
+
59
+ exports.euiColorStopThumbPopoverStyles = euiColorStopThumbPopoverStyles;
60
+
61
+ var euiColorStopStyles = function euiColorStopStyles(euiThemeContext) {
62
+ var colorPicker = (0, _color_picker.euiColorPickerVariables)(euiThemeContext);
63
+ return {
64
+ // Base
65
+ euiColorStop: /*#__PURE__*/(0, _react.css)("inline-size:", colorPicker.width, ";;label:euiColorStop;")
66
+ };
67
+ };
68
+
69
+ exports.euiColorStopStyles = euiColorStopStyles;
@@ -43,6 +43,8 @@ var _range_track = require("../../form/range/range_track");
43
43
 
44
44
  var _range_wrapper = require("../../form/range/range_wrapper");
45
45
 
46
+ var _color_stops = require("./color_stops.styles");
47
+
46
48
  var _react2 = require("@emotion/react");
47
49
 
48
50
  var _excluded = ["addColor", "max", "min", "mode", "colorStops", "onChange", "disabled", "readOnly", "compressed", "fullWidth", "className", "label", "stopType", "stepNumber", "swatches", "showAlpha", "valueInputProps"];
@@ -191,11 +193,16 @@ var EuiColorStops = function EuiColorStops(_ref) {
191
193
  setFocusStopOnUpdate = _useState14[1];
192
194
 
193
195
  var isNotInteractive = disabled || readOnly;
194
- var classes = (0, _classnames.default)('euiColorStops', {
195
- 'euiColorStops-isDragging': isHoverDisabled,
196
- 'euiColorStops-isDisabled': disabled,
197
- 'euiColorStops-isReadOnly': readOnly
198
- }, className);
196
+ var isDragging = isHoverDisabled && !isNotInteractive;
197
+ var addContainerIsDisabled = isHoverDisabled || isNotInteractive;
198
+ var classes = (0, _classnames.default)('euiColorStops', className);
199
+ var euiTheme = (0, _services.useEuiTheme)();
200
+ var styles = (0, _color_stops.euiColorStopsStyles)(euiTheme);
201
+ var cssPopoverStyles = [styles.euiColorStops, !disabled ? styles.isEnabled : styles.isDisabled, readOnly && styles.isReadOnly, isDragging && styles.isDragging];
202
+ var cssTrackStyles = [styles.euiColorStops__track];
203
+ var cssAddTargetStyles = [styles.euiColorStops__addTarget];
204
+ var addContainerStyles = (0, _color_stops.euiColorStopsAddContainerStyles)(euiTheme);
205
+ var cssAddContainerStyles = [addContainerStyles.euiColorStopsAddContainer, !addContainerIsDisabled ? addContainerStyles.isEnabled : addContainerStyles.isDisabled];
199
206
 
200
207
  var getStopFromMouseLocationFn = function getStopFromMouseLocationFn(location) {
201
208
  // Guard against `null` ref in usage
@@ -395,7 +402,7 @@ var EuiColorStops = function EuiColorStops(_ref) {
395
402
  disabled: disabled,
396
403
  readOnly: readOnly,
397
404
  "aria-valuetext": "Stop: ".concat(colorStop.stop, ", Color: ").concat(colorStop.color, " (").concat(index + 1, " of ").concat(colorStops.length, ")"),
398
- isPopoverOpen: colorStop.id === openedStopId,
405
+ isPopoverOpen: !isDragging && colorStop.id === openedStopId,
399
406
  openPopover: function openPopover() {
400
407
  setOpenedStopId(colorStop.id);
401
408
  },
@@ -405,7 +412,7 @@ var EuiColorStops = function EuiColorStops(_ref) {
405
412
  valueInputProps: valueInputProps
406
413
  });
407
414
  });
408
- }, [colorStops, disabled, handleOnChange, max, min, mode, onRemove, openedStopId, rangeMax, rangeMin, readOnly, showAlpha, sortedStops, swatches, wrapperRef, valueInputProps]);
415
+ }, [colorStops, disabled, handleOnChange, isDragging, max, min, mode, onRemove, openedStopId, rangeMax, rangeMin, readOnly, showAlpha, sortedStops, swatches, wrapperRef, valueInputProps]);
409
416
  var positions = wrapperRef ? sortedStops.map(function (_ref3) {
410
417
  var stop = _ref3.stop;
411
418
  return getPositionFromStopFn(stop);
@@ -413,10 +420,10 @@ var EuiColorStops = function EuiColorStops(_ref) {
413
420
 
414
421
  var gradientStop = function gradientStop(colorStop, index) {
415
422
  var color = (0, _utils2.getChromaColor)(colorStop.color, showAlpha);
416
- var rgba = color ? color.css() : 'currentColor';
423
+ var rgba = color ? color.css() : 'transparent';
417
424
 
418
425
  if (index === 0) {
419
- return "currentColor, currentColor ".concat(positions[index], "%, ").concat(rgba, " ").concat(positions[index], "%");
426
+ return "transparent, transparent ".concat(positions[index], "%, ").concat(rgba, " ").concat(positions[index], "%");
420
427
  }
421
428
 
422
429
  return "".concat(rgba, " ").concat(positions[index], "%");
@@ -444,13 +451,15 @@ var EuiColorStops = function EuiColorStops(_ref) {
444
451
  percentageSteps = percentageSteps + percentage;
445
452
  });
446
453
  steppedGradient = steppedGradient.substring(0, steppedGradient.length - 2);
447
- gradient = "linear-gradient(to right, currentColor ".concat(trailingPercentage, "%, ").concat(steppedGradient, ")");
454
+ gradient = "linear-gradient(to right, transparent ".concat(trailingPercentage, "%, ").concat(steppedGradient, ")");
448
455
  } else {
449
456
  var linearGradient = sortedStops.map(stopType === 'gradient' ? gradientStop : fixedStop);
450
457
  gradient = "linear-gradient(to right,".concat(linearGradient, ")");
451
458
  }
452
459
 
453
- return (0, _react2.jsx)(_range_wrapper.EuiRangeWrapper, (0, _extends2.default)({}, rest, {
460
+ return (0, _react2.jsx)(_range_wrapper.EuiRangeWrapper, (0, _extends2.default)({
461
+ css: cssPopoverStyles
462
+ }, rest, {
454
463
  "data-test-subj": (0, _classnames.default)('euiColorStops', rest['data-test-subj']),
455
464
  ref: setWrapperRef,
456
465
  className: classes,
@@ -473,6 +482,8 @@ var EuiColorStops = function EuiColorStops(_ref) {
473
482
  token: "euiColorStops.screenReaderAnnouncement",
474
483
  default: "{label}: {readOnly} {disabled} Color stop picker. Each stop consists of a number and corresponding color value. Use the Down and Up arrow keys to select individual stops. Press the Enter key to create a new stop."
475
484
  }))), (0, _react2.jsx)(_range_track.EuiRangeTrack, {
485
+ className: "euiColorStops__track",
486
+ css: cssTrackStyles,
476
487
  min: min || rangeMin,
477
488
  max: max || rangeMax,
478
489
  compressed: compressed,
@@ -489,13 +500,13 @@ var EuiColorStops = function EuiColorStops(_ref) {
489
500
  trackWidth: trackWidth
490
501
  }), (0, _react2.jsx)("div", {
491
502
  "data-test-subj": "euiColorStopsAdd",
492
- className: (0, _classnames.default)('euiColorStops__addContainer', {
493
- 'euiColorStops__addContainer-isDisabled': isHoverDisabled || disabled || readOnly
494
- }),
503
+ className: "euiColorStops__addContainer",
504
+ css: cssAddContainerStyles,
495
505
  onClick: handleAddClick,
496
506
  onMouseMove: handleAddHover
497
507
  }, (0, _react2.jsx)("div", {
498
508
  className: "euiColorStops__addTarget",
509
+ css: cssAddTargetStyles,
499
510
  style: {
500
511
  left: "".concat(addTargetPosition, "%")
501
512
  }
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiColorStopsStyles = exports.euiColorStopsAddContainerStyles = void 0;
7
+
8
+ var _react = require("@emotion/react");
9
+
10
+ var _services = require("../../../services");
11
+
12
+ var _global_styling = require("../../../global_styling");
13
+
14
+ var _form = require("../../form/form.styles");
15
+
16
+ var _range = require("../../form/range/range.styles");
17
+
18
+ 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)."; }
19
+
20
+ var _ref2 = process.env.NODE_ENV === "production" ? {
21
+ name: "uu65b3-isDragging",
22
+ styles: "cursor:grabbing;label:isDragging;"
23
+ } : {
24
+ name: "uu65b3-isDragging",
25
+ styles: "cursor:grabbing;label:isDragging;",
26
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
27
+ };
28
+
29
+ var euiColorStopsStyles = function euiColorStopsStyles(euiThemeContext) {
30
+ var range = (0, _range.euiRangeVariables)(euiThemeContext);
31
+ var euiTheme = euiThemeContext.euiTheme,
32
+ colorMode = euiThemeContext.colorMode;
33
+ var isDarkMode = colorMode === 'DARK';
34
+ var stripeColor = isDarkMode ? (0, _services.brighten)(range.trackColor, 0.5) : (0, _services.darken)(range.trackColor, 0.5);
35
+ var stripesBackground = "repeating-linear-gradient(\n -45deg,\n ".concat(range.trackColor, ",\n ").concat(range.trackColor, " 25%,\n ").concat(stripeColor, " 25%,\n ").concat(stripeColor, " 50%,\n ").concat(range.trackColor, " 50%\n )");
36
+ return {
37
+ // Base
38
+ euiColorStops: /*#__PURE__*/(0, _react.css)(";label:euiColorStops;"),
39
+ isEnabled: /*#__PURE__*/(0, _react.css)("&:focus{outline:none;}&:focus-visible{.euiColorStops__track::after{box-shadow:0 0 0 1px rgba(", (0, _services.hexToRgb)(euiTheme.colors.emptyShade).join(', '), ", 0.8),0 0 0 3px ", range.focusColor, ";}};label:isEnabled;"),
40
+ isDisabled: /*#__PURE__*/(0, _react.css)(";label:isDisabled;"),
41
+ isHoverDisabled: /*#__PURE__*/(0, _react.css)(";label:isHoverDisabled;"),
42
+ isReadOnly: /*#__PURE__*/(0, _react.css)(";label:isReadOnly;"),
43
+ isDragging: _ref2,
44
+ euiColorStops__track: /*#__PURE__*/(0, _react.css)("&::after{background:", stripesBackground, ";background-size:", euiTheme.size.xs, " ", euiTheme.size.xs, ";};label:euiColorStops__track;"),
45
+ euiColorStops__addTarget: /*#__PURE__*/(0, _react.css)((0, _form.euiCustomControl)(euiThemeContext, {
46
+ type: 'round'
47
+ }), ";", (0, _range.euiRangeThumbStyle)(euiThemeContext), ";position:absolute;inset-block-start:0;block-size:", range.thumbHeight, ";inline-size:", range.thumbHeight, ";background-color:", euiTheme.colors.lightestShade, ";pointer-events:none;opacity:0;border:", euiTheme.border.width.thin, " solid ", euiTheme.colors.darkShade, ";box-shadow:none;z-index:", range.thumbZIndex, ";", _global_styling.euiCanAnimate, "{transition:opacity ", euiTheme.animation.fast, " ease-in;};label:euiColorStops__addTarget;")
48
+ };
49
+ };
50
+
51
+ exports.euiColorStopsStyles = euiColorStopsStyles;
52
+
53
+ var _ref = process.env.NODE_ENV === "production" ? {
54
+ name: "1173em8-isEnabled",
55
+ styles: "&:hover{cursor:pointer;.euiColorStops__addTarget{opacity:0.7;}};label:isEnabled;"
56
+ } : {
57
+ name: "1173em8-isEnabled",
58
+ styles: "&:hover{cursor:pointer;.euiColorStops__addTarget{opacity:0.7;}};label:isEnabled;",
59
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
60
+ };
61
+
62
+ var euiColorStopsAddContainerStyles = function euiColorStopsAddContainerStyles(euiThemeContext) {
63
+ var range = (0, _range.euiRangeVariables)(euiThemeContext);
64
+ return {
65
+ euiColorStopsAddContainer: /*#__PURE__*/(0, _react.css)("display:block;position:absolute;inset-inline-start:0;inset-inline-end:0;inset-block-start:50%;block-size:", range.thumbHeight, ";margin-block-start:", (0, _global_styling.mathWithUnits)(range.thumbHeight, function (x) {
66
+ return x * -0.5;
67
+ }), ";z-index:", range.thumbZIndex, ";;label:euiColorStopsAddContainer;"),
68
+ isEnabled: _ref,
69
+ isDisabled: /*#__PURE__*/(0, _react.css)(";label:isDisabled;")
70
+ };
71
+ };
72
+
73
+ exports.euiColorStopsAddContainerStyles = euiColorStopsAddContainerStyles;
@@ -29,7 +29,7 @@ exports.euiRangeHighlightStyles = euiRangeHighlightStyles;
29
29
  var euiRangeHighlightProgressStyles = function euiRangeHighlightProgressStyles(euiThemeContext) {
30
30
  var range = (0, _range.euiRangeVariables)(euiThemeContext);
31
31
  return {
32
- euiRangeHighlight__progress: /*#__PURE__*/(0, _react.css)("block-size:", range.highlightHeight, ";border-radius:", range.trackBorderRadius, ";background-color:", range.highlightColor, ";border-color:", range.highlightColor, ";.euiRangeSlider:focus-visible~.euiRangeHighlight &,.euiRangeThumb:focus-visible~.euiRangeHighlight &,.euiRangeDraggable:focus~.euiRangeHighlight &{background-color:", range.focusColor, ";};label:euiRangeHighlight__progress;")
32
+ euiRangeHighlight__progress: /*#__PURE__*/(0, _react.css)("block-size:", range.highlightHeight, ";border-radius:", range.trackBorderRadius, ";background-color:", range.highlightColor, ";.euiRangeSlider:focus-visible~.euiRangeHighlight &,.euiRangeThumb:focus-visible~.euiRangeHighlight &,.euiRangeDraggable:focus~.euiRangeHighlight &{background-color:", range.focusColor, ";};label:euiRangeHighlight__progress;")
33
33
  };
34
34
  };
35
35
 
@@ -29,7 +29,7 @@ var euiRangeLevelsStyles = function euiRangeLevelsStyles(euiThemeContext) {
29
29
  var stripesBackground = "repeating-linear-gradient(\n -45deg,\n ".concat((0, _services.transparentize)(stripeColor, 0.5), ",\n ").concat((0, _services.transparentize)(stripeColor, 0.5), " 25%,\n ").concat((0, _services.transparentize)(stripeColor, 0.7), " 25%,\n ").concat((0, _services.transparentize)(stripeColor, 0.7), " 50%,\n ").concat((0, _services.transparentize)(stripeColor, 0.5), " 50%\n )");
30
30
  return {
31
31
  euiRangeLevels: /*#__PURE__*/(0, _react.css)("display:flex;justify-content:stretch;position:absolute;inset-inline:0;inset-block-start:", range.trackTopPositionWithoutTicks, ";z-index:", range.levelsZIndex, ";;label:euiRangeLevels;"),
32
- hasRange: /*#__PURE__*/(0, _react.css)("&::after{content:'';position:absolute;block-size:", range.trackHeight, ";inline-size:100%;background-image:", stripesBackground, ";background-size:", euiTheme.size.s, " ", euiTheme.size.s, ";border-radius:", range.trackBorderRadius, ";};label:hasRange;"),
32
+ hasRange: /*#__PURE__*/(0, _react.css)("&::after{content:'';position:absolute;block-size:", range.trackHeight, ";inline-size:100%;background-image:", stripesBackground, ";background-size:", euiTheme.size.xs, " ", euiTheme.size.xs, ";border-radius:", range.trackBorderRadius, ";};label:hasRange;"),
33
33
  hasTicks: /*#__PURE__*/(0, _react.css)("inset-block-start:", range.trackTopPositionWithTicks, ";;label:hasTicks;")
34
34
  };
35
35
  };
@@ -19,6 +19,8 @@ var _react = _interopRequireWildcard(require("react"));
19
19
 
20
20
  var _propTypes = _interopRequireDefault(require("prop-types"));
21
21
 
22
+ var _classnames = _interopRequireDefault(require("classnames"));
23
+
22
24
  var _range = _interopRequireDefault(require("lodash/range"));
23
25
 
24
26
  var _services = require("../../../services");
@@ -31,7 +33,7 @@ var _range_track = require("./range_track.styles");
31
33
 
32
34
  var _react2 = require("@emotion/react");
33
35
 
34
- var _excluded = ["children", "disabled", "max", "min", "step", "showTicks", "tickInterval", "ticks", "levels", "onChange", "value", "compressed", "showRange"];
36
+ var _excluded = ["children", "disabled", "max", "min", "step", "showTicks", "tickInterval", "ticks", "levels", "onChange", "value", "compressed", "showRange", "className"];
35
37
 
36
38
  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); }
37
39
 
@@ -51,6 +53,7 @@ var EuiRangeTrack = function EuiRangeTrack(_ref) {
51
53
  value = _ref.value,
52
54
  compressed = _ref.compressed,
53
55
  showRange = _ref.showRange,
56
+ className = _ref.className,
54
57
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
55
58
  (0, _react.useEffect)(function () {
56
59
  validateValueIsInStep(max, {
@@ -109,8 +112,9 @@ var EuiRangeTrack = function EuiRangeTrack(_ref) {
109
112
  trackWidth = _useState2[0],
110
113
  setTrackWidth = _useState2[1];
111
114
 
115
+ var classes = (0, _classnames.default)('euiRangeTrack', className);
112
116
  return (0, _react2.jsx)("div", (0, _extends2.default)({
113
- className: "euiRangeTrack",
117
+ className: classes,
114
118
  css: cssStyles
115
119
  }, rest, {
116
120
  ref: function ref(node) {
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _image = require("./image");
8
+
9
+ var _react2 = require("@emotion/react");
10
+
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
+ /// <reference types="../../../cypress/support"/>
19
+ var Image = function Image() {
20
+ return (0, _react2.jsx)(_image.EuiImage, {
21
+ size: "m",
22
+ hasShadow: true,
23
+ allowFullScreen: true,
24
+ caption: "Albert Einstein, theoretical physicist",
25
+ alt: "" // Because this image is sufficiently described by its caption, there is no need to repeat it via alt text
26
+ ,
27
+ src: "https://upload.wikimedia.org/wikipedia/commons/d/d3/Albert_Einstein_Head.jpg"
28
+ });
29
+ };
30
+
31
+ beforeEach(function () {
32
+ cy.viewport(1024, 768); // medium breakpoint
33
+
34
+ cy.realMount((0, _react2.jsx)(Image, null));
35
+ cy.get('figure[aria-label="Albert Einstein, theoretical physicist"]').should('exist');
36
+ });
37
+ describe('EuiImage', function () {
38
+ describe('Automated accessibility check', function () {
39
+ it('has zero violations on first render', function () {
40
+ cy.checkAxe();
41
+ });
42
+ it('has zero violations on fullscreen render', function () {
43
+ cy.get('button[data-test-subj="activateFullScreenButton"]').realClick();
44
+ cy.get('button[data-test-subj="deactivateFullScreenButton"]').should('exist');
45
+ cy.checkAxe();
46
+ cy.get('div[data-test-subj="fullScreenOverlayMask"]').realClick();
47
+ cy.checkAxe();
48
+ });
49
+ it('has zero violations on keyboard interaction', function () {
50
+ cy.realPress('Tab');
51
+ cy.get('button[data-test-subj="activateFullScreenButton"]').should('have.focus');
52
+ cy.realPress('Enter');
53
+ cy.get('button[data-test-subj="deactivateFullScreenButton"]').should('exist');
54
+ cy.get('button[data-test-subj="deactivateFullScreenButton"]').should('have.focus');
55
+ cy.checkAxe();
56
+ cy.realPress('Escape');
57
+ cy.get('button[data-test-subj="activateFullScreenButton"]').should('have.focus');
58
+ cy.checkAxe();
59
+ });
60
+ });
61
+ });
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
8
+
9
+ var _react = _interopRequireWildcard(require("react"));
10
+
11
+ var _key_pad_menu = require("./key_pad_menu");
12
+
13
+ var _key_pad_menu_item = require("./key_pad_menu_item");
14
+
15
+ var _icon = require("../icon");
16
+
17
+ var _services = require("../../services");
18
+
19
+ var _react2 = require("@emotion/react");
20
+
21
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
+
23
+ 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; }
24
+
25
+ /*
26
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
27
+ * or more contributor license agreements. Licensed under the Elastic License
28
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
29
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
30
+ * Side Public License, v 1.
31
+ */
32
+ /// <reference types="../../../cypress/support"/>
33
+ var KeyPadMenu = function KeyPadMenu() {
34
+ var keypadButtonId__1 = (0, _services.useGeneratedHtmlId)({
35
+ prefix: 'keypadButton',
36
+ suffix: 'first'
37
+ });
38
+ var keypadButtonId__2 = (0, _services.useGeneratedHtmlId)({
39
+ prefix: 'keypadButton',
40
+ suffix: 'second'
41
+ });
42
+ var keypadButtonId__3 = (0, _services.useGeneratedHtmlId)({
43
+ prefix: 'keypadButton',
44
+ suffix: 'third'
45
+ });
46
+ var keypadButtonId__4 = (0, _services.useGeneratedHtmlId)({
47
+ prefix: 'keypadButton',
48
+ suffix: 'fourth'
49
+ });
50
+ var keypadButtonId__5 = (0, _services.useGeneratedHtmlId)({
51
+ prefix: 'keypadButton',
52
+ suffix: 'fifth'
53
+ });
54
+ var keypadButtonId__6 = (0, _services.useGeneratedHtmlId)({
55
+ prefix: 'keypadButton',
56
+ suffix: 'sixth'
57
+ });
58
+
59
+ var _useState = (0, _react.useState)(keypadButtonId__6),
60
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
61
+ selectedID = _useState2[0],
62
+ setSelectedID = _useState2[1];
63
+
64
+ return (0, _react2.jsx)("div", {
65
+ "aria-label": "Menu keypad"
66
+ }, (0, _react2.jsx)(_key_pad_menu.EuiKeyPadMenu, null, (0, _react2.jsx)(_key_pad_menu_item.EuiKeyPadMenuItem, {
67
+ "data-test-subj": "cy-keypad-button-1",
68
+ id: keypadButtonId__1,
69
+ label: "Button 1",
70
+ isSelected: selectedID === keypadButtonId__1,
71
+ onClick: function onClick() {
72
+ return setSelectedID(keypadButtonId__1);
73
+ }
74
+ }, (0, _react2.jsx)(_icon.EuiIcon, {
75
+ type: "grid",
76
+ size: "l"
77
+ })), (0, _react2.jsx)(_key_pad_menu_item.EuiKeyPadMenuItem, {
78
+ "data-test-subj": "cy-keypad-button-2",
79
+ id: keypadButtonId__2,
80
+ label: "Button 2",
81
+ isSelected: selectedID === keypadButtonId__2,
82
+ onClick: function onClick() {
83
+ return setSelectedID(keypadButtonId__2);
84
+ }
85
+ }, (0, _react2.jsx)(_icon.EuiIcon, {
86
+ type: "grid",
87
+ size: "l"
88
+ })), (0, _react2.jsx)(_key_pad_menu_item.EuiKeyPadMenuItem, {
89
+ "data-test-subj": "cy-keypad-button-3",
90
+ id: keypadButtonId__3,
91
+ label: "Button 3",
92
+ isSelected: selectedID === keypadButtonId__3,
93
+ onClick: function onClick() {
94
+ return setSelectedID(keypadButtonId__3);
95
+ }
96
+ }, (0, _react2.jsx)(_icon.EuiIcon, {
97
+ type: "grid",
98
+ size: "l"
99
+ })), (0, _react2.jsx)(_key_pad_menu_item.EuiKeyPadMenuItem, {
100
+ "data-test-subj": "cy-keypad-link-1",
101
+ id: keypadButtonId__4,
102
+ label: "Link 1",
103
+ href: "#/navigation/key-pad-menu",
104
+ isSelected: selectedID === keypadButtonId__4,
105
+ onClick: function onClick() {
106
+ return setSelectedID(keypadButtonId__4);
107
+ }
108
+ }, (0, _react2.jsx)(_icon.EuiIcon, {
109
+ type: "link",
110
+ size: "l"
111
+ })), (0, _react2.jsx)(_key_pad_menu_item.EuiKeyPadMenuItem, {
112
+ "data-test-subj": "cy-keypad-link-2",
113
+ id: keypadButtonId__5,
114
+ label: "Link 2",
115
+ href: "#/navigation/key-pad-menu",
116
+ isSelected: selectedID === keypadButtonId__5,
117
+ onClick: function onClick() {
118
+ return setSelectedID(keypadButtonId__5);
119
+ }
120
+ }, (0, _react2.jsx)(_icon.EuiIcon, {
121
+ type: "link",
122
+ size: "l"
123
+ })), (0, _react2.jsx)(_key_pad_menu_item.EuiKeyPadMenuItem, {
124
+ "data-test-subj": "cy-keypad-link-3",
125
+ id: keypadButtonId__6,
126
+ label: "Disabled Link 3",
127
+ isDisabled: true,
128
+ isSelected: selectedID === keypadButtonId__6
129
+ }, (0, _react2.jsx)(_icon.EuiIcon, {
130
+ type: "link",
131
+ size: "l"
132
+ }))));
133
+ };
134
+
135
+ beforeEach(function () {
136
+ cy.realMount((0, _react2.jsx)(KeyPadMenu, null));
137
+ cy.get('div[aria-label="Menu keypad"]').should('exist');
138
+ });
139
+ describe('EuiKeyPadMenu', function () {
140
+ describe('Automated accessibility check', function () {
141
+ it('has zero violations on first render', function () {
142
+ cy.checkAxe();
143
+ });
144
+ it('has zero violations on item click', function () {
145
+ cy.get('a[data-test-subj="cy-keypad-link-2"]').realClick();
146
+ cy.get('a[data-test-subj="cy-keypad-link-2"]').should('have.class', 'euiKeyPadMenuItem-isSelected');
147
+ cy.checkAxe();
148
+ });
149
+ it('has zero violations on item keypress', function () {
150
+ cy.repeatRealPress('Tab', 3);
151
+ cy.get('button[data-test-subj="cy-keypad-button-3"]').should('have.focus');
152
+ cy.realPress('Space');
153
+ cy.get('button[data-test-subj="cy-keypad-button-3"]').should('have.class', 'euiKeyPadMenuItem-isSelected');
154
+ cy.checkAxe();
155
+ cy.realPress(['Shift', 'Tab']);
156
+ cy.get('button[data-test-subj="cy-keypad-button-2"]').should('have.focus');
157
+ cy.realPress('Space');
158
+ cy.get('button[data-test-subj="cy-keypad-button-2"]').should('have.class', 'euiKeyPadMenuItem-isSelected');
159
+ cy.get('button[data-test-subj="cy-keypad-button-3"]').should('not.have.class', 'euiKeyPadMenuItem-isSelected');
160
+ cy.checkAxe();
161
+ });
162
+ });
163
+ });
@@ -491,13 +491,13 @@ var EuiPopover = /*#__PURE__*/function (_Component) {
491
491
  panel = (0, _react.jsx)(_portal.EuiPortal, {
492
492
  insert: insert
493
493
  }, (0, _react.jsx)(_focus_trap.EuiFocusTrap, (0, _extends2.default)({
494
- clickOutsideDisables: true
494
+ clickOutsideDisables: true,
495
+ onClickOutside: this.onClickOutside
495
496
  }, focusTrapProps, {
496
497
  returnFocus: returnFocus // Ignore temporary state of indecisive focus
497
498
  ,
498
499
  initialFocus: initialFocus,
499
500
  onDeactivation: onTrapDeactivation,
500
- onClickOutside: this.onClickOutside,
501
501
  onEscapeKey: this.onEscapeKey,
502
502
  disabled: !ownFocus || !this.state.isOpenStable || this.state.isClosing
503
503
  }), (0, _react.jsx)(_popover_panel.EuiPopoverPanel, (0, _extends2.default)({}, panelProps, {
@@ -55,6 +55,6 @@ EuiTableFooterCell.propTypes = {
55
55
  "aria-label": _propTypes.default.string,
56
56
  "data-test-subj": _propTypes.default.string,
57
57
  css: _propTypes.default.any,
58
- align: _propTypes.default.oneOf(["left", "right", "center"]),
58
+ align: _propTypes.default.any,
59
59
  width: _propTypes.default.oneOfType([_propTypes.default.string.isRequired, _propTypes.default.number.isRequired])
60
60
  };
@@ -148,7 +148,7 @@ EuiTableHeaderCell.propTypes = {
148
148
  "aria-label": _propTypes.default.string,
149
149
  "data-test-subj": _propTypes.default.string,
150
150
  css: _propTypes.default.any,
151
- align: _propTypes.default.oneOf(["left", "right", "center"]),
151
+ align: _propTypes.default.any,
152
152
  isSortAscending: _propTypes.default.bool,
153
153
  isSorted: _propTypes.default.bool,
154
154
 
@@ -208,7 +208,7 @@ EuiTableRowCell.propTypes = {
208
208
  /**
209
209
  * Horizontal alignment of the text in the cell
210
210
  */
211
- align: _propTypes.default.oneOf(["left", "right", "center"]),
211
+ align: _propTypes.default.any,
212
212
 
213
213
  /**
214
214
  * _Should only be used for action cells_
@@ -230,7 +230,7 @@ EuiTableRowCell.propTypes = {
230
230
  /**
231
231
  * Horizontal alignment of the text in the cell
232
232
  */
233
- align: _propTypes.default.oneOf(["left", "right", "center"]),
233
+ align: _propTypes.default.any,
234
234
 
235
235
  /**
236
236
  * _Should only be used for action cells_