diff --git a/.eslintrc.cjs b/.eslintrc.cjs
index c7ad2612..ba3da431 100644
--- a/.eslintrc.cjs
+++ b/.eslintrc.cjs
@@ -36,7 +36,13 @@ module.exports = {
' * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.',
' * For licensing, see LICENSE.md.',
' */'
- ] } ]
+ ] } ],
+ 'ckeditor5-rules/require-file-extensions-in-imports': [
+ 'error',
+ {
+ extensions: [ '.ts', '.js', '.json' ]
+ }
+ ],
},
'settings': {
'react': {
diff --git a/demos/cdn-multiroot-react/App.tsx b/demos/cdn-multiroot-react/App.tsx
index c016a5b4..b628851f 100644
--- a/demos/cdn-multiroot-react/App.tsx
+++ b/demos/cdn-multiroot-react/App.tsx
@@ -4,9 +4,9 @@
*/
import React, { StrictMode, useState } from 'react';
-import MultiRootEditorDemo from './MultiRootEditorDemo';
-import MultiRootEditorRichDemo from './MultiRootEditorRichDemo';
-import ContextMultiRootEditorDemo from './ContextMultiRootEditorDemo';
+import MultiRootEditorDemo from './MultiRootEditorDemo.js';
+import MultiRootEditorRichDemo from './MultiRootEditorRichDemo.js';
+import ContextMultiRootEditorDemo from './ContextMultiRootEditorDemo.js';
type Demo = 'editor' | 'rich' | 'context';
diff --git a/demos/cdn-multiroot-react/main.tsx b/demos/cdn-multiroot-react/main.tsx
index 26eda597..73fd291e 100644
--- a/demos/cdn-multiroot-react/main.tsx
+++ b/demos/cdn-multiroot-react/main.tsx
@@ -4,7 +4,7 @@
*/
import React from 'react';
-import App from './App';
+import App from './App.js';
const element = document.getElementById( 'root' ) as HTMLDivElement;
diff --git a/demos/cdn-react/App.tsx b/demos/cdn-react/App.tsx
index 3f4dfaf0..8d8b2270 100644
--- a/demos/cdn-react/App.tsx
+++ b/demos/cdn-react/App.tsx
@@ -5,10 +5,10 @@
import React, { useState, type ReactNode } from 'react';
-import { CKEditorCloudDemo } from './CKEditorCloudDemo';
-import { CKEditorCloudPluginsDemo } from './CKEditorCloudPluginsDemo';
-import { CKEditorCKBoxCloudDemo } from './CKEditorCKBoxCloudDemo';
-import { CKEditorCloudContextDemo } from './CKEditorCloudContextDemo';
+import { CKEditorCloudDemo } from './CKEditorCloudDemo.js';
+import { CKEditorCloudPluginsDemo } from './CKEditorCloudPluginsDemo.js';
+import { CKEditorCKBoxCloudDemo } from './CKEditorCKBoxCloudDemo.js';
+import { CKEditorCloudContextDemo } from './CKEditorCloudContextDemo.js';
const EDITOR_CONTENT = `
Sample
diff --git a/demos/cdn-react/getCKCdnClassicEditor.ts b/demos/cdn-react/getCKCdnClassicEditor.ts
index 9423ea13..40dabd8d 100644
--- a/demos/cdn-react/getCKCdnClassicEditor.ts
+++ b/demos/cdn-react/getCKCdnClassicEditor.ts
@@ -4,7 +4,7 @@
*/
import type { ClassicEditor, Plugin, ContextPlugin, EditorConfig } from 'https://cdn.ckeditor.com/typings/ckeditor5.d.ts';
-import type { CKEditorCloudResult } from '../../src';
+import type { CKEditorCloudResult } from '../../src/index.js';
type ClassicEditorCreatorConfig = {
cloud: CKEditorCloudResult;
diff --git a/demos/cdn-react/main.tsx b/demos/cdn-react/main.tsx
index 8a5a2254..4fa941c3 100644
--- a/demos/cdn-react/main.tsx
+++ b/demos/cdn-react/main.tsx
@@ -4,7 +4,7 @@
*/
import React from 'react';
-import { App } from './App';
+import { App } from './App.js';
const element = document.getElementById( 'root' ) as HTMLDivElement;
diff --git a/demos/npm-multiroot-react/App.tsx b/demos/npm-multiroot-react/App.tsx
index 19921656..f2301f83 100644
--- a/demos/npm-multiroot-react/App.tsx
+++ b/demos/npm-multiroot-react/App.tsx
@@ -4,9 +4,9 @@
*/
import React, { StrictMode, useState } from 'react';
-import MultiRootEditorDemo from './MultiRootEditorDemo';
-import MultiRootEditorRichDemo from './MultiRootEditorRichDemo';
-import ContextMultiRootEditorDemo from './ContextMultiRootEditorDemo';
+import MultiRootEditorDemo from './MultiRootEditorDemo.js';
+import MultiRootEditorRichDemo from './MultiRootEditorRichDemo.js';
+import ContextMultiRootEditorDemo from './ContextMultiRootEditorDemo.js';
type Demo = 'editor' | 'rich' | 'context';
diff --git a/demos/npm-multiroot-react/main.tsx b/demos/npm-multiroot-react/main.tsx
index 26eda597..73fd291e 100644
--- a/demos/npm-multiroot-react/main.tsx
+++ b/demos/npm-multiroot-react/main.tsx
@@ -4,7 +4,7 @@
*/
import React from 'react';
-import App from './App';
+import App from './App.js';
const element = document.getElementById( 'root' ) as HTMLDivElement;
diff --git a/demos/npm-react/App.tsx b/demos/npm-react/App.tsx
index 5e81bbcd..05c9f82c 100644
--- a/demos/npm-react/App.tsx
+++ b/demos/npm-react/App.tsx
@@ -4,8 +4,8 @@
*/
import React, { useState } from 'react';
-import EditorDemo from './EditorDemo';
-import ContextDemo from './ContextDemo';
+import EditorDemo from './EditorDemo.js';
+import ContextDemo from './ContextDemo.js';
type Demo = 'editor' | 'context';
diff --git a/demos/npm-react/ContextDemo.tsx b/demos/npm-react/ContextDemo.tsx
index 8901cdfd..3c1ee6aa 100644
--- a/demos/npm-react/ContextDemo.tsx
+++ b/demos/npm-react/ContextDemo.tsx
@@ -7,7 +7,7 @@ import React, { useState } from 'react';
import type { Editor } from 'ckeditor5';
-import ClassicEditor from './ClassicEditor';
+import ClassicEditor from './ClassicEditor.js';
import { CKEditor, CKEditorContext } from '../../src/index.js';
declare global {
diff --git a/demos/npm-react/EditorDemo.tsx b/demos/npm-react/EditorDemo.tsx
index 64dc2151..b1e9f594 100644
--- a/demos/npm-react/EditorDemo.tsx
+++ b/demos/npm-react/EditorDemo.tsx
@@ -4,7 +4,7 @@
*/
import React, { useState } from 'react';
-import ClassicEditor from './ClassicEditor';
+import ClassicEditor from './ClassicEditor.js';
import { CKEditor } from '../../src/index.js';
declare global {
diff --git a/demos/npm-react/main.tsx b/demos/npm-react/main.tsx
index 26eda597..73fd291e 100644
--- a/demos/npm-react/main.tsx
+++ b/demos/npm-react/main.tsx
@@ -4,7 +4,7 @@
*/
import React from 'react';
-import App from './App';
+import App from './App.js';
const element = document.getElementById( 'root' ) as HTMLDivElement;
diff --git a/package.json b/package.json
index ec51dfc2..05a54fdb 100644
--- a/package.json
+++ b/package.json
@@ -29,11 +29,10 @@
},
"dependencies": {
"prop-types": "^15.7.2",
- "@ckeditor/ckeditor5-integrations-common": "^2.0.0"
+ "@ckeditor/ckeditor5-integrations-common": "^2.1.0"
},
"peerDependencies": {
"ckeditor5": ">=42.0.0 || ^0.0.0-nightly",
- "ckeditor5-premium-features": ">=42.0.0 || ^0.0.0-nightly",
"react": "^16.13.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
},
"devDependencies": {
diff --git a/src/ckeditor.tsx b/src/ckeditor.tsx
index 4213fb27..da7a2f1d 100644
--- a/src/ckeditor.tsx
+++ b/src/ckeditor.tsx
@@ -19,21 +19,21 @@ import type {
EditorCreatorFunction
} from 'ckeditor5';
-import type { EditorSemaphoreMountResult } from './lifecycle/LifeCycleEditorSemaphore';
+import type { EditorSemaphoreMountResult } from './lifecycle/LifeCycleEditorSemaphore.js';
import { uid } from '@ckeditor/ckeditor5-integrations-common';
-import { LifeCycleElementSemaphore } from './lifecycle/LifeCycleElementSemaphore';
+import { LifeCycleElementSemaphore } from './lifecycle/LifeCycleElementSemaphore.js';
import {
withCKEditorReactContextMetadata,
type CKEditorConfigContextMetadata
-} from './context/setCKEditorReactContextMetadata';
+} from './context/setCKEditorReactContextMetadata.js';
import {
ContextWatchdogContext,
isContextWatchdogInitializing,
isContextWatchdogReadyToUse
-} from './context/ckeditorcontext';
+} from './context/ckeditorcontext.js';
const REACT_INTEGRATION_READ_ONLY_LOCK_ID = 'Lock from React integration (@ckeditor/ckeditor5-react)';
diff --git a/src/context/ckeditorcontext.tsx b/src/context/ckeditorcontext.tsx
index 351dec20..58a4ae5a 100644
--- a/src/context/ckeditorcontext.tsx
+++ b/src/context/ckeditorcontext.tsx
@@ -10,11 +10,11 @@ import React, {
} from 'react';
import { uid } from '@ckeditor/ckeditor5-integrations-common';
-import { useIsMountedRef } from '../hooks/useIsMountedRef';
+import { useIsMountedRef } from '../hooks/useIsMountedRef.js';
import {
useInitializedCKEditorsMap,
type InitializedContextEditorsConfig
-} from './useInitializedCKEditorsMap';
+} from './useInitializedCKEditorsMap.js';
import type {
ContextWatchdog,
@@ -109,7 +109,7 @@ const CKEditorContext = ( props: Props = {
diff --git a/src/lifecycle/useLifeCycleSemaphoreSyncRef.tsx b/src/lifecycle/useLifeCycleSemaphoreSyncRef.tsx
index 91fc37c1..a1064cdb 100644
--- a/src/lifecycle/useLifeCycleSemaphoreSyncRef.tsx
+++ b/src/lifecycle/useLifeCycleSemaphoreSyncRef.tsx
@@ -4,7 +4,7 @@
*/
import { useRef, useState, type RefObject } from 'react';
-import type { LifeCycleElementSemaphore, LifeCycleAfterMountCallback } from './LifeCycleElementSemaphore';
+import type { LifeCycleElementSemaphore, LifeCycleAfterMountCallback } from './LifeCycleElementSemaphore.js';
/**
* When using the `useState` approach, a new instance of the semaphore must be set based on the previous
diff --git a/src/useMultiRootEditor.tsx b/src/useMultiRootEditor.tsx
index 17acd621..2edde771 100644
--- a/src/useMultiRootEditor.tsx
+++ b/src/useMultiRootEditor.tsx
@@ -23,16 +23,16 @@ import type {
EventInfo
} from 'ckeditor5';
-import { ContextWatchdogContext, isContextWatchdogReadyToUse } from './context/ckeditorcontext';
-import { EditorWatchdogAdapter } from './ckeditor';
+import { ContextWatchdogContext, isContextWatchdogReadyToUse } from './context/ckeditorcontext.js';
+import { EditorWatchdogAdapter } from './ckeditor.js';
-import type { EditorSemaphoreMountResult } from './lifecycle/LifeCycleEditorSemaphore';
+import type { EditorSemaphoreMountResult } from './lifecycle/LifeCycleEditorSemaphore.js';
-import { useLifeCycleSemaphoreSyncRef, type LifeCycleSemaphoreSyncRefResult } from './lifecycle/useLifeCycleSemaphoreSyncRef';
-import { mergeRefs } from './utils/mergeRefs';
-import { LifeCycleElementSemaphore } from './lifecycle/LifeCycleElementSemaphore';
-import { useRefSafeCallback } from './hooks/useRefSafeCallback';
-import { useInstantEditorEffect } from './hooks/useInstantEditorEffect';
+import { useLifeCycleSemaphoreSyncRef, type LifeCycleSemaphoreSyncRefResult } from './lifecycle/useLifeCycleSemaphoreSyncRef.js';
+import { mergeRefs } from './utils/mergeRefs.js';
+import { LifeCycleElementSemaphore } from './lifecycle/LifeCycleElementSemaphore.js';
+import { useRefSafeCallback } from './hooks/useRefSafeCallback.js';
+import { useInstantEditorEffect } from './hooks/useInstantEditorEffect.js';
const REACT_INTEGRATION_READ_ONLY_LOCK_ID = 'Lock from React integration (@ckeditor/ckeditor5-react)';
diff --git a/tests/_utils-tests/context.test.tsx b/tests/_utils-tests/context.test.tsx
index f6943887..5eb03774 100644
--- a/tests/_utils-tests/context.test.tsx
+++ b/tests/_utils-tests/context.test.tsx
@@ -4,7 +4,7 @@
*/
import { describe, expect, it } from 'vitest';
-import Context from '../_utils/context';
+import Context from '../_utils/context.js';
describe( 'Context', () => {
describe( 'constructor()', () => {
diff --git a/tests/_utils-tests/editor.test.tsx b/tests/_utils-tests/editor.test.tsx
index 676d35b3..6a1b2803 100644
--- a/tests/_utils-tests/editor.test.tsx
+++ b/tests/_utils-tests/editor.test.tsx
@@ -4,7 +4,7 @@
*/
import { describe, expect, it } from 'vitest';
-import Editor from '../_utils/editor';
+import Editor from '../_utils/editor.js';
describe( 'Editor', () => {
describe( 'constructor()', () => {
diff --git a/tests/cloud/withCKEditorCloud.test.tsx b/tests/cloud/withCKEditorCloud.test.tsx
index ca393821..594bf747 100644
--- a/tests/cloud/withCKEditorCloud.test.tsx
+++ b/tests/cloud/withCKEditorCloud.test.tsx
@@ -10,7 +10,7 @@ import { cleanup, render } from '@testing-library/react';
import { createDefer } from '@ckeditor/ckeditor5-integrations-common';
import { removeAllCkCdnResources } from '@ckeditor/ckeditor5-integrations-common/test-utils';
-import withCKEditorCloud, { type WithCKEditorCloudHocProps } from '../../src/cloud/withCKEditorCloud';
+import withCKEditorCloud, { type WithCKEditorCloudHocProps } from '../../src/cloud/withCKEditorCloud.js';
describe( 'withCKEditorCloud', () => {
const lastRenderedMockProps: MutableRefObject = {
diff --git a/tests/hooks/useAsyncCallback.test.tsx b/tests/hooks/useAsyncCallback.test.tsx
index 90d9cec0..44678d5b 100644
--- a/tests/hooks/useAsyncCallback.test.tsx
+++ b/tests/hooks/useAsyncCallback.test.tsx
@@ -5,8 +5,8 @@
import { describe, expect, it, vi } from 'vitest';
import { renderHook, act, waitFor } from '@testing-library/react';
-import { useAsyncCallback } from '../../src/hooks/useAsyncCallback';
-import { timeout } from '../_utils/timeout';
+import { useAsyncCallback } from '../../src/hooks/useAsyncCallback.js';
+import { timeout } from '../_utils/timeout.js';
describe( 'useAsyncCallback', () => {
it( 'should execute the callback and update the state correctly when the callback resolves', async () => {
diff --git a/tests/hooks/useAsyncValue.test.tsx b/tests/hooks/useAsyncValue.test.tsx
index b4a6df8a..f90af4a9 100644
--- a/tests/hooks/useAsyncValue.test.tsx
+++ b/tests/hooks/useAsyncValue.test.tsx
@@ -5,7 +5,7 @@
import { describe, expect, it } from 'vitest';
import { renderHook, waitFor } from '@testing-library/react';
-import { useAsyncValue } from '../../src/hooks/useAsyncValue';
+import { useAsyncValue } from '../../src/hooks/useAsyncValue.js';
describe( 'useAsyncValue', () => {
it( 'should return a mutable ref object', async () => {
diff --git a/tests/hooks/useInstantEditorEffect.test.tsx b/tests/hooks/useInstantEditorEffect.test.tsx
index 1f66d307..b106b752 100644
--- a/tests/hooks/useInstantEditorEffect.test.tsx
+++ b/tests/hooks/useInstantEditorEffect.test.tsx
@@ -5,7 +5,7 @@
import { describe, expect, it, vi } from 'vitest';
import { renderHook } from '@testing-library/react';
-import { useInstantEditorEffect } from '../../src/hooks/useInstantEditorEffect';
+import { useInstantEditorEffect } from '../../src/hooks/useInstantEditorEffect.js';
describe( 'useInstantEditorEffect', () => {
it( 'should execute the provided function after mounting of editor', () => {
diff --git a/tests/hooks/useInstantEffect.test.tsx b/tests/hooks/useInstantEffect.test.tsx
index 89b3c4be..f808a41b 100644
--- a/tests/hooks/useInstantEffect.test.tsx
+++ b/tests/hooks/useInstantEffect.test.tsx
@@ -5,7 +5,7 @@
import { describe, expect, it, vi } from 'vitest';
import { renderHook } from '@testing-library/react';
-import { useInstantEffect } from '../../src/hooks/useInstantEffect';
+import { useInstantEffect } from '../../src/hooks/useInstantEffect.js';
describe( 'useInstantEffect', () => {
it( 'should call the effect function when dependencies change', () => {
diff --git a/tests/hooks/useIsMountedRef.test.tsx b/tests/hooks/useIsMountedRef.test.tsx
index aa1acd02..87d8b1df 100644
--- a/tests/hooks/useIsMountedRef.test.tsx
+++ b/tests/hooks/useIsMountedRef.test.tsx
@@ -5,7 +5,7 @@
import { describe, expect, it } from 'vitest';
import { renderHook } from '@testing-library/react';
-import { useIsMountedRef } from '../../src/hooks/useIsMountedRef';
+import { useIsMountedRef } from '../../src/hooks/useIsMountedRef.js';
describe( 'useIsMountedRef', () => {
it( 'should return a mutable ref object', () => {
diff --git a/tests/hooks/useIsUnmountedRef.test.tsx b/tests/hooks/useIsUnmountedRef.test.tsx
index 4fff4fe6..087d98d7 100644
--- a/tests/hooks/useIsUnmountedRef.test.tsx
+++ b/tests/hooks/useIsUnmountedRef.test.tsx
@@ -5,7 +5,7 @@
import { describe, expect, it } from 'vitest';
import { renderHook } from '@testing-library/react';
-import { useIsUnmountedRef } from '../../src/hooks/useIsUnmountedRef';
+import { useIsUnmountedRef } from '../../src/hooks/useIsUnmountedRef.js';
describe( 'useIsUnmountedRef', () => {
it( 'should return a mutable ref object', () => {
diff --git a/tests/hooks/useRefSafeCallback.test.tsx b/tests/hooks/useRefSafeCallback.test.tsx
index 9da8c20a..3b8fa4a1 100644
--- a/tests/hooks/useRefSafeCallback.test.tsx
+++ b/tests/hooks/useRefSafeCallback.test.tsx
@@ -5,7 +5,7 @@
import { expect, it, describe, vi } from 'vitest';
import { renderHook, act } from '@testing-library/react';
-import { useRefSafeCallback } from '../../src/hooks/useRefSafeCallback';
+import { useRefSafeCallback } from '../../src/hooks/useRefSafeCallback.js';
describe( 'useRefSafeCallback', () => {
it( 'should return a function', () => {
diff --git a/tests/lifecycle/LifeCycleElementSemaphore.test.tsx b/tests/lifecycle/LifeCycleElementSemaphore.test.tsx
index 8841f44e..eec85b0d 100644
--- a/tests/lifecycle/LifeCycleElementSemaphore.test.tsx
+++ b/tests/lifecycle/LifeCycleElementSemaphore.test.tsx
@@ -5,11 +5,11 @@
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
-import { createDefer } from '../_utils/defer';
+import { createDefer } from '../_utils/defer.js';
import {
LifeCycleElementSemaphore,
type LifeCycleAsyncOperators
-} from '../../src/lifecycle/LifeCycleElementSemaphore';
+} from '../../src/lifecycle/LifeCycleElementSemaphore.js';
describe( 'LifeCycleElementSemaphore', () => {
let element: HTMLElement;
diff --git a/tests/lifecycle/useLifeCycleSemaphoreSyncRef.test.tsx b/tests/lifecycle/useLifeCycleSemaphoreSyncRef.test.tsx
index 25d7879c..f7a479a7 100644
--- a/tests/lifecycle/useLifeCycleSemaphoreSyncRef.test.tsx
+++ b/tests/lifecycle/useLifeCycleSemaphoreSyncRef.test.tsx
@@ -6,8 +6,8 @@
import { it, describe, expect, vi, beforeEach, afterEach } from 'vitest';
import { renderHook, act } from '@testing-library/react';
-import { LifeCycleElementSemaphore } from '../../src/lifecycle/LifeCycleElementSemaphore';
-import { useLifeCycleSemaphoreSyncRef } from '../../src/lifecycle/useLifeCycleSemaphoreSyncRef';
+import { LifeCycleElementSemaphore } from '../../src/lifecycle/LifeCycleElementSemaphore.js';
+import { useLifeCycleSemaphoreSyncRef } from '../../src/lifecycle/useLifeCycleSemaphoreSyncRef.js';
describe( 'useLifeCycleSemaphoreSyncRef', () => {
let semaphore: LifeCycleElementSemaphore;
diff --git a/tests/utils/mergeRefs.test.tsx b/tests/utils/mergeRefs.test.tsx
index 0d3659c2..0893a7f6 100644
--- a/tests/utils/mergeRefs.test.tsx
+++ b/tests/utils/mergeRefs.test.tsx
@@ -6,7 +6,7 @@
import type { MutableRefObject } from 'react';
import { describe, expect, it, vi } from 'vitest';
-import { mergeRefs } from '../../src/utils/mergeRefs';
+import { mergeRefs } from '../../src/utils/mergeRefs.js';
describe( 'mergeRefs', () => {
it( 'should call the callback ref with the provided value', () => {
diff --git a/yarn.lock b/yarn.lock
index ed5eae33..65e0f8b8 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1220,10 +1220,10 @@
"@ckeditor/ckeditor5-utils" "43.1.0"
ckeditor5 "43.1.0"
-"@ckeditor/ckeditor5-integrations-common@^2.0.0":
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-integrations-common/-/ckeditor5-integrations-common-2.0.0.tgz#09ea8a6a6a3c01f601260a85d9af98ede78644cf"
- integrity sha512-Gkt7tYVv168voQZFdN4PxVp6M5/ZgzIOrqI6uPRjuk73dYjdLCeotnEXYejE6cxyLi9m2UM2mvhXibOIKVcoPw==
+"@ckeditor/ckeditor5-integrations-common@^2.1.0":
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/@ckeditor/ckeditor5-integrations-common/-/ckeditor5-integrations-common-2.1.0.tgz#5e1423ff764c421d8181a35f73677610038f1fb8"
+ integrity sha512-vn6qMb36sl6eSCc27dvThk6xISif59MxnxZmRBC440TyP7S9ZcS0ai4yHd5QyaH70ZIe0lhS7DWdLaiKtBggVQ==
"@ckeditor/ckeditor5-language@43.1.0":
version "43.1.0"
@@ -7930,7 +7930,7 @@ raw-loader@^4.0.1:
loader-utils "^2.0.0"
schema-utils "^3.0.0"
-react-dom@^18.0.0:
+react-dom@^18.0.0, "react18-dom@npm:react-dom@^18.0.0":
version "18.3.1"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4"
integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==
@@ -7972,15 +7972,7 @@ react-refresh@^0.14.2:
object-assign "^4.1.1"
prop-types "^15.6.2"
-"react18-dom@npm:react-dom@^18.0.0":
- version "18.3.1"
- resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4"
- integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==
- dependencies:
- loose-envify "^1.1.0"
- scheduler "^0.23.2"
-
-"react18@npm:react@^18.0.0":
+"react18@npm:react@^18.0.0", react@^18.0.0:
version "18.3.1"
resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891"
integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==
@@ -7999,13 +7991,6 @@ react-refresh@^0.14.2:
resolved "https://registry.yarnpkg.com/react/-/react-19.0.0-beta-26f2496093-20240514.tgz#3a0d63746b3f9ebd461a0731191bd08047fb1dbb"
integrity sha512-ZsU/WjNZ6GfzMWsq2DcGjElpV9it8JmETHm9mAJuOJNhuJcWJxt8ltCJabONFRpDFq1A/DP0d0KFj9CTJVM4VA==
-react@^18.0.0:
- version "18.3.1"
- resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891"
- integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==
- dependencies:
- loose-envify "^1.1.0"
-
read-cache@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774"
@@ -8798,7 +8783,7 @@ stringify-object@^3.3.0:
is-obj "^1.0.1"
is-regexp "^1.0.0"
-"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
+"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -8812,13 +8797,6 @@ strip-ansi@^5.2.0:
dependencies:
ansi-regex "^4.1.0"
-strip-ansi@^6.0.0, strip-ansi@^6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
- integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
- dependencies:
- ansi-regex "^5.0.1"
-
strip-ansi@^7.0.1, strip-ansi@^7.1.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
@@ -9623,16 +9601,7 @@ wordwrap@^1.0.0:
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==
-"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
- integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
- dependencies:
- ansi-styles "^4.0.0"
- string-width "^4.1.0"
- strip-ansi "^6.0.0"
-
-wrap-ansi@7.0.0, wrap-ansi@^6.2.0, wrap-ansi@^7.0.0, wrap-ansi@^8.0.1, wrap-ansi@^8.1.0:
+"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@7.0.0, wrap-ansi@^6.2.0, wrap-ansi@^7.0.0, wrap-ansi@^8.0.1, wrap-ansi@^8.1.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==