@elastic/eui 74.1.0 → 75.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 (149) hide show
  1. package/dist/eui_theme_dark.css +0 -323
  2. package/dist/eui_theme_dark.min.css +1 -1
  3. package/dist/eui_theme_light.css +0 -323
  4. package/dist/eui_theme_light.min.css +1 -1
  5. package/es/components/code/code_block.js +5 -3
  6. package/es/components/code/code_block_annotations.js +94 -0
  7. package/es/components/code/code_block_annotations.style.js +18 -0
  8. package/es/components/code/code_block_full_screen.js +9 -3
  9. package/es/components/code/code_block_line.styles.js +3 -2
  10. package/es/components/code/utils.js +53 -13
  11. package/es/components/collapsible_nav/collapsible_nav.js +10 -11
  12. package/es/components/flyout/flyout.js +88 -24
  13. package/es/components/form/range/range_track.js +1 -1
  14. package/es/components/header/header.js +3 -1
  15. package/es/components/icon/assets/app_agent.js +2 -10
  16. package/es/components/icon/assets/app_fleet.js +10 -2
  17. package/es/components/search_bar/filters/field_value_selection_filter.js +6 -10
  18. package/es/components/selectable/selectable_list/selectable_list.js +19 -5
  19. package/es/components/steps/step.js +19 -12
  20. package/es/components/steps/step.styles.js +73 -0
  21. package/es/components/steps/step_horizontal.js +55 -42
  22. package/es/components/steps/step_horizontal.styles.js +55 -0
  23. package/es/components/steps/step_number.js +82 -73
  24. package/es/components/steps/step_number.styles.js +76 -0
  25. package/es/components/steps/steps_horizontal.js +11 -7
  26. package/es/components/steps/steps_horizontal.styles.js +35 -0
  27. package/es/components/steps/sub_steps.js +7 -1
  28. package/es/components/steps/sub_steps.styles.js +14 -0
  29. package/es/components/tour/tour_step_indicator.js +0 -3
  30. package/es/global_styling/utility/animations.js +4 -3
  31. package/eui.d.ts +130 -16
  32. package/i18ntokens.json +76 -12
  33. package/lib/components/code/code_block.js +5 -3
  34. package/lib/components/code/code_block_annotations.js +113 -0
  35. package/lib/components/code/code_block_annotations.style.js +29 -0
  36. package/lib/components/code/code_block_full_screen.js +9 -3
  37. package/lib/components/code/code_block_line.styles.js +3 -2
  38. package/lib/components/code/utils.js +54 -13
  39. package/lib/components/collapsible_nav/collapsible_nav.js +10 -11
  40. package/lib/components/flyout/flyout.js +85 -22
  41. package/lib/components/form/range/range_track.js +1 -1
  42. package/lib/components/header/header.js +3 -1
  43. package/lib/components/icon/assets/app_agent.js +2 -10
  44. package/lib/components/icon/assets/app_fleet.js +10 -2
  45. package/lib/components/icon/svgs/app_agent.svg +2 -4
  46. package/lib/components/icon/svgs/app_fleet.svg +4 -2
  47. package/lib/components/search_bar/filters/field_value_selection_filter.js +6 -10
  48. package/lib/components/selectable/selectable_list/selectable_list.js +19 -5
  49. package/lib/components/steps/step.js +21 -12
  50. package/lib/components/steps/step.styles.js +93 -0
  51. package/lib/components/steps/step_horizontal.js +56 -41
  52. package/lib/components/steps/step_horizontal.styles.js +66 -0
  53. package/lib/components/steps/step_number.js +86 -75
  54. package/lib/components/steps/step_number.styles.js +84 -0
  55. package/lib/components/steps/steps_horizontal.js +12 -7
  56. package/lib/components/steps/steps_horizontal.styles.js +38 -0
  57. package/lib/components/steps/sub_steps.js +9 -1
  58. package/lib/components/steps/sub_steps.styles.js +24 -0
  59. package/lib/components/tour/tour_step_indicator.js +0 -3
  60. package/lib/global_styling/utility/animations.js +6 -4
  61. package/optimize/es/components/code/code_block_annotations.js +79 -0
  62. package/optimize/es/components/code/code_block_annotations.style.js +18 -0
  63. package/optimize/es/components/code/code_block_full_screen.js +9 -3
  64. package/optimize/es/components/code/code_block_line.styles.js +3 -2
  65. package/optimize/es/components/code/utils.js +53 -13
  66. package/optimize/es/components/collapsible_nav/collapsible_nav.js +1 -4
  67. package/optimize/es/components/flyout/flyout.js +81 -24
  68. package/optimize/es/components/form/range/range_track.js +1 -1
  69. package/optimize/es/components/header/header.js +3 -1
  70. package/optimize/es/components/icon/assets/app_agent.js +2 -10
  71. package/optimize/es/components/icon/assets/app_fleet.js +10 -2
  72. package/optimize/es/components/search_bar/filters/field_value_selection_filter.js +6 -10
  73. package/optimize/es/components/selectable/selectable_list/selectable_list.js +19 -5
  74. package/optimize/es/components/steps/step.js +19 -12
  75. package/optimize/es/components/steps/step.styles.js +73 -0
  76. package/optimize/es/components/steps/step_horizontal.js +54 -41
  77. package/optimize/es/components/steps/step_horizontal.styles.js +55 -0
  78. package/optimize/es/components/steps/step_number.js +82 -73
  79. package/optimize/es/components/steps/step_number.styles.js +76 -0
  80. package/optimize/es/components/steps/steps_horizontal.js +11 -7
  81. package/optimize/es/components/steps/steps_horizontal.styles.js +35 -0
  82. package/optimize/es/components/steps/sub_steps.js +7 -1
  83. package/optimize/es/components/steps/sub_steps.styles.js +14 -0
  84. package/optimize/es/components/tour/tour_step_indicator.js +0 -3
  85. package/optimize/es/global_styling/utility/animations.js +4 -3
  86. package/optimize/lib/components/code/code_block_annotations.js +105 -0
  87. package/optimize/lib/components/code/code_block_annotations.style.js +29 -0
  88. package/optimize/lib/components/code/code_block_full_screen.js +9 -3
  89. package/optimize/lib/components/code/code_block_line.styles.js +3 -2
  90. package/optimize/lib/components/code/utils.js +54 -13
  91. package/optimize/lib/components/collapsible_nav/collapsible_nav.js +1 -4
  92. package/optimize/lib/components/flyout/flyout.js +80 -22
  93. package/optimize/lib/components/form/range/range_track.js +1 -1
  94. package/optimize/lib/components/header/header.js +3 -1
  95. package/optimize/lib/components/icon/assets/app_agent.js +2 -10
  96. package/optimize/lib/components/icon/assets/app_fleet.js +10 -2
  97. package/optimize/lib/components/icon/svgs/app_agent.svg +2 -4
  98. package/optimize/lib/components/icon/svgs/app_fleet.svg +4 -2
  99. package/optimize/lib/components/search_bar/filters/field_value_selection_filter.js +6 -10
  100. package/optimize/lib/components/selectable/selectable_list/selectable_list.js +16 -5
  101. package/optimize/lib/components/steps/step.js +21 -12
  102. package/optimize/lib/components/steps/step.styles.js +93 -0
  103. package/optimize/lib/components/steps/step_horizontal.js +55 -40
  104. package/optimize/lib/components/steps/step_horizontal.styles.js +66 -0
  105. package/optimize/lib/components/steps/step_number.js +86 -75
  106. package/optimize/lib/components/steps/step_number.styles.js +84 -0
  107. package/optimize/lib/components/steps/steps_horizontal.js +12 -7
  108. package/optimize/lib/components/steps/steps_horizontal.styles.js +38 -0
  109. package/optimize/lib/components/steps/sub_steps.js +9 -1
  110. package/optimize/lib/components/steps/sub_steps.styles.js +24 -0
  111. package/optimize/lib/components/tour/tour_step_indicator.js +0 -3
  112. package/optimize/lib/global_styling/utility/animations.js +6 -4
  113. package/package.json +3 -3
  114. package/src/components/index.scss +0 -1
  115. package/src/themes/amsterdam/global_styling/variables/_index.scss +0 -1
  116. package/src/themes/amsterdam/overrides/_index.scss +0 -1
  117. package/test-env/components/code/code_block_annotations.js +110 -0
  118. package/test-env/components/code/code_block_annotations.style.js +29 -0
  119. package/test-env/components/code/code_block_full_screen.js +9 -3
  120. package/test-env/components/code/code_block_line.styles.js +3 -2
  121. package/test-env/components/code/utils.js +54 -13
  122. package/test-env/components/collapsible_nav/collapsible_nav.js +10 -11
  123. package/test-env/components/form/range/range_track.js +1 -1
  124. package/test-env/components/header/header.js +3 -1
  125. package/test-env/components/icon/assets/app_agent.js +2 -10
  126. package/test-env/components/icon/assets/app_fleet.js +10 -2
  127. package/test-env/components/search_bar/filters/field_value_selection_filter.js +6 -10
  128. package/test-env/components/selectable/selectable_list/selectable_list.js +16 -5
  129. package/test-env/components/steps/step.js +21 -12
  130. package/test-env/components/steps/step.styles.js +93 -0
  131. package/test-env/components/steps/step_horizontal.js +56 -41
  132. package/test-env/components/steps/step_horizontal.styles.js +66 -0
  133. package/test-env/components/steps/step_number.js +86 -75
  134. package/test-env/components/steps/step_number.styles.js +84 -0
  135. package/test-env/components/steps/steps_horizontal.js +12 -7
  136. package/test-env/components/steps/steps_horizontal.styles.js +38 -0
  137. package/test-env/components/steps/sub_steps.js +9 -1
  138. package/test-env/components/steps/sub_steps.styles.js +24 -0
  139. package/test-env/components/tour/tour_step_indicator.js +0 -3
  140. package/test-env/global_styling/utility/animations.js +6 -4
  141. package/src/components/steps/_index.scss +0 -7
  142. package/src/components/steps/_mixins.scss +0 -12
  143. package/src/components/steps/_step_number.scss +0 -52
  144. package/src/components/steps/_steps.scss +0 -57
  145. package/src/components/steps/_steps_horizontal.scss +0 -135
  146. package/src/components/steps/_sub_steps.scss +0 -15
  147. package/src/components/steps/_variables.scss +0 -11
  148. package/src/themes/amsterdam/global_styling/variables/_steps.scss +0 -8
  149. package/src/themes/amsterdam/overrides/_steps.scss +0 -101
