@elastic/eui 113.3.0 → 114.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/es/components/button/split_button/split_button.js +13 -0
  2. package/es/components/button/split_button/split_button_actions.js +15 -0
  3. package/es/components/collapsible_nav/collapsible_nav.js +5 -0
  4. package/es/components/color_picker/color_picker.js +31 -8
  5. package/es/components/datagrid/utils/scrolling.js +39 -10
  6. package/es/components/flyout/_flyout_overlay.js +34 -4
  7. package/es/components/flyout/flyout.component.js +13 -9
  8. package/es/components/flyout/flyout.js +9 -1
  9. package/es/components/flyout/flyout.styles.js +2 -2
  10. package/es/components/flyout/flyout_menu.js +2 -1
  11. package/es/components/flyout/flyout_resizable.js +5 -0
  12. package/es/components/flyout/manager/actions.js +5 -2
  13. package/es/components/flyout/manager/flyout_child.js +1 -0
  14. package/es/components/flyout/manager/flyout_managed.js +5 -3
  15. package/es/components/flyout/manager/reducer.js +116 -57
  16. package/es/components/flyout/manager/store.js +13 -6
  17. package/es/components/markdown_editor/plugins/markdown_default_plugins/parsing_plugins.js +2 -1
  18. package/es/components/markdown_editor/plugins/remark/remark_intraword_underscore.js +172 -0
  19. package/es/components/overlay_mask/overlay_mask.js +10 -3
  20. package/es/components/tree_view/tree_view_item.styles.js +1 -1
  21. package/es/services/hooks/index.js +8 -8
  22. package/es/services/hooks/useIsPointerDown.js +6 -15
  23. package/es/services/index.js +1 -1
  24. package/eui.d.ts +83 -51
  25. package/i18ntokens.json +661 -643
  26. package/lib/components/button/split_button/split_button.js +13 -0
  27. package/lib/components/button/split_button/split_button_actions.js +15 -0
  28. package/lib/components/collapsible_nav/collapsible_nav.js +5 -0
  29. package/lib/components/color_picker/color_picker.js +30 -7
  30. package/lib/components/datagrid/utils/scrolling.js +37 -8
  31. package/lib/components/flyout/_flyout_overlay.js +33 -3
  32. package/lib/components/flyout/flyout.component.js +13 -9
  33. package/lib/components/flyout/flyout.js +9 -1
  34. package/lib/components/flyout/flyout.styles.js +2 -2
  35. package/lib/components/flyout/flyout_menu.js +2 -1
  36. package/lib/components/flyout/flyout_resizable.js +5 -0
  37. package/lib/components/flyout/manager/actions.js +5 -2
  38. package/lib/components/flyout/manager/flyout_child.js +1 -0
  39. package/lib/components/flyout/manager/flyout_managed.js +5 -3
  40. package/lib/components/flyout/manager/reducer.js +116 -57
  41. package/lib/components/flyout/manager/store.js +13 -6
  42. package/lib/components/markdown_editor/plugins/markdown_default_plugins/parsing_plugins.js +2 -1
  43. package/lib/components/markdown_editor/plugins/remark/remark_intraword_underscore.js +179 -0
  44. package/lib/components/overlay_mask/overlay_mask.js +10 -3
  45. package/lib/components/tree_view/tree_view_item.styles.js +1 -1
  46. package/lib/services/hooks/index.js +60 -91
  47. package/lib/services/hooks/useIsPointerDown.js +7 -14
  48. package/lib/services/index.js +70 -11
  49. package/optimize/es/components/color_picker/color_picker.js +31 -8
  50. package/optimize/es/components/datagrid/utils/scrolling.js +39 -10
  51. package/optimize/es/components/flyout/_flyout_overlay.js +34 -4
  52. package/optimize/es/components/flyout/flyout.component.js +13 -9
  53. package/optimize/es/components/flyout/flyout.js +4 -1
  54. package/optimize/es/components/flyout/flyout.styles.js +2 -2
  55. package/optimize/es/components/flyout/flyout_menu.js +2 -1
  56. package/optimize/es/components/flyout/manager/actions.js +5 -2
  57. package/optimize/es/components/flyout/manager/flyout_managed.js +4 -3
  58. package/optimize/es/components/flyout/manager/reducer.js +116 -57
  59. package/optimize/es/components/flyout/manager/store.js +13 -6
  60. package/optimize/es/components/markdown_editor/plugins/markdown_default_plugins/parsing_plugins.js +2 -1
  61. package/optimize/es/components/markdown_editor/plugins/remark/remark_intraword_underscore.js +172 -0
  62. package/optimize/es/components/overlay_mask/overlay_mask.js +4 -2
  63. package/optimize/es/components/tree_view/tree_view_item.styles.js +1 -1
  64. package/optimize/es/services/hooks/index.js +8 -8
  65. package/optimize/es/services/hooks/useIsPointerDown.js +6 -10
  66. package/optimize/es/services/index.js +1 -1
  67. package/optimize/lib/components/color_picker/color_picker.js +30 -7
  68. package/optimize/lib/components/datagrid/utils/scrolling.js +37 -8
  69. package/optimize/lib/components/flyout/_flyout_overlay.js +33 -3
  70. package/optimize/lib/components/flyout/flyout.component.js +13 -9
  71. package/optimize/lib/components/flyout/flyout.js +4 -1
  72. package/optimize/lib/components/flyout/flyout.styles.js +2 -2
  73. package/optimize/lib/components/flyout/flyout_menu.js +2 -1
  74. package/optimize/lib/components/flyout/manager/actions.js +5 -2
  75. package/optimize/lib/components/flyout/manager/flyout_managed.js +4 -3
  76. package/optimize/lib/components/flyout/manager/reducer.js +116 -57
  77. package/optimize/lib/components/flyout/manager/store.js +13 -6
  78. package/optimize/lib/components/markdown_editor/plugins/markdown_default_plugins/parsing_plugins.js +2 -1
  79. package/optimize/lib/components/markdown_editor/plugins/remark/remark_intraword_underscore.js +179 -0
  80. package/optimize/lib/components/overlay_mask/overlay_mask.js +4 -2
  81. package/optimize/lib/components/tree_view/tree_view_item.styles.js +1 -1
  82. package/optimize/lib/services/hooks/index.js +60 -91
  83. package/optimize/lib/services/hooks/useIsPointerDown.js +5 -10
  84. package/optimize/lib/services/index.js +70 -11
  85. package/package.json +4 -4
  86. package/test-env/components/button/split_button/split_button.js +13 -0
  87. package/test-env/components/button/split_button/split_button_actions.js +15 -0
  88. package/test-env/components/collapsible_nav/collapsible_nav.js +5 -0
  89. package/test-env/components/color_picker/color_picker.js +30 -7
  90. package/test-env/components/datagrid/utils/scrolling.js +37 -8
  91. package/test-env/components/flyout/_flyout_overlay.js +33 -3
  92. package/test-env/components/flyout/flyout.component.js +13 -9
  93. package/test-env/components/flyout/flyout.styles.js +2 -2
  94. package/test-env/components/flyout/flyout_menu.js +2 -1
  95. package/test-env/components/flyout/flyout_resizable.js +5 -0
  96. package/test-env/components/flyout/manager/actions.js +5 -2
  97. package/test-env/components/flyout/manager/flyout_child.js +1 -0
  98. package/test-env/components/flyout/manager/flyout_managed.js +5 -3
  99. package/test-env/components/flyout/manager/reducer.js +116 -57
  100. package/test-env/components/flyout/manager/store.js +13 -6
  101. package/test-env/components/markdown_editor/plugins/markdown_default_plugins/parsing_plugins.js +2 -1
  102. package/test-env/components/markdown_editor/plugins/remark/remark_intraword_underscore.js +179 -0
  103. package/test-env/components/overlay_mask/overlay_mask.js +10 -3
  104. package/test-env/components/tree_view/tree_view_item.styles.js +1 -1
  105. package/test-env/services/hooks/index.js +60 -91
  106. package/test-env/services/hooks/useIsPointerDown.js +5 -10
  107. package/test-env/services/index.js +70 -11
