@elastic/eui 94.3.0 → 94.4.1

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 (145) hide show
  1. package/README.md +3 -0
  2. package/dist/eui_charts_theme.js +1519 -1519
  3. package/dist/eui_charts_theme.js.map +1 -1
  4. package/dist/eui_theme_dark.css +41 -497
  5. package/dist/eui_theme_dark.min.css +1 -1
  6. package/dist/eui_theme_light.css +41 -497
  7. package/dist/eui_theme_light.min.css +1 -1
  8. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +5 -1
  9. package/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +25 -11
  10. package/es/components/form/form.styles.js +26 -3
  11. package/es/components/markdown_editor/markdown_editor.js +12 -8
  12. package/es/components/markdown_editor/markdown_editor.styles.js +29 -0
  13. package/es/components/markdown_editor/markdown_editor_drop_zone.js +22 -9
  14. package/es/components/markdown_editor/markdown_editor_drop_zone.styles.js +33 -0
  15. package/es/components/markdown_editor/markdown_editor_footer.js +11 -2
  16. package/es/components/markdown_editor/markdown_editor_footer.styles.js +26 -0
  17. package/es/components/markdown_editor/markdown_editor_text_area.js +6 -1
  18. package/es/components/markdown_editor/markdown_editor_text_area.styles.js +22 -0
  19. package/es/components/markdown_editor/markdown_editor_toolbar.js +10 -2
  20. package/es/components/markdown_editor/markdown_editor_toolbar.styles.js +21 -0
  21. package/es/components/markdown_editor/markdown_format.js +9 -6
  22. package/es/components/markdown_editor/markdown_format.styles.js +25 -10
  23. package/es/components/markdown_editor/plugins/markdown_checkbox/renderer.js +9 -3
  24. package/es/components/markdown_editor/plugins/markdown_tooltip/renderer.js +13 -2
  25. package/es/components/selectable/selectable.js +10 -2
  26. package/es/components/selectable/selectable_list/selectable_list.js +95 -42
  27. package/es/components/selectable/selectable_list/selectable_list_item.js +234 -204
  28. package/es/components/selectable/selectable_option.js +9 -1
  29. package/es/components/selectable/selectable_templates/selectable_template_sitewide.js +10 -2
  30. package/es/components/text/text_color.js +4 -1
  31. package/es/components/toast/global_toast_list_item.js +5 -5
  32. package/eui.d.ts +332 -234
  33. package/i18ntokens.json +124 -106
  34. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +5 -1
  35. package/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +25 -11
  36. package/lib/components/form/form.styles.js +30 -4
  37. package/lib/components/markdown_editor/markdown_editor.js +12 -8
  38. package/lib/components/markdown_editor/markdown_editor.styles.js +37 -0
  39. package/lib/components/markdown_editor/markdown_editor_drop_zone.js +20 -8
  40. package/lib/components/markdown_editor/markdown_editor_drop_zone.styles.js +38 -0
  41. package/lib/components/markdown_editor/markdown_editor_footer.js +10 -1
  42. package/lib/components/markdown_editor/markdown_editor_footer.styles.js +33 -0
  43. package/lib/components/markdown_editor/markdown_editor_text_area.js +6 -1
  44. package/lib/components/markdown_editor/markdown_editor_text_area.styles.js +29 -0
  45. package/lib/components/markdown_editor/markdown_editor_toolbar.js +10 -2
  46. package/lib/components/markdown_editor/markdown_editor_toolbar.styles.js +28 -0
  47. package/lib/components/markdown_editor/markdown_format.js +8 -5
  48. package/lib/components/markdown_editor/markdown_format.styles.js +25 -10
  49. package/lib/components/markdown_editor/plugins/markdown_checkbox/renderer.js +9 -4
  50. package/lib/components/markdown_editor/plugins/markdown_tooltip/renderer.js +19 -10
  51. package/lib/components/selectable/selectable.js +10 -2
  52. package/lib/components/selectable/selectable_list/selectable_list.js +95 -42
  53. package/lib/components/selectable/selectable_list/selectable_list_item.js +241 -210
  54. package/lib/components/selectable/selectable_option.js +12 -1
  55. package/lib/components/selectable/selectable_templates/selectable_template_sitewide.js +10 -2
  56. package/lib/components/text/text_color.js +6 -2
  57. package/lib/components/toast/global_toast_list_item.js +5 -5
  58. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +5 -1
  59. package/optimize/es/components/date_picker/super_date_picker/date_popover/absolute_tab.js +25 -11
  60. package/optimize/es/components/form/form.styles.js +26 -3
  61. package/optimize/es/components/markdown_editor/markdown_editor.js +12 -8
  62. package/optimize/es/components/markdown_editor/markdown_editor.styles.js +29 -0
  63. package/optimize/es/components/markdown_editor/markdown_editor_drop_zone.js +19 -9
  64. package/optimize/es/components/markdown_editor/markdown_editor_drop_zone.styles.js +33 -0
  65. package/optimize/es/components/markdown_editor/markdown_editor_footer.js +11 -2
  66. package/optimize/es/components/markdown_editor/markdown_editor_footer.styles.js +26 -0
  67. package/optimize/es/components/markdown_editor/markdown_editor_text_area.js +6 -1
  68. package/optimize/es/components/markdown_editor/markdown_editor_text_area.styles.js +22 -0
  69. package/optimize/es/components/markdown_editor/markdown_editor_toolbar.js +10 -2
  70. package/optimize/es/components/markdown_editor/markdown_editor_toolbar.styles.js +21 -0
  71. package/optimize/es/components/markdown_editor/markdown_format.js +9 -6
  72. package/optimize/es/components/markdown_editor/markdown_format.styles.js +25 -10
  73. package/optimize/es/components/markdown_editor/plugins/markdown_checkbox/renderer.js +9 -3
  74. package/optimize/es/components/markdown_editor/plugins/markdown_tooltip/renderer.js +13 -2
  75. package/optimize/es/components/selectable/selectable_list/selectable_list.js +81 -38
  76. package/optimize/es/components/selectable/selectable_list/selectable_list_item.js +217 -198
  77. package/optimize/es/components/selectable/selectable_option.js +9 -1
  78. package/optimize/es/components/text/text_color.js +4 -1
  79. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +5 -1
  80. package/optimize/lib/components/date_picker/super_date_picker/date_popover/absolute_tab.js +25 -11
  81. package/optimize/lib/components/form/form.styles.js +30 -4
  82. package/optimize/lib/components/markdown_editor/markdown_editor.js +12 -8
  83. package/optimize/lib/components/markdown_editor/markdown_editor.styles.js +37 -0
  84. package/optimize/lib/components/markdown_editor/markdown_editor_drop_zone.js +24 -16
  85. package/optimize/lib/components/markdown_editor/markdown_editor_drop_zone.styles.js +38 -0
  86. package/optimize/lib/components/markdown_editor/markdown_editor_footer.js +10 -1
  87. package/optimize/lib/components/markdown_editor/markdown_editor_footer.styles.js +33 -0
  88. package/optimize/lib/components/markdown_editor/markdown_editor_text_area.js +6 -1
  89. package/optimize/lib/components/markdown_editor/markdown_editor_text_area.styles.js +29 -0
  90. package/optimize/lib/components/markdown_editor/markdown_editor_toolbar.js +10 -2
  91. package/optimize/lib/components/markdown_editor/markdown_editor_toolbar.styles.js +28 -0
  92. package/optimize/lib/components/markdown_editor/markdown_format.js +8 -5
  93. package/optimize/lib/components/markdown_editor/markdown_format.styles.js +25 -10
  94. package/optimize/lib/components/markdown_editor/plugins/markdown_checkbox/renderer.js +9 -4
  95. package/optimize/lib/components/markdown_editor/plugins/markdown_tooltip/renderer.js +19 -10
  96. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +81 -38
  97. package/optimize/lib/components/selectable/selectable_list/selectable_list_item.js +224 -204
  98. package/optimize/lib/components/selectable/selectable_option.js +12 -1
  99. package/optimize/lib/components/text/text_color.js +6 -2
  100. package/package.json +5 -12
  101. package/src/components/date_picker/react-datepicker/LICENSE +21 -0
  102. package/src/components/date_picker/react-datepicker/README.md +168 -0
  103. package/src/components/date_picker/super_date_picker/date_popover/_absolute_tab.scss +13 -18
  104. package/src/components/form/checkbox/_checkbox.scss +23 -6
  105. package/src/components/index.scss +0 -1
  106. package/src/components/selectable/selectable_list/_selectable_list_item.scss +4 -0
  107. package/src/components/selectable/selectable_templates/_selectable_template_sitewide_option.scss +5 -1
  108. package/src/services/theme/README.md +153 -0
  109. package/src/test/README.md +44 -0
  110. package/src/themes/amsterdam/overrides/_index.scss +0 -1
  111. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +5 -1
  112. package/test-env/components/date_picker/super_date_picker/date_popover/absolute_tab.js +25 -11
  113. package/test-env/components/form/form.styles.js +30 -4
  114. package/test-env/components/markdown_editor/markdown_editor.js +12 -8
  115. package/test-env/components/markdown_editor/markdown_editor.styles.js +37 -0
  116. package/test-env/components/markdown_editor/markdown_editor_drop_zone.js +24 -16
  117. package/test-env/components/markdown_editor/markdown_editor_drop_zone.styles.js +38 -0
  118. package/test-env/components/markdown_editor/markdown_editor_footer.js +10 -1
  119. package/test-env/components/markdown_editor/markdown_editor_footer.styles.js +33 -0
  120. package/test-env/components/markdown_editor/markdown_editor_text_area.js +6 -1
  121. package/test-env/components/markdown_editor/markdown_editor_text_area.styles.js +29 -0
  122. package/test-env/components/markdown_editor/markdown_editor_toolbar.js +10 -2
  123. package/test-env/components/markdown_editor/markdown_editor_toolbar.styles.js +28 -0
  124. package/test-env/components/markdown_editor/markdown_format.js +8 -5
  125. package/test-env/components/markdown_editor/markdown_format.styles.js +25 -10
  126. package/test-env/components/markdown_editor/plugins/markdown_checkbox/renderer.js +9 -4
  127. package/test-env/components/markdown_editor/plugins/markdown_tooltip/renderer.js +19 -10
  128. package/test-env/components/selectable/selectable.js +10 -2
  129. package/test-env/components/selectable/selectable_list/selectable_list.js +95 -42
  130. package/test-env/components/selectable/selectable_list/selectable_list_item.js +233 -205
  131. package/test-env/components/selectable/selectable_option.js +12 -1
  132. package/test-env/components/selectable/selectable_templates/selectable_template_sitewide.js +10 -2
  133. package/test-env/components/text/text_color.js +6 -2
  134. package/test-env/components/toast/global_toast_list_item.js +5 -5
  135. package/src/components/markdown_editor/_index.scss +0 -9
  136. package/src/components/markdown_editor/_markdown_editor.scss +0 -22
  137. package/src/components/markdown_editor/_markdown_editor_drop_zone.scss +0 -58
  138. package/src/components/markdown_editor/_markdown_editor_footer.scss +0 -42
  139. package/src/components/markdown_editor/_markdown_editor_preview.scss +0 -20
  140. package/src/components/markdown_editor/_markdown_editor_text_area.scss +0 -43
  141. package/src/components/markdown_editor/_markdown_editor_toolbar.scss +0 -29
  142. package/src/components/markdown_editor/_markdown_format.scss +0 -78
  143. package/src/components/markdown_editor/_variables.scss +0 -1
  144. package/src/components/markdown_editor/plugins/markdown_tooltip.scss +0 -4
  145. package/src/themes/amsterdam/overrides/_markdown_editor.scss +0 -18
