@elastic/eui 88.5.0 → 88.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/dist/eui_theme_dark.css +8 -21
  2. package/dist/eui_theme_dark.min.css +1 -1
  3. package/dist/eui_theme_light.css +8 -21
  4. package/dist/eui_theme_light.min.css +1 -1
  5. package/es/components/collapsible_nav_beta/collapsible_nav_beta.js +20 -6
  6. package/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +4 -14
  7. package/es/components/collapsible_nav_beta/collapsible_nav_body_footer.js +57 -0
  8. package/es/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +25 -0
  9. package/es/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +156 -0
  10. package/es/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.styles.js +19 -0
  11. package/es/components/collapsible_nav_beta/collapsible_nav_group/index.js +9 -0
  12. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +3 -7
  13. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +3 -7
  14. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +4 -8
  15. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +16 -63
  16. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +2 -10
  17. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +122 -41
  18. package/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.styles.js +13 -3
  19. package/es/components/combo_box/combo_box.js +12 -25
  20. package/es/components/combo_box/combo_box_input/combo_box_input.js +61 -54
  21. package/es/components/text_truncate/index.js +1 -1
  22. package/es/components/text_truncate/utils.js +88 -138
  23. package/es/services/canvas/canvas_text_utils.js +64 -0
  24. package/es/services/canvas/index.js +9 -0
  25. package/es/services/index.js +1 -0
  26. package/eui.d.ts +186 -105
  27. package/i18ntokens.json +8 -8
  28. package/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +20 -6
  29. package/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +11 -19
  30. package/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.js +67 -0
  31. package/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +33 -0
  32. package/lib/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +166 -0
  33. package/lib/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.styles.js +26 -0
  34. package/lib/components/collapsible_nav_beta/collapsible_nav_group/index.js +12 -0
  35. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +3 -7
  36. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +3 -7
  37. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +4 -8
  38. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +14 -61
  39. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +1 -9
  40. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +122 -39
  41. package/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.styles.js +13 -4
  42. package/lib/components/combo_box/combo_box.js +12 -25
  43. package/lib/components/combo_box/combo_box_input/combo_box_input.js +60 -53
  44. package/lib/components/text_truncate/index.js +0 -6
  45. package/lib/components/text_truncate/utils.js +97 -148
  46. package/lib/services/canvas/canvas_text_utils.js +70 -0
  47. package/lib/services/canvas/index.js +12 -0
  48. package/lib/services/index.js +8 -0
  49. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.js +17 -3
  50. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +4 -14
  51. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_body_footer.js +56 -0
  52. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +25 -0
  53. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +48 -0
  54. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.styles.js +19 -0
  55. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_group/index.js +9 -0
  56. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +7 -33
  57. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +2 -10
  58. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +54 -21
  59. package/optimize/es/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.styles.js +13 -3
  60. package/optimize/es/components/combo_box/combo_box.js +12 -25
  61. package/optimize/es/components/combo_box/combo_box_input/combo_box_input.js +61 -53
  62. package/optimize/es/components/text_truncate/index.js +1 -1
  63. package/optimize/es/components/text_truncate/utils.js +87 -137
  64. package/optimize/es/services/canvas/canvas_text_utils.js +60 -0
  65. package/optimize/es/services/canvas/index.js +9 -0
  66. package/optimize/es/services/index.js +1 -0
  67. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.js +15 -1
  68. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +11 -19
  69. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.js +66 -0
  70. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +33 -0
  71. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +58 -0
  72. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.styles.js +26 -0
  73. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_group/index.js +12 -0
  74. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +5 -31
  75. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +1 -9
  76. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +54 -20
  77. package/optimize/lib/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.styles.js +13 -4
  78. package/optimize/lib/components/combo_box/combo_box.js +12 -25
  79. package/optimize/lib/components/combo_box/combo_box_input/combo_box_input.js +60 -52
  80. package/optimize/lib/components/text_truncate/index.js +0 -6
  81. package/optimize/lib/components/text_truncate/utils.js +96 -147
  82. package/optimize/lib/services/canvas/canvas_text_utils.js +67 -0
  83. package/optimize/lib/services/canvas/index.js +12 -0
  84. package/optimize/lib/services/index.js +8 -0
  85. package/package.json +2 -5
  86. package/src/components/combo_box/_combo_box.scss +12 -19
  87. package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.js +20 -6
  88. package/test-env/components/collapsible_nav_beta/collapsible_nav_beta.styles.js +11 -19
  89. package/test-env/components/collapsible_nav_beta/collapsible_nav_body_footer.js +66 -0
  90. package/test-env/components/collapsible_nav_beta/collapsible_nav_body_footer.styles.js +33 -0
  91. package/test-env/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.js +165 -0
  92. package/test-env/components/collapsible_nav_beta/collapsible_nav_group/collapsible_nav_group.styles.js +26 -0
  93. package/test-env/components/collapsible_nav_beta/collapsible_nav_group/index.js +12 -0
  94. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_button.js +3 -7
  95. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_item.js +3 -7
  96. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsed/collapsed_nav_popover.js +4 -8
  97. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.js +14 -61
  98. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_accordion.styles.js +1 -9
  99. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.js +122 -39
  100. package/test-env/components/collapsible_nav_beta/collapsible_nav_item/collapsible_nav_item.styles.js +13 -4
  101. package/test-env/components/combo_box/combo_box.js +12 -25
  102. package/test-env/components/combo_box/combo_box_input/combo_box_input.js +60 -53
  103. package/test-env/components/text_truncate/index.js +0 -6
  104. package/test-env/components/text_truncate/utils.js +96 -147
  105. package/test-env/services/canvas/canvas_text_utils.js +30 -0
  106. package/test-env/services/canvas/index.js +12 -0
  107. package/test-env/services/index.js +8 -0
