@elastic/eui 85.0.0 → 85.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 (137) hide show
  1. package/dist/eui_charts_theme.js +13 -16
  2. package/dist/eui_charts_theme.js.map +1 -1
  3. package/dist/eui_theme_dark.css +47 -90
  4. package/dist/eui_theme_dark.min.css +1 -1
  5. package/dist/eui_theme_light.css +47 -90
  6. package/dist/eui_theme_light.min.css +1 -1
  7. package/es/components/collapsible_nav_beta/collapsible_nav_beta.js +26 -0
  8. package/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +16 -0
  9. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +202 -0
  10. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +33 -0
  11. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +296 -0
  12. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.styles.js +58 -0
  13. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +93 -0
  14. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.styles.js +28 -0
  15. package/es/components/collapsible_nav_beta/collapsible_nav_item/index.js +9 -0
  16. package/es/components/collapsible_nav_beta/index.js +15 -0
  17. package/es/components/color_picker/saturation.js +2 -1
  18. package/es/components/combo_box/combo_box_input/combo_box_input.js +7 -1
  19. package/es/components/combo_box/combo_box_input/combo_box_pill.js +16 -4
  20. package/es/components/combo_box/combo_box_options_list/combo_box_option.js +4 -0
  21. package/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +21 -3
  22. package/es/components/error_boundary/error_boundary.js +1 -1
  23. package/es/components/filter_group/filter_group.styles.js +2 -2
  24. package/es/components/filter_group/filter_select_item.js +31 -15
  25. package/es/components/filter_group/filter_select_item.styles.js +19 -0
  26. package/es/components/form/range/range_highlight.js +1 -0
  27. package/es/components/highlight/highlight.js +4 -4
  28. package/es/components/index.js +1 -0
  29. package/es/components/inline_edit/inline_edit_form.js +2 -1
  30. package/es/components/markdown_editor/markdown_editor.js +2 -2
  31. package/es/themes/amsterdam/global_styling/variables/_states.js +13 -16
  32. package/eui.d.ts +362 -129
  33. package/i18ntokens.json +50 -50
  34. package/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +30 -0
  35. package/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +23 -0
  36. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +211 -0
  37. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +40 -0
  38. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +304 -0
  39. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.styles.js +63 -0
  40. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +100 -0
  41. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.styles.js +35 -0
  42. package/lib/components/collapsible_nav_beta/collapsible_nav_item/index.js +12 -0
  43. package/lib/components/collapsible_nav_beta/index.js +19 -0
  44. package/lib/components/color_picker/saturation.js +2 -1
  45. package/lib/components/combo_box/combo_box_input/combo_box_input.js +7 -1
  46. package/lib/components/combo_box/combo_box_input/combo_box_pill.js +16 -4
  47. package/lib/components/combo_box/combo_box_options_list/combo_box_option.js +4 -0
  48. package/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +21 -3
  49. package/lib/components/error_boundary/error_boundary.js +1 -1
  50. package/lib/components/filter_group/filter_group.styles.js +1 -1
  51. package/lib/components/filter_group/filter_select_item.js +33 -17
  52. package/lib/components/filter_group/filter_select_item.styles.js +26 -0
  53. package/lib/components/form/range/range_highlight.js +1 -0
  54. package/lib/components/highlight/highlight.js +4 -4
  55. package/lib/components/index.js +11 -0
  56. package/lib/components/inline_edit/inline_edit_form.js +2 -1
  57. package/lib/components/markdown_editor/markdown_editor.js +2 -2
  58. package/lib/themes/amsterdam/global_styling/variables/_states.js +13 -16
  59. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.js +26 -0
  60. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +16 -0
  61. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +113 -0
  62. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +33 -0
  63. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +117 -0
  64. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.styles.js +55 -0
  65. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +59 -0
  66. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.styles.js +28 -0
  67. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/index.js +9 -0
  68. package/optimize/es/components/collapsible_nav_beta/index.js +15 -0
  69. package/optimize/es/components/color_picker/saturation.js +2 -1
  70. package/optimize/es/components/combo_box/combo_box_input/combo_box_input.js +3 -1
  71. package/optimize/es/components/combo_box/combo_box_input/combo_box_pill.js +12 -4
  72. package/optimize/es/components/combo_box/combo_box_options_list/combo_box_options_list.js +9 -3
  73. package/optimize/es/components/error_boundary/error_boundary.js +1 -1
  74. package/optimize/es/components/filter_group/filter_group.styles.js +2 -2
  75. package/optimize/es/components/filter_group/filter_select_item.js +30 -14
  76. package/optimize/es/components/filter_group/filter_select_item.styles.js +19 -0
  77. package/optimize/es/components/form/range/range_highlight.js +1 -0
  78. package/optimize/es/components/highlight/highlight.js +4 -4
  79. package/optimize/es/components/index.js +1 -0
  80. package/optimize/es/components/inline_edit/inline_edit_form.js +2 -1
  81. package/optimize/es/components/markdown_editor/markdown_editor.js +2 -2
  82. package/optimize/es/themes/amsterdam/global_styling/variables/_states.js +13 -16
  83. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +33 -0
  84. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +23 -0
  85. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +123 -0
  86. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +40 -0
  87. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +124 -0
  88. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.styles.js +61 -0
  89. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +66 -0
  90. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.styles.js +35 -0
  91. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/index.js +12 -0
  92. package/optimize/lib/components/collapsible_nav_beta/index.js +19 -0
  93. package/optimize/lib/components/color_picker/saturation.js +2 -1
  94. package/optimize/lib/components/combo_box/combo_box_input/combo_box_input.js +3 -1
  95. package/optimize/lib/components/combo_box/combo_box_input/combo_box_pill.js +12 -4
  96. package/optimize/lib/components/combo_box/combo_box_options_list/combo_box_options_list.js +9 -3
  97. package/optimize/lib/components/error_boundary/error_boundary.js +1 -1
  98. package/optimize/lib/components/filter_group/filter_group.styles.js +1 -1
  99. package/optimize/lib/components/filter_group/filter_select_item.js +32 -16
  100. package/optimize/lib/components/filter_group/filter_select_item.styles.js +26 -0
  101. package/optimize/lib/components/form/range/range_highlight.js +1 -0
  102. package/optimize/lib/components/highlight/highlight.js +4 -4
  103. package/optimize/lib/components/index.js +11 -0
  104. package/optimize/lib/components/inline_edit/inline_edit_form.js +2 -1
  105. package/optimize/lib/components/markdown_editor/markdown_editor.js +2 -2
  106. package/optimize/lib/themes/amsterdam/global_styling/variables/_states.js +13 -16
  107. package/package.json +1 -1
  108. package/src/components/combo_box/combo_box_input/_combo_box_pill.scss +24 -3
  109. package/src/components/combo_box/combo_box_options_list/_combo_box_option.scss +34 -14
  110. package/src/components/index.scss +0 -1
  111. package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.js +33 -0
  112. package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +23 -0
  113. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +208 -0
  114. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +40 -0
  115. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +303 -0
  116. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.styles.js +61 -0
  117. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.js +96 -0
  118. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_link.styles.js +35 -0
  119. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/index.js +12 -0
  120. package/test-env/components/collapsible_nav_beta/index.js +19 -0
  121. package/test-env/components/color_picker/saturation.js +2 -1
  122. package/test-env/components/combo_box/combo_box_input/combo_box_input.js +7 -1
  123. package/test-env/components/combo_box/combo_box_input/combo_box_pill.js +16 -4
  124. package/test-env/components/combo_box/combo_box_options_list/combo_box_option.js +4 -0
  125. package/test-env/components/combo_box/combo_box_options_list/combo_box_options_list.js +21 -3
  126. package/test-env/components/error_boundary/error_boundary.js +1 -1
  127. package/test-env/components/filter_group/filter_group.styles.js +1 -1
  128. package/test-env/components/filter_group/filter_select_item.js +33 -17
  129. package/test-env/components/filter_group/filter_select_item.styles.js +26 -0
  130. package/test-env/components/form/range/range_highlight.js +1 -0
  131. package/test-env/components/highlight/highlight.js +4 -4
  132. package/test-env/components/index.js +11 -0
  133. package/test-env/components/inline_edit/inline_edit_form.js +2 -1
  134. package/test-env/components/markdown_editor/markdown_editor.js +2 -2
  135. package/test-env/themes/amsterdam/global_styling/variables/_states.js +13 -16
  136. package/src/components/filter_group/_filter_select_item.scss +0 -43
  137. package/src/components/filter_group/_index.scss +0 -1