@@ -1,16 +1,9 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
1
2
  import _extends from "@babel/runtime/helpers/extends";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
4
- import _createClass from "@babel/runtime/helpers/createClass";
5
- import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
6
- import _inherits from "@babel/runtime/helpers/inherits";
7
- import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
8
- import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
9
3
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
10
- var _excluded = ["children", "className", "disabled", "checked", "isFocused", "showIcons", "prepend", "append", "allowExclusions", "onFocusBadge", "paddingSize", "role", "searchable", "textWrap"],
4
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
5
+ var _excluded = ["children", "className", "disabled", "checked", "isFocused", "showIcons", "prepend", "append", "allowExclusions", "onFocusBadge", "paddingSize", "role", "searchable", "textWrap", "toolTipContent", "toolTipProps", "aria-describedby"],
11
6
  _excluded2 = ["children", "className"];
12
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
13
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
14
7
  /*
15
8
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
16
9
  * or more contributor license agreements. Licensed under the Elastic License
@@ -20,12 +13,13 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
20
13
  */
21
14
 
22
15
  import classNames from 'classnames';
23
- import React, { Component } from 'react';
16
+ import React, { useState, useEffect, useMemo } from 'react';
24
17
  import { keysOf } from '../../common';
25
18
  import { EuiI18n } from '../../i18n';