@@ -57,10 +57,6 @@ var EuiCollapsibleNavAccordion = function EuiCollapsibleNavAccordion(_ref) {
57
57
  var euiTheme = (0, _services.useEuiTheme)();
58
58
  var styles = (0, _collapsible_nav_accordion.euiCollapsibleNavAccordionStyles)(euiTheme);
59
59
  var cssStyles = [styles.euiCollapsibleNavAccordion, isSubItem ? styles.isSubItem : styles.isTopItem, isSelected && styles.isSelected, accordionProps === null || accordionProps === void 0 ? void 0 : accordionProps.css];
60
-
61
- /**
62
- * Title / accordion trigger
63
- */
64
60
  var isTitleInteractive = !!(href || linkProps !== null && linkProps !== void 0 && linkProps.onClick);
65
61
 
66
62
  // Stop propagation on the title so that the accordion toggle doesn't occur on click
@@ -72,32 +68,6 @@ var EuiCollapsibleNavAccordion = function EuiCollapsibleNavAccordion(_ref) {
72
68
  }, [linkProps === null || linkProps === void 0 ? void 0 : linkProps.onClick] // eslint-disable-line react-hooks/exhaustive-deps
73
69
  );
74
70
 
75
- /**
76
- * Child items
77
- */
78
- // If any of the sub items have an icon, default to an
79
- // icon of `empty` so that all text lines up vertically
80
- var itemsHaveIcons = (0, _react.useMemo)(function () {
81
- return items.some(function (item) {
82
- return !!item.icon;
83
- });
84
- }, [items]);
85
- var icon = itemsHaveIcons ? 'empty' : undefined;
86
- var childrenCssStyles = [styles.children.euiCollapsibleNavAccordion__children, isSubItem ? styles.children.isSubItem : styles.children.isTopItem];
87
- var children = (0, _react2.jsx)("div", {
88
- css: childrenCssStyles,
89
- className: "euiCollapsibleNavAccordion__children"
90
- }, items.map(function (item, index) {
91
- return (
92
- // This is an intentional circular dependency between the accordion & parent item display.
93
- // EuiSideNavItem is purposely recursive to support any amount of nested sub items,
94
- // and split up into separate files/components for better dev readability
95
- (0, _react2.jsx)(_collapsible_nav_item.EuiCollapsibleNavSubItem, (0, _extends2.default)({
96
- key: index,
97
- icon: icon
98
- }, item))
99
- );
100
- }));
101
71
  return (0, _react2.jsx)(_accordion.EuiAccordion, (0, _extends2.default)({
102
72
  id: groupID,
103
73
  className: classes,
@@ -119,7 +89,11 @@ var EuiCollapsibleNavAccordion = function EuiCollapsibleNavAccordion(_ref) {
119
89
  }, accordionProps === null || accordionProps === void 0 ? void 0 : accordionProps.arrowProps), {}, {
120
90
  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]
121
91
  })
122
- }), children);
92
+ }), (0, _react2.jsx)(_collapsible_nav_item.EuiCollapsibleNavSubItems, {
93
+ items: items,
94
+ isSubItem: isSubItem,
95
+ className: "euiCollapsibleNavAccordion__children"
96
+ }));
123
97
  };