@@ -0,0 +1,26 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+ /*
3
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
4
+ * or more contributor license agreements. Licensed under the Elastic License
5
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
6
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
7
+ * Side Public License, v 1.
8
+ */
9
+
10
+ import React from 'react';
11
+ import { useEuiTheme } from '../../services';
12
+ import { EuiCollapsibleNav } from '../collapsible_nav/collapsible_nav';
13
+ import { euiCollapsibleNavBetaStyles } from './collapsible_nav_beta.styles';
14
+
15
+ /**
16
+ * TODO: Actual component in a follow-up PR
17
+ */
18
+ import { jsx as ___EmotionJSX } from "@emotion/react";
19
+ export var EuiCollapsibleNavBeta = function EuiCollapsibleNavBeta(props) {
20
+ var euiTheme = useEuiTheme();
21
+ var styles = euiCollapsibleNavBetaStyles(euiTheme);
22
+ return ___EmotionJSX(EuiCollapsibleNav, _extends({
23
+ css: styles.euiCollapsibleNavBeta,
24
+ size: 248
25
+ }, props));
26
+ };
@@ -0,0 +1,16 @@
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
+ import { css } from '@emotion/react';
10
+ import { logicalCSS } from '../../global_styling';
11
+ export var euiCollapsibleNavBetaStyles = function euiCollapsibleNavBetaStyles(euiThemeContext) {
12
+ var euiTheme = euiThemeContext.euiTheme;
13
+ return {
14
+ euiCollapsibleNavBeta: /*#__PURE__*/css(logicalCSS('border-top', euiTheme.border.thin), " ", logicalCSS('border-right', euiTheme.border.thin), " .euiFlyoutFooter{background-color:", euiTheme.colors.emptyShade, ";", logicalCSS('border-top', euiTheme.border.thin), ";};label:euiCollapsibleNavBeta;")
15
+ };
16
+ };
@@ -0,0 +1,202 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ var _excluded = ["id", "className", "items", "href", "isSubItem", "isSelected", "linkProps", "accordionProps", "buttonContent", "children"];
3
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
4
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
7
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
8
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
9
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
10
+ 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; }
11
+ /*
12
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
13
+ * or more contributor license agreements. Licensed under the Elastic License
14
+ * 2.0 and the Server Side Public License, v 1; you may not use this file except
15
+ * in compliance with, at your election, the Elastic License 2.0 or the Server
16
+ * Side Public License, v 1.
17
+ */
18
+
19
+ import React, { useCallback, useMemo } from 'react';
20
+ import PropTypes from "prop-types";
21
+ import classNames from 'classnames';
22
+ import { useEuiTheme, useGeneratedHtmlId } from '../../../services';
23
+ import { EuiAccordion } from '../../accordion';
24
+ import { EuiCollapsibleNavSubItem } from './collapsible_nav_item';
25
+ import { EuiCollapsibleNavLink } from './collapsible_nav_link';
26
+ import { euiCollapsibleNavAccordionStyles } from './collapsible_nav_accordion.styles';
27
+ import { jsx as ___EmotionJSX } from "@emotion/react";
28
+ /**
29
+ * Internal nav accordion component.
30
+ *
31
+ * Renders children as either a nav link or any number/nesting of more nav accordions.
32
+ * Triggering the open/closed state is handled only by the accordion `arrow` for
33
+ * UX consistency, as accordion/nav titles can be their own links to pages.
34
+ */
35
+ export var EuiCollapsibleNavAccordion = function EuiCollapsibleNavAccordion(_ref) {
36
+ var _accordionProps$arrow;
37
+ var id = _ref.id,
38
+ className = _ref.className,
39
+ items = _ref.items,
40
+ href = _ref.href,
41
+ isSubItem = _ref.isSubItem,
42
+ isSelected = _ref.isSelected,
43
+ linkProps = _ref.linkProps,
44
+ accordionProps = _ref.accordionProps,
45
+ buttonContent = _ref.buttonContent,
46
+ _children = _ref.children,
47
+ rest = _objectWithoutProperties(_ref, _excluded);
48
+ var classes = classNames('euiCollapsibleNavAccordion', className);
49
+ var groupID = useGeneratedHtmlId({
50
+ conditionalId: id
51
+ });
52
+ var euiTheme = useEuiTheme();
53
+ var styles = euiCollapsibleNavAccordionStyles(euiTheme);
54
+ var cssStyles = [styles.euiCollapsibleNavAccordion, isSubItem ? styles.isSubItem : styles.isTopItem, isSelected && styles.isSelected, accordionProps === null || accordionProps === void 0 ? void 0 : accordionProps.css];
55
+
56
+ /**
57
+ * Title / accordion trigger
58
+ */
59
+ var isTitleInteractive = !!(href || linkProps !== null && linkProps !== void 0 && linkProps.onClick);
60
+
61
+ // Stop propagation on the title so that the accordion toggle doesn't occur on click
62
+ // (should only occur on accordion arrow click for UX consistency)
63
+ var stopPropagationClick = useCallback(function (e) {
64
+ var _linkProps$onClick;
65
+ e.stopPropagation();
66
+ linkProps === null || linkProps === void 0 ? void 0 : (_linkProps$onClick = linkProps.onClick) === null || _linkProps$onClick === void 0 ? void 0 : _linkProps$onClick.call(linkProps, e);
67
+ }, [linkProps === null || linkProps === void 0 ? void 0 : linkProps.onClick] // eslint-disable-line react-hooks/exhaustive-deps
68
+ );
69
+
70
+ /**
71
+ * Child items
72
+ */
73
+ // If any of the sub items have an icon, default to an
74
+ // icon of `empty` so that all text lines up vertically
75
+ var itemsHaveIcons = useMemo(function () {
76
+ return items.some(function (item) {
77
+ return !!item.icon;
78
+ });
79
+ }, [items]);
80
+ var icon = itemsHaveIcons ? 'empty' : undefined;
81
+ var childrenCssStyles = [styles.children.euiCollapsibleNavAccordion__children, isSubItem ? styles.children.isSubItem : styles.children.isTopItem];
82
+ var children = ___EmotionJSX("div", {
83
+ css: childrenCssStyles,
84
+ className: "euiCollapsibleNavAccordion__children"
85
+ }, items.map(function (item, index) {
86
+ return (
87
+ // This is an intentional circular dependency between the accordion & parent item display.
88
+ // EuiSideNavItem is purposely recursive to support any amount of nested sub items,
89
+ // and split up into separate files/components for better dev readability
90
+ ___EmotionJSX(EuiCollapsibleNavSubItem, _extends({
91
+ key: index,
92
+ icon: icon
93
+ }, item))
94
+ );
95
+ }));
96
+ return ___EmotionJSX(EuiAccordion, _extends({
97
+ id: groupID,
98
+ className: classes,
99
+ initialIsOpen: isSelected,
100
+ buttonElement: "div",
101
+ buttonContent: ___EmotionJSX(EuiCollapsibleNavLink, _extends({
102
+ href: href
103
+ }, linkProps, {
104
+ isSelected: isSelected,
105
+ isSubItem: isSubItem,
106
+ onClick: stopPropagationClick,
107
+ isInteractive: isTitleInteractive
108
+ }), buttonContent),
109
+ arrowDisplay: "right"
110
+ }, rest, accordionProps, {
111
+ css: cssStyles,
112
+ arrowProps: _objectSpread(_objectSpread({
113
+ iconSize: 's'
114
+ }, accordionProps === null || accordionProps === void 0 ? void 0 : accordionProps.arrowProps), {}, {
115
+ css: [styles.euiCollapsibleNavAccordion__arrow, accordionProps === null || accordionProps === void 0 ? void 0 : (_accordionProps$arrow = accordionProps.arrowProps) === null || _accordionProps$arrow === void 0 ? void 0 : _accordionProps$arrow.css]
116
+ })
117
+ }), children);
118
+ };
119
+ EuiCollapsibleNavAccordion.propTypes = {
120
+ /**
121
+ * Determines whether the item should render as a top-level nav item
122
+ * or a nested nav subitem. Set internally by EUI
123
+ */
124
+ isSubItem: PropTypes.bool,
125
+ buttonContent: PropTypes.node.isRequired,
126
+ // On the main `EuiCollapsibleNavItem` component, this uses `EuiCollapsibleNavSubItemProps`
127
+ // to allow for section headings, but by the time `items` reaches this component, we
128
+ // know for sure it's an actual accordion item and not a section heading
129
+ items: PropTypes.arrayOf(PropTypes.shape({
130
+ /**
131
+ * ReactNode to render as this component's title
132
+ */
133
+ title: PropTypes.node.isRequired,
134
+ /**
135
+ * Allows customizing title's element.
136
+ * Consider using a heading element for better accessibility.
137
+ * Defaults to an unsemantic `span` or `div`, depending on context.
138
+ */
139
+ titleElement: PropTypes.oneOf(["h2", "h3", "h4", "h5", "h6", "span", "div"]),
140
+ icon: PropTypes.oneOfType([PropTypes.oneOf(["accessibility", "addDataApp", "advancedSettingsApp", "agentApp", "aggregate", "analyzeEvent", "annotation", "apmApp", "apmTrace", "appSearchApp", "apps", "arrowDown", "arrowLeft", "arrowRight", "arrowUp", "arrowStart", "arrowEnd", "article", "asterisk", "at", "auditbeatApp", "beaker", "bell", "bellSlash", "beta", "bolt", "boxesHorizontal", "boxesVertical", "branch", "branchUser", "broom", "brush", "bug", "bullseye", "calendar", "canvasApp", "casesApp", "check", "checkInCircleFilled", "cheer", "classificationJob", "clock", "cloudDrizzle", "cloudStormy", "cloudSunny", "cluster", "codeApp", "color", "compute", "console", "consoleApp", "container", "continuityAbove", "continuityAboveBelow", "continuityBelow", "continuityWithin", "controlsHorizontal", "controlsVertical", "copy", "copyClipboard", "createAdvancedJob", "createMultiMetricJob", "createPopulationJob", "createSingleMetricJob", "cross", "crossClusterReplicationApp", "crosshairs", "currency", "cut", "dashboardApp", "dataVisualizer", "database", "desktop", "devToolsApp", "discoverApp", "discuss", "document", "documentEdit", "documentation", "documents", "dot", "dotInCircle", "doubleArrowLeft", "doubleArrowRight", "download", "editorAlignCenter", "editorAlignLeft", "editorAlignRight", "editorBold", "editorChecklist", "editorCodeBlock", "editorComment", "editorDistributeHorizontal", "editorDistributeVertical", "editorHeading", "editorItalic", "editorItemAlignBottom", "editorItemAlignCenter", "editorItemAlignLeft", "editorItemAlignMiddle", "editorItemAlignRight", "editorItemAlignTop", "editorLink", "editorOrderedList", "editorPositionBottomLeft", "editorPositionBottomRight", "editorPositionTopLeft", "editorPositionTopRight", "editorRedo", "editorStrike", "editorTable", "editorUnderline", "editorUndo", "editorUnorderedList", "email", "empty", "emsApp", "eql", "eraser", "error", "exit", "expand", "expandMini", "exportAction", "eye", "eyeClosed", "faceHappy", "faceNeutral", "faceSad", "filebeatApp", "filter", "filterExclude", "filterIgnore", "filterInclude", "filterInCircle", "flag", "fleetApp", "fold", "folderCheck", "folderClosed", "folderExclamation", "folderOpen", "frameNext", "framePrevious", "fullScreen", "fullScreenExit", "function", "gear", "gisApp", "glasses", "globe", "grab", "grabHorizontal", "graphApp", "grid", "grokApp", "heart", "heartbeatApp", "heatmap", "help", "home", "iInCircle", "image", "importAction", "indexClose", "indexEdit", "indexFlush", "indexManagementApp", "indexMapping", "indexOpen", "indexPatternApp", "indexRollupApp", "indexRuntime", "indexSettings", "indexTemporary", "infinity", "inputOutput", "inspect", "invert", "ip", "key", "keyboard", "kqlField", "kqlFunction", "kqlOperand", "kqlSelector", "kqlValue", "kubernetesNode", "kubernetesPod", "launch", "layers", "lensApp", "lettering", "lineDashed", "lineDotted", "lineSolid", "link", "list", "listAdd", "lock", "lockOpen", "logoAWS", "logoAWSMono", "logoAerospike", "logoApache", "logoAppSearch", "logoAzure", "logoAzureMono", "logoBeats", "logoBusinessAnalytics", "logoCeph", "logoCloud", "logoCloudEnterprise", "logoCode", "logoCodesandbox", "logoCouchbase", "logoDocker", "logoDropwizard", "logoElastic", "logoElasticStack", "logoElasticsearch", "logoEnterpriseSearch", "logoEtcd", "logoGCP", "logoGCPMono", "logoGithub", "logoGmail", "logoGolang", "logoGoogleG", "logoHAproxy", "logoIBM", "logoIBMMono", "logoKafka", "logoKibana", "logoKubernetes", "logoLogging", "logoLogstash", "logoMaps", "logoMemcached", "logoMetrics", "logoMongodb", "logoMySQL", "logoNginx", "logoObservability", "logoOsquery", "logoPhp", "logoPostgres", "logoPrometheus", "logoRabbitmq", "logoRedis", "logoSecurity", "logoSiteSearch", "logoSketch", "logoSlack", "logoUptime", "logoVulnerabilityManagement", "logoWebhook", "logoWindows", "logoWorkplaceSearch", "logsApp", "logstashFilter", "logstashIf", "logstashInput", "logstashOutput", "logstashQueue", "machineLearningApp", "magnet", "magnifyWithExclamation", "magnifyWithMinus", "magnifyWithPlus", "managementApp", "mapMarker", "memory", "menu", "menuDown", "menuLeft", "menuRight", "menuUp", "merge", "metricbeatApp", "metricsApp", "minimize", "minus", "minusInCircle", "minusInCircleFilled", "mobile", "monitoringApp", "moon", "namespace", "nested", "node", "notebookApp", "number", "offline", "online", "outlierDetectionJob", "package", "packetbeatApp", "pageSelect", "pagesSelect", "paperClip", "partial", "pause", "payment", "pencil", "percent", "pin", "pinFilled", "pipelineApp", "pivot", "play", "playFilled", "plus", "plusInCircle", "plusInCircleFilled", "popout", "push", "questionInCircle", "quote", "recentlyViewedApp", "refresh", "regressionJob", "reporter", "reportingApp", "returnKey", "save", "savedObjectsApp", "scale", "search", "searchProfilerApp", "securityAnalyticsApp", "securityApp", "securitySignal", "securitySignalDetected", "securitySignalResolved", "sessionViewer", "shard", "share", "snowflake", "sortAscending", "sortDescending", "sortDown", "sortLeft", "sortRight", "sortUp", "sortable", "spaces", "spacesApp", "sparkles", "sqlApp", "starEmpty", "starEmptySpace", "starFilled", "starFilledSpace", "starMinusEmpty", "starMinusFilled", "starPlusEmpty", "starPlusFilled", "stats", "stop", "stopFilled", "stopSlash", "storage", "string", "submodule", "sun", "swatchInput", "symlink", "tableDensityCompact", "tableDensityExpanded", "tableDensityNormal", "tableOfContents", "tag", "tear", "temperature", "timeline", "timelineWithArrow", "timelionApp", "timeRefresh", "timeslider", "training", "trash", "unfold", "unlink", "upgradeAssistantApp", "uptimeApp", "user", "userAvatar", "users", "usersRolesApp", "vector", "videoPlayer", "visArea", "visAreaStacked", "visBarHorizontal", "visBarHorizontalStacked", "visBarVertical", "visBarVerticalStacked", "visGauge", "visGoal", "visLine", "visMapCoordinate", "visMapRegion", "visMetric", "visPie", "visTable", "visTagCloud", "visText", "visTimelion", "visVega", "visVisualBuilder", "visualizeApp", "vulnerabilityManagementApp", "warning", "alert", "watchesApp", "wordWrap", "wordWrapDisabled", "workplaceSearchApp", "wrench", "tokenAlias", "tokenAnnotation", "tokenArray", "tokenBinary", "tokenBoolean", "tokenClass", "tokenCompletionSuggester", "tokenConstant", "tokenDate", "tokenDenseVector", "tokenElement", "tokenEnum", "tokenEnumMember", "tokenEvent", "tokenException", "tokenField", "tokenFile", "tokenFlattened", "tokenFunction", "tokenGeo", "tokenHistogram", "tokenInterface", "tokenIP", "tokenJoin", "tokenKey", "tokenKeyword", "tokenMethod", "tokenMetricCounter", "tokenMetricGauge", "tokenModule", "tokenNamespace", "tokenNested", "tokenNull", "tokenNumber", "tokenObject", "tokenOperator", "tokenPackage", "tokenParameter", "tokenPercolator", "tokenProperty", "tokenRange", "tokenRankFeature", "tokenRankFeatures", "tokenRepo", "tokenSearchType", "tokenShape", "tokenString", "tokenStruct", "tokenSymbol", "tokenTag", "tokenText", "tokenTokenCount", "tokenVariable"]).isRequired, PropTypes.string.isRequired, PropTypes.elementType.isRequired]),
141
+ /**
142
+ * Optional props to pass to the title icon
143
+ */
144
+ iconProps: PropTypes.any,
145
+ className: PropTypes.string,
146
+ "aria-label": PropTypes.string,
147
+ "data-test-subj": PropTypes.string,
148
+ css: PropTypes.any,
149
+ /**
150
+ * The nav item link.
151
+ * If not included, and no `onClick` is specified, the nav item
152
+ * will render as an non-interactive `<span>`.
153
+ */
154
+ href: PropTypes.string,
155
+ /**
156
+ * When passed, an `EuiAccordion` with nested child item links will be rendered.
157
+ *
158
+ * Accepts any #EuiCollapsibleNavItem prop, and also accepts an
159
+ * #EuiCollapsibleNavSubItemGroupTitle
160
+ */
161
+ items: PropTypes.arrayOf(PropTypes.shape({
162
+ /**
163
+ * ReactNode to render as this component's title
164
+ */
165
+ title: PropTypes.node,
166
+ /**
167
+ * Allows customizing title's element.
168
+ * Consider using a heading element for better accessibility.
169
+ * Defaults to an unsemantic `span` or `div`, depending on context.
170
+ */
171
+ titleElement: PropTypes.oneOf(["h2", "h3", "h4", "h5", "h6", "span", "div"]),
172
+ /**
173
+ * Optional icon to render to the left of title content
174
+ */
175
+ icon: PropTypes.oneOfType([PropTypes.oneOf(["accessibility", "addDataApp", "advancedSettingsApp", "agentApp", "aggregate", "analyzeEvent", "annotation", "apmApp", "apmTrace", "appSearchApp", "apps", "arrowDown", "arrowLeft", "arrowRight", "arrowUp", "arrowStart", "arrowEnd", "article", "asterisk", "at", "auditbeatApp", "beaker", "bell", "bellSlash", "beta", "bolt", "boxesHorizontal", "boxesVertical", "branch", "branchUser", "broom", "brush", "bug", "bullseye", "calendar", "canvasApp", "casesApp", "check", "checkInCircleFilled", "cheer", "classificationJob", "clock", "cloudDrizzle", "cloudStormy", "cloudSunny", "cluster", "codeApp", "color", "compute", "console", "consoleApp", "container", "continuityAbove", "continuityAboveBelow", "continuityBelow", "continuityWithin", "controlsHorizontal", "controlsVertical", "copy", "copyClipboard", "createAdvancedJob", "createMultiMetricJob", "createPopulationJob", "createSingleMetricJob", "cross", "crossClusterReplicationApp", "crosshairs", "currency", "cut", "dashboardApp", "dataVisualizer", "database", "desktop", "devToolsApp", "discoverApp", "discuss", "document", "documentEdit", "documentation", "documents", "dot", "dotInCircle", "doubleArrowLeft", "doubleArrowRight", "download", "editorAlignCenter", "editorAlignLeft", "editorAlignRight", "editorBold", "editorChecklist", "editorCodeBlock", "editorComment", "editorDistributeHorizontal", "editorDistributeVertical", "editorHeading", "editorItalic", "editorItemAlignBottom", "editorItemAlignCenter", "editorItemAlignLeft", "editorItemAlignMiddle", "editorItemAlignRight", "editorItemAlignTop", "editorLink", "editorOrderedList", "editorPositionBottomLeft", "editorPositionBottomRight", "editorPositionTopLeft", "editorPositionTopRight", "editorRedo", "editorStrike", "editorTable", "editorUnderline", "editorUndo", "editorUnorderedList", "email", "empty", "emsApp", "eql", "eraser", "error", "exit", "expand", "expandMini", "exportAction", "eye", "eyeClosed", "faceHappy", "faceNeutral", "faceSad", "filebeatApp", "filter", "filterExclude", "filterIgnore", "filterInclude", "filterInCircle", "flag", "fleetApp", "fold", "folderCheck", "folderClosed", "folderExclamation", "folderOpen", "frameNext", "framePrevious", "fullScreen", "fullScreenExit", "function", "gear", "gisApp", "glasses", "globe", "grab", "grabHorizontal", "graphApp", "grid", "grokApp", "heart", "heartbeatApp", "heatmap", "help", "home", "iInCircle", "image", "importAction", "indexClose", "indexEdit", "indexFlush", "indexManagementApp", "indexMapping", "indexOpen", "indexPatternApp", "indexRollupApp", "indexRuntime", "indexSettings", "indexTemporary", "infinity", "inputOutput", "inspect", "invert", "ip", "key", "keyboard", "kqlField", "kqlFunction", "kqlOperand", "kqlSelector", "kqlValue", "kubernetesNode", "kubernetesPod", "launch", "layers", "lensApp", "lettering", "lineDashed", "lineDotted", "lineSolid", "link", "list", "listAdd", "lock", "lockOpen", "logoAWS", "logoAWSMono", "logoAerospike", "logoApache", "logoAppSearch", "logoAzure", "logoAzureMono", "logoBeats", "logoBusinessAnalytics", "logoCeph", "logoCloud", "logoCloudEnterprise", "logoCode", "logoCodesandbox", "logoCouchbase", "logoDocker", "logoDropwizard", "logoElastic", "logoElasticStack", "logoElasticsearch", "logoEnterpriseSearch", "logoEtcd", "logoGCP", "logoGCPMono", "logoGithub", "logoGmail", "logoGolang", "logoGoogleG", "logoHAproxy", "logoIBM", "logoIBMMono", "logoKafka", "logoKibana", "logoKubernetes", "logoLogging", "logoLogstash", "logoMaps", "logoMemcached", "logoMetrics", "logoMongodb", "logoMySQL", "logoNginx", "logoObservability", "logoOsquery", "logoPhp", "logoPostgres", "logoPrometheus", "logoRabbitmq", "logoRedis", "logoSecurity", "logoSiteSearch", "logoSketch", "logoSlack", "logoUptime", "logoVulnerabilityManagement", "logoWebhook", "logoWindows", "logoWorkplaceSearch", "logsApp", "logstashFilter", "logstashIf", "logstashInput", "logstashOutput", "logstashQueue", "machineLearningApp", "magnet", "magnifyWithExclamation", "magnifyWithMinus", "magnifyWithPlus", "managementApp", "mapMarker", "memory", "menu", "menuDown", "menuLeft", "menuRight", "menuUp", "merge", "metricbeatApp", "metricsApp", "minimize", "minus", "minusInCircle", "minusInCircleFilled", "mobile", "monitoringApp", "moon", "namespace", "nested", "node", "notebookApp", "number", "offline", "online", "outlierDetectionJob", "package", "packetbeatApp", "pageSelect", "pagesSelect", "paperClip", "partial", "pause", "payment", "pencil", "percent", "pin", "pinFilled", "pipelineApp", "pivot", "play", "playFilled", "plus", "plusInCircle", "plusInCircleFilled", "popout", "push", "questionInCircle", "quote", "recentlyViewedApp", "refresh", "regressionJob", "reporter", "reportingApp", "returnKey", "save", "savedObjectsApp", "scale", "search", "searchProfilerApp", "securityAnalyticsApp", "securityApp", "securitySignal", "securitySignalDetected", "securitySignalResolved", "sessionViewer", "shard", "share", "snowflake", "sortAscending", "sortDescending", "sortDown", "sortLeft", "sortRight", "sortUp", "sortable", "spaces", "spacesApp", "sparkles", "sqlApp", "starEmpty", "starEmptySpace", "starFilled", "starFilledSpace", "starMinusEmpty", "starMinusFilled", "starPlusEmpty", "starPlusFilled", "stats", "stop", "stopFilled", "stopSlash", "storage", "string", "submodule", "sun", "swatchInput", "symlink", "tableDensityCompact", "tableDensityExpanded", "tableDensityNormal", "tableOfContents", "tag", "tear", "temperature", "timeline", "timelineWithArrow", "timelionApp", "timeRefresh", "timeslider", "training", "trash", "unfold", "unlink", "upgradeAssistantApp", "uptimeApp", "user", "userAvatar", "users", "usersRolesApp", "vector", "videoPlayer", "visArea", "visAreaStacked", "visBarHorizontal", "visBarHorizontalStacked", "visBarVertical", "visBarVerticalStacked", "visGauge", "visGoal", "visLine", "visMapCoordinate", "visMapRegion", "visMetric", "visPie", "visTable", "visTagCloud", "visText", "visTimelion", "visVega", "visVisualBuilder", "visualizeApp", "vulnerabilityManagementApp", "warning", "alert", "watchesApp", "wordWrap", "wordWrapDisabled", "workplaceSearchApp", "wrench", "tokenAlias", "tokenAnnotation", "tokenArray", "tokenBinary", "tokenBoolean", "tokenClass", "tokenCompletionSuggester", "tokenConstant", "tokenDate", "tokenDenseVector", "tokenElement", "tokenEnum", "tokenEnumMember", "tokenEvent", "tokenException", "tokenField", "tokenFile", "tokenFlattened", "tokenFunction", "tokenGeo", "tokenHistogram", "tokenInterface", "tokenIP", "tokenJoin", "tokenKey", "tokenKeyword", "tokenMethod", "tokenMetricCounter", "tokenMetricGauge", "tokenModule", "tokenNamespace", "tokenNested", "tokenNull", "tokenNumber", "tokenObject", "tokenOperator", "tokenPackage", "tokenParameter", "tokenPercolator", "tokenProperty", "tokenRange", "tokenRankFeature", "tokenRankFeatures", "tokenRepo", "tokenSearchType", "tokenShape", "tokenString", "tokenStruct", "tokenSymbol", "tokenTag", "tokenText", "tokenTokenCount", "tokenVariable"]).isRequired, PropTypes.string.isRequired, PropTypes.elementType.isRequired]),
176
+ /**
177
+ * Optional props to pass to the title icon
178
+ */
179
+ iconProps: PropTypes.any,
180
+ /**
181
+ * Pass this flag to seperate links by group title headings.
182
+ * Strongly consider using the `titleElement` prop for accessibility.
183
+ */
184
+ isGroupTitle: PropTypes.bool
185
+ }).isRequired),
186
+ /**
187
+ * If `items` is specified, use this prop to pass any prop that `EuiAccordion`
188
+ * accepts, including props that control the toggled state of the accordion
189
+ * (e.g. `initialIsOpen`, `forceState`)
190
+ */
191
+ accordionProps: PropTypes.any,
192
+ /**
193
+ * If a `href` is specified, use this prop to pass any prop that `EuiLink` accepts
194
+ */
195
+ linkProps: PropTypes.any,
196
+ /**
197
+ * Highlights whether an item is currently selected, e.g.
198
+ * if the user is on the same page as the nav link
199
+ */
200
+ isSelected: PropTypes.bool
201
+ }).isRequired).isRequired
202
+ };
@@ -0,0 +1,33 @@
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
+ import { css } from '@emotion/react';
10
+ import { logicalCSS, mathWithUnits, euiCanAnimate } from '../../../global_styling';
11
+ import { euiCollapsibleNavItemVariables } from './collapsible_nav_item.styles';
12
+ export var euiCollapsibleNavAccordionStyles = function euiCollapsibleNavAccordionStyles(euiThemeContext) {
13
+ var euiTheme = euiThemeContext.euiTheme;
14
+ var sharedStyles = euiCollapsibleNavItemVariables(euiThemeContext);
15
+ return {
16
+ // NOTE: Specific usage of `>`s selectors are important here, because accordions can be nested
17
+ // - just because a parent accordion is open or selected does not mean its child accordion is the same
18
+ euiCollapsibleNavAccordion: /*#__PURE__*/css(".euiAccordion__button{overflow:hidden;&:hover,&:focus{cursor:default;text-decoration:none;}}.euiAccordion__triggerWrapper{border-radius:", sharedStyles.borderRadius, ";", euiCanAnimate, "{transition:background-color ", sharedStyles.animation, ";}}.euiAccordion__buttonContent{", logicalCSS('max-width', '100%'), " flex-basis:100%;display:flex;align-items:center;}.euiCollapsibleNavLink{", logicalCSS('width', '100%'), ";};label:euiCollapsibleNavAccordion;"),
19
+ isTopItem: /*#__PURE__*/css("margin:", sharedStyles.padding, ";&>.euiAccordion__triggerWrapper{&:hover{background-color:", sharedStyles.backgroundHoverColor, ";}};label:isTopItem;"),
20
+ isSelected: /*#__PURE__*/css("&>.euiAccordion__triggerWrapper{background-color:", sharedStyles.backgroundSelectedColor, ";&:hover{background-color:", sharedStyles.backgroundSelectedColor, ";}};label:isSelected;"),
21
+ isSubItem: /*#__PURE__*/css("&.euiAccordion-isOpen{", logicalCSS('margin-bottom', euiTheme.size.m), ";};label:isSubItem;"),
22
+ // Arrow element
23
+ euiCollapsibleNavAccordion__arrow: /*#__PURE__*/css(logicalCSS('margin-right', euiTheme.size.xs), euiCanAnimate, "{transition:background-color ", sharedStyles.animation, ";}&:hover,&:focus-visible{background-color:", euiTheme.colors.lightShade, ";&>.euiIcon{color:", sharedStyles.color, ";}}transform:none!important;&>.euiIcon{color:", sharedStyles.rightIconColor, ";transform:rotate(-90deg);", euiCanAnimate, "{transition:transform ", sharedStyles.animation, ",color ", sharedStyles.animation, ";}}&.euiAccordion__iconButton-isOpen>.euiIcon{color:", sharedStyles.color, ";transform:rotate(90deg);};label:euiCollapsibleNavAccordion__arrow;"),
24
+ // Children wrapper
25
+ children: {
26
+ euiCollapsibleNavAccordion__children: /*#__PURE__*/css(";label:euiCollapsibleNavAccordion__children;"),
27
+ isTopItem: /*#__PURE__*/css(logicalCSS('padding-top', euiTheme.size.xs), " ", logicalCSS('padding-left', euiTheme.size.xl), ";;label:isTopItem;"),
28
+ isSubItem: /*#__PURE__*/css(logicalCSS('border-left', euiTheme.border.thin), " ", logicalCSS('margin-left', euiTheme.size.s), " ", logicalCSS('padding-left', mathWithUnits([euiTheme.size.s, euiTheme.border.width.thin], function (x, y) {
29
+ return x - y;
30
+ })), ";;label:isSubItem;")
31
+ }
32
+ };
33
+ };