26
19
  import { EuiIcon } from '../../icon';
27
20
  import { EuiScreenReaderOnly } from '../../accessibility';
28
21
  import { EuiBadge } from '../../badge';
22
+ import { EuiToolTip } from '../../tool_tip';
29
23
  import { jsx as ___EmotionJSX } from "@emotion/react";
30
24
  function resolveIconAndColor(checked) {
31
25
  switch (checked) {
@@ -56,194 +50,219 @@ var paddingSizeToClassNameMap = {
56
50
  s: 'euiSelectableListItem--paddingSmall'
57
51
  };
58
52
  export var PADDING_SIZES = keysOf(paddingSizeToClassNameMap);
59
- export var EuiSelectableListItem = /*#__PURE__*/function (_Component) {
60
- _inherits(EuiSelectableListItem, _Component);
61
- var _super = _createSuper(EuiSelectableListItem);
62
- function EuiSelectableListItem(props) {
63
- var _this;
64
- _classCallCheck(this, EuiSelectableListItem);
65
- _this = _super.call(this, props);
66
- // aria-checked is intended to be used with role="checkbox" but
67
- // the MDN documentation lists it as a possibility for role="option".
68
- // See https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-checked
69
- // and https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/option_role
70
- _defineProperty(_assertThisInitialized(_this), "isChecked", function (role, checked) {
71
- var rolesThatCanBeMixed = ['option', 'checkbox', 'menuitemcheckbox'];
72
- var rolesThatCanBeChecked = [].concat(rolesThatCanBeMixed, ['radio', 'menuitemradio', 'switch']);
73
- if (!rolesThatCanBeChecked.includes(role)) return undefined;
74
- switch (checked) {
75
- case 'on':
76
- case 'off':
77
- return true;
78
- case 'mixed':
79
- if (rolesThatCanBeMixed.includes(role)) {
80
- return 'mixed';
81
- } else {
82
- return false;
83
- }
84
- default:
85
- return false;
86
- }
87
- });
88
- return _this;
89
- }
90
- _createClass(EuiSelectableListItem, [{
91
- key: "render",
92
- value: function render() {
93
- var _this$props = this.props,
94
- children = _this$props.children,
95
- className = _this$props.className,
96
- disabled = _this$props.disabled,
97
- checked = _this$props.checked,
98
- isFocused = _this$props.isFocused,
99
- showIcons = _this$props.showIcons,
100
- prepend = _this$props.prepend,
101
- append = _this$props.append,
102
- allowExclusions = _this$props.allowExclusions,
103
- onFocusBadge = _this$props.onFocusBadge,
104
- _this$props$paddingSi = _this$props.paddingSize,
105
- paddingSize = _this$props$paddingSi === void 0 ? 's' : _this$props$paddingSi,
106
- _this$props$role = _this$props.role,
107
- role = _this$props$role === void 0 ? 'option' : _this$props$role,
108
- searchable = _this$props.searchable,
109
- textWrap = _this$props.textWrap,
110
- rest = _objectWithoutProperties(_this$props, _excluded);
111
- var classes = classNames('euiSelectableListItem', {
112
- 'euiSelectableListItem-isFocused': isFocused
113
- }, paddingSizeToClassNameMap[paddingSize], className);
114
- var textClasses = classNames('euiSelectableListItem__text', _defineProperty({}, "euiSelectableListItem__text--".concat(textWrap), textWrap));
115
- var optionIcon;
116
- if (showIcons) {
117
- var _resolveIconAndColor = resolveIconAndColor(checked),
118
- icon = _resolveIconAndColor.icon,
119
- color = _resolveIconAndColor.color;
120
- optionIcon = ___EmotionJSX(EuiIcon, {
121
- className: "euiSelectableListItem__icon",
122
- color: color,
123
- type: icon
124
- });
125
- }
126
- var state;
127
- var instructions;
128
- var screenReaderStrings = {
129
- checked: {
130
- state: ___EmotionJSX(EuiI18n, {
131
- token: "euiSelectableListItem.checkedOption",
132
- default: "Checked option."
133
- }),
134
- instructions: ___EmotionJSX(EuiI18n, {
135
- token: "euiSelectableListItem.checkOptionInstructions",
136
- default: "To check this option, press Enter."
137
- })
138
- },
139
- unchecked: {
140
- instructions: ___EmotionJSX(EuiI18n, {
141
- token: "euiSelectableListItem.uncheckOptionInstructions",
142
- default: "To uncheck this option, press Enter."
143
- })
144
- },
145
- excluded: {
146
- state: ___EmotionJSX(EuiI18n, {
147
- token: "euiSelectableListItem.excludedOption",
148
- default: "Excluded option."
149
- }),
150
- instructions: ___EmotionJSX(EuiI18n, {
151
- token: "euiSelectableListItem.excludeOptionInstructions",
152
- default: "To exclude this option, press Enter."
153
- })
154
- },
155
- mixed: {
156
- state: ___EmotionJSX(EuiI18n, {
157
- token: "euiSelectableListItem.mixedOption",
158
- default: "Mixed (indeterminate) option."
159
- }),
160
- instructions: ___EmotionJSX(EuiI18n, {
161
- token: "euiSelectableListItem.mixedOptionInstructions",
162
- default: "To check this option for all, press Enter once."
163
- }),
164
- uncheckInstructions: ___EmotionJSX(EuiI18n, {
165
- token: "euiSelectableListItem.mixedOptionUncheckInstructions",
166
- default: "To uncheck this option for all, press Enter twice."
167
- }),
168
- excludeInstructions: ___EmotionJSX(EuiI18n, {
169
- token: "euiSelectableListItem.mixedOptionExcludeInstructions",
170
- default: "To exclude this option for all, press Enter twice."
171
- })
172
- }
173
- };
174
- switch (checked) {
175
- case 'on':
176
- state = screenReaderStrings.checked.state;
177
- instructions = allowExclusions ? screenReaderStrings.excluded.instructions : searchable ? screenReaderStrings.unchecked.instructions : undefined;
178
- break;
179
- case 'off':
180
- state = screenReaderStrings.excluded.state;
181
- instructions = screenReaderStrings.unchecked.instructions;
182
- break;
183
- case 'mixed':
184
- state = screenReaderStrings.mixed.state;
185
- instructions = ___EmotionJSX(React.Fragment, null, screenReaderStrings.mixed.instructions, ' ', allowExclusions ? screenReaderStrings.mixed.excludeInstructions : screenReaderStrings.mixed.uncheckInstructions);
186
- break;
187
- case undefined:
188
- default:
189
- instructions = allowExclusions || searchable ? screenReaderStrings.checked.instructions : undefined;
190
- break;
191
- }
192
- var prependNode;
193
- if (prepend) {
194
- prependNode = ___EmotionJSX("span", {
195
- className: "euiSelectableListItem__prepend"
196
- }, prepend);
53
+ export var EuiSelectableListItem = function EuiSelectableListItem(_ref) {
54
+ var children = _ref.children,
55
+ className = _ref.className,
56
+ disabled = _ref.disabled,
57
+ checked = _ref.checked,
58
+ isFocused = _ref.isFocused,
59
+ _ref$showIcons = _ref.showIcons,
60
+ showIcons = _ref$showIcons === void 0 ? true : _ref$showIcons,
61
+ prepend = _ref.prepend,
62
+ append = _ref.append,
63
+ allowExclusions = _ref.allowExclusions,
64
+ _ref$onFocusBadge = _ref.onFocusBadge,
65
+ onFocusBadge = _ref$onFocusBadge === void 0 ? true : _ref$onFocusBadge,
66
+ _ref$paddingSize = _ref.paddingSize,
67
+ paddingSize = _ref$paddingSize === void 0 ? 's' : _ref$paddingSize,
68
+ _ref$role = _ref.role,
69
+ role = _ref$role === void 0 ? 'option' : _ref$role,
70
+ searchable = _ref.searchable,
71
+ _ref$textWrap = _ref.textWrap,
72
+ textWrap = _ref$textWrap === void 0 ? 'truncate' : _ref$textWrap,
73
+ toolTipContent = _ref.toolTipContent,
74
+ toolTipProps = _ref.toolTipProps,
75
+ _ariaDescribedBy = _ref['aria-describedby'],
76
+ rest = _objectWithoutProperties(_ref, _excluded);
77
+ var classes = classNames('euiSelectableListItem', {
78
+ 'euiSelectableListItem-isFocused': isFocused
79
+ }, paddingSizeToClassNameMap[paddingSize], className);
80
+ var textClasses = classNames('euiSelectableListItem__text', _defineProperty({}, "euiSelectableListItem__text--".concat(textWrap), textWrap));
81
+ var optionIcon = useMemo(function () {
82
+ if (showIcons) {
83
+ var _resolveIconAndColor = resolveIconAndColor(checked),
84
+ icon = _resolveIconAndColor.icon,
85
+ color = _resolveIconAndColor.color;
86
+ return ___EmotionJSX(EuiIcon, {
87
+ className: "euiSelectableListItem__icon",
88
+ color: color,
89
+ type: icon
90
+ });
91
+ }
92
+ }, [showIcons, checked]);
93
+ var prependNode = useMemo(function () {
94
+ if (prepend) {
95
+ return ___EmotionJSX("span", {
96
+ className: "euiSelectableListItem__prepend"
97
+ }, prepend);
98
+ }
99
+ }, [prepend]);
100
+ var onFocusBadgeNode = useMemo(function () {
101
+ var defaultOnFocusBadgeProps = {
102
+ 'aria-hidden': true,
103
+ iconType: 'returnKey',
104
+ iconSide: 'left',
105
+ color: 'hollow'
106
+ };
107
+ if (onFocusBadge === true) {
108
+ return ___EmotionJSX(EuiBadge, _extends({
109
+ className: "euiSelectableListItem__onFocusBadge"
110
+ }, defaultOnFocusBadgeProps));
111
+ } else if (typeof onFocusBadge !== 'boolean' && !!onFocusBadge) {
112
+ var _children = onFocusBadge.children,
113
+ _className = onFocusBadge.className,
114
+ restBadgeProps = _objectWithoutProperties(onFocusBadge, _excluded2);
115
+ return ___EmotionJSX(EuiBadge, _extends({
116
+ className: classNames('euiSelectableListItem__onFocusBadge', _className)
117
+ }, defaultOnFocusBadgeProps, restBadgeProps), _children);
118
+ }
119
+ }, [onFocusBadge]);
120
+ var showOnFocusBadge = !!(isFocused && !disabled && onFocusBadgeNode);
121
+ var appendNode = useMemo(function () {
122
+ if (append || showOnFocusBadge) {
123
+ return ___EmotionJSX("span", {
124
+ className: "euiSelectableListItem__append"
125
+ }, append, " ", showOnFocusBadge ? onFocusBadgeNode : null);
126
+ }
127
+ }, [append, showOnFocusBadge, onFocusBadgeNode]);
128
+ var screenReaderText = useMemo(function () {
129
+ var state;
130
+ var instructions;
131
+ var screenReaderStrings = {
132
+ checked: {
133
+ state: ___EmotionJSX(EuiI18n, {
134
+ token: "euiSelectableListItem.checkedOption",
135
+ default: "Checked option."
136
+ }),
137
+ instructions: ___EmotionJSX(EuiI18n, {
138
+ token: "euiSelectableListItem.checkOptionInstructions",
139
+ default: "To check this option, press Enter."
140
+ })
141
+ },
142
+ unchecked: {
143
+ instructions: ___EmotionJSX(EuiI18n, {
144
+ token: "euiSelectableListItem.uncheckOptionInstructions",
145
+ default: "To uncheck this option, press Enter."
146
+ })
147
+ },
148
+ excluded: {
149
+ state: ___EmotionJSX(EuiI18n, {
150
+ token: "euiSelectableListItem.excludedOption",
151
+ default: "Excluded option."
152
+ }),
153
+ instructions: ___EmotionJSX(EuiI18n, {
154
+ token: "euiSelectableListItem.excludeOptionInstructions",
155
+ default: "To exclude this option, press Enter."
156
+ })
157
+ },
158
+ mixed: {
159
+ state: ___EmotionJSX(EuiI18n, {
160
+ token: "euiSelectableListItem.mixedOption",
161
+ default: "Mixed (indeterminate) option."
162
+ }),
163
+ instructions: ___EmotionJSX(EuiI18n, {
164
+ token: "euiSelectableListItem.mixedOptionInstructions",
165
+ default: "To check this option for all, press Enter once."
166
+ }),
167
+ uncheckInstructions: ___EmotionJSX(EuiI18n, {
168
+ token: "euiSelectableListItem.mixedOptionUncheckInstructions",
169
+ default: "To uncheck this option for all, press Enter twice."
170
+ }),
171
+ excludeInstructions: ___EmotionJSX(EuiI18n, {
172
+ token: "euiSelectableListItem.mixedOptionExcludeInstructions",
173
+ default: "To exclude this option for all, press Enter twice."
174
+ })
197
175
  }
198
- var appendNode;
199
- if (append || !!onFocusBadge) {
200
- var onFocusBadgeNode;
201
- var defaultOnFocusBadgeProps = {
202
- 'aria-hidden': true,
203
- iconType: 'returnKey',
204
- iconSide: 'left',
205
- color: 'hollow'
206
- };
207
- if (onFocusBadge === true) {
208
- onFocusBadgeNode = ___EmotionJSX(EuiBadge, _extends({
209
- className: "euiSelectableListItem__onFocusBadge"
210
- }, defaultOnFocusBadgeProps));
211
- } else if (typeof onFocusBadge !== 'boolean' && !!onFocusBadge) {
212
- var _children = onFocusBadge.children,
213
- _className = onFocusBadge.className,
214
- restBadgeProps = _objectWithoutProperties(onFocusBadge, _excluded2);
215
- onFocusBadgeNode = ___EmotionJSX(EuiBadge, _extends({
216
- className: classNames('euiSelectableListItem__onFocusBadge', _className)
217
- }, defaultOnFocusBadgeProps, restBadgeProps), _children);
218
- }
176
+ };
177
+ switch (checked) {
178
+ case 'on':
179
+ state = screenReaderStrings.checked.state;
180
+ instructions = allowExclusions ? screenReaderStrings.excluded.instructions : searchable ? screenReaderStrings.unchecked.instructions : undefined;
181
+ break;
182
+ case 'off':
183
+ state = screenReaderStrings.excluded.state;
184
+ instructions = screenReaderStrings.unchecked.instructions;
185
+ break;
186
+ case 'mixed':
187
+ state = screenReaderStrings.mixed.state;
188
+ instructions = ___EmotionJSX(React.Fragment, null, screenReaderStrings.mixed.instructions, ' ', allowExclusions ? screenReaderStrings.mixed.excludeInstructions : screenReaderStrings.mixed.uncheckInstructions);
189
+ break;
190
+ case undefined:
191
+ default:
192
+ instructions = allowExclusions || searchable ? screenReaderStrings.checked.instructions : undefined;
193
+ break;
194
+ }
195
+ return state || instructions ? ___EmotionJSX(EuiScreenReaderOnly, null, ___EmotionJSX("div", null, state || instructions ? '. ' : null, state, state && instructions ? ' ' : null, instructions)) : null;
196
+ }, [checked, searchable, allowExclusions]);
219
197
 
220
- // Only display the append wrapper if append exists or isFocused
221
- if (append || isFocused && !disabled) {
222
- appendNode = ___EmotionJSX("span", {
223
- className: "euiSelectableListItem__append"
224
- }, append, " ", isFocused && !disabled ? onFocusBadgeNode : null);
198
+ // aria-checked is intended to be used with role="checkbox" but
199
+ // the MDN documentation lists it as a possibility for role="option".
200
+ // See https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-checked
201
+ // and https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/option_role
202
+ var ariaChecked = useMemo(function () {
203
+ var rolesThatCanBeMixed = ['option', 'checkbox', 'menuitemcheckbox'];
204
+ var rolesThatCanBeChecked = [].concat(rolesThatCanBeMixed, ['radio', 'menuitemradio', 'switch']);
205
+ if (!rolesThatCanBeChecked.includes(role)) return undefined;
206
+ switch (checked) {
207
+ case 'on':
208
+ case 'off':
209
+ return true;
210
+ case 'mixed':
211
+ if (rolesThatCanBeMixed.includes(role)) {
212
+ return 'mixed';
213
+ } else {
214
+ return false;
225
215
  }
226
- }
227
- var screenReaderText = (state || instructions) && ___EmotionJSX(EuiScreenReaderOnly, null, ___EmotionJSX("div", null, state || instructions ? '. ' : null, state, state && instructions ? ' ' : null, instructions));
228
- return ___EmotionJSX("li", _extends({
229
- role: role,
230
- "aria-disabled": disabled,
231
- "aria-checked": this.isChecked(role, checked) // Whether the item is "checked"
232
- ,
233
- "aria-selected": !disabled && isFocused // Whether the item has keyboard focus per W3 spec
234
- ,
235
- className: classes
236
- }, rest), ___EmotionJSX("span", {
237
- className: "euiSelectableListItem__content"
238
- }, optionIcon, prependNode, ___EmotionJSX("span", {
239
- className: textClasses
240
- }, children, screenReaderText), appendNode));
216
+ default:
217
+ return false;
218
+ }
219
+ }, [role, checked]);
220
+ var hasToolTip = !!toolTipContent && !disabled;
221
+ var _useState = useState(null),
222
+ _useState2 = _slicedToArray(_useState, 2),
223
+ tooltipRef = _useState2[0],
224
+ setTooltipRef = _useState2[1]; // Needs to be state and not a ref to trigger useEffect
225
+ var _useState3 = useState(_ariaDescribedBy),
226
+ _useState4 = _slicedToArray(_useState3, 2),
227
+ ariaDescribedBy = _useState4[0],
228
+ setAriaDescribedBy = _useState4[1];
229
+
230
+ // Manually trigger the tooltip on keyboard focus
231
+ useEffect(function () {
232
+ if (!tooltipRef) return;
233
+ if (isFocused) {
234
+ tooltipRef.showToolTip();
235
+ } else {
236
+ tooltipRef.hideToolTip();
237
+ }
238
+ }, [isFocused, tooltipRef]);
239
+
240
+ // Manually set the `aria-describedby` id on the <li> wrapper
241
+ useEffect(function () {
242
+ if (tooltipRef) {
243
+ var tooltipId = tooltipRef.state.id;
244
+ setAriaDescribedBy(classNames(tooltipId, _ariaDescribedBy));
241
245
  }
242
- }]);
243
- return EuiSelectableListItem;
244
- }(Component);
245
- _defineProperty(EuiSelectableListItem, "defaultProps", {
246
- showIcons: true,
247
- onFocusBadge: true,
248
- textWrap: 'truncate'
249
- });
246
+ }, [tooltipRef, _ariaDescribedBy]);
247
+ var content = ___EmotionJSX("span", {
248
+ className: "euiSelectableListItem__content"
249
+ }, optionIcon, prependNode, ___EmotionJSX("span", {
250
+ className: textClasses
251
+ }, children, screenReaderText), appendNode);
252
+ return ___EmotionJSX("li", _extends({
253
+ role: role,
254
+ "aria-disabled": disabled,
255
+ "aria-checked": ariaChecked // Whether the item is "checked"
256
+ ,
257
+ "aria-selected": !disabled && isFocused // Whether the item has keyboard focus per W3 spec
258
+ ,
259
+ className: classes
260
+ }, rest, {
261
+ "aria-describedby": ariaDescribedBy
262
+ }), hasToolTip ? ___EmotionJSX(EuiToolTip, _extends({
263
+ ref: setTooltipRef,
264
+ content: toolTipContent,
265
+ anchorClassName: "euiSelectableListItem__tooltipAnchor",
266
+ position: "left"
267
+ }, toolTipProps), content) : content);
268
+ };
@@ -1 +1,9 @@
1
- export {};
1
+ /*
2
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3
+ * or more contributor license agreements. Licensed under the Elastic License
4
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
5
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
6
+ * Side Public License, v 1.
7
+ */
8
+
9
+ export var OPTION_CHECKED_STATES = ['on', 'off', 'mixed', undefined];
@@ -16,6 +16,9 @@ import { useEuiMemoizedStyles, cloneElementWithCss } from '../../services';
16
16
  import { euiTextColorStyles } from './text_color.styles';
17
17
  import { jsx as ___EmotionJSX } from "@emotion/react";
18
18
  export var COLORS = ['default', 'subdued', 'success', 'accent', 'danger', 'warning', 'ghost', 'inherit'];
19
+ export var _isNamedColor = function _isNamedColor(color) {
20
+ return COLORS.includes(color);
21
+ };
19
22
  export var EuiTextColor = function EuiTextColor(_ref) {
20
23
  var children = _ref.children,
21
24
  _ref$color = _ref.color,
@@ -26,7 +29,7 @@ export var EuiTextColor = function EuiTextColor(_ref) {
26
29
  cloneElement = _ref$cloneElement === void 0 ? false : _ref$cloneElement,
27
30
  style = _ref.style,
28
31
  rest = _objectWithoutProperties(_ref, _excluded);
29
- var isNamedColor = COLORS.includes(color);
32
+ var isNamedColor = _isNamedColor(color);
30
33
  var styles = useEuiMemoizedStyles(euiTextColorStyles);
31
34
  var cssStyles = [styles.euiTextColor, isNamedColor ? styles[color] : styles.customColor];
32
35
 
@@ -15,6 +15,7 @@ var _button_icon = require("../../../button/button_icon");
15
15
  var _tool_tip = require("../../../tool_tip");
16
16
  var _context = require("../../context");
17
17
  var _collapsed_nav_button = require("./collapsed_nav_button.styles");
18
+ var _i18n = require("../../../i18n");
18
19
  var _react2 = require("@emotion/react");
19
20
  var _excluded = ["href", "title", "icon", "iconProps", "isSelected", "onClick", "hideToolTip", "linkProps", "titleElement"];
20
21
  /*
@@ -44,6 +45,9 @@ var EuiCollapsedNavButton = function EuiCollapsedNavButton(_ref) {
44
45
  var buttonClassName = (0, _classnames.default)('euiCollapsedNavButton', linkProps === null || linkProps === void 0 ? void 0 : linkProps.className);
45
46
  var tooltipStyles = (0, _services.useEuiMemoizedStyles)(_collapsed_nav_button.euiCollapsedNavItemTooltipStyles);
46
47
  var tooltipCssStyles = [tooltipStyles.euiCollapsedNavItemTooltip, tooltipStyles[side], hideToolTip && tooltipStyles.hidden];
48
+ var buttonIconAriaLabel = (0, _i18n.useEuiI18n)('euiCollapsedNavButton.ariaLabelButtonIcon', '{title}, quick navigation menu', {
49
+ title: title
50
+ });
47
51
  return (0, _react2.jsx)(_tool_tip.EuiToolTip, {
48
52
  content: title,
49
53
  css: tooltipCssStyles,
@@ -56,7 +60,7 @@ var EuiCollapsedNavButton = function EuiCollapsedNavButton(_ref) {
56
60
  color: "text",
57
61
  href: href,
58
62
  onClick: onClick,
59
- "aria-label": title
63
+ "aria-label": buttonIconAriaLabel
60
64
  }, linkProps, {
61
65
  // Exclusive union shenanigans
62
66
  className: buttonClassName,
@@ -17,8 +17,9 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
17
17
  var _react = _interopRequireWildcard(require("react"));
18
18
  var _moment = _interopRequireDefault(require("moment"));
19
19
  var _datemath = _interopRequireDefault(require("@elastic/datemath"));
20
- var _services = require("../../../../services");
21
20
  var _form = require("../../../form");
21
+ var _flex = require("../../../flex");
22
+ var _button = require("../../../button");
22
23
  var _code = require("../../../code");
23
24
  var _i18n = require("../../../i18n");
24
25
  var _date_picker = require("../../date_picker");
@@ -152,20 +153,29 @@ var EuiAbsoluteTab = /*#__PURE__*/function (_Component) {
152
153
  locale: locale,
153
154
  utcOffset: utcOffset
154
155
  }), (0, _react2.jsx)(_i18n.EuiI18n, {
155
- tokens: ['euiAbsoluteTab.dateFormatHint', 'euiAbsoluteTab.dateFormatError'],
156
- defaults: ['Press the Enter key to parse as a date.', 'Allowed formats: {dateFormat}, ISO 8601, RFC 2822, or Unix timestamp.'],
156
+ tokens: ['euiAbsoluteTab.dateFormatButtonLabel', 'euiAbsoluteTab.dateFormatError'],
157
+ defaults: ['Parse date', 'Allowed formats: {dateFormat}, ISO 8601, RFC 2822, or Unix timestamp.'],
157
158
  values: {
158
159
  dateFormat: (0, _react2.jsx)(_code.EuiCode, null, dateFormat)
159
160
  }
160
161
  }, function (_ref) {
161
162
  var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
162
- dateFormatHint = _ref2[0],
163
+ dateFormatButtonLabel = _ref2[0],
163
164
  dateFormatError = _ref2[1];
164
- return (0, _react2.jsx)(_form.EuiFormRow, {
165
+ return (0, _react2.jsx)(_flex.EuiFlexGroup, {
166
+ component: "form",
167
+ onSubmit: function onSubmit(e) {
168
+ e.preventDefault(); // Prevents a page refresh/reload
169
+ _this2.parseUserDateInput(textInputValue);
170
+ },
171
+ className: "euiSuperDatePicker__absoluteDateForm",
172
+ gutterSize: "s",
173
+ responsive: false
174
+ }, (0, _react2.jsx)(_form.EuiFormRow, {
165
175
  className: "euiSuperDatePicker__absoluteDateFormRow",
166
176
  isInvalid: isTextInvalid,
167
177
  error: isTextInvalid ? dateFormatError : undefined,
168
- helpText: hasUnparsedText ? isTextInvalid ? dateFormatHint : [dateFormatHint, dateFormatError] : undefined
178
+ helpText: hasUnparsedText && !isTextInvalid ? dateFormatError : undefined
169
179
  }, (0, _react2.jsx)(_form.EuiFieldText, {
170
180
  compressed: true,
171
181
  isInvalid: isTextInvalid,
@@ -174,13 +184,17 @@ var EuiAbsoluteTab = /*#__PURE__*/function (_Component) {
174
184
  onPaste: function onPaste(event) {
175
185
  _this2.parseUserDateInput(event.clipboardData.getData('text'));
176
186
  },
177
- onKeyDown: function onKeyDown(event) {
178
- if (event.key === _services.keys.ENTER) {
179
- _this2.parseUserDateInput(textInputValue);
180
- }
181
- },
182
187
  "data-test-subj": "superDatePickerAbsoluteDateInput",
183
188
  prepend: (0, _react2.jsx)(_form.EuiFormLabel, null, labelPrefix)
189
+ })), hasUnparsedText && (0, _react2.jsx)(_button.EuiButtonIcon, {
190
+ type: "submit",
191
+ className: "euiSuperDatePicker__absoluteDateFormSubmit",
192
+ size: "s",
193
+ display: "base",
194
+ iconType: "check",
195
+ "aria-label": dateFormatButtonLabel,
196
+ title: dateFormatButtonLabel,
197
+ "data-test-subj": "parseAbsoluteDateFormat"
184
198
  }));
185
199
  }));
186
200
  }
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.euiFormVariables = exports.euiFormControlSize = exports.euiCustomControl = void 0;
7
+ exports.euiFormVariables = exports.euiFormControlText = exports.euiFormControlSize = exports.euiFormControlFocusStyles = exports.euiFormControlDefaultShadow = exports.euiCustomControl = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _services = require("../../services");
10
10
  var _global_styling = require("../../global_styling");
@@ -70,7 +70,9 @@ var euiFormVariables = function euiFormVariables(euiThemeContext) {
70
70
  xxl: euiTheme.size.xxl
71
71
  }
72
72
  };
73
- return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, sizes), colors), customControlColors), iconSizes), controlLayout);
73
+ return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, sizes), colors), customControlColors), iconSizes), controlLayout), {}, {
74
+ animationTiming: "".concat(euiTheme.animation.fast, " ease-in")
75
+ });
74
76
  };