124
98
  exports.EuiCollapsibleNavAccordion = EuiCollapsibleNavAccordion;
125
99
  EuiCollapsibleNavAccordion.propTypes = {
@@ -129,20 +103,20 @@ EuiCollapsibleNavAccordion.propTypes = {
129
103
  */
130
104
  isSubItem: _propTypes.default.bool,
131
105
  buttonContent: _propTypes.default.node.isRequired,
132
- // On the main `EuiCollapsibleNavItem` component, this uses `EuiCollapsibleNavSubItemProps`
133
- // to allow for section headings, but by the time `items` reaches this component, we
134
- // know for sure it's an actual accordion item and not a section heading
135
106
  items: _propTypes.default.arrayOf(_propTypes.default.shape({
136
107
  /**
137
108
  * Required text to render as the nav item title
138
109
  */
139
- title: _propTypes.default.string.isRequired,
110
+ title: _propTypes.default.string,
140
111
  /**
141
112
  * Allows customizing the title element.
142
113
  * Consider using a heading element for better accessibility.
143
114
  * Defaults to an unsemantic `span` or `div`, depending on context.
144
115
  */
145
116
  titleElement: _propTypes.default.oneOf(["h2", "h3", "h4", "h5", "h6", "span", "div"]),
117
+ /**
118
+ * Optional icon to render to the left of title content
119
+ */
146
120
  icon: _propTypes.default.oneOfType([_propTypes.default.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", "grabOmnidirectional", "gradient", "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", "palette", "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", "transitionLeftIn", "transitionLeftOut", "transitionTopIn", "transitionTopOut", "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.default.string.isRequired, _propTypes.default.elementType.isRequired]),
147
121
  /**
148
122
  * Optional props to pass to the title icon
@@ -161,33 +135,11 @@ EuiCollapsibleNavAccordion.propTypes = {
161
135
  /**
162
136
  * When passed, an `EuiAccordion` with nested child item links will be rendered.
163
137
  *
164
- * Accepts any #EuiCollapsibleNavItem prop, and also accepts an
165
- * #EuiCollapsibleNavSubItemGroupTitle
138
+ * Accepts any #EuiCollapsibleNavItemProps. Or, to render completely custom
139
+ * subitem content, pass an object with a `renderItem` callback.
166
140
  */
167
141
  items: _propTypes.default.arrayOf(_propTypes.default.shape({
168
- /**
169
- * Required text to render as the nav item title
170
- */
171
- title: _propTypes.default.string,
172
- /**
173
- * Allows customizing the title element.
174
- * Consider using a heading element for better accessibility.
175
- * Defaults to an unsemantic `span` or `div`, depending on context.
176
- */
177
- titleElement: _propTypes.default.oneOf(["h2", "h3", "h4", "h5", "h6", "span", "div"]),
178
- /**
179
- * Optional icon to render to the left of title content
180
- */
181
- icon: _propTypes.default.oneOfType([_propTypes.default.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", "grabOmnidirectional", "gradient", "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", "palette", "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", "transitionLeftIn", "transitionLeftOut", "transitionTopIn", "transitionTopOut", "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.default.string.isRequired, _propTypes.default.elementType.isRequired]),
182
- /**
183
- * Optional props to pass to the title icon
184
- */
185
- iconProps: _propTypes.default.any,
186
- /**
187
- * Pass this flag to seperate links by group title headings.
188
- * Strongly consider using the `titleElement` prop for accessibility.
189
- */
190
- isGroupTitle: _propTypes.default.bool
142
+ renderItem: _propTypes.default.func
191
143
  }).isRequired),
192
144
  /**
193
145
  * If `items` is specified, use this prop to pass any prop that `EuiAccordion`
@@ -203,6 +155,7 @@ EuiCollapsibleNavAccordion.propTypes = {
203
155
  * Highlights whether an item is currently selected, e.g.
204
156
  * if the user is on the same page as the nav link
205
157
  */
206
- isSelected: _propTypes.default.bool
158
+ isSelected: _propTypes.default.bool,
159
+ renderItem: _propTypes.default.func
207
160
  }).isRequired).isRequired
208
161
  };
@@ -26,15 +26,7 @@ var euiCollapsibleNavAccordionStyles = function euiCollapsibleNavAccordionStyles
26
26
  isSelected: /*#__PURE__*/(0, _react.css)("&>.euiAccordion__triggerWrapper{background-color:", sharedStyles.backgroundSelectedColor, ";&:hover{background-color:", sharedStyles.backgroundSelectedColor, ";}};label:isSelected;"),
27
27
  isSubItem: /*#__PURE__*/(0, _react.css)("&.euiAccordion-isOpen{", (0, _global_styling.logicalCSS)('margin-bottom', euiTheme.size.m), ";};label:isSubItem;"),
28
28
  // Arrow element
29
- euiCollapsibleNavAccordion__arrow: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('margin-right', euiTheme.size.xs), _global_styling.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);", _global_styling.euiCanAnimate, "{transition:transform ", sharedStyles.animation, ",color ", sharedStyles.animation, ";}}&.euiAccordion__arrow[aria-expanded='true']>.euiIcon{color:", sharedStyles.color, ";transform:rotate(-90deg);};label:euiCollapsibleNavAccordion__arrow;"),
30
- // Children wrapper
31
- children: {
32
- euiCollapsibleNavAccordion__children: /*#__PURE__*/(0, _react.css)(";label:euiCollapsibleNavAccordion__children;"),
33
- isTopItem: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('padding-top', euiTheme.size.xs), " ", (0, _global_styling.logicalCSS)('padding-left', euiTheme.size.xl), ";;label:isTopItem;"),
34
- isSubItem: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('border-left', euiTheme.border.thin), " ", (0, _global_styling.logicalCSS)('margin-left', euiTheme.size.s), " ", (0, _global_styling.logicalCSS)('padding-left', (0, _global_styling.mathWithUnits)([euiTheme.size.s, euiTheme.border.width.thin], function (x, y) {
35
- return x - y;
36
- })), ";;label:isSubItem;")
37
- }
29
+ euiCollapsibleNavAccordion__arrow: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('margin-right', euiTheme.size.xs), _global_styling.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);", _global_styling.euiCanAnimate, "{transition:transform ", sharedStyles.animation, ",color ", sharedStyles.animation, ";}}&.euiAccordion__arrow[aria-expanded='true']>.euiIcon{color:", sharedStyles.color, ";transform:rotate(-90deg);};label:euiCollapsibleNavAccordion__arrow;")
38
30
  };