@@ -3,109 +3,78 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- var _exportNames = {
7
- useEuiDisabledElement: true
8
- };
6
+ Object.defineProperty(exports, "isMouseEvent", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _useMouseMove.isMouseEvent;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "setMultipleRefs", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _useCombinedRefs.setMultipleRefs;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "useCombinedRefs", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _useCombinedRefs.useCombinedRefs;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "useDeepEqual", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _useDeepEqual.useDeepEqual;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "useDependentState", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _useDependentState.useDependentState;
34
+ }
35
+ });
9
36
  Object.defineProperty(exports, "useEuiDisabledElement", {
10
37
  enumerable: true,
11
38
  get: function get() {
12
39
  return _useEuiDisabledElement.useEuiDisabledElement;
13
40
  }
14
41
  });
15
- var _useDependentState = require("./useDependentState");
16
- Object.keys(_useDependentState).forEach(function (key) {
17
- if (key === "default" || key === "__esModule") return;
18
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
19
- if (key in exports && exports[key] === _useDependentState[key]) return;
20
- Object.defineProperty(exports, key, {
21
- enumerable: true,
22
- get: function get() {
23
- return _useDependentState[key];
24
- }
25
- });
42
+ Object.defineProperty(exports, "useForceRender", {
43
+ enumerable: true,
44
+ get: function get() {
45
+ return _useForceRender.useForceRender;
46
+ }
26
47
  });
27
- var _useCombinedRefs = require("./useCombinedRefs");
28
- Object.keys(_useCombinedRefs).forEach(function (key) {
29
- if (key === "default" || key === "__esModule") return;
30
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
31
- if (key in exports && exports[key] === _useCombinedRefs[key]) return;
32
- Object.defineProperty(exports, key, {
33
- enumerable: true,
34
- get: function get() {
35
- return _useCombinedRefs[key];
36
- }
37
- });
48
+ Object.defineProperty(exports, "useIsPointerDown", {
49
+ enumerable: true,
50
+ get: function get() {
51
+ return _useIsPointerDown.useIsPointerDown;
52
+ }
38
53
  });
39
- var _useForceRender = require("./useForceRender");
40
- Object.keys(_useForceRender).forEach(function (key) {
41
- if (key === "default" || key === "__esModule") return;
42
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
43
- if (key in exports && exports[key] === _useForceRender[key]) return;
44
- Object.defineProperty(exports, key, {
45
- enumerable: true,
46
- get: function get() {
47
- return _useForceRender[key];
48
- }
49
- });
54
+ Object.defineProperty(exports, "useLatest", {
55
+ enumerable: true,
56
+ get: function get() {
57
+ return _useLatest.useLatest;
58
+ }
50
59
  });
51
- var _useLatest = require("./useLatest");
52
- Object.keys(_useLatest).forEach(function (key) {
53
- if (key === "default" || key === "__esModule") return;
54
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
55
- if (key in exports && exports[key] === _useLatest[key]) return;
56
- Object.defineProperty(exports, key, {
57
- enumerable: true,
58
- get: function get() {
59
- return _useLatest[key];
60
- }
61
- });
60
+ Object.defineProperty(exports, "useMouseMove", {
61
+ enumerable: true,
62
+ get: function get() {
63
+ return _useMouseMove.useMouseMove;
64
+ }
62
65
  });
63
- var _useDeepEqual = require("./useDeepEqual");
64
- Object.keys(_useDeepEqual).forEach(function (key) {
65
- if (key === "default" || key === "__esModule") return;
66
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
67
- if (key in exports && exports[key] === _useDeepEqual[key]) return;
68
- Object.defineProperty(exports, key, {
69
- enumerable: true,
70
- get: function get() {
71
- return _useDeepEqual[key];
72
- }
73
- });
66
+ Object.defineProperty(exports, "useUpdateEffect", {
67
+ enumerable: true,
68
+ get: function get() {
69
+ return _useUpdateEffect.useUpdateEffect;
70
+ }
74
71
  });
72
+ var _useDependentState = require("./useDependentState");
73
+ var _useCombinedRefs = require("./useCombinedRefs");
74
+ var _useForceRender = require("./useForceRender");
75
+ var _useLatest = require("./useLatest");
76
+ var _useDeepEqual = require("./useDeepEqual");
75
77
  var _useMouseMove = require("./useMouseMove");
76
- Object.keys(_useMouseMove).forEach(function (key) {
77
- if (key === "default" || key === "__esModule") return;
78
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
79
- if (key in exports && exports[key] === _useMouseMove[key]) return;
80
- Object.defineProperty(exports, key, {
81
- enumerable: true,
82
- get: function get() {
83
- return _useMouseMove[key];
84
- }
85
- });
86
- });
87
78
  var _useIsPointerDown = require("./useIsPointerDown");
88
- Object.keys(_useIsPointerDown).forEach(function (key) {
89
- if (key === "default" || key === "__esModule") return;
90
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
91
- if (key in exports && exports[key] === _useIsPointerDown[key]) return;
92
- Object.defineProperty(exports, key, {
93
- enumerable: true,
94
- get: function get() {
95
- return _useIsPointerDown[key];
96
- }
97
- });
98
- });
99
79
  var _useUpdateEffect = require("./useUpdateEffect");
100
- Object.keys(_useUpdateEffect).forEach(function (key) {
101
- if (key === "default" || key === "__esModule") return;
102
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
103
- if (key in exports && exports[key] === _useUpdateEffect[key]) return;
104
- Object.defineProperty(exports, key, {
105
- enumerable: true,
106
- get: function get() {
107
- return _useUpdateEffect[key];
108
- }
109
- });
110
- });
111
80
  var _useEuiDisabledElement = require("./useEuiDisabledElement");
@@ -1,11 +1,9 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.useIsPointerDown = useIsPointerDown;
8
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
7
  var _react = require("react");
10
8
  /*
11
9
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
@@ -20,23 +18,20 @@ var _react = require("react");
20
18
  * Useful for detecting text selection in progress.
21
19
  */
22
20
  function useIsPointerDown(container) {
23
- var _useState = (0, _react.useState)(false),
24
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
25
- isPointerDown = _useState2[0],
26
- setIsPointerDown = _useState2[1];
21
+ var isPointerDownRef = (0, _react.useRef)(false);
27
22
  (0, _react.useEffect)(function () {
28
23
  var handlePointerDown = function handlePointerDown(event) {
29
24
  if (container !== null && container !== void 0 && container.current && !container.current.contains(event.target)) {
30
25
  return;
31
26
  }
32
- setIsPointerDown(true);
27
+ isPointerDownRef.current = true;
33
28
  };
34
29
  var handlePointerUpOrCancel = function handlePointerUpOrCancel() {
35
- setIsPointerDown(false);
30
+ isPointerDownRef.current = false;
36
31
  };
37
32
  var handleVisibilityChange = function handleVisibilityChange() {
38
33
  if (document.visibilityState === 'hidden') {
39
- setIsPointerDown(false);
34
+ isPointerDownRef.current = false;
40
35
  }
41
36
  };
42
37
  var controller = new AbortController();
@@ -54,5 +49,5 @@ function useIsPointerDown(container) {
54
49
  controller.abort();
55
50
  };
56
51
  }, [container]);
57
- return isPointerDown;
52
+ return isPointerDownRef;
58
53
  }
@@ -69,6 +69,16 @@ var _exportNames = {
69
69
  formatDate: true,
70
70
  formatNumber: true,
71
71
  formatText: true,
72
+ useDependentState: true,
73
+ useCombinedRefs: true,
74
+ setMultipleRefs: true,
75
+ useForceRender: true,
76
+ useLatest: true,
77
+ useDeepEqual: true,
78
+ isMouseEvent: true,
79
+ useMouseMove: true,
80
+ useUpdateEffect: true,
81
+ useEuiDisabledElement: true,
72
82
  isEvenlyDivisibleBy: true,
73
83
  isWithinRange: true,
74
84
  Pager: true,
@@ -426,6 +436,12 @@ Object.defineProperty(exports, "isEvenlyDivisibleBy", {
426
436
  return _number.isEvenlyDivisibleBy;
427
437
  }
428
438
  });
439
+ Object.defineProperty(exports, "isMouseEvent", {
440
+ enumerable: true,
441
+ get: function get() {
442
+ return _hooks.isMouseEvent;
443
+ }
444
+ });
429
445
  Object.defineProperty(exports, "isValidHex", {
430
446
  enumerable: true,
431
447
  get: function get() {
@@ -481,6 +497,12 @@ Object.defineProperty(exports, "saturate", {
481
497
  return _color.saturate;
482
498
  }
483
499
  });
500
+ Object.defineProperty(exports, "setMultipleRefs", {
501
+ enumerable: true,
502
+ get: function get() {
503
+ return _hooks.setMultipleRefs;
504
+ }
505
+ });
484
506
  Object.defineProperty(exports, "shade", {
485
507
  enumerable: true,
486
508
  get: function get() {
@@ -547,18 +569,48 @@ Object.defineProperty(exports, "useColorStopsState", {
547
569
  return _color_picker.useColorStopsState;
548
570
  }
549
571
  });
572
+ Object.defineProperty(exports, "useCombinedRefs", {
573
+ enumerable: true,
574
+ get: function get() {
575
+ return _hooks.useCombinedRefs;
576
+ }
577
+ });
550
578
  Object.defineProperty(exports, "useCurrentEuiBreakpoint", {
551
579
  enumerable: true,
552
580
  get: function get() {
553
581
  return _breakpoint.useCurrentEuiBreakpoint;
554
582
  }
555
583
  });
584
+ Object.defineProperty(exports, "useDeepEqual", {
585
+ enumerable: true,
586
+ get: function get() {
587
+ return _hooks.useDeepEqual;
588
+ }
589
+ });
590
+ Object.defineProperty(exports, "useDependentState", {
591
+ enumerable: true,
592
+ get: function get() {
593
+ return _hooks.useDependentState;
594
+ }
595
+ });
556
596
  Object.defineProperty(exports, "useEuiContainerQuery", {
557
597
  enumerable: true,
558
598
  get: function get() {
559
599
  return _container_query_hook.useEuiContainerQuery;
560
600
  }
561
601
  });
602
+ Object.defineProperty(exports, "useEuiDisabledElement", {
603
+ enumerable: true,
604
+ get: function get() {
605
+ return _hooks.useEuiDisabledElement;
606
+ }
607
+ });
608
+ Object.defineProperty(exports, "useForceRender", {
609
+ enumerable: true,
610
+ get: function get() {
611
+ return _hooks.useForceRender;
612
+ }
613
+ });
562
614
  Object.defineProperty(exports, "useGeneratedHtmlId", {
563
615
  enumerable: true,
564
616
  get: function get() {
@@ -583,6 +635,24 @@ Object.defineProperty(exports, "useIsWithinMinBreakpoint", {
583
635
  return _breakpoint.useIsWithinMinBreakpoint;
584
636
  }
585
637
  });
638
+ Object.defineProperty(exports, "useLatest", {
639
+ enumerable: true,
640
+ get: function get() {
641
+ return _hooks.useLatest;
642
+ }
643
+ });
644
+ Object.defineProperty(exports, "useMouseMove", {
645
+ enumerable: true,
646
+ get: function get() {
647
+ return _hooks.useMouseMove;
648
+ }
649
+ });
650
+ Object.defineProperty(exports, "useUpdateEffect", {
651
+ enumerable: true,
652
+ get: function get() {
653
+ return _hooks.useUpdateEffect;
654
+ }
655
+ });
586
656
  Object.defineProperty(exports, "wcagContrastMin", {
587
657
  enumerable: true,
588
658
  get: function get() {
@@ -661,17 +731,6 @@ Object.keys(_findElement).forEach(function (key) {
661
731
  var _focus_trap = require("./focus_trap");
662
732
  var _format = require("./format");
663
733
  var _hooks = require("./hooks");
664
- Object.keys(_hooks).forEach(function (key) {
665
- if (key === "default" || key === "__esModule") return;
666
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
667
- if (key in exports && exports[key] === _hooks[key]) return;
668
- Object.defineProperty(exports, key, {
669
- enumerable: true,
670
- get: function get() {
671
- return _hooks[key];
672
- }
673
- });
674
- });
675
734
  var _number = require("./number");
676
735
  var _paging = require("./paging");
677
736
  var _popover = require("./popover");
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@elastic/eui",
3
3
  "description": "Elastic UI Component Library",
4
- "version": "113.3.0",
4
+ "version": "114.0.0",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "main": "lib",
7
7
  "module": "es",
@@ -53,7 +53,7 @@
53
53
  "directory": "packages/eui"
54
54
  },
55
55
  "dependencies": {
56
- "@elastic/eui-theme-common": "8.1.0",
56
+ "@elastic/eui-theme-common": "9.0.0",
57
57
  "@elastic/prismjs-esql": "^1.1.2",
58
58
  "@hello-pangea/dnd": "^16.6.0",
59
59
  "@types/lodash": "^4.14.202",
@@ -108,7 +108,7 @@
108
108
  "@cypress/webpack-dev-server": "^1.7.0",
109
109
  "@elastic/charts": "^64.1.0",
110
110
  "@elastic/datemath": "^5.0.3",
111
- "@elastic/eui-theme-borealis": "6.2.0",
111
+ "@elastic/eui-theme-borealis": "7.0.0",
112
112
  "@emotion/babel-preset-css-prop": "^11.11.0",
113
113
  "@emotion/cache": "^11.11.0",
114
114
  "@emotion/css": "^11.11.0",
@@ -256,7 +256,7 @@
256
256
  },
257
257
  "peerDependencies": {
258
258
  "@elastic/datemath": "^5.0.2",
259
- "@elastic/eui-theme-borealis": "6.2.0",
259
+ "@elastic/eui-theme-borealis": "7.0.0",
260
260
  "@emotion/css": "11.x",
261
261
  "@emotion/react": "11.x",
262
262
  "@types/react": "^17.0 || ^18.0",
@@ -100,6 +100,19 @@ _EuiSplitButton.propTypes = {
100
100
  "aria-label": _propTypes.default.string,
101
101
  "data-test-subj": _propTypes.default.string,
102
102
  css: _propTypes.default.any,
103
+ /**
104
+ * Controls the disabled behavior via the native `disabled` attribute.
105
+ */
106
+ isDisabled: _propTypes.default.bool,
107
+ /**
108
+ * NOTE: Beta feature, may be changed or removed in the future
109
+ *
110
+ * Changes the native `disabled` attribute to `aria-disabled` to preserve focusability.
111
+ * This results in a semantically disabled button without the default browser handling of the disabled state.
112
+ *
113
+ * Use e.g. when a disabled button should have a tooltip.
114
+ */
115
+ hasAriaDisabled: _propTypes.default.bool,
103
116
  size: _propTypes.default.any,
104
117
  color: _propTypes.default.any,
105
118
  fill: _propTypes.default.bool,
@@ -66,6 +66,19 @@ var EuiSplitButtonActionPrimary = exports.EuiSplitButtonActionPrimary = function
66
66
  return tooltipProps ? (0, _react2.jsx)(_tool_tip.EuiToolTip, tooltipProps, button) : button;
67
67
  };
68
68
  EuiSplitButtonActionPrimary.propTypes = {
69
+ /**
70
+ * Controls the disabled behavior via the native `disabled` attribute.
71
+ */
72
+ isDisabled: _propTypes.default.bool,
73
+ /**
74
+ * NOTE: Beta feature, may be changed or removed in the future
75
+ *
76
+ * Changes the native `disabled` attribute to `aria-disabled` to preserve focusability.
77
+ * This results in a semantically disabled button without the default browser handling of the disabled state.
78
+ *
79
+ * Use e.g. when a disabled button should have a tooltip.
80
+ */
81
+ hasAriaDisabled: _propTypes.default.bool,
69
82
  /**
70
83
  * Enables rendering an `EuiToolTip` with the passed props.
71
84
  */
@@ -108,6 +121,8 @@ var EuiSplitButtonActionSecondary = exports.EuiSplitButtonActionSecondary = func
108
121
  })) : action;
109
122
  };
110
123
  EuiSplitButtonActionSecondary.propTypes = {
124
+ isDisabled: _propTypes.default.bool,
125
+ hasAriaDisabled: _propTypes.default.bool,
111
126
  /**
112
127
  * Enables rendering an `EuiToolTip` with the passed props.
113
128
  */
@@ -129,6 +129,11 @@ EuiCollapsibleNav.propTypes = {
129
129
  * @default undefined (auto-inherit when nested, otherwise 'never')
130
130
  */
131
131
  session: _propTypes.default.oneOfType([_propTypes.default.any.isRequired, _propTypes.default.any.isRequired, _propTypes.default.any.isRequired]),
132
+ /**
133
+ * Optional Symbol to scope flyout history. Only flyouts that receive the same Symbol reference share Back button and history; omit to get a unique group per session.
134
+ * @default undefined (each session gets a unique key and does not share history)
135
+ */
136
+ historyKey: _propTypes.default.any,
132
137
  /**
133
138
  * Callback fired when the flyout becomes active/visible, which may happen programmatically from history navigation.
134
139
  */
@@ -96,9 +96,12 @@ var EuiColorPicker = exports.EuiColorPicker = function EuiColorPicker(_ref) {
96
96
  _ref$isClearable = _ref.isClearable,
97
97
  isClearable = _ref$isClearable === void 0 ? false : _ref$isClearable,
98
98
  placeholder = _ref.placeholder,
99
- dataTestSubj = _ref['data-test-subj'];
100
- var _useEuiI18n = (0, _i18n.useEuiI18n)(['euiColorPicker.popoverLabel', 'euiColorPicker.colorLabel', 'euiColorPicker.selectedColorLabel', 'euiColorPicker.colorErrorMessage', 'euiColorPicker.transparent', 'euiColorPicker.alphaLabel', 'euiColorPicker.openLabel', 'euiColorPicker.closeLabel'], ['Color selection dialog', 'Color value', 'Selected color', 'Invalid color value', 'Transparent', 'Alpha channel (opacity) value', 'Press the escape key to close the popover', 'Press the down key to open a popover containing color options']),
101
- _useEuiI18n2 = (0, _slicedToArray2.default)(_useEuiI18n, 8),
99
+ dataTestSubj = _ref['data-test-subj'],
100
+ _ariaLabel = _ref['aria-label'],
101
+ ariaLabelledby = _ref['aria-labelledby'],
102
+ ariaDescribedby = _ref['aria-describedby'];
103
+ var _useEuiI18n = (0, _i18n.useEuiI18n)(['euiColorPicker.popoverLabel', 'euiColorPicker.colorLabel', 'euiColorPicker.selectedColorLabel', 'euiColorPicker.colorErrorMessage', 'euiColorPicker.transparent', 'euiColorPicker.alphaLabel', 'euiColorPicker.openLabel', 'euiColorPicker.closeLabel', 'euiColorPicker.ariaLabel'], ['Color selection dialog', 'Color value', 'Selected color', 'Invalid color value', 'Transparent', 'Alpha channel (opacity) value', 'Press the escape key to close the popover', 'Press the down key to open a popover containing color options', 'Select a color']),
104
+ _useEuiI18n2 = (0, _slicedToArray2.default)(_useEuiI18n, 9),
102
105
  popoverLabel = _useEuiI18n2[0],
103
106
  colorLabel = _useEuiI18n2[1],
104
107
  selectedColorLabel = _useEuiI18n2[2],
@@ -106,7 +109,16 @@ var EuiColorPicker = exports.EuiColorPicker = function EuiColorPicker(_ref) {
106
109
  transparent = _useEuiI18n2[4],
107
110
  alphaLabel = _useEuiI18n2[5],
108
111
  openLabel = _useEuiI18n2[6],
109
- closeLabel = _useEuiI18n2[7];
112
+ closeLabel = _useEuiI18n2[7],
113
+ ariaLabel = _useEuiI18n2[8];
114
+ var openLabelId = (0, _services.useGeneratedHtmlId)({
115
+ prefix: 'colorPicker',
116
+ suffix: 'openLabel'
117
+ });
118
+ var closeLabelId = (0, _services.useGeneratedHtmlId)({
119
+ prefix: 'colorPicker',
120
+ suffix: 'closeLabel'
121
+ });
110
122
  var defaultSwatches = (0, _services.useEuiPaletteColorBlind)();
111
123
  var swatches = _swatches !== null && _swatches !== void 0 ? _swatches : defaultSwatches;
112
124
  var preferredFormat = (0, _react.useMemo)(function () {
@@ -435,10 +447,21 @@ var EuiColorPicker = exports.EuiColorPicker = function EuiColorPicker(_ref) {
435
447
  readOnly: readOnly,
436
448
  fullWidth: fullWidth,
437
449
  autoComplete: "off",
438
- "data-test-subj": testSubjAnchor,
439
- "aria-label": isColorSelectorShown ? openLabel : closeLabel,
450
+ "data-test-subj": testSubjAnchor
451
+ // if an id is provided it might be used in combination with `htmlFor` on a label,
452
+ // so we don't want to override it with a fallback `aria-label`
453
+ ,
454
+ "aria-label": _ariaLabel ? _ariaLabel : id || ariaLabelledby ? undefined : ariaLabel,
455
+ "aria-labelledby": ariaLabelledby,
456
+ "aria-describedby": (0, _classnames.default)(isColorSelectorShown ? openLabelId : closeLabelId, ariaDescribedby),
440
457
  controlOnly: true // Don't need two EuiFormControlwrappers
441
- }));
458
+ }), (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("span", null, (0, _react2.jsx)("span", {
459
+ id: openLabelId,
460
+ "aria-hidden": !isColorSelectorShown
461
+ }, openLabel), (0, _react2.jsx)("span", {
462
+ id: closeLabelId,
463
+ "aria-hidden": isColorSelectorShown
464
+ }, closeLabel))));
442
465
  }
443
466
  return display === 'inline' ? (0, _react2.jsx)("div", {
444
467
  css: styles.euiColorPicker,
@@ -10,6 +10,7 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
10
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _services = require("../../../services");
13
+ var _hooks = require("../../../services/hooks");
13
14
  var _global_styling = require("../../../global_styling");
14
15
  var _cell = require("../body/cell");
15
16
  var _focus = require("./focus");
@@ -37,20 +38,48 @@ var useScroll = exports.useScroll = function useScroll(args) {
37
38
  scrollCellIntoView = _useScrollCellIntoVie.scrollCellIntoView;
38
39
  var _useContext = (0, _react.useContext)(_focus.DataGridFocusContext),
39
40
  focusedCell = _useContext.focusedCell;
40
- var isPointerDown = (0, _services.useIsPointerDown)(args.outerGridRef);
41
+ var isPointerDownRef = (0, _hooks.useIsPointerDown)(args.outerGridRef);
42
+
43
+ /**
44
+ * Set when `focusedCell` changes while the pointer is held down (e.g. clicking a cell).
45
+ * Allows the `pointerup` listener below to scroll on release without
46
+ * causing snap-back when the user scrolls the grid without changing focus.
47
+ */
48
+ var pendingScrollRef = (0, _react.useRef)(false);
41
49
  (0, _react.useEffect)(function () {
42
- if (focusedCell) {
50
+ if (!focusedCell) return;
51
+ if (isPointerDownRef.current) {
52
+ // Pointer is down - defer scroll decision to the pointerup listener
53
+ pendingScrollRef.current = true;
54
+ return;
55
+ }
56
+ scrollCellIntoView({
57
+ rowIndex: focusedCell[1],
58
+ colIndex: focusedCell[0]
59
+ });
60
+ }, [focusedCell, scrollCellIntoView, isPointerDownRef]);
61
+ (0, _react.useEffect)(function () {
62
+ var handlePointerUp = function handlePointerUp() {
43
63
  var _window;
44
- // do not scroll if text is being selected
45
- if (isPointerDown || ((_window = window) === null || _window === void 0 || (_window = _window.getSelection()) === null || _window === void 0 ? void 0 : _window.type) === 'Range') {
46
- return;
47
- }
64
+ if (!pendingScrollRef.current || !focusedCell) return;
65
+ pendingScrollRef.current = false;
66
+
67
+ // Skip if the interaction resulted in text being selected
68
+ if (((_window = window) === null || _window === void 0 || (_window = _window.getSelection()) === null || _window === void 0 ? void 0 : _window.type) === 'Range') return;
48
69
  scrollCellIntoView({
49
70
  rowIndex: focusedCell[1],
50
71
  colIndex: focusedCell[0]
51
72
  });
52
- }
53
- }, [focusedCell, isPointerDown, scrollCellIntoView]);
73
+ };
74
+ document.addEventListener('pointerup', handlePointerUp, {
75
+ capture: true
76
+ });
77
+ return function () {
78
+ return document.removeEventListener('pointerup', handlePointerUp, {
79
+ capture: true
80
+ });
81
+ };
82
+ }, [focusedCell, scrollCellIntoView]);
54
83
  var _useContext2 = (0, _react.useContext)(_cell.DataGridCellPopoverContext),
55
84
  popoverIsOpen = _useContext2.popoverIsOpen,
56
85
  cellLocation = _useContext2.cellLocation;
@@ -9,6 +9,7 @@ exports.EuiFlyoutOverlay = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
  var _css = require("@emotion/css");
12
+ var _services = require("../../services");
12
13
  var _overlay_mask = require("../overlay_mask");
13
14
  var _portal = require("../portal");
14
15
  var _react2 = require("@emotion/react");
@@ -26,8 +27,7 @@ var getEuiFlyoutOverlayStyles = function getEuiFlyoutOverlayStyles(zIndex) {
26
27
  /*
27
28
  This needs to have !important to override the default EuiOverlayMask
28
29
  z-index based on the headerZindexLocation prop. Using the style attribute
29
- doesn't work since EuiOverlayMask requires a string style prop that
30
- causes React errors in the test environment.
30
+ doesn't work since EuiOverlayMask requires the styles to be provided via className
31
31
  */
32
32
  return /*#__PURE__*/(0, _css.css)("z-index:", zIndex, "!important;;label:getEuiFlyoutOverlayStyles;");
33
33
  };
@@ -48,10 +48,39 @@ var EuiFlyoutOverlay = exports.EuiFlyoutOverlay = function EuiFlyoutOverlay(_ref
48
48
  hasOverlayMask = _ref.hasOverlayMask,
49
49
  maskZIndex = _ref.maskZIndex,
50
50
  _ref$headerZindexLoca = _ref.headerZindexLocation,
51
- headerZindexLocation = _ref$headerZindexLoca === void 0 ? 'below' : _ref$headerZindexLoca;
51
+ headerZindexLocation = _ref$headerZindexLoca === void 0 ? 'below' : _ref$headerZindexLoca,
52
+ containerRect = _ref.containerRect;
52
53
  var styles = (0, _react.useMemo)(function () {
53
54
  return getEuiFlyoutOverlayStyles(maskZIndex);
54
55
  }, [maskZIndex]);
56
+
57
+ // Internal ref so we can apply containerRect positioning directly on the DOM
58
+ // node, avoiding new Emotion CSS class generation on every scroll/resize.
59
+ var internalMaskRef = (0, _react.useRef)(null);
60
+ var combinedMaskRef = (0, _services.useCombinedRefs)([internalMaskRef, maskProps === null || maskProps === void 0 ? void 0 : maskProps.maskRef]);
61
+ (0, _react.useEffect)(function () {
62
+ var node = internalMaskRef.current;
63
+ if (!node) return;
64
+
65
+ // containerRect positioning must be applied via node.style.setProperty rather than
66
+ // through the style prop - EuiOverlayMask requires styles to be passed via className
67
+ if (containerRect) {
68
+ node.style.setProperty('inset-block-start', "".concat(containerRect.top, "px"));
69
+ node.style.setProperty('inset-inline-start', "".concat(containerRect.left, "px"));
70
+ node.style.setProperty('inline-size', "".concat(containerRect.width, "px"));
71
+ node.style.setProperty('block-size', "".concat(containerRect.height, "px"));
72
+ node.style.setProperty('inset-inline-end', 'auto');
73
+ node.style.setProperty('inset-block-end', 'auto');
74
+ } else {
75
+ node.style.removeProperty('inset-block-start');
76
+ node.style.removeProperty('inset-inline-start');
77
+ node.style.removeProperty('inline-size');
78
+ node.style.removeProperty('block-size');
79
+ node.style.removeProperty('inset-inline-end');
80
+ node.style.removeProperty('inset-block-end');
81
+ }
82
+ }, [containerRect, hasOverlayMask]); // toggling ownFocus while the flyout is already open should cause re-render
83
+
55
84
  var content = children;
56
85
  if (!isPushed || hasOverlayMask) {
57
86
  content = (0, _react2.jsx)(_portal.EuiPortal, null, content);
@@ -60,6 +89,7 @@ var EuiFlyoutOverlay = exports.EuiFlyoutOverlay = function EuiFlyoutOverlay(_ref
60
89
  return (0, _react2.jsx)(_react.default.Fragment, null, hasOverlayMask && (0, _react2.jsx)(_overlay_mask.EuiOverlayMask, (0, _extends2.default)({
61
90
  headerZindexLocation: (_maskProps$headerZind = maskProps === null || maskProps === void 0 ? void 0 : maskProps.headerZindexLocation) !== null && _maskProps$headerZind !== void 0 ? _maskProps$headerZind : headerZindexLocation
62
91
  }, maskProps, {
92
+ maskRef: combinedMaskRef,
63
93
  className: classes
64
94
  })), content);
65
95
  };