75
77
  exports.euiFormVariables = euiFormVariables;
76
78
  var euiFormControlSize = function euiFormControlSize(euiThemeContext) {
@@ -106,6 +108,30 @@ var euiCustomControl = function euiCustomControl(euiThemeContext) {
106
108
  } else if (type === 'square') {
107
109
  borderRadiusStyle = "border-radius: ".concat(form.controlCompressedBorderRadius, ";");
108
110
  }
109
- return "\n ".concat(padddingStyle, "\n ").concat(borderRadiusStyle, "\n border: ").concat(euiTheme.border.width.thin, " solid ").concat(form.customControlBorderColor, ";\n background: ").concat(euiTheme.colors.emptyShade, " no-repeat center;\n\n ").concat(_global_styling.euiCanAnimate, " {\n transition: background-color ").concat(euiTheme.animation.fast, " ease-in,\n border-color ").concat(euiTheme.animation.fast, " ease-in;\n }\n ");
111
+ return "\n ".concat(padddingStyle, "\n ").concat(borderRadiusStyle, "\n border: ").concat(euiTheme.border.width.thin, " solid ").concat(form.customControlBorderColor, ";\n background: ").concat(euiTheme.colors.emptyShade, " no-repeat center;\n\n ").concat(_global_styling.euiCanAnimate, " {\n transition: background-color ").concat(form.animationTiming, ",\n border-color ").concat(form.animationTiming, ";\n }\n ");
110
112
  };