39
31
  };
40
32
  exports.euiCollapsibleNavAccordionStyles = euiCollapsibleNavAccordionStyles;
@@ -5,7 +5,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.EuiCollapsibleNavSubItem = exports.EuiCollapsibleNavItem = void 0;
8
+ exports.EuiCollapsibleNavSubItems = exports.EuiCollapsibleNavSubItem = exports.EuiCollapsibleNavItemTitle = exports.EuiCollapsibleNavItem = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
11
  var _react = _interopRequireWildcard(require("react"));
@@ -13,7 +13,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
  var _classnames = _interopRequireDefault(require("classnames"));
14
14
  var _services = require("../../../services");
15
15
  var _icon = require("../../icon");
16
- var _title = require("../../title");
17
16
  var _context = require("../context");
18
17
  var _collapsed = require("./collapsed");
19
18
  var _collapsible_nav_accordion = require("./collapsible_nav_accordion");
@@ -21,8 +20,9 @@ var _collapsible_nav_link = require("./collapsible_nav_link");
21
20
  var _collapsible_nav_item = require("./collapsible_nav_item.styles");
22
21
  var _react2 = require("@emotion/react");
23
22
  var _excluded = ["isSubItem", "title", "titleElement", "icon", "iconProps", "items", "children"],
24
- _excluded2 = ["isGroupTitle", "className"],
25
- _excluded3 = ["className"];
23
+ _excluded2 = ["renderItem", "className"],
24
+ _excluded3 = ["items", "isSubItem", "isGroup", "className"],
25
+ _excluded4 = ["className"];
26
26
  /*
27
27
  * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
28
28
  * or more contributor license agreements. Licensed under the Elastic License
@@ -105,15 +105,11 @@ EuiCollapsibleNavItemDisplay.propTypes = {
105
105
  /**
106
106
  * When passed, an `EuiAccordion` with nested child item links will be rendered.
107
107
  *
108
- * Accepts any #EuiCollapsibleNavItem prop, and also accepts an
109
- * #EuiCollapsibleNavSubItemGroupTitle
108
+ * Accepts any #EuiCollapsibleNavItemProps. Or, to render completely custom
109
+ * subitem content, pass an object with a `renderItem` callback.
110
110
  */
111
111
  items: _propTypes.default.arrayOf(_propTypes.default.shape({
112
- /**
113
- * Pass this flag to seperate links by group title headings.
114
- * Strongly consider using the `titleElement` prop for accessibility.
115
- */
116
- isGroupTitle: _propTypes.default.bool
112
+ renderItem: _propTypes.default.func
117
113
  }).isRequired),
