From 2bcc2fd1348797b718ab2c085d9068425e9ea494 Mon Sep 17 00:00:00 2001 From: Cee Chen <549407+cee-chen@users.noreply.github.com> Date: Fri, 28 Jun 2024 15:37:58 -0700 Subject: [PATCH] Upgrade EUI to v95.2.0 (#186841) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `v95.1.0`⏩`v95.2.0` _[Questions? Please see our Kibana upgrade FAQ.](https://github.com/elastic/eui/blob/main/wiki/eui-team-processes/upgrading-kibana.md#faq-for-kibana-teams)_ --- ## [`v95.2.0`](https://github.com/elastic/eui/releases/v95.2.0) - Updated `EuiContextMenuItemIcon`'s type definition to explicitly define support for `EuiIcon`'s `IconType` ([#7804](https://github.com/elastic/eui/pull/7804)) - Updated `EuiSteps` to support a new `titleSize="xxs"` style, which outputs the same title font size but smaller unnumbered step indicators ([#7813](https://github.com/elastic/eui/pull/7813)) - Updated `EuiStepsHorizontal` to support a new `size="xs"` style, which outputs smaller unnumbered step indicators ([#7813](https://github.com/elastic/eui/pull/7813)) - Updated `EuiStepNumber` to support new `titleSize="none"` which omits rendering step numbers, and will only render icons ([#7813](https://github.com/elastic/eui/pull/7813)) - Updated `setEuiDevProviderWarning` to additionally accept a custom callback function, which warning messages will be passed to ([#7820](https://github.com/elastic/eui/pull/7820)) - Updated `EuiIcon` to feature updated `logoElasticStack` logo for referencing Elastic Stack platform ([#7838](https://github.com/elastic/eui/pull/7838)) - Updated `EuiIcon` to feature updated `casesApp` design. ([#7840](https://github.com/elastic/eui/pull/7840)) - Updated `EuiComboBox` to no longer autocomplete searched text when used within forms ([#7842](https://github.com/elastic/eui/pull/7842)) **CSS-in-JS conversions** - Converted `EuiFilePicker` to Emotion; Removed `$euiFilePickerTallHeight` ([#7833](https://github.com/elastic/eui/pull/7833)) --------- Co-authored-by: Jon --- package.json | 2 +- .../field_input/input/image_input.tsx | 10 +- .../__snapshots__/index.test.tsx.snap | 8 + .../impl/src/file_upload.component.tsx | 8 +- .../file/file_upload/impl/src/file_upload.tsx | 4 +- src/dev/license_checker/config.ts | 2 +- .../__snapshots__/flyout.test.tsx.snap | 4 +- .../objects_table/components/flyout.test.tsx | 8 +- .../upload_license.test.tsx.snap | 200 ++++++++---------- .../custom_icon_modal.test.tsx.snap | 8 +- .../__snapshots__/import_modal.test.js.snap | 3 +- .../monitor_add_edit/fields/uploader.tsx | 8 +- .../fleet_integration/config_uploader.tsx | 14 +- .../public/packs/form/pack_uploader.tsx | 17 +- .../__snapshots__/index.test.tsx.snap | 178 ++++++++-------- .../form.test.tsx | 2 +- .../value_lists_management_flyout/form.tsx | 8 +- .../import_exceptions_list_flyout/index.tsx | 8 +- yarn.lock | 8 +- 19 files changed, 246 insertions(+), 254 deletions(-) diff --git a/package.json b/package.json index 4648678f27843..2dd6af5250f58 100644 --- a/package.json +++ b/package.json @@ -109,7 +109,7 @@ "@elastic/ecs": "^8.11.1", "@elastic/elasticsearch": "^8.14.0", "@elastic/ems-client": "8.5.1", - "@elastic/eui": "95.1.0-backport.0", + "@elastic/eui": "95.2.0", "@elastic/filesaver": "1.1.2", "@elastic/node-crypto": "1.2.1", "@elastic/numeral": "^2.5.1", diff --git a/packages/kbn-management/settings/components/field_input/input/image_input.tsx b/packages/kbn-management/settings/components/field_input/input/image_input.tsx index 9bcacf620c1fe..0bcc61789953c 100644 --- a/packages/kbn-management/settings/components/field_input/input/image_input.tsx +++ b/packages/kbn-management/settings/components/field_input/input/image_input.tsx @@ -8,7 +8,11 @@ import React, { useImperativeHandle, useRef } from 'react'; import { i18n } from '@kbn/i18n'; -import { EuiFilePicker, EuiFilePickerProps, EuiImage } from '@elastic/eui'; +import { EuiFilePicker, EuiImage } from '@elastic/eui'; +import type { + EuiFilePickerClass, + EuiFilePickerProps, +} from '@elastic/eui/src/components/form/file_picker/file_picker'; import { ResetInputRef } from '@kbn/management-settings-types'; import { getFieldInputValue, useUpdate } from '@kbn/management-settings-utilities'; @@ -45,7 +49,7 @@ const errorMessage = i18n.translate('management.settings.field.imageChangeErrorM */ export const ImageInput = React.forwardRef( ({ field, unsavedChange, isSavingEnabled, onInputChange }, ref) => { - const inputRef = useRef(null); + const inputRef = useRef(null); useImperativeHandle(ref, () => ({ reset: () => inputRef.current?.removeFiles(), @@ -99,7 +103,7 @@ export const ImageInput = React.forwardRef( accept=".jpg,.jpeg,.png" data-test-subj={`${TEST_SUBJ_PREFIX_FIELD}-${id}`} disabled={!isSavingEnabled} - ref={inputRef} + ref={inputRef as React.Ref>} fullWidth {...{ onChange, ...a11yProps }} /> diff --git a/packages/kbn-securitysolution-autocomplete/src/field/__tests__/__snapshots__/index.test.tsx.snap b/packages/kbn-securitysolution-autocomplete/src/field/__tests__/__snapshots__/index.test.tsx.snap index d9e917684d768..1bfa3200b4243 100644 --- a/packages/kbn-securitysolution-autocomplete/src/field/__tests__/__snapshots__/index.test.tsx.snap +++ b/packages/kbn-securitysolution-autocomplete/src/field/__tests__/__snapshots__/index.test.tsx.snap @@ -29,6 +29,7 @@ Object { aria-controls="" aria-expanded="false" aria-invalid="false" + autocomplete="off" class="euiComboBox__input" data-test-subj="comboBoxSearchInput" id="generated-id__eui-combobox-id" @@ -96,6 +97,7 @@ Object { aria-controls="" aria-expanded="false" aria-invalid="false" + autocomplete="off" class="euiComboBox__input" data-test-subj="comboBoxSearchInput" id="generated-id__eui-combobox-id" @@ -219,6 +221,7 @@ Object { aria-controls="" aria-expanded="false" aria-invalid="false" + autocomplete="off" class="euiComboBox__input" data-test-subj="comboBoxSearchInput" disabled="" @@ -258,6 +261,7 @@ Object { aria-controls="" aria-expanded="false" aria-invalid="false" + autocomplete="off" class="euiComboBox__input" data-test-subj="comboBoxSearchInput" disabled="" @@ -355,6 +359,7 @@ Object { aria-controls="" aria-expanded="false" aria-invalid="false" + autocomplete="off" class="euiComboBox__input" data-test-subj="comboBoxSearchInput" id="generated-id__eui-combobox-id" @@ -411,6 +416,7 @@ Object { aria-controls="" aria-expanded="false" aria-invalid="false" + autocomplete="off" class="euiComboBox__input" data-test-subj="comboBoxSearchInput" id="generated-id__eui-combobox-id" @@ -524,6 +530,7 @@ Object { aria-controls="" aria-expanded="false" aria-invalid="false" + autocomplete="off" class="euiComboBox__input" data-test-subj="comboBoxSearchInput" disabled="" @@ -573,6 +580,7 @@ Object { aria-controls="" aria-expanded="false" aria-invalid="false" + autocomplete="off" class="euiComboBox__input" data-test-subj="comboBoxSearchInput" disabled="" diff --git a/packages/shared-ux/file/file_upload/impl/src/file_upload.component.tsx b/packages/shared-ux/file/file_upload/impl/src/file_upload.component.tsx index 06cd2c6d27de0..a10fa1085c11e 100644 --- a/packages/shared-ux/file/file_upload/impl/src/file_upload.component.tsx +++ b/packages/shared-ux/file/file_upload/impl/src/file_upload.component.tsx @@ -16,6 +16,10 @@ import { useEuiTheme, useGeneratedHtmlId, } from '@elastic/eui'; +import type { + EuiFilePickerClass, + EuiFilePickerProps, +} from '@elastic/eui/src/components/form/file_picker/file_picker'; import { euiThemeVars } from '@kbn/ui-theme'; import { useBehaviorSubject } from '@kbn/shared-ux-file-util'; import { css } from '@emotion/react'; @@ -48,7 +52,7 @@ const styles = { `, }; -export const FileUpload = React.forwardRef( +export const FileUpload = React.forwardRef( ( { compressed, @@ -90,7 +94,7 @@ export const FileUpload = React.forwardRef( fullWidth={fullWidth} aria-label={i18nTexts.defaultPickerLabel} id={id} - ref={ref} + ref={ref as React.Ref>} onChange={(fs) => { uploadState.setFiles(Array.from(fs ?? [])); if (immediate && uploadState.hasFiles()) uploadState.upload(meta); diff --git a/packages/shared-ux/file/file_upload/impl/src/file_upload.tsx b/packages/shared-ux/file/file_upload/impl/src/file_upload.tsx index 45e74312e1e55..8fdc292bc5431 100644 --- a/packages/shared-ux/file/file_upload/impl/src/file_upload.tsx +++ b/packages/shared-ux/file/file_upload/impl/src/file_upload.tsx @@ -6,8 +6,8 @@ * Side Public License, v 1. */ -import { EuiFilePicker } from '@elastic/eui'; import React, { type FunctionComponent, useRef, useEffect, useMemo } from 'react'; +import type { EuiFilePickerClass } from '@elastic/eui/src/components/form/file_picker/file_picker'; import type { FileJSON } from '@kbn/shared-ux-file-types'; import { useFilesContext } from '@kbn/shared-ux-file-context'; @@ -136,7 +136,7 @@ export const FileUpload = ({ className, }: Props): ReturnType => { const { client } = useFilesContext(); - const ref = useRef(null); + const ref = useRef(null); const fileKind = client.getFileKind(kindId); const repeatedUploads = compressed || allowRepeatedUploads; const uploadState = useMemo( diff --git a/src/dev/license_checker/config.ts b/src/dev/license_checker/config.ts index 61671275ecff9..fabd250b29137 100644 --- a/src/dev/license_checker/config.ts +++ b/src/dev/license_checker/config.ts @@ -86,7 +86,7 @@ export const LICENSE_OVERRIDES = { 'jsts@1.6.2': ['Eclipse Distribution License - v 1.0'], // cf. https://github.com/bjornharrtell/jsts '@mapbox/jsonlint-lines-primitives@2.0.2': ['MIT'], // license in readme https://github.com/tmcw/jsonlint '@elastic/ems-client@8.5.1': ['Elastic License 2.0'], - '@elastic/eui@95.1.0-backport.0': ['SSPL-1.0 OR Elastic License 2.0'], + '@elastic/eui@95.2.0': ['SSPL-1.0 OR Elastic License 2.0'], 'language-subtag-registry@0.3.21': ['CC-BY-4.0'], // retired ODC‑By license https://github.com/mattcg/language-subtag-registry 'buffers@0.1.1': ['MIT'], // license in importing module https://www.npmjs.com/package/binary '@bufbuild/protobuf@1.2.1': ['Apache-2.0'], // license (Apache-2.0 AND BSD-3-Clause) diff --git a/src/plugins/saved_objects_management/public/management_section/objects_table/components/__snapshots__/flyout.test.tsx.snap b/src/plugins/saved_objects_management/public/management_section/objects_table/components/__snapshots__/flyout.test.tsx.snap index e3445d77bb541..6f30a6715f023 100644 --- a/src/plugins/saved_objects_management/public/management_section/objects_table/components/__snapshots__/flyout.test.tsx.snap +++ b/src/plugins/saved_objects_management/public/management_section/objects_table/components/__snapshots__/flyout.test.tsx.snap @@ -314,10 +314,8 @@ exports[`Flyout should render import step 1`] = ` } labelType="label" > - { component.update(); expect(component.state('file')).toBe(undefined); - component.find('EuiFilePicker').simulate('change', [mockFile]); + component.find('EuiFilePickerClass').simulate('change', [mockFile]); expect(component.state('file')).toBe(mockFile); }); @@ -86,9 +86,9 @@ describe('Flyout', () => { component.update(); expect(component.state('file')).toBe(undefined); - component.find('EuiFilePicker').simulate('change', [mockFile]); + component.find('EuiFilePickerClass').simulate('change', [mockFile]); expect(component.state('file')).toBe(mockFile); - component.find('EuiFilePicker').simulate('change', []); + component.find('EuiFilePickerClass').simulate('change', []); expect(component.state('file')).toBe(undefined); }); @@ -105,7 +105,7 @@ describe('Flyout', () => { 'EuiButton[data-test-subj="importSavedObjectsImportBtn"]' ); expect(importButton.prop('isDisabled')).toBe(true); - component.find('EuiFilePicker').simulate('change', [mockFile]); + component.find('EuiFilePickerClass').simulate('change', [mockFile]); // Ensure state changes are reflected component.update(); diff --git a/x-pack/plugins/license_management/__jest__/__snapshots__/upload_license.test.tsx.snap b/x-pack/plugins/license_management/__jest__/__snapshots__/upload_license.test.tsx.snap index 8a845149b95e8..eb9f2e7265f47 100644 --- a/x-pack/plugins/license_management/__jest__/__snapshots__/upload_license.test.tsx.snap +++ b/x-pack/plugins/license_management/__jest__/__snapshots__/upload_license.test.tsx.snap @@ -37,33 +37,29 @@ exports[`UploadLicense should display a modal when license requires acknowledgem class="euiForm" >
+
- -
-
+ Select or drag your license file +
+
- -
-
+ Select or drag your license file +
+
- -
-
+ Select or drag your license file +
+
- -
-
+ Select or drag your license file +
+
- -
-
+ Select or drag your license file +
- - - diff --git a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/fields/uploader.tsx b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/fields/uploader.tsx index e028e24504f03..9e9a4803a5795 100644 --- a/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/fields/uploader.tsx +++ b/x-pack/plugins/observability_solution/synthetics/public/apps/synthetics/components/monitor_add_edit/fields/uploader.tsx @@ -10,6 +10,10 @@ import React, { useState, useRef } from 'react'; import { i18n } from '@kbn/i18n'; import { EuiFormRow, EuiFilePicker } from '@elastic/eui'; +import type { + EuiFilePickerClass, + EuiFilePickerProps, +} from '@elastic/eui/src/components/form/file_picker/file_picker'; interface Props { onUpload: ({ scriptText, fileName }: { scriptText: string; fileName: string }) => void; @@ -18,7 +22,7 @@ interface Props { export function Uploader({ onUpload }: Props) { const fileReader = useRef(null); const [error, setError] = useState(null); - const filePickerRef = useRef(null); + const filePickerRef = useRef(null); const handleFileRead = (fileName: string) => { const content = fileReader?.current?.result as string; @@ -58,7 +62,7 @@ export function Uploader({ onUpload }: Props) { >} initialPromptText={PROMPT_TEXT} onChange={handleFileChosen} display={'large'} diff --git a/x-pack/plugins/osquery/public/fleet_integration/config_uploader.tsx b/x-pack/plugins/osquery/public/fleet_integration/config_uploader.tsx index b93c475f1e04e..3d5b042769d8d 100644 --- a/x-pack/plugins/osquery/public/fleet_integration/config_uploader.tsx +++ b/x-pack/plugins/osquery/public/fleet_integration/config_uploader.tsx @@ -6,6 +6,10 @@ */ import { EuiLink, EuiFormRow, EuiFilePicker, EuiSpacer } from '@elastic/eui'; +import type { + EuiFilePickerClass, + EuiFilePickerProps, +} from '@elastic/eui/src/components/form/file_picker/file_picker'; import React, { useCallback, useState, useRef } from 'react'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; @@ -31,7 +35,7 @@ interface ConfigUploaderProps { } const ConfigUploaderComponent: React.FC = ({ onChange }) => { - const filePickerRef = useRef(null); + const filePickerRef = useRef(null); const [isInvalid, setIsInvalid] = useState(null); // @ts-expect-error update types let fileReader; @@ -55,13 +59,11 @@ const ConfigUploaderComponent: React.FC = ({ onChange }) => setIsInvalid(null); } catch (error) { setIsInvalid(error); - // @ts-expect-error update types - filePickerRef.current?.removeFiles(new Event('fake')); + filePickerRef.current?.removeFiles(); } onChange(parsedContent); - // @ts-expect-error update types - filePickerRef.current?.removeFiles(new Event('fake')); + filePickerRef.current?.removeFiles(); }; // @ts-expect-error update types @@ -115,7 +117,7 @@ const ConfigUploaderComponent: React.FC = ({ onChange }) => error={<>{`${isInvalid}`}} > >} id="osquery_config_picker" initialPromptText={i18n.translate('xpack.osquery.configUploader.initialPromptTextLabel', { defaultMessage: 'Select or drag and drop osquery config file', diff --git a/x-pack/plugins/osquery/public/packs/form/pack_uploader.tsx b/x-pack/plugins/osquery/public/packs/form/pack_uploader.tsx index 8955b8dac88c1..b9f9c914ed24b 100644 --- a/x-pack/plugins/osquery/public/packs/form/pack_uploader.tsx +++ b/x-pack/plugins/osquery/public/packs/form/pack_uploader.tsx @@ -7,6 +7,10 @@ import { kebabCase } from 'lodash'; import { EuiLink, EuiFormRow, EuiFilePicker, EuiSpacer } from '@elastic/eui'; +import type { + EuiFilePickerClass, + EuiFilePickerProps, +} from '@elastic/eui/src/components/form/file_picker/file_picker'; import React, { useCallback, useState, useRef } from 'react'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; @@ -30,7 +34,7 @@ interface OsqueryPackUploaderProps { const OsqueryPackUploaderComponent: React.FC = ({ onChange }) => { const packName = useRef(''); - const filePickerRef = useRef(null); + const filePickerRef = useRef(null); const [isInvalid, setIsInvalid] = useState(null); // @ts-expect-error update types let fileReader; @@ -59,8 +63,7 @@ const OsqueryPackUploaderComponent: React.FC = ({ onCh setIsInvalid(null); } catch (error) { setIsInvalid(error); - // @ts-expect-error update types - filePickerRef.current?.removeFiles(new Event('fake')); + filePickerRef.current?.removeFiles(); } if (!parsedContent?.queries) { @@ -68,8 +71,7 @@ const OsqueryPackUploaderComponent: React.FC = ({ onCh } onChange(parsedContent, packName.current); - // @ts-expect-error update types - filePickerRef.current?.removeFiles(new Event('fake')); + filePickerRef.current?.removeFiles(); }; // @ts-expect-error update types @@ -104,8 +106,7 @@ const OsqueryPackUploaderComponent: React.FC = ({ onCh }, }) ); - // @ts-expect-error update types - filePickerRef.current?.removeFiles(new Event('fake')); + filePickerRef.current?.removeFiles(); return; } @@ -126,7 +127,7 @@ const OsqueryPackUploaderComponent: React.FC = ({ onCh error={<>{`${isInvalid}`}} > >} id="osquery_pack_picker" initialPromptText={i18n.translate('xpack.osquery.packUploader.initialPromptTextLabel', { defaultMessage: 'Select or drag and drop osquery pack config file', diff --git a/x-pack/plugins/security_solution/public/common/components/import_data_modal/__snapshots__/index.test.tsx.snap b/x-pack/plugins/security_solution/public/common/components/import_data_modal/__snapshots__/index.test.tsx.snap index 599249231c93a..1fe2bda944e0a 100644 --- a/x-pack/plugins/security_solution/public/common/components/import_data_modal/__snapshots__/index.test.tsx.snap +++ b/x-pack/plugins/security_solution/public/common/components/import_data_modal/__snapshots__/index.test.tsx.snap @@ -60,36 +60,32 @@ Object { class="euiSpacer euiSpacer--s emotion-euiSpacer-s" />
+
- -
-
+ subtitle +
+
- -
+ subtitle + + -
+ +
+
- -
+ subtitle + + -
+ +
(container: ReactWrapper

, file: File) => Promise { - const fileChange = container.find('EuiFilePicker').prop('onChange'); + const fileChange = container.find('EuiFilePickerClass').last().prop('onChange'); await waitFor(() => { if (fileChange) { fileChange({ item: () => file } as unknown as FormEvent); diff --git a/x-pack/plugins/security_solution/public/detections/components/value_lists_management_flyout/form.tsx b/x-pack/plugins/security_solution/public/detections/components/value_lists_management_flyout/form.tsx index b95ec41048f89..0190f06381e66 100644 --- a/x-pack/plugins/security_solution/public/detections/components/value_lists_management_flyout/form.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/value_lists_management_flyout/form.tsx @@ -17,6 +17,10 @@ import { EuiFlexItem, EuiSelect, } from '@elastic/eui'; +import type { + EuiFilePickerClass, + EuiFilePickerProps, +} from '@elastic/eui/src/components/form/file_picker/file_picker'; import type { Type, ListSchema } from '@kbn/securitysolution-io-ts-list-types'; import { useImportList } from '@kbn/securitysolution-list-hooks'; @@ -55,7 +59,7 @@ export const ValueListsFormComponent: React.FC = ({ onError const ctrl = useRef(new AbortController()); const [file, setFile] = useState(null); const [type, setType] = useState(defaultListType); - const filePickerRef = useRef(null); + const filePickerRef = useRef(null); const { http } = useKibana().services; const { start: importList, ...importState } = useImportList(); @@ -136,7 +140,7 @@ export const ValueListsFormComponent: React.FC = ({ onError data-test-subj="value-list-file-picker" id="value-list-file-picker" initialPromptText={i18n.FILE_PICKER_PROMPT} - ref={filePickerRef} + ref={filePickerRef as React.Ref>} onChange={handleFileChange} fullWidth={true} isLoading={importState.loading} diff --git a/x-pack/plugins/security_solution/public/exceptions/components/import_exceptions_list_flyout/index.tsx b/x-pack/plugins/security_solution/public/exceptions/components/import_exceptions_list_flyout/index.tsx index d34a67087e40e..5c7fa4ba3b14c 100644 --- a/x-pack/plugins/security_solution/public/exceptions/components/import_exceptions_list_flyout/index.tsx +++ b/x-pack/plugins/security_solution/public/exceptions/components/import_exceptions_list_flyout/index.tsx @@ -26,6 +26,10 @@ import { EuiFlyout, EuiToolTip, } from '@elastic/eui'; +import type { + EuiFilePickerClass, + EuiFilePickerProps, +} from '@elastic/eui/src/components/form/file_picker/file_picker'; import type { BulkErrorSchema, ImportExceptionsResponseSchema, @@ -53,7 +57,7 @@ export const ImportExceptionListFlyout = React.memo( addError: (error: unknown, options: ErrorToastOptions) => Toast; setDisplayImportListFlyout: Dispatch>; }) => { - const filePickerRef = useRef(null); + const filePickerRef = useRef(null); const filePickerId = useGeneratedHtmlId({ prefix: 'filePicker' }); const [files, setFiles] = useState(null); @@ -179,7 +183,7 @@ export const ImportExceptionListFlyout = React.memo( >} initialPromptText={i18n.IMPORT_PROMPT} onChange={handleFileChange} display={'large'} diff --git a/yarn.lock b/yarn.lock index d2619bea19c13..e5327090828c9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1743,10 +1743,10 @@ resolved "https://registry.yarnpkg.com/@elastic/eslint-plugin-eui/-/eslint-plugin-eui-0.0.2.tgz#56b9ef03984a05cc213772ae3713ea8ef47b0314" integrity sha512-IoxURM5zraoQ7C8f+mJb9HYSENiZGgRVcG4tLQxE61yHNNRDXtGDWTZh8N1KIHcsqN1CEPETjuzBXkJYF/fDiQ== -"@elastic/eui@95.1.0-backport.0": - version "95.1.0-backport.0" - resolved "https://registry.yarnpkg.com/@elastic/eui/-/eui-95.1.0-backport.0.tgz#effc5a536d7630a7bad7ff1aae817c8beab3cfef" - integrity sha512-0V5+7hGk4PyiR1qi1UA15RctQMJCCRDvCZSlgtisj5BLQ1fbfPbKUwr3oVqpx7gwhswDDP2jWWbk1OmUR1nnfg== +"@elastic/eui@95.2.0": + version "95.2.0" + resolved "https://registry.yarnpkg.com/@elastic/eui/-/eui-95.2.0.tgz#12204f9206f1432e17276264e08e48cd026913bf" + integrity sha512-DVIAqZHox5esbmoxnG3McTw0ppbatvH+ymXYjr3PNNTTnXzmcAGadQAA0ZIpx1/c3/YOZmh2LJWWowLl4wodzw== dependencies: "@hello-pangea/dnd" "^16.6.0" "@types/lodash" "^4.14.202"