111
- exports.euiCustomControl = euiCustomControl;
113
+ exports.euiCustomControl = euiCustomControl;
114
+ var euiFormControlText = function euiFormControlText(euiThemeContext) {
115
+ var euiTheme = euiThemeContext.euiTheme;
116
+ var _euiFontSize = (0, _global_styling.euiFontSize)(euiThemeContext, 's'),
117
+ fontSize = _euiFontSize.fontSize;
118
+ var _euiFormVariables = euiFormVariables(euiThemeContext),
119
+ controlPlaceholderText = _euiFormVariables.controlPlaceholderText;
120
+ return "\n font-family: ".concat(euiTheme.font.family, ";\n font-size: ").concat(fontSize, ";\n color: ").concat(euiTheme.colors.text, ";\n\n ").concat(euiPlaceholderPerBrowser("color: ".concat(controlPlaceholderText)), "\n ");
121
+ };
122
+ exports.euiFormControlText = euiFormControlText;
123
+ var euiFormControlDefaultShadow = function euiFormControlDefaultShadow(euiThemeContext) {
124
+ var euiTheme = euiThemeContext.euiTheme;
125
+ var form = euiFormVariables(euiThemeContext);
126
+ return "\n box-shadow: inset 0 0 0 1px ".concat(form.borderColor, ";\n background-color: ").concat(form.backgroundColor, ";\n\n background-repeat: no-repeat;\n background-size: 0% 100%;\n background-image: linear-gradient(to top,\n var(--euiFormStateColor),\n var(--euiFormStateColor) ").concat(euiTheme.border.width.thick, ",\n transparent ").concat(euiTheme.border.width.thick, ",\n transparent 100%\n );\n\n ").concat(_global_styling.euiCanAnimate, " {\n transition:\n box-shadow ").concat(form.animationTiming, ",\n background-image ").concat(form.animationTiming, ",\n background-size ").concat(form.animationTiming, ",\n background-color ").concat(form.animationTiming, ";\n }\n ");
127
+ };
128
+ exports.euiFormControlDefaultShadow = euiFormControlDefaultShadow;
129
+ var euiFormControlFocusStyles = function euiFormControlFocusStyles(_ref) {
130
+ var euiTheme = _ref.euiTheme,
131
+ colorMode = _ref.colorMode;
132
+ return "\n --euiFormStateColor: ".concat(euiTheme.colors.primary, ";\n background-color: ").concat(colorMode === 'DARK' ? (0, _services.shade)(euiTheme.colors.emptyShade, 0.4) : euiTheme.colors.emptyShade, ";\n background-size: 100% 100%;\n outline: none; /* Remove all outlines and rely on our own bottom border gradient */\n");
133
+ };
134
+ exports.euiFormControlFocusStyles = euiFormControlFocusStyles;
135
+ var euiPlaceholderPerBrowser = function euiPlaceholderPerBrowser(content) {
136
+ return "\n &::-webkit-input-placeholder { ".concat(content, "; opacity: 1; }\n &::-moz-placeholder { ").concat(content, "; opacity: 1; }\n &:-ms-input-placeholder { ").concat(content, "; opacity: 1; }\n &:-moz-placeholder { ").concat(content, "; opacity: 1; }\n &::placeholder { ").concat(content, "; opacity: 1; }\n");
137
+ };