118
114
  /**
119
115
  * If `items` is specified, use this prop to pass any prop that `EuiAccordion`
@@ -153,23 +149,17 @@ var EuiCollapsibleNavItemTitle = function EuiCollapsibleNavItemTitle(_ref2) {
153
149
  };
154
150
 
155
151
  /**
156
- * Sub-items can either be a group title, to visually separate sections
157
- * of nav links, or they can simply be more links or accordions
152
+ * Sub-items can either be a totally custom rendered item,
153
+ * or they can simply be more links or accordions
158
154
  */
155
+ exports.EuiCollapsibleNavItemTitle = EuiCollapsibleNavItemTitle;
159
156
  var EuiCollapsibleNavSubItem = function EuiCollapsibleNavSubItem(_ref3) {
160
- var isGroupTitle = _ref3.isGroupTitle,
157
+ var renderItem = _ref3.renderItem,
161
158
  className = _ref3.className,
162
159
  props = (0, _objectWithoutProperties2.default)(_ref3, _excluded2);
163
- var euiTheme = (0, _services.useEuiTheme)();
164
- var styles = (0, _collapsible_nav_item.euiCollapsibleNavSubItemGroupTitleStyles)(euiTheme);
165
160
  var classes = (0, _classnames.default)('euiCollapsibleNavSubItem', className);
166
- if (isGroupTitle) {
167
- var TitleElement = props.titleElement || 'div';
168
- return (0, _react2.jsx)(_title.EuiTitle, {
169
- size: "xxxs",
170
- css: styles.euiCollapsibleNavItem__groupTitle,
171
- className: "euiCollapsibleNavItem__groupTitle eui-textTruncate"
172
- }, (0, _react2.jsx)(TitleElement, null, props.title));
161
+ if (renderItem) {
162
+ return (0, _react2.jsx)(_react.default.Fragment, null, renderItem());
173
163
  }
174
164
  return (0, _react2.jsx)(EuiCollapsibleNavItemDisplay, (0, _extends2.default)({
175
165
  className: classes
@@ -179,7 +169,8 @@ var EuiCollapsibleNavSubItem = function EuiCollapsibleNavSubItem(_ref3) {
179
169
  };
180
170
 
181
171
  /**
182
- * The actual exported component
172
+ * Reuseable component for rendering a group of sub items
173
+ * Used by both `EuiCollapsibleNavGroup` and `EuiCollapsibleNavAccordion`
183
174
  */
184
175
  exports.EuiCollapsibleNavSubItem = EuiCollapsibleNavSubItem;
185
176
  EuiCollapsibleNavSubItem.propTypes = {
@@ -214,8 +205,8 @@ EuiCollapsibleNavSubItem.propTypes = {
214
205
  /**
215
206
  * When passed, an `EuiAccordion` with nested child item links will be rendered.
216
207
  *
217
- * Accepts any #EuiCollapsibleNavItem prop, and also accepts an
218
- * #EuiCollapsibleNavSubItemGroupTitle
208
+ * Accepts any #EuiCollapsibleNavItemProps. Or, to render completely custom
209
+ * subitem content, pass an object with a `renderItem` callback.
219
210
  */
220
211
  items: _propTypes.default.arrayOf(_propTypes.default.any.isRequired),
221
212
  /**
@@ -233,15 +224,111 @@ EuiCollapsibleNavSubItem.propTypes = {
233
224
  * if the user is on the same page as the nav link
234
225
  */
235
226
  isSelected: _propTypes.default.bool,
227
+ renderItem: _propTypes.default.func
228
+ };
229
+ var EuiCollapsibleNavSubItems = function EuiCollapsibleNavSubItems(_ref4) {
230
+ var items = _ref4.items,
231
+ isSubItem = _ref4.isSubItem,
232
+ isGroup = _ref4.isGroup,
233
+ className = _ref4.className,
234
+ rest = (0, _objectWithoutProperties2.default)(_ref4, _excluded3);
235
+ var classes = (0, _classnames.default)('euiCollapsibleNavItem__items', className);
236
+ var euiTheme = (0, _services.useEuiTheme)();
237
+ var styles = (0, _collapsible_nav_item.euiCollapsibleNavSubItemsStyles)(euiTheme);
238
+ var cssStyles = [styles.euiCollapsibleNavItem__items, isGroup ? styles.isGroup : isSubItem ? styles.isSubItem : styles.isTopItem];
239
+ var itemsHaveIcons = (0, _react.useMemo)(function () {
240
+ return items.some(function (item) {
241
+ return !!item.icon;
242
+ });
243
+ }, [items]);
244
+ return (0, _react2.jsx)("div", (0, _extends2.default)({
245
+ className: classes,
246
+ css: cssStyles
247
+ }, rest), items.map(function (item, index) {
248
+ // If any of the sub items have an icon, default to an
249
+ // icon of `empty` so that all text lines up vertically
250
+ if (!item.renderItem && itemsHaveIcons && !item.icon) {
251
+ item.icon = 'empty';
252
+ }
253
+ return (
254
+ // This is an intentional circular dependency between the accordion & parent item display.
255
+ // EuiSideNavItem is purposely recursive to support any amount of nested sub items,
256
+ // and split up into separate files/components for better dev readability
257
+ (0, _react2.jsx)(EuiCollapsibleNavSubItem, (0, _extends2.default)({
258
+ key: index
259
+ }, item))
260
+ );
261
+ }));
262
+ };
263
+
264
+ /**
265
+ * The actual exported component
266
+ */
267
+ exports.EuiCollapsibleNavSubItems = EuiCollapsibleNavSubItems;
268
+ EuiCollapsibleNavSubItems.propTypes = {
236
269
  /**
237
- * Pass this flag to seperate links by group title headings.
238
- * Strongly consider using the `titleElement` prop for accessibility.
270
+ * Determines whether the item should render as a top-level nav item
271
+ * or a nested nav subitem. Set internally by EUI
239
272
  */
240
- isGroupTitle: _propTypes.default.bool
273
+ isSubItem: _propTypes.default.bool,
274
+ items: _propTypes.default.arrayOf(_propTypes.default.shape({
275
+ /**
276
+ * Required text to render as the nav item title
277
+ */
278
+ title: _propTypes.default.string,
279
+ /**
280
+ * Allows customizing the title element.
281
+ * Consider using a heading element for better accessibility.
282
+ * Defaults to an unsemantic `span` or `div`, depending on context.
283
+ */
284
+ titleElement: _propTypes.default.oneOf(["h2", "h3", "h4", "h5", "h6", "span", "div"]),
285
+ /**
286
+ * Optional icon to render to the left of title content
287
+ */
288
+ icon: _propTypes.default.oneOfType([_propTypes.default.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", "grabOmnidirectional", "gradient", "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", "palette", "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", "transitionLeftIn", "transitionLeftOut", "transitionTopIn", "transitionTopOut", "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.default.string.isRequired, _propTypes.default.elementType.isRequired]),
289
+ /**
290
+ * Optional props to pass to the title icon
291
+ */
292
+ iconProps: _propTypes.default.any,
293
+ className: _propTypes.default.string,
294
+ "aria-label": _propTypes.default.string,
295
+ "data-test-subj": _propTypes.default.string,
296
+ css: _propTypes.default.any,
297
+ /**
298
+ * The nav item link.
299
+ * If not included, and no `onClick` is specified, the nav item
300
+ * will render as an non-interactive `<span>`.
301
+ */
302
+ href: _propTypes.default.string,
303
+ /**
304
+ * When passed, an `EuiAccordion` with nested child item links will be rendered.
305
+ *
306
+ * Accepts any #EuiCollapsibleNavItemProps. Or, to render completely custom
307
+ * subitem content, pass an object with a `renderItem` callback.
308
+ */
309
+ items: _propTypes.default.arrayOf(_propTypes.default.any.isRequired),
310
+ /**
311
+ * If `items` is specified, use this prop to pass any prop that `EuiAccordion`
312
+ * accepts, including props that control the toggled state of the accordion
313
+ * (e.g. `initialIsOpen`, `forceState`)
314
+ */
315
+ accordionProps: _propTypes.default.any,
316
+ /**
317
+ * If a `href` is specified, use this prop to pass any prop that `EuiLink` accepts
318
+ */
319
+ linkProps: _propTypes.default.any,
320
+ /**
321
+ * Highlights whether an item is currently selected, e.g.
322
+ * if the user is on the same page as the nav link
323
+ */
324
+ isSelected: _propTypes.default.bool,
325
+ renderItem: _propTypes.default.func
326
+ }).isRequired).isRequired,
327
+ isGroup: _propTypes.default.bool
241
328
  };
242
- var EuiCollapsibleNavItem = function EuiCollapsibleNavItem(_ref4) {
243
- var className = _ref4.className,
244
- props = (0, _objectWithoutProperties2.default)(_ref4, _excluded3);
329
+ var EuiCollapsibleNavItem = function EuiCollapsibleNavItem(_ref5) {
330
+ var className = _ref5.className,
331
+ props = (0, _objectWithoutProperties2.default)(_ref5, _excluded4);
245
332
  var classes = (0, _classnames.default)('euiCollapsibleNavItem', className);
246
333
  var _useContext = (0, _react.useContext)(_context.EuiCollapsibleNavContext),
247
334
  isCollapsed = _useContext.isCollapsed,
@@ -287,15 +374,11 @@ EuiCollapsibleNavItem.propTypes = {
287
374
  /**
288
375
  * When passed, an `EuiAccordion` with nested child item links will be rendered.
289
376
  *
290
- * Accepts any #EuiCollapsibleNavItem prop, and also accepts an
291
- * #EuiCollapsibleNavSubItemGroupTitle
377
+ * Accepts any #EuiCollapsibleNavItemProps. Or, to render completely custom
378
+ * subitem content, pass an object with a `renderItem` callback.
292
379
  */
293
380
  items: _propTypes.default.arrayOf(_propTypes.default.shape({
294
- /**
295
- * Pass this flag to seperate links by group title headings.
296
- * Strongly consider using the `titleElement` prop for accessibility.
297
- */
298
- isGroupTitle: _propTypes.default.bool
381
+ renderItem: _propTypes.default.func
299
382
  }).isRequired),
300
383
  /**
301
384
  * If `items` is specified, use this prop to pass any prop that `EuiAccordion`
@@ -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.euiCollapsibleNavSubItemGroupTitleStyles = exports.euiCollapsibleNavItemVariables = exports.euiCollapsibleNavItemTitleStyles = void 0;
7
+ exports.euiCollapsibleNavSubItemsStyles = exports.euiCollapsibleNavItemVariables = exports.euiCollapsibleNavItemTitleStyles = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _react = require("@emotion/react");
10
10
  var _global_styling = require("../../../global_styling");
@@ -51,11 +51,20 @@ var euiCollapsibleNavItemTitleStyles = {
51
51
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
52
52
  }
53
53
  };
54
+
55
+ /**
56
+ * Sub item groups
57
+ */
54
58
  exports.euiCollapsibleNavItemTitleStyles = euiCollapsibleNavItemTitleStyles;
55
- var euiCollapsibleNavSubItemGroupTitleStyles = function euiCollapsibleNavSubItemGroupTitleStyles(_ref) {
59
+ var euiCollapsibleNavSubItemsStyles = function euiCollapsibleNavSubItemsStyles(_ref) {
56
60
  var euiTheme = _ref.euiTheme;
57
61
  return {
58
- euiCollapsibleNavItem__groupTitle: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('margin-top', euiTheme.size.base), " ", (0, _global_styling.logicalShorthandCSS)('padding', "".concat(euiTheme.size.xs, " ").concat(euiTheme.size.s)), ";;label:euiCollapsibleNavItem__groupTitle;")
62
+ euiCollapsibleNavItem__items: /*#__PURE__*/(0, _react.css)(";label:euiCollapsibleNavItem__items;"),
63
+ isGroup: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('padding-top', euiTheme.size.xs), " ", (0, _global_styling.logicalCSS)('padding-left', euiTheme.size.s), ";;label:isGroup;"),
64
+ isTopItem: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('padding-top', euiTheme.size.xs), " ", (0, _global_styling.logicalCSS)('padding-left', euiTheme.size.xl), ";;label:isTopItem;"),
65
+ isSubItem: /*#__PURE__*/(0, _react.css)((0, _global_styling.logicalCSS)('border-left', euiTheme.border.thin), " ", (0, _global_styling.logicalCSS)('margin-left', euiTheme.size.s), " ", (0, _global_styling.logicalCSS)('padding-left', (0, _global_styling.mathWithUnits)([euiTheme.size.s, euiTheme.border.width.thin], function (x, y) {
66
+ return x - y;
67
+ })), ";;label:isSubItem;")
59
68
  };
60
69
  };
61
- exports.euiCollapsibleNavSubItemGroupTitleStyles = euiCollapsibleNavSubItemGroupTitleStyles;
70
+ exports.euiCollapsibleNavSubItemsStyles = euiCollapsibleNavSubItemsStyles;
@@ -92,10 +92,6 @@ var EuiComboBox = /*#__PURE__*/function (_Component) {
92
92
  });
93
93
  }
94
94
  });
95
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "autoSizeInputRefInstance", null);
96
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "autoSizeInputRefCallback", function (ref) {
97
- _this.autoSizeInputRefInstance = ref;
98
- });
99
95
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "searchInputRefInstance", null);
100
96
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "searchInputRefCallback", function (ref) {
101
97
  _this.searchInputRefInstance = ref;
@@ -568,15 +564,7 @@ var EuiComboBox = /*#__PURE__*/function (_Component) {
568
564
  (0, _createClass2.default)(EuiComboBox, [{
569
565
  key: "componentDidMount",
570
566
  value: function componentDidMount() {
571
- var _this2 = this;
572
567
  this._isMounted = true;
573
-
574
- // TODO: This will need to be called once the actual stylesheet loads.
575
- setTimeout(function () {
576
- if (_this2.autoSizeInputRefInstance) {
577
- _this2.autoSizeInputRefInstance.copyInputStyles();
578
- }
579
- }, 100);
580
568
  }
581
569
  }, {
582
570
  key: "componentDidUpdate",
@@ -609,7 +597,7 @@ var EuiComboBox = /*#__PURE__*/function (_Component) {
609
597
  }, {
610
598
  key: "render",
611
599
  value: function render() {
612
- var _this3 = this;
600
+ var _this2 = this;
613
601
  var _this$props8 = this.props,
614
602
  dataTestSubj = _this$props8['data-test-subj'],
615
603
  async = _this$props8.async,
@@ -680,32 +668,32 @@ var EuiComboBox = /*#__PURE__*/function (_Component) {
680
668
  default: "Choose from the following options"
681
669
  }, function (listboxAriaLabel) {
682
670
  return (0, _react2.jsx)(_combo_box_options_list.EuiComboBoxOptionsList, {
683
- zIndex: _this3.state.listZIndex,
684
- activeOptionIndex: _this3.state.activeOptionIndex,
685
- areAllOptionsSelected: _this3.areAllOptionsSelected(),
671
+ zIndex: _this2.state.listZIndex,
672
+ activeOptionIndex: _this2.state.activeOptionIndex,
673
+ areAllOptionsSelected: _this2.areAllOptionsSelected(),
686
674
  customOptionText: customOptionText,
687
675
  "data-test-subj": optionsListDataTestSubj,
688
676
  fullWidth: fullWidth,
689
677
  isCaseSensitive: isCaseSensitive,
690
678
  isLoading: isLoading,
691
- listRef: _this3.listRefCallback,
679
+ listRef: _this2.listRefCallback,
692
680
  matchingOptions: matchingOptions,
693
- onCloseList: _this3.closeList,
681
+ onCloseList: _this2.closeList,
694
682
  onCreateOption: onCreateOption,
695
- onOptionClick: _this3.onOptionClick,
696
- onOptionEnterKey: _this3.onOptionEnterKey,
697
- onScroll: _this3.onOptionListScroll,
698
- optionRef: _this3.optionRefCallback,
683
+ onOptionClick: _this2.onOptionClick,
684
+ onOptionEnterKey: _this2.onOptionEnterKey,
685
+ onScroll: _this2.onOptionListScroll,
686
+ optionRef: _this2.optionRefCallback,
699
687
  options: options,
700
688
  position: listPosition,
701
689
  singleSelection: singleSelection,
702
690
  renderOption: renderOption,
703
- rootId: _this3.rootId,
691
+ rootId: _this2.rootId,
704
692
  rowHeight: rowHeight,
705
693
  scrollToIndex: activeOptionIndex,
706
694
  searchValue: searchValue,
707
695
  selectedOptions: selectedOptions,
708
- updatePosition: _this3.updatePosition,
696
+ updatePosition: _this2.updatePosition,
709
697
  width: width,
710
698
  delimiter: delimiter,
711
699
  getSelectedOptionForSearchValue: _matching_options.getSelectedOptionForSearchValue,
@@ -729,7 +717,6 @@ var EuiComboBox = /*#__PURE__*/function (_Component) {
729
717
  onBlur: this.onContainerBlur,
730
718
  ref: this.comboBoxRefCallback
731
719
  }), (0, _react2.jsx)(_combo_box_input.EuiComboBoxInput, {
732
- autoSizeInputRef: this.autoSizeInputRefCallback,
733
720
  compressed: compressed,
734
721
  focusedOptionId: this.hasActiveOption() ? this.rootId("_option-".concat(this.state.activeOptionIndex)) : undefined,
735
722
  fullWidth: fullWidth,