@@ -292,16 +292,16 @@ var FieldValueSelectionFilter = /*#__PURE__*/function (_Component) {
292
292
  if (!multiSelect && autoClose) {
293
293
  this.closePopover();
294
294
 
295
- var _query = checked ? this.props.query.removeSimpleFieldClauses(field) : this.props.query.removeSimpleFieldClauses(field).addSimpleFieldValue(field, value, true, operator);
295
+ var _query = checked ? this.props.query.removeSimpleFieldClauses(field).addSimpleFieldValue(field, value, true, operator) : this.props.query.removeSimpleFieldClauses(field);
296
296
 
297
297
  this.props.onChange(_query);
298
298
  } else {
299
299
  if (multiSelect === 'or') {
300
- var _query2 = checked ? this.props.query.removeOrFieldValue(field, value) : this.props.query.addOrFieldValue(field, value, true, operator);
300
+ var _query2 = checked ? this.props.query.addOrFieldValue(field, value, true, operator) : this.props.query.removeOrFieldValue(field, value);
301
301
 
302
302
  this.props.onChange(_query2);
303
303
  } else {
304
- var _query3 = checked ? this.props.query.removeSimpleFieldValue(field, value) : this.props.query.addSimpleFieldValue(field, value, true, operator);
304
+ var _query3 = checked ? this.props.query.addSimpleFieldValue(field, value, true, operator) : this.props.query.removeSimpleFieldValue(field, value);
305
305
 
306
306
  this.props.onChange(_query3);
307
307
  }
@@ -409,13 +409,9 @@ var FieldValueSelectionFilter = /*#__PURE__*/function (_Component) {
409
409
  listProps: {
410
410
  isVirtualized: isOverSearchThreshold || false
411
411
  },
412
- onChange: function onChange(options) {
413
- var diff = items.find(function (item, index) {
414
- return item.checked !== options[index].checked;
415
- });
416
-
417
- if (diff) {
418
- _this5.onOptionClick(diff.data.optionField, diff.data.value, diff.checked);
412
+ onChange: function onChange(options, event, changedOption) {
413
+ if (changedOption.data) {
414
+ _this5.onOptionClick(changedOption.data.optionField, changedOption.data.value, changedOption.checked);
419
415
  }
420
416
  }
421
417
  }, searchProps), function (list, search) {
@@ -131,6 +131,22 @@ var EuiSelectableList = /*#__PURE__*/function (_Component) {
131
131
  }
132
132
  });
133
133
 
134
+ _defineProperty(_assertThisInitialized(_this), "ariaSetSize", 0);
135
+
136
+ _defineProperty(_assertThisInitialized(_this), "ariaPosInSetMap", {});
137
+
138
+ _defineProperty(_assertThisInitialized(_this), "calculateAriaSetAttrs", function (optionArray) {
139
+ _this.ariaPosInSetMap = {};
140
+ var latestAriaPosIndex = 0;
141
+ optionArray.forEach(function (option, index) {
142
+ if (!option.isGroupLabel) {
143
+ latestAriaPosIndex++;
144
+ _this.ariaPosInSetMap[index] = latestAriaPosIndex;
145
+ }
146
+ });
147
+ _this.ariaSetSize = latestAriaPosIndex;
148
+ });
149
+
134
150
  _defineProperty(_assertThisInitialized(_this), "ListRow", /*#__PURE__*/(0, _react.memo)(function (_ref) {
135
151
  var data = _ref.data,
136
152
  index = _ref.index,
@@ -174,9 +190,6 @@ var EuiSelectableList = /*#__PURE__*/function (_Component) {
174
190
  }, optionRest), prepend, label, append);
175
191
  }
176
192
 
177
- var labelCount = data.filter(function (option) {
178
- return option.isGroupLabel;
179
- }).length;
180
193
  var id = makeOptionId(index);
181
194
  return (0, _react2.jsx)(_selectable_list_item.EuiSelectableListItem, _extends({
182
195
  key: id,
@@ -197,8 +210,8 @@ var EuiSelectableList = /*#__PURE__*/function (_Component) {
197
210
  disabled: disabled,
198
211
  prepend: prepend,
199
212
  append: append,
200
- "aria-posinset": index + 1 - labelCount,
201
- "aria-setsize": data.length - labelCount,
213
+ "aria-posinset": _this.ariaPosInSetMap[index],
214
+ "aria-setsize": _this.ariaSetSize,
202
215
  onFocusBadge: onFocusBadge,
203
216
  allowExclusions: allowExclusions,
204
217
  showIcons: showIcons,
@@ -355,6 +368,7 @@ var EuiSelectableList = /*#__PURE__*/function (_Component) {
355
368
  rest = _objectWithoutProperties(_this$props7, _excluded3);
356
369
 
357
370
  var optionArray = visibleOptions || options;
371
+ this.calculateAriaSetAttrs(optionArray);
358
372
  var heightIsFull = forcedHeight === 'full';
359
373
  var calculatedHeight = heightIsFull ? false : forcedHeight; // If calculatedHeight is still undefined, then calculate it
360
374
 
@@ -17,6 +17,10 @@ var _title = require("../title");
17
17
 
18
18
  var _step_number = require("./step_number");
19
19
 
20
+ var _services = require("../../services");
21
+
22
+ var _step = require("./step.styles");
23
+
20
24
  var _react2 = require("@emotion/react");
21
25
 
22
26
  var _excluded = ["className", "children", "headingElement", "step", "title", "titleSize", "status"];
@@ -46,27 +50,32 @@ var EuiStep = function EuiStep(_ref) {
46
50
  status = _ref.status,
47
51
  rest = _objectWithoutProperties(_ref, _excluded);
48
52
 
49
- var classes = (0, _classnames.default)('euiStep', {
50
- 'euiStep--small': titleSize === 'xs',
51
- 'euiStep-isDisabled': status === 'disabled'
52
- }, className);
53
- var numberClasses = (0, _classnames.default)('euiStep__circle', {
54
- 'euiStepNumber--small': titleSize === 'xs'
55
- });
53
+ var classes = (0, _classnames.default)('euiStep', className);
54
+ var euiTheme = (0, _services.useEuiTheme)();
55
+ var styles = (0, _step.euiStepStyles)(euiTheme);
56
+ var cssStyles = [styles.euiStep, styles[titleSize]];
57
+ var contentStyles = (0, _step.euiStepContentStyles)(euiTheme);
58
+ var cssContentStyles = [contentStyles.euiStep__content, contentStyles[titleSize]];
59
+ var titleStyles = (0, _step.euiStepTitleStyles)(euiTheme);
60
+ var cssStepTitleStyles = [titleStyles.euiStep__title, status === 'disabled' && titleStyles.isDisabled, titleStyles[titleSize]];
61
+ var cssTitleWrapperStyles = titleStyles.euiStep__titleWrapper;
56
62
  return (0, _react2.jsx)("div", _extends({
57
- className: classes
63
+ className: classes,
64
+ css: cssStyles
58
65
  }, rest), (0, _react2.jsx)("div", {
59
- className: "euiStep__titleWrapper"
66
+ className: "euiStep__titleWrapper",
67
+ css: cssTitleWrapperStyles
60
68
  }, (0, _react2.jsx)(_step_number.EuiStepNumber, {
61
- className: numberClasses,
62
69
  number: step,
63
70
  status: status,
64
71
  titleSize: titleSize
65
72
  }), (0, _react2.jsx)(_title.EuiTitle, {
66
73
  size: titleSize,
67
- className: "euiStep__title"
74
+ className: "euiStep__title",
75
+ css: cssStepTitleStyles
68
76
  }, /*#__PURE__*/(0, _react.createElement)(headingElement, null, title))), (0, _react2.jsx)("div", {
69
- className: "euiStep__content"
77
+ className: "euiStep__content",
78
+ css: cssContentStyles
70
79
  }, children));
71
80
  };
72
81
 
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiStepVariables = exports.euiStepTitleStyles = exports.euiStepStyles = exports.euiStepContentStyles = void 0;
7
+
8
+ var _react = require("@emotion/react");
9
+
10
+ var _global_styling = require("../../global_styling");
11
+
12
+ /*
13
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
14
+ * or more contributor license agreements. Licensed under the Elastic License
15
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
16
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
17
+ * Side Public License, v 1.
18
+ */
19
+ var euiStepVariables = function euiStepVariables(euiTheme) {
20
+ return {
21
+ numberSize: euiTheme.size.xl,
22
+ numberXSSize: euiTheme.size.l,
23
+ numberMargin: euiTheme.size.base
24
+ };
25
+ };
26
+
27
+ exports.euiStepVariables = euiStepVariables;
28
+
29
+ var euiStepStyles = function euiStepStyles(euiThemeContext) {
30
+ var euiTheme = euiThemeContext.euiTheme;
31
+ var euiStep = euiStepVariables(euiTheme); // the vertical line is centered on the number, so we need to offset the line
32
+ // by half of the number size & half of the line size to center it
33
+
34
+ var lineStartPosition = (0, _global_styling.mathWithUnits)([euiStep.numberSize, euiTheme.border.width.thick], function (x, y) {
35
+ return x / 2 - y / 2;
36
+ });
37
+ var lineEndPosition = (0, _global_styling.mathWithUnits)([euiStep.numberSize, euiTheme.border.width.thick], function (x, y) {
38
+ return x / 2 + y / 2;
39
+ });
40
+ var lineGradient = "linear-gradient(to right,\n transparent 0,\n transparent ".concat(lineStartPosition, ",\n ").concat(euiTheme.border.color, " ").concat(lineStartPosition, ",\n ").concat(euiTheme.border.color, " ").concat(lineEndPosition, ",\n transparent ").concat(lineEndPosition, ",\n transparent 100%)");
41
+ return {
42
+ euiStep: /*#__PURE__*/(0, _react.css)("&:not(:last-of-type){background-image:", lineGradient, ";background-repeat:no-repeat;};label:euiStep;"),
43
+ // Sizes
44
+ m: /*#__PURE__*/(0, _react.css)("&:not(:last-of-type){background-position:left ", euiTheme.size.xl, ";};label:m;"),
45
+ s: /*#__PURE__*/(0, _react.css)("&:not(:last-of-type){background-position:left ", euiTheme.size.xl, ";};label:s;"),
46
+ xs: /*#__PURE__*/(0, _react.css)("&:not(:last-of-type){background-position:-", euiTheme.size.xs, " ", euiTheme.size.l, ";};label:xs;")
47
+ };
48
+ };
49
+
50
+ exports.euiStepStyles = euiStepStyles;
51
+
52
+ var euiStepContentStyles = function euiStepContentStyles(euiThemeContext) {
53
+ var euiTheme = euiThemeContext.euiTheme;
54
+ var euiStep = euiStepVariables(euiTheme);
55
+ var styles = {
56
+ euiStep__content: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('margin-top', euiTheme.size.s), " ", (0, _global_styling.logicalCSS)('padding-top', euiTheme.size.base), " ", (0, _global_styling.logicalCSS)('padding-bottom', (0, _global_styling.mathWithUnits)([euiTheme.size.xl, euiTheme.size.s], function (x, y) {
57
+ return x + y;
58
+ })), " ", (0, _global_styling.logicalCSS)('padding-right', euiTheme.size.base), ";;label:euiStep__content;"),
59
+ // Sizes
60
+ m: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('padding-left', (0, _global_styling.mathWithUnits)([euiStep.numberSize, euiStep.numberMargin], function (x, y) {
61
+ return x / 2 + y;
62
+ })), (0, _global_styling.logicalCSS)('margin-left', (0, _global_styling.mathWithUnits)(euiStep.numberSize, function (x) {
63
+ return x / 2;
64
+ })), ";;label:m;"),
65
+ s: /*#__PURE__*/(0, _react.css)(";label:s;"),
66
+ // s is the same as m, so we'll programmatically duplicate it below
67
+ xs: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('padding-left', (0, _global_styling.mathWithUnits)([euiStep.numberXSSize, euiStep.numberMargin], function (x, y) {
68
+ return x / 2 + y;
69
+ })), (0, _global_styling.logicalCSS)('margin-left', (0, _global_styling.mathWithUnits)(euiStep.numberXSSize, function (x) {
70
+ return x / 2;
71
+ })), ";;label:xs;")
72
+ };
73
+ styles.s = styles.m;
74
+ return styles;
75
+ };
76
+
77
+ exports.euiStepContentStyles = euiStepContentStyles;
78
+
79
+ var euiStepTitleStyles = function euiStepTitleStyles(euiThemeContext) {
80
+ var euiTheme = euiThemeContext.euiTheme;
81
+ var euiStep = euiStepVariables(euiTheme);
82
+ return {
83
+ euiStep__titleWrapper: /*#__PURE__*/(0, _react.css)("display:flex;gap:", euiStep.numberMargin, ";;label:euiStep__titleWrapper;"),
84
+ euiStep__title: /*#__PURE__*/(0, _react.css)(";label:euiStep__title;"),
85
+ isDisabled: /*#__PURE__*/(0, _react.css)("color:", euiTheme.colors.disabledText, ";;label:isDisabled;"),
86
+ // Sizes
87
+ m: /*#__PURE__*/(0, _react.css)(";label:m;"),
88
+ s: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('padding-top', euiTheme.size.xs), ";;label:s;"),
89
+ xs: /*#__PURE__*/(0, _react.css)(";label:xs;")
90
+ };
91
+ };
92
+
93
+ exports.euiStepTitleStyles = euiStepTitleStyles;
@@ -15,6 +15,10 @@ var _step_number = require("./step_number");
15
15
 
16
16
  var _step_strings = require("./step_strings");
17
17
 
18
+ var _services = require("../../services");
19
+
20
+ var _step_horizontal = require("./step_horizontal.styles");
21
+
18
22
  var _react2 = require("@emotion/react");
19
23
 
20
24
  var _excluded = ["className", "step", "title", "onClick", "disabled", "status"];
@@ -38,43 +42,50 @@ var EuiStepHorizontal = function EuiStepHorizontal(_ref) {
38
42
  status = _ref$status === void 0 ? 'incomplete' : _ref$status,
39
43
  rest = _objectWithoutProperties(_ref, _excluded);
40
44
 
41
- var buttonTitle = (0, _step_strings.useI18nStep)({
42
- number: step,
43
- title: title
44
- });
45
- var completeTitle = (0, _step_strings.useI18nCompleteStep)({
46
- number: step,
47
- title: title
48
- });
49
- var disabledTitle = (0, _step_strings.useI18nDisabledStep)({
50
- number: step,
51
- title: title
52
- });
53
- var incompleteTitle = (0, _step_strings.useI18nIncompleteStep)({
54
- number: step,
55
- title: title
56
- });
57
- var warningTitle = (0, _step_strings.useI18nWarningStep)({
58
- number: step,
59
- title: title
60
- });
61
- var currentTitle = (0, _step_strings.useI18nCurrentStep)({
62
- number: step,
63
- title: title
64
- });
65
45
  if (disabled) status = 'disabled';
66
- var classes = (0, _classnames.default)('euiStepHorizontal', className, {
67
- 'euiStepHorizontal-isSelected': status === 'current',
68
- 'euiStepHorizontal-isComplete': status === 'complete',
69
- 'euiStepHorizontal-isIncomplete': status === 'incomplete',
70
- 'euiStepHorizontal-isDisabled': status === 'disabled'
71
- });
72
- var stepTitle = buttonTitle;
73
- if (status === 'disabled') stepTitle = disabledTitle;
74
- if (status === 'complete') stepTitle = completeTitle;
75
- if (status === 'incomplete') stepTitle = incompleteTitle;
76
- if (status === 'warning') stepTitle = warningTitle;
77
- if (status === 'current') stepTitle = currentTitle;
46
+ var classes = (0, _classnames.default)('euiStepHorizontal', className);
47
+ var euiTheme = (0, _services.useEuiTheme)();
48
+ var styles = (0, _step_horizontal.euiStepHorizontalStyles)(euiTheme);
49
+ var cssStyles = [styles.euiStepHorizontal, status === 'disabled' ? styles.disabled : styles.enabled];
50
+ var numberStyles = (0, _step_horizontal.euiStepHorizontalNumberStyles)(euiTheme);
51
+ var cssNumberStyles = [numberStyles.euiStepHorizontal__number];
52
+ var titleStyles = (0, _step_horizontal.euiStepHorizontalTitleStyles)(euiTheme);
53
+ var cssTitleStyles = [titleStyles.euiStepHorizontal__title, status === 'disabled' && titleStyles.disabled];
54
+ var titleAttrsMap = {
55
+ step: (0, _step_strings.useI18nStep)({
56
+ number: step,
57
+ title: title
58
+ }),
59
+ current: (0, _step_strings.useI18nCurrentStep)({
60
+ number: step,
61
+ title: title
62
+ }),
63
+ disabled: (0, _step_strings.useI18nDisabledStep)({
64
+ number: step,
65
+ title: title
66
+ }),
67
+ incomplete: (0, _step_strings.useI18nIncompleteStep)({
68
+ number: step,
69
+ title: title
70
+ }),
71
+ complete: (0, _step_strings.useI18nCompleteStep)({
72
+ number: step,
73
+ title: title
74
+ }),
75
+ warning: (0, _step_strings.useI18nWarningStep)({
76
+ number: step,
77
+ title: title
78
+ }),
79
+ danger: (0, _step_strings.useI18nErrorsStep)({
80
+ number: step,
81
+ title: title
82
+ }),
83
+ loading: (0, _step_strings.useI18nLoadingStep)({
84
+ number: step,
85
+ title: title
86
+ })
87
+ };
88
+ var titleAttr = titleAttrsMap[status || 'step'];
78
89
 
79
90
  var onStepClick = function onStepClick(event) {
80
91
  if (!disabled) onClick(event);
@@ -82,15 +93,19 @@ var EuiStepHorizontal = function EuiStepHorizontal(_ref) {
82
93
 
83
94
  return (0, _react2.jsx)("button", _extends({
84
95
  className: classes,
85
- title: stepTitle,
96
+ title: titleAttr,
86
97
  onClick: onStepClick,
87
- disabled: disabled
98
+ disabled: disabled,
99
+ css: cssStyles,
100
+ "data-step-status": status
88
101
  }, rest), (0, _react2.jsx)(_step_number.EuiStepNumber, {
89
102
  className: "euiStepHorizontal__number",
90
103
  status: status,
91
- number: step
104
+ number: step,
105
+ css: cssNumberStyles
92
106
  }), (0, _react2.jsx)("span", {
93
- className: "euiStepHorizontal__title"
107
+ className: "euiStepHorizontal__title",
108
+ css: cssTitleStyles
94
109
  }, title));
95
110
  };
96
111
 
@@ -112,7 +127,7 @@ EuiStepHorizontal.propTypes = {
112
127
  /**
113
128
  * Visual representation of the step number indicator.
114
129
  * May replace the number provided in props.step with alternate styling.
115
- * The `isSelected`, `isComplete`, and `disabled` props will override these.
130
+ * The `disabled` prop will override this.
116
131
  */
117
132
  status: _propTypes.default.any,
118
133
  className: _propTypes.default.string,
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.euiStepHorizontalTitleStyles = exports.euiStepHorizontalStyles = exports.euiStepHorizontalNumberStyles = void 0;
7
+
8
+ var _react = require("@emotion/react");
9
+
10
+ var _global_styling = require("../../global_styling/");
11
+
12
+ var _title = require("../title/title.styles");
13
+
14
+ var _step = require("./step.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 _ref = process.env.NODE_ENV === "production" ? {
19
+ name: "b86pnw-disabled",
20
+ styles: "cursor:not-allowed;label:disabled;"
21
+ } : {
22
+ name: "b86pnw-disabled",
23
+ styles: "cursor:not-allowed;label:disabled;",
24
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
25
+ };
26
+
27
+ var euiStepHorizontalStyles = function euiStepHorizontalStyles(euiThemeContext) {
28
+ var euiTheme = euiThemeContext.euiTheme;
29
+ var euiStep = (0, _step.euiStepVariables)(euiTheme);
30
+ /**
31
+ * 1. Ensure the connecting lines stays behind the number
32
+ * 2. Make the content of each step align to the top, even if the steps are of varying heights,
33
+ * e.g. due to some of their titles wrapping to multiple lines
34
+ */
35
+
36
+ return {
37
+ euiStepHorizontal: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalShorthandCSS)('padding', "".concat(euiTheme.size.l, " ").concat(euiTheme.size.base, " ").concat(euiTheme.size.base)), " display:flex;flex-direction:column;align-items:center;justify-content:flex-start;cursor:pointer;position:relative;inline-size:100%;&::before,&::after{content:'';position:absolute;background-color:", euiTheme.border.color, ";block-size:", euiTheme.border.width.thick, ";inline-size:calc(50% - (", euiStep.numberSize, " / 2));inset-block-start:", (0, _global_styling.mathWithUnits)([euiTheme.size.l, euiStep.numberSize], function (x, y) {
38
+ return x + y / 2;
39
+ }), ";z-index:", euiTheme.levels.content, ";}&::before{inset-inline-start:0;}&::after{inset-inline-end:0;};label:euiStepHorizontal;"),
40
+ // Note: these selectors must be nested because focus/hover state
41
+ // is on the parent container, but affects specific children
42
+ enabled: /*#__PURE__*/(0, _react.css)("&:focus,&:hover{.euiStepHorizontal__title{text-decoration:underline;}}&:focus{outline:none;.euiStepHorizontal__number{", (0, _global_styling.euiFocusRing)(euiThemeContext), ";}.euiStepHorizontal__number:not(:focus-visible){outline:", euiTheme.focus.width, " solid ", euiTheme.colors.darkestShade, ";}};label:enabled;"),
43
+ disabled: _ref
44
+ };
45
+ };
46
+
47
+ exports.euiStepHorizontalStyles = euiStepHorizontalStyles;
48
+
49
+ var euiStepHorizontalNumberStyles = function euiStepHorizontalNumberStyles(euiThemeContext) {
50
+ var euiTheme = euiThemeContext.euiTheme;
51
+ return {
52
+ euiStepHorizontal__number: /*#__PURE__*/(0, _react.css)("position:relative;z-index:", Number(euiTheme.levels.content) + 1, ";", _global_styling.euiCanAnimate, "{transition:all ", euiTheme.animation.fast, " ease-in-out;};label:euiStepHorizontal__number;")
53
+ };
54
+ };
55
+
56
+ exports.euiStepHorizontalNumberStyles = euiStepHorizontalNumberStyles;
57
+
58
+ var euiStepHorizontalTitleStyles = function euiStepHorizontalTitleStyles(euiThemeContext) {
59
+ var euiTheme = euiThemeContext.euiTheme;
60
+ return {
61
+ euiStepHorizontal__title: /*#__PURE__*/(0, _react.css)((0, _title.euiTitle)(euiThemeContext, 'xs'), ";margin-block-start:", euiTheme.size.s, ";font-weight:", euiTheme.font.weight.bold, ";text-align:center;", (0, _global_styling.euiBreakpoint)(euiThemeContext, ['xs', 's']), "{display:none;};label:euiStepHorizontal__title;"),
62
+ disabled: /*#__PURE__*/(0, _react.css)("color:", euiTheme.colors.disabledText, ";;label:disabled;")
63
+ };
64
+ };
65
+
66
+ exports.euiStepHorizontalTitleStyles = euiStepHorizontalTitleStyles;
@@ -13,14 +13,16 @@ var _react = _interopRequireDefault(require("react"));
13
13
 
14
14
  var _accessibility = require("../accessibility");
15
15
 
16
- var _common = require("../common");
17
-
18
16
  var _icon = require("../icon");
19
17
 
20
18
  var _step_strings = require("./step_strings");
21
19
 
22
20
  var _loading = require("../loading");
23
21
 
22
+ var _services = require("../../services");
23
+
24
+ var _step_number = require("./step_number.styles");
25
+
24
26
  var _react2 = require("@emotion/react");
25
27
 
26
28
  var _excluded = ["className", "status", "number", "titleSize"];
@@ -33,90 +35,99 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
33
35
 
34
36
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
35
37
 
36
- var statusToClassNameMap = {
37
- incomplete: 'euiStepNumber--incomplete',
38
- disabled: 'euiStepNumber--disabled',
39
- loading: 'euiStepNumber--loading',
40
- warning: 'euiStepNumber--warning',
41
- danger: 'euiStepNumber--danger',
42
- complete: 'euiStepNumber--complete',
43
- current: null // Current displays the same as the default (undefined)
44
-
45
- };
46
- var STATUS = (0, _common.keysOf)(statusToClassNameMap);
38
+ var STATUS = ['incomplete', 'disabled', 'loading', 'warning', 'danger', 'complete', 'current'];
47
39
  exports.STATUS = STATUS;
48
40
 
49
41
  var EuiStepNumber = function EuiStepNumber(_ref) {
50
42
  var className = _ref.className,
51
43
  status = _ref.status,
52
44
  number = _ref.number,
53
- titleSize = _ref.titleSize,
45
+ _ref$titleSize = _ref.titleSize,
46
+ titleSize = _ref$titleSize === void 0 ? 's' : _ref$titleSize,
54
47
  rest = _objectWithoutProperties(_ref, _excluded);
55
48
 
56
- var stepAriaLabel = (0, _step_strings.useI18nStep)({
57
- number: number
58
- });
59
- var completeAriaLabel = (0, _step_strings.useI18nCompleteStep)({
60
- number: number
61
- });
62
- var warningAriaLabel = (0, _step_strings.useI18nWarningStep)({
63
- number: number
64
- });
65
- var errorsAriaLabel = (0, _step_strings.useI18nErrorsStep)({
66
- number: number
67
- });
68
- var incompleteAriaLabel = (0, _step_strings.useI18nIncompleteStep)({
69
- number: number
70
- });
71
- var disabledAriaLabel = (0, _step_strings.useI18nDisabledStep)({
72
- number: number
73
- });
74
- var loadingAriaLabel = (0, _step_strings.useI18nLoadingStep)({
75
- number: number
76
- });
77
- var currentAriaLabel = (0, _step_strings.useI18nCurrentStep)({
78
- number: number
79
- });
80
- var classes = (0, _classnames.default)('euiStepNumber', status ? statusToClassNameMap[status] : undefined, className);
81
- var iconSize = titleSize === 'xs' ? 's' : 'm';
82
- var screenReaderText = stepAriaLabel;
83
- if (status === 'incomplete') screenReaderText = incompleteAriaLabel;else if (status === 'disabled') screenReaderText = disabledAriaLabel;else if (status === 'loading') screenReaderText = loadingAriaLabel;else if (status === 'current') screenReaderText = currentAriaLabel;
84
- var numberOrIcon = (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("span", null, screenReaderText)), (0, _react2.jsx)("span", {
85
- className: "euiStepNumber__number",
86
- "aria-hidden": "true"
87
- }, number));
88
-
89
- if (status === 'complete') {
90
- numberOrIcon = (0, _react2.jsx)(_icon.EuiIcon, {
91
- type: "check",
92
- className: "euiStepNumber__icon",
93
- size: iconSize,
94
- "aria-label": completeAriaLabel
95
- });
96
- } else if (status === 'warning') {
97
- numberOrIcon = (0, _react2.jsx)(_icon.EuiIcon, {
98
- type: "alert",
99
- className: "euiStepNumber__icon",
100
- size: iconSize,
101
- "aria-label": warningAriaLabel
102
- });
103
- } else if (status === 'danger') {
104
- numberOrIcon = (0, _react2.jsx)(_icon.EuiIcon, {
105
- type: "cross",
106
- className: "euiStepNumber__icon",
107
- size: iconSize,
108
- "aria-label": errorsAriaLabel
109
- });
110
- } else if (status === 'loading') {
111
- numberOrIcon = (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("span", null, screenReaderText)), (0, _react2.jsx)(_loading.EuiLoadingSpinner, {
112
- className: "euiStepNumber__loader",
113
- size: iconSize === 's' ? 'l' : 'xl'
114
- }));
49
+ var ariaLabelsMap = {
50
+ step: (0, _step_strings.useI18nStep)({
51
+ number: number
52
+ }),
53
+ current: (0, _step_strings.useI18nCurrentStep)({
54
+ number: number
55
+ }),
56
+ incomplete: (0, _step_strings.useI18nIncompleteStep)({
57
+ number: number
58
+ }),
59
+ complete: (0, _step_strings.useI18nCompleteStep)({
60
+ number: number
61
+ }),
62
+ disabled: (0, _step_strings.useI18nDisabledStep)({
63
+ number: number
64
+ }),
65
+ warning: (0, _step_strings.useI18nWarningStep)({
66
+ number: number
67
+ }),
68
+ danger: (0, _step_strings.useI18nErrorsStep)({
69
+ number: number
70
+ }),
71
+ loading: (0, _step_strings.useI18nLoadingStep)({
72
+ number: number
73
+ })
74
+ };
75
+ var classes = (0, _classnames.default)('euiStepNumber', className);
76
+ var euiTheme = (0, _services.useEuiTheme)();
77
+ var styles = (0, _step_number.euiStepNumberStyles)(euiTheme);
78
+ var cssStyles = [styles.euiStepNumber, styles[titleSize], status && styles[status]];
79
+ var contentStyles = (0, _step_number.euiStepNumberContentStyles)(euiTheme);
80
+ var content;
81
+ var screenReaderText;
82
+
83
+ switch (status) {
84
+ // Loading spinner
85
+ case 'loading':
86
+ screenReaderText = ariaLabelsMap.loading;
87
+ content = (0, _react2.jsx)(_loading.EuiLoadingSpinner, {
88
+ className: "euiStepNumber__loader",
89
+ size: titleSize === 'xs' ? 'l' : 'xl'
90
+ });
91
+ break;
92
+ // Statuses with icons
93
+
94
+ case 'danger':
95
+ case 'warning':
96
+ case 'complete':
97
+ var cssIconStyles = [contentStyles.euiStepNumber__icon, contentStyles[status]];
98
+ var iconTypeMap = {
99
+ danger: 'cross',
100
+ warning: 'alert',
101
+ complete: 'check'
102
+ };
103
+ content = (0, _react2.jsx)(_icon.EuiIcon, {
104
+ type: iconTypeMap[status],
105
+ "aria-label": ariaLabelsMap[status],
106
+ size: titleSize === 'xs' ? 's' : 'm',
107
+ className: "euiStepNumber__icon",
108
+ css: cssIconStyles
109
+ });
110
+ break;
111
+ // Statuses with numbers
112
+
113
+ case 'incomplete':
114
+ case 'current':
115
+ case 'disabled':
116
+ default:
117
+ var cssNumberStyles = [contentStyles.euiStepNumber__number, status && contentStyles[status]];
118
+ screenReaderText = ariaLabelsMap[status || 'step'];
119
+ content = (0, _react2.jsx)("span", {
120
+ "aria-hidden": "true",
121
+ className: "euiStepNumber__number",
122
+ css: cssNumberStyles
123
+ }, number);
124
+ break;
115
125
  }
116
126
 
117
127
  return (0, _react2.jsx)("span", _extends({
118
- className: classes
119
- }, rest), numberOrIcon);
128
+ className: classes,
129
+ css: cssStyles
130
+ }, rest), screenReaderText && (0, _react2.jsx)(_accessibility.EuiScreenReaderOnly, null, (0, _react2.jsx)("span", null, screenReaderText)), content);
120
131
  };
121
132
 
122
133
  exports.EuiStepNumber = EuiStepNumber;