@_sh/strapi-plugin-ckeditor 5.0.1 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +2 -2
- package/README.md +133 -10
- package/dist/_chunks/{Field-wVg5xgbq.mjs → Field-g8gLpd2N.mjs} +2 -1
- package/dist/_chunks/{Field-BdtPMWJ1.js → Field-kyiYSdM-.js} +2 -1
- package/dist/_chunks/{index-CZRYkPJ8.js → index-lgM3BQrm.js} +39 -42
- package/dist/_chunks/{index-Clyv4ZPF.mjs → index-re_mQliQ.mjs} +41 -44
- package/dist/admin/index.js +4 -1
- package/dist/admin/index.mjs +5 -2
- package/dist/admin/src/config/pluginConfig.d.ts +22 -8
- package/dist/admin/src/config/types.d.ts +2 -1
- package/dist/admin/src/exports.d.ts +1 -1
- package/dist/server/index.js +29 -30
- package/dist/server/index.mjs +29 -30
- package/package.json +29 -30
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c)
|
|
3
|
+
Copyright (c) 2025 nshenderov
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
18
18
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
19
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
20
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -122,10 +122,25 @@ default to the Strapi admin's preferred language. If no preference is set, Engli
|
|
|
122
122
|
|
|
123
123
|
> 💡 It is important to use the content styles on the publishing side of your application. Otherwise, the content will look different in the editor and for your end users. [Follow the documentation](https://ckeditor.com/docs/ckeditor5/latest/getting-started/setup/css.html#styling-the-published-content).
|
|
124
124
|
|
|
125
|
+
> To display content from external sources, such as images or videos, in your admin panel,
|
|
126
|
+
> you need to configure your `middlewares.js` file.
|
|
127
|
+
> [**Check the documentation for details.**](https://docs.strapi.io/dev-docs/configurations/middlewares#security)
|
|
128
|
+
|
|
125
129
|
## <a id="configuration"></a>⚙️ Configuration
|
|
126
130
|
|
|
127
|
-
The plugin configuration must be defined on the front-end.
|
|
128
|
-
|
|
131
|
+
The plugin configuration must be defined on the front-end.
|
|
132
|
+
|
|
133
|
+
The plugin provides a set of functions that allow you to modify the plugin's configuration:
|
|
134
|
+
|
|
135
|
+
```ts
|
|
136
|
+
setPluginConfig(config);
|
|
137
|
+
getPluginPresets();
|
|
138
|
+
getPluginTheme();
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**setPluginConfig**
|
|
142
|
+
|
|
143
|
+
The function, accepts a plugin configuration (`PluginConfig`) that can include an array of presets
|
|
129
144
|
and a theme object:
|
|
130
145
|
|
|
131
146
|
```ts
|
|
@@ -219,6 +234,28 @@ type Theme = {
|
|
|
219
234
|
export type EditorStyles = string | Interpolation<object>[];
|
|
220
235
|
```
|
|
221
236
|
|
|
237
|
+
**getPluginPresets**
|
|
238
|
+
|
|
239
|
+
```ts
|
|
240
|
+
function getPluginPresets(): {
|
|
241
|
+
[key: string]: Preset;
|
|
242
|
+
};
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
Returns `presets` object.
|
|
246
|
+
|
|
247
|
+
- Each property name must match the corresponding preset's name.
|
|
248
|
+
- To extend or modify the options visible in the admin panel's content manager,
|
|
249
|
+
changes must be made before the admin panel's bootstrap lifecycle function.
|
|
250
|
+
|
|
251
|
+
**getPluginTheme**
|
|
252
|
+
|
|
253
|
+
```ts
|
|
254
|
+
function getPluginTheme(): Theme;
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
Returns `theme` object.
|
|
258
|
+
|
|
222
259
|
**Default presets and theme**
|
|
223
260
|
|
|
224
261
|
To simplify the process of defining a new preset, the plugin exports default presets and
|
|
@@ -351,7 +388,7 @@ export type EditorStyles = string | Interpolation<object>[];
|
|
|
351
388
|
### Configuration examples:
|
|
352
389
|
|
|
353
390
|
<details>
|
|
354
|
-
<summary>
|
|
391
|
+
<summary>Setting a new set of presets [JS]</summary>
|
|
355
392
|
|
|
356
393
|
```js
|
|
357
394
|
// src/admin/app.js
|
|
@@ -429,7 +466,7 @@ export default {
|
|
|
429
466
|
</details>
|
|
430
467
|
|
|
431
468
|
<details>
|
|
432
|
-
<summary>
|
|
469
|
+
<summary>Setting a new set of presets [TS]</summary>
|
|
433
470
|
|
|
434
471
|
```ts
|
|
435
472
|
// src/admin/app.tsx
|
|
@@ -513,7 +550,7 @@ export default {
|
|
|
513
550
|
</details>
|
|
514
551
|
|
|
515
552
|
<details>
|
|
516
|
-
<summary>Default presets modification [TS]</summary>
|
|
553
|
+
<summary>Default presets modification using setPluginConfig [TS]</summary>
|
|
517
554
|
|
|
518
555
|
```ts
|
|
519
556
|
// src/admin/app.tsx
|
|
@@ -587,7 +624,67 @@ export default {
|
|
|
587
624
|
</details>
|
|
588
625
|
|
|
589
626
|
<details>
|
|
590
|
-
<summary>
|
|
627
|
+
<summary>Default presets modification using getPluginPresets [TS]</summary>
|
|
628
|
+
|
|
629
|
+
```ts
|
|
630
|
+
// src/admin/app.tsx
|
|
631
|
+
|
|
632
|
+
import { css } from 'styled-components';
|
|
633
|
+
import { getPluginPresets } from '@_sh/strapi-plugin-ckeditor';
|
|
634
|
+
|
|
635
|
+
export default {
|
|
636
|
+
register() {
|
|
637
|
+
const presets = getPluginPresets();
|
|
638
|
+
|
|
639
|
+
presets.defaultHtml.styles = css`
|
|
640
|
+
.ck {
|
|
641
|
+
color: red;
|
|
642
|
+
}
|
|
643
|
+
`;
|
|
644
|
+
|
|
645
|
+
presets.defaultHtml.editorConfig = {
|
|
646
|
+
...presets.defaultHtml.editorConfig,
|
|
647
|
+
placeholder: 'Modified default HTML editor',
|
|
648
|
+
toolbar: [
|
|
649
|
+
'heading',
|
|
650
|
+
'|',
|
|
651
|
+
'bold',
|
|
652
|
+
'italic',
|
|
653
|
+
'link',
|
|
654
|
+
'bulletedList',
|
|
655
|
+
'numberedList',
|
|
656
|
+
'|',
|
|
657
|
+
'strapiMediaLib',
|
|
658
|
+
'insertTable',
|
|
659
|
+
'|',
|
|
660
|
+
'undo',
|
|
661
|
+
'redo',
|
|
662
|
+
],
|
|
663
|
+
};
|
|
664
|
+
|
|
665
|
+
presets.defaultMarkdown = {
|
|
666
|
+
...presets.defaultMarkdown,
|
|
667
|
+
description: 'Modified default Markdown editor',
|
|
668
|
+
styles: css`
|
|
669
|
+
.ck {
|
|
670
|
+
--ck-editor-max-width: 1500px;
|
|
671
|
+
--ck-editor-min-height: 700px;
|
|
672
|
+
--ck-editor-max-height: 700px;
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
.ck.ck-editor__main {
|
|
676
|
+
border: 3px dashed ${({ theme }) => theme.colors.warning500};
|
|
677
|
+
}
|
|
678
|
+
`,
|
|
679
|
+
};
|
|
680
|
+
},
|
|
681
|
+
};
|
|
682
|
+
```
|
|
683
|
+
|
|
684
|
+
</details>
|
|
685
|
+
|
|
686
|
+
<details>
|
|
687
|
+
<summary>Modifying theme using setPluginConfig [TS]</summary>
|
|
591
688
|
|
|
592
689
|
```ts
|
|
593
690
|
// src/admin/app.tsx
|
|
@@ -622,6 +719,36 @@ export default {
|
|
|
622
719
|
|
|
623
720
|
</details>
|
|
624
721
|
|
|
722
|
+
<details>
|
|
723
|
+
<summary>Modifying theme using getPluginTheme [TS]</summary>
|
|
724
|
+
|
|
725
|
+
```ts
|
|
726
|
+
// src/admin/app.tsx
|
|
727
|
+
|
|
728
|
+
import { css } from 'styled-components';
|
|
729
|
+
import { getPluginTheme } from '@_sh/strapi-plugin-ckeditor';
|
|
730
|
+
|
|
731
|
+
export default {
|
|
732
|
+
register() {
|
|
733
|
+
const theme = getPluginTheme();
|
|
734
|
+
|
|
735
|
+
theme.additional = css`
|
|
736
|
+
.ck {
|
|
737
|
+
--ck-editor-max-width: 1500px;
|
|
738
|
+
--ck-editor-min-height: 700px;
|
|
739
|
+
--ck-editor-max-height: 700px;
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
.ck.ck-editor__main {
|
|
743
|
+
border: 3px dashed ${({ theme }) => theme.colors.warning500};
|
|
744
|
+
}
|
|
745
|
+
`;
|
|
746
|
+
},
|
|
747
|
+
};
|
|
748
|
+
```
|
|
749
|
+
|
|
750
|
+
</details>
|
|
751
|
+
|
|
625
752
|
<details>
|
|
626
753
|
<summary>Adding Timestamp plugin [JS]</summary>
|
|
627
754
|
|
|
@@ -673,10 +800,6 @@ export default {
|
|
|
673
800
|
|
|
674
801
|
> 📌 It is highly recommended to explore [**the official CKEditor5 documentation**](https://ckeditor.com/docs/ckeditor5/latest/getting-started/setup/configuration.html).
|
|
675
802
|
|
|
676
|
-
> 💡 To display content from external sources, such as images or videos, in your admin panel,
|
|
677
|
-
> you need to configure your `middlewares.js` file.
|
|
678
|
-
> [**Check the documentation for details.**](https://docs.strapi.io/dev-docs/configurations/middlewares#security)
|
|
679
|
-
|
|
680
803
|
## <a id="contributing"></a>🛠 Contributing
|
|
681
804
|
|
|
682
805
|
Feel free to [fork the repository](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo)
|
|
@@ -6,7 +6,8 @@ import { useStrapiApp, useField } from "@strapi/strapi/admin";
|
|
|
6
6
|
import { ClassicEditor } from "ckeditor5";
|
|
7
7
|
import { CKEditor } from "@ckeditor/ckeditor5-react";
|
|
8
8
|
import "ckeditor5/ckeditor5.css";
|
|
9
|
-
import { g as getPluginConfig, p as prefixFileUrlWithBackendUrl, i as isImageResponsive } from "./index-
|
|
9
|
+
import { g as getPluginConfig, p as prefixFileUrlWithBackendUrl, i as isImageResponsive } from "./index-re_mQliQ.mjs";
|
|
10
|
+
import "sanitize-html";
|
|
10
11
|
import { Collapse, Expand } from "@strapi/icons";
|
|
11
12
|
const STORAGE_KEYS = {
|
|
12
13
|
TOKEN: "jwtToken",
|
|
@@ -30,7 +30,8 @@ const admin = require("@strapi/strapi/admin");
|
|
|
30
30
|
const ckeditor5 = require("ckeditor5");
|
|
31
31
|
const ckeditor5React = require("@ckeditor/ckeditor5-react");
|
|
32
32
|
require("ckeditor5/ckeditor5.css");
|
|
33
|
-
const index = require("./index-
|
|
33
|
+
const index = require("./index-lgM3BQrm.js");
|
|
34
|
+
require("sanitize-html");
|
|
34
35
|
const icons = require("@strapi/icons");
|
|
35
36
|
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
36
37
|
const React__default = /* @__PURE__ */ _interopDefault(React);
|
|
@@ -28,7 +28,7 @@ const yup__namespace = /* @__PURE__ */ _interopNamespace(yup);
|
|
|
28
28
|
const sanitizeHtml__namespace = /* @__PURE__ */ _interopNamespace(sanitizeHtml);
|
|
29
29
|
const cloneDeep__default = /* @__PURE__ */ _interopDefault(cloneDeep);
|
|
30
30
|
const name = "@_sh/strapi-plugin-ckeditor";
|
|
31
|
-
const version = "
|
|
31
|
+
const version = "6.0.0";
|
|
32
32
|
const description = "Integrates CKEditor 5 into your Strapi project as a fully customizable custom field. (Community Edition)";
|
|
33
33
|
const keywords = [
|
|
34
34
|
"strapi",
|
|
@@ -92,41 +92,40 @@ const scripts = {
|
|
|
92
92
|
"release:info": "release-it --changelog"
|
|
93
93
|
};
|
|
94
94
|
const dependencies = {
|
|
95
|
-
"@ckeditor/ckeditor5-react": "
|
|
96
|
-
"@strapi/design-system": "
|
|
97
|
-
"@strapi/icons": "
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
"
|
|
101
|
-
"sanitize-html": "^2.13.1",
|
|
95
|
+
"@ckeditor/ckeditor5-react": "~9.5.0",
|
|
96
|
+
"@strapi/design-system": "2.0.0-rc.18",
|
|
97
|
+
"@strapi/icons": "2.0.0-rc.18",
|
|
98
|
+
ckeditor5: "~45.0.0",
|
|
99
|
+
lodash: "4.17.21",
|
|
100
|
+
"sanitize-html": "2.13.0",
|
|
102
101
|
yup: "0.32.9"
|
|
103
102
|
};
|
|
104
103
|
const devDependencies = {
|
|
105
|
-
"@release-it/conventional-changelog": "
|
|
106
|
-
"@strapi/sdk-plugin": "
|
|
107
|
-
"@strapi/strapi": "
|
|
108
|
-
"@strapi/typescript-utils": "
|
|
104
|
+
"@release-it/conventional-changelog": "10.0.0",
|
|
105
|
+
"@strapi/sdk-plugin": "5.3.2",
|
|
106
|
+
"@strapi/strapi": "5.11.0",
|
|
107
|
+
"@strapi/typescript-utils": "5.11.0",
|
|
109
108
|
"@types/react": "^18.3.12",
|
|
110
109
|
"@types/react-dom": "^18.3.1",
|
|
111
|
-
"@types/sanitize-html": "
|
|
112
|
-
"@typescript-eslint/eslint-plugin": "
|
|
113
|
-
"@typescript-eslint/parser": "
|
|
114
|
-
eslint: "
|
|
115
|
-
"eslint-config-airbnb": "
|
|
116
|
-
"eslint-config-airbnb-typescript": "
|
|
117
|
-
"eslint-config-prettier": "
|
|
118
|
-
"eslint-plugin-import": "
|
|
119
|
-
"eslint-plugin-jsx-a11y": "
|
|
120
|
-
"eslint-plugin-prettier": "
|
|
121
|
-
"eslint-plugin-react": "
|
|
122
|
-
"eslint-plugin-react-hooks": "
|
|
110
|
+
"@types/sanitize-html": "2.13.0",
|
|
111
|
+
"@typescript-eslint/eslint-plugin": "7.0.0",
|
|
112
|
+
"@typescript-eslint/parser": "7.0.0",
|
|
113
|
+
eslint: "8.2.0",
|
|
114
|
+
"eslint-config-airbnb": "19.0.4",
|
|
115
|
+
"eslint-config-airbnb-typescript": "18.0.0",
|
|
116
|
+
"eslint-config-prettier": "9.1.0",
|
|
117
|
+
"eslint-plugin-import": "2.25.3",
|
|
118
|
+
"eslint-plugin-jsx-a11y": "6.10.2",
|
|
119
|
+
"eslint-plugin-prettier": "5.2.1",
|
|
120
|
+
"eslint-plugin-react": "7.28.0",
|
|
121
|
+
"eslint-plugin-react-hooks": "4.3.0",
|
|
123
122
|
prettier: "3.4.0",
|
|
124
|
-
react: "
|
|
125
|
-
"react-dom": "
|
|
126
|
-
"react-router-dom": "
|
|
127
|
-
"release-it": "
|
|
128
|
-
"styled-components": "
|
|
129
|
-
typescript: "
|
|
123
|
+
react: "18.3.1",
|
|
124
|
+
"react-dom": "18.3.1",
|
|
125
|
+
"react-router-dom": "6.30.0",
|
|
126
|
+
"release-it": "18.1.2",
|
|
127
|
+
"styled-components": "6.1.15",
|
|
128
|
+
typescript: "5.6.3"
|
|
130
129
|
};
|
|
131
130
|
const peerDependencies = {
|
|
132
131
|
"@strapi/strapi": "^5.0.0",
|
|
@@ -846,7 +845,7 @@ const editorConfig$1 = {
|
|
|
846
845
|
"alignment",
|
|
847
846
|
{
|
|
848
847
|
label: "Indentation",
|
|
849
|
-
icon: ckeditor5.
|
|
848
|
+
icon: ckeditor5.IconIndent,
|
|
850
849
|
items: ["outdent", "indent"]
|
|
851
850
|
},
|
|
852
851
|
"bulletedList",
|
|
@@ -1192,20 +1191,16 @@ function setPluginConfig(userPluginConfig) {
|
|
|
1192
1191
|
if (userTheme) {
|
|
1193
1192
|
PLUGIN_CONFIG.theme = userTheme;
|
|
1194
1193
|
}
|
|
1195
|
-
|
|
1194
|
+
}
|
|
1195
|
+
function getPluginPresets() {
|
|
1196
|
+
return PLUGIN_CONFIG.presets;
|
|
1197
|
+
}
|
|
1198
|
+
function getPluginTheme() {
|
|
1199
|
+
return PLUGIN_CONFIG.presets;
|
|
1196
1200
|
}
|
|
1197
1201
|
function getPluginConfig() {
|
|
1198
|
-
if (!Object.isFrozen(PLUGIN_CONFIG)) deepFreeze(PLUGIN_CONFIG);
|
|
1199
1202
|
return PLUGIN_CONFIG;
|
|
1200
1203
|
}
|
|
1201
|
-
function deepFreeze(obj) {
|
|
1202
|
-
Object.keys(obj).forEach((p) => {
|
|
1203
|
-
if (typeof obj[p] === "object" && obj[p] !== null && !Object.isFrozen(obj[p])) {
|
|
1204
|
-
deepFreeze(obj[p]);
|
|
1205
|
-
}
|
|
1206
|
-
});
|
|
1207
|
-
return Object.freeze(obj);
|
|
1208
|
-
}
|
|
1209
1204
|
function CKEditorIcon() {
|
|
1210
1205
|
return /* @__PURE__ */ jsxRuntime.jsx(IconBox, { justifyContent: "center", alignItems: "center", width: 7, height: 6, hasRadius: true, "aria-hidden": true, children: /* @__PURE__ */ jsxRuntime.jsx(SvgIcon, {}) });
|
|
1211
1206
|
}
|
|
@@ -1270,7 +1265,7 @@ const index = {
|
|
|
1270
1265
|
defaultMessage: "The advanced rich text editor. (Community Edition)"
|
|
1271
1266
|
},
|
|
1272
1267
|
components: {
|
|
1273
|
-
Input: async () => Promise.resolve().then(() => require("./Field-
|
|
1268
|
+
Input: async () => Promise.resolve().then(() => require("./Field-kyiYSdM-.js")).then((module2) => ({
|
|
1274
1269
|
default: module2.Field
|
|
1275
1270
|
}))
|
|
1276
1271
|
},
|
|
@@ -1344,6 +1339,8 @@ exports.clonedDefaultHtmlPreset = clonedDefaultHtmlPreset;
|
|
|
1344
1339
|
exports.clonedDefaultMarkdownPreset = clonedDefaultMarkdownPreset;
|
|
1345
1340
|
exports.clonedDefaultTheme = clonedDefaultTheme;
|
|
1346
1341
|
exports.getPluginConfig = getPluginConfig;
|
|
1342
|
+
exports.getPluginPresets = getPluginPresets;
|
|
1343
|
+
exports.getPluginTheme = getPluginTheme;
|
|
1347
1344
|
exports.index = index;
|
|
1348
1345
|
exports.isImageResponsive = isImageResponsive;
|
|
1349
1346
|
exports.prefixFileUrlWithBackendUrl = prefixFileUrlWithBackendUrl;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as yup from "yup";
|
|
2
2
|
import { css, styled } from "styled-components";
|
|
3
|
-
import { Plugin, ButtonView, FileRepository, logWarning, Alignment, Autoformat, AutoImage, BalloonToolbar, BlockQuote, Bold, Code, CodeBlock, Essentials, FontBackgroundColor, FontColor, FontFamily, FontSize, GeneralHtmlSupport, Heading, HorizontalLine, HtmlEmbed, Image, ImageCaption, ImageInsert, ImageResize, ImageStyle, ImageToolbar, ImageUpload, Indent, IndentBlock, Italic, List, ListProperties, Link, LinkImage, MediaEmbed, Paragraph, PageBreak, PasteFromOffice, PictureEditing, RemoveFormat, SourceEditing, SpecialCharacters, SpecialCharactersEssentials, Strikethrough, Style, Subscript, Superscript, ShowBlocks, Table, TableCaption, TableCellProperties, TableColumnResize, TableProperties, TableToolbar, TodoList, Underline, WordCount,
|
|
3
|
+
import { Plugin, ButtonView, FileRepository, logWarning, Alignment, Autoformat, AutoImage, BalloonToolbar, BlockQuote, Bold, Code, CodeBlock, Essentials, FontBackgroundColor, FontColor, FontFamily, FontSize, GeneralHtmlSupport, Heading, HorizontalLine, HtmlEmbed, Image, ImageCaption, ImageInsert, ImageResize, ImageStyle, ImageToolbar, ImageUpload, Indent, IndentBlock, Italic, List, ListProperties, Link, LinkImage, MediaEmbed, Paragraph, PageBreak, PasteFromOffice, PictureEditing, RemoveFormat, SourceEditing, SpecialCharacters, SpecialCharactersEssentials, Strikethrough, Style, Subscript, Superscript, ShowBlocks, Table, TableCaption, TableCellProperties, TableColumnResize, TableProperties, TableToolbar, TodoList, Underline, WordCount, IconIndent, Markdown, TextTransformation } from "ckeditor5";
|
|
4
4
|
import * as sanitizeHtml from "sanitize-html";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import { Flex, lightTheme } from "@strapi/design-system";
|
|
7
7
|
import cloneDeep from "lodash/cloneDeep";
|
|
8
8
|
const name = "@_sh/strapi-plugin-ckeditor";
|
|
9
|
-
const version = "
|
|
9
|
+
const version = "6.0.0";
|
|
10
10
|
const description = "Integrates CKEditor 5 into your Strapi project as a fully customizable custom field. (Community Edition)";
|
|
11
11
|
const keywords = [
|
|
12
12
|
"strapi",
|
|
@@ -70,41 +70,40 @@ const scripts = {
|
|
|
70
70
|
"release:info": "release-it --changelog"
|
|
71
71
|
};
|
|
72
72
|
const dependencies = {
|
|
73
|
-
"@ckeditor/ckeditor5-react": "
|
|
74
|
-
"@strapi/design-system": "
|
|
75
|
-
"@strapi/icons": "
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
"
|
|
79
|
-
"sanitize-html": "^2.13.1",
|
|
73
|
+
"@ckeditor/ckeditor5-react": "~9.5.0",
|
|
74
|
+
"@strapi/design-system": "2.0.0-rc.18",
|
|
75
|
+
"@strapi/icons": "2.0.0-rc.18",
|
|
76
|
+
ckeditor5: "~45.0.0",
|
|
77
|
+
lodash: "4.17.21",
|
|
78
|
+
"sanitize-html": "2.13.0",
|
|
80
79
|
yup: "0.32.9"
|
|
81
80
|
};
|
|
82
81
|
const devDependencies = {
|
|
83
|
-
"@release-it/conventional-changelog": "
|
|
84
|
-
"@strapi/sdk-plugin": "
|
|
85
|
-
"@strapi/strapi": "
|
|
86
|
-
"@strapi/typescript-utils": "
|
|
82
|
+
"@release-it/conventional-changelog": "10.0.0",
|
|
83
|
+
"@strapi/sdk-plugin": "5.3.2",
|
|
84
|
+
"@strapi/strapi": "5.11.0",
|
|
85
|
+
"@strapi/typescript-utils": "5.11.0",
|
|
87
86
|
"@types/react": "^18.3.12",
|
|
88
87
|
"@types/react-dom": "^18.3.1",
|
|
89
|
-
"@types/sanitize-html": "
|
|
90
|
-
"@typescript-eslint/eslint-plugin": "
|
|
91
|
-
"@typescript-eslint/parser": "
|
|
92
|
-
eslint: "
|
|
93
|
-
"eslint-config-airbnb": "
|
|
94
|
-
"eslint-config-airbnb-typescript": "
|
|
95
|
-
"eslint-config-prettier": "
|
|
96
|
-
"eslint-plugin-import": "
|
|
97
|
-
"eslint-plugin-jsx-a11y": "
|
|
98
|
-
"eslint-plugin-prettier": "
|
|
99
|
-
"eslint-plugin-react": "
|
|
100
|
-
"eslint-plugin-react-hooks": "
|
|
88
|
+
"@types/sanitize-html": "2.13.0",
|
|
89
|
+
"@typescript-eslint/eslint-plugin": "7.0.0",
|
|
90
|
+
"@typescript-eslint/parser": "7.0.0",
|
|
91
|
+
eslint: "8.2.0",
|
|
92
|
+
"eslint-config-airbnb": "19.0.4",
|
|
93
|
+
"eslint-config-airbnb-typescript": "18.0.0",
|
|
94
|
+
"eslint-config-prettier": "9.1.0",
|
|
95
|
+
"eslint-plugin-import": "2.25.3",
|
|
96
|
+
"eslint-plugin-jsx-a11y": "6.10.2",
|
|
97
|
+
"eslint-plugin-prettier": "5.2.1",
|
|
98
|
+
"eslint-plugin-react": "7.28.0",
|
|
99
|
+
"eslint-plugin-react-hooks": "4.3.0",
|
|
101
100
|
prettier: "3.4.0",
|
|
102
|
-
react: "
|
|
103
|
-
"react-dom": "
|
|
104
|
-
"react-router-dom": "
|
|
105
|
-
"release-it": "
|
|
106
|
-
"styled-components": "
|
|
107
|
-
typescript: "
|
|
101
|
+
react: "18.3.1",
|
|
102
|
+
"react-dom": "18.3.1",
|
|
103
|
+
"react-router-dom": "6.30.0",
|
|
104
|
+
"release-it": "18.1.2",
|
|
105
|
+
"styled-components": "6.1.15",
|
|
106
|
+
typescript: "5.6.3"
|
|
108
107
|
};
|
|
109
108
|
const peerDependencies = {
|
|
110
109
|
"@strapi/strapi": "^5.0.0",
|
|
@@ -824,7 +823,7 @@ const editorConfig$1 = {
|
|
|
824
823
|
"alignment",
|
|
825
824
|
{
|
|
826
825
|
label: "Indentation",
|
|
827
|
-
icon:
|
|
826
|
+
icon: IconIndent,
|
|
828
827
|
items: ["outdent", "indent"]
|
|
829
828
|
},
|
|
830
829
|
"bulletedList",
|
|
@@ -1170,20 +1169,16 @@ function setPluginConfig(userPluginConfig) {
|
|
|
1170
1169
|
if (userTheme) {
|
|
1171
1170
|
PLUGIN_CONFIG.theme = userTheme;
|
|
1172
1171
|
}
|
|
1173
|
-
|
|
1172
|
+
}
|
|
1173
|
+
function getPluginPresets() {
|
|
1174
|
+
return PLUGIN_CONFIG.presets;
|
|
1175
|
+
}
|
|
1176
|
+
function getPluginTheme() {
|
|
1177
|
+
return PLUGIN_CONFIG.presets;
|
|
1174
1178
|
}
|
|
1175
1179
|
function getPluginConfig() {
|
|
1176
|
-
if (!Object.isFrozen(PLUGIN_CONFIG)) deepFreeze(PLUGIN_CONFIG);
|
|
1177
1180
|
return PLUGIN_CONFIG;
|
|
1178
1181
|
}
|
|
1179
|
-
function deepFreeze(obj) {
|
|
1180
|
-
Object.keys(obj).forEach((p) => {
|
|
1181
|
-
if (typeof obj[p] === "object" && obj[p] !== null && !Object.isFrozen(obj[p])) {
|
|
1182
|
-
deepFreeze(obj[p]);
|
|
1183
|
-
}
|
|
1184
|
-
});
|
|
1185
|
-
return Object.freeze(obj);
|
|
1186
|
-
}
|
|
1187
1182
|
function CKEditorIcon() {
|
|
1188
1183
|
return /* @__PURE__ */ jsx(IconBox, { justifyContent: "center", alignItems: "center", width: 7, height: 6, hasRadius: true, "aria-hidden": true, children: /* @__PURE__ */ jsx(SvgIcon, {}) });
|
|
1189
1184
|
}
|
|
@@ -1248,7 +1243,7 @@ const index = {
|
|
|
1248
1243
|
defaultMessage: "The advanced rich text editor. (Community Edition)"
|
|
1249
1244
|
},
|
|
1250
1245
|
components: {
|
|
1251
|
-
Input: async () => import("./Field-
|
|
1246
|
+
Input: async () => import("./Field-g8gLpd2N.mjs").then((module) => ({
|
|
1252
1247
|
default: module.Field
|
|
1253
1248
|
}))
|
|
1254
1249
|
},
|
|
@@ -1322,8 +1317,10 @@ export {
|
|
|
1322
1317
|
clonedDefaultHtmlPreset as b,
|
|
1323
1318
|
clonedDefaultTheme as c,
|
|
1324
1319
|
clonedDefaultMarkdownPreset as d,
|
|
1325
|
-
|
|
1320
|
+
getPluginPresets as e,
|
|
1321
|
+
getPluginTheme as f,
|
|
1326
1322
|
getPluginConfig as g,
|
|
1323
|
+
StrapiUploadAdapter as h,
|
|
1327
1324
|
isImageResponsive as i,
|
|
1328
1325
|
prefixFileUrlWithBackendUrl as p,
|
|
1329
1326
|
setPluginConfig as s
|
package/dist/admin/index.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
require("yup");
|
|
4
|
-
const index = require("../_chunks/index-
|
|
4
|
+
const index = require("../_chunks/index-lgM3BQrm.js");
|
|
5
5
|
require("ckeditor5");
|
|
6
|
+
require("sanitize-html");
|
|
6
7
|
exports.StrapiMediaLib = index.StrapiMediaLib;
|
|
7
8
|
exports.StrapiUploadAdapter = index.StrapiUploadAdapter;
|
|
8
9
|
exports.default = index.index;
|
|
9
10
|
exports.defaultHtmlPreset = index.clonedDefaultHtmlPreset;
|
|
10
11
|
exports.defaultMarkdownPreset = index.clonedDefaultMarkdownPreset;
|
|
11
12
|
exports.defaultTheme = index.clonedDefaultTheme;
|
|
13
|
+
exports.getPluginPresets = index.getPluginPresets;
|
|
14
|
+
exports.getPluginTheme = index.getPluginTheme;
|
|
12
15
|
exports.setPluginConfig = index.setPluginConfig;
|
package/dist/admin/index.mjs
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import "yup";
|
|
2
|
-
import { S,
|
|
2
|
+
import { S, h, a, b, d, c, e, f, s } from "../_chunks/index-re_mQliQ.mjs";
|
|
3
3
|
import "ckeditor5";
|
|
4
|
+
import "sanitize-html";
|
|
4
5
|
export {
|
|
5
6
|
S as StrapiMediaLib,
|
|
6
|
-
|
|
7
|
+
h as StrapiUploadAdapter,
|
|
7
8
|
a as default,
|
|
8
9
|
b as defaultHtmlPreset,
|
|
9
10
|
d as defaultMarkdownPreset,
|
|
10
11
|
c as defaultTheme,
|
|
12
|
+
e as getPluginPresets,
|
|
13
|
+
f as getPluginTheme,
|
|
11
14
|
s as setPluginConfig
|
|
12
15
|
};
|
|
@@ -1,22 +1,36 @@
|
|
|
1
|
-
import type { PluginConfig, UserPluginConfig } from './types';
|
|
1
|
+
import type { PluginConfig, UserPluginConfig, Preset, Theme } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* Sets a configuration for the plugin.
|
|
4
4
|
*
|
|
5
5
|
* @remarks
|
|
6
6
|
*
|
|
7
|
-
* -
|
|
8
|
-
* The
|
|
7
|
+
* - Function must be invoked before the admin panel's bootstrap lifecycle function.
|
|
8
|
+
* The recommended way is to invoke it within the admin panel's register lifecycle function.
|
|
9
9
|
*
|
|
10
10
|
* - Provided properties will overwrite the default configuration values.
|
|
11
11
|
*
|
|
12
|
-
* -
|
|
13
|
-
* modifications.
|
|
14
|
-
*
|
|
15
|
-
* @param userConfig - The plugin configuration object.
|
|
12
|
+
* @param userConfig - Plugin configuration object.
|
|
16
13
|
*/
|
|
17
14
|
export declare function setPluginConfig(userPluginConfig: UserPluginConfig): void;
|
|
18
15
|
/**
|
|
19
|
-
*
|
|
16
|
+
* Returns the presets object.
|
|
17
|
+
*
|
|
18
|
+
* @remarks
|
|
19
|
+
*
|
|
20
|
+
* - Each property name must match the corresponding preset's name.
|
|
21
|
+
*
|
|
22
|
+
* - To extend or modify the options visible in the admin panel's content manager,
|
|
23
|
+
* changes must be made before the admin panel's bootstrap lifecycle function.
|
|
24
|
+
*
|
|
25
|
+
*/
|
|
26
|
+
export declare function getPluginPresets(): Record<string, Preset>;
|
|
27
|
+
/**
|
|
28
|
+
* Returns the theme object.
|
|
29
|
+
*
|
|
30
|
+
*/
|
|
31
|
+
export declare function getPluginTheme(): Theme;
|
|
32
|
+
/**
|
|
33
|
+
* Retrieves current plugin configuration.
|
|
20
34
|
*
|
|
21
35
|
* @internal
|
|
22
36
|
*/
|
|
@@ -120,4 +120,5 @@ export type Preset = {
|
|
|
120
120
|
*
|
|
121
121
|
* @see {@link https://ckeditor.com/docs/ckeditor5/latest/getting-started/setup/configuration.html | CKEditor documentation}
|
|
122
122
|
*/
|
|
123
|
-
export
|
|
123
|
+
export interface EditorConfig extends CKE5EditorConfig {
|
|
124
|
+
}
|
|
@@ -5,5 +5,5 @@ export { clonedDefaultTheme as defaultTheme };
|
|
|
5
5
|
export { clonedDefaultHtmlPreset as defaultHtmlPreset };
|
|
6
6
|
export { clonedDefaultMarkdownPreset as defaultMarkdownPreset };
|
|
7
7
|
export type { UserPluginConfig as PluginConfig, EditorConfig, Preset, Theme, EditorStyles, } from './config/types';
|
|
8
|
-
export { setPluginConfig } from './config';
|
|
8
|
+
export { setPluginConfig, getPluginPresets, getPluginTheme } from './config';
|
|
9
9
|
export { StrapiMediaLib, StrapiUploadAdapter } from './plugins';
|
package/dist/server/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const name = "@_sh/strapi-plugin-ckeditor";
|
|
3
|
-
const version = "
|
|
3
|
+
const version = "6.0.0";
|
|
4
4
|
const description = "Integrates CKEditor 5 into your Strapi project as a fully customizable custom field. (Community Edition)";
|
|
5
5
|
const keywords = [
|
|
6
6
|
"strapi",
|
|
@@ -64,41 +64,40 @@ const scripts = {
|
|
|
64
64
|
"release:info": "release-it --changelog"
|
|
65
65
|
};
|
|
66
66
|
const dependencies = {
|
|
67
|
-
"@ckeditor/ckeditor5-react": "
|
|
68
|
-
"@strapi/design-system": "
|
|
69
|
-
"@strapi/icons": "
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
"
|
|
73
|
-
"sanitize-html": "^2.13.1",
|
|
67
|
+
"@ckeditor/ckeditor5-react": "~9.5.0",
|
|
68
|
+
"@strapi/design-system": "2.0.0-rc.18",
|
|
69
|
+
"@strapi/icons": "2.0.0-rc.18",
|
|
70
|
+
ckeditor5: "~45.0.0",
|
|
71
|
+
lodash: "4.17.21",
|
|
72
|
+
"sanitize-html": "2.13.0",
|
|
74
73
|
yup: "0.32.9"
|
|
75
74
|
};
|
|
76
75
|
const devDependencies = {
|
|
77
|
-
"@release-it/conventional-changelog": "
|
|
78
|
-
"@strapi/sdk-plugin": "
|
|
79
|
-
"@strapi/strapi": "
|
|
80
|
-
"@strapi/typescript-utils": "
|
|
76
|
+
"@release-it/conventional-changelog": "10.0.0",
|
|
77
|
+
"@strapi/sdk-plugin": "5.3.2",
|
|
78
|
+
"@strapi/strapi": "5.11.0",
|
|
79
|
+
"@strapi/typescript-utils": "5.11.0",
|
|
81
80
|
"@types/react": "^18.3.12",
|
|
82
81
|
"@types/react-dom": "^18.3.1",
|
|
83
|
-
"@types/sanitize-html": "
|
|
84
|
-
"@typescript-eslint/eslint-plugin": "
|
|
85
|
-
"@typescript-eslint/parser": "
|
|
86
|
-
eslint: "
|
|
87
|
-
"eslint-config-airbnb": "
|
|
88
|
-
"eslint-config-airbnb-typescript": "
|
|
89
|
-
"eslint-config-prettier": "
|
|
90
|
-
"eslint-plugin-import": "
|
|
91
|
-
"eslint-plugin-jsx-a11y": "
|
|
92
|
-
"eslint-plugin-prettier": "
|
|
93
|
-
"eslint-plugin-react": "
|
|
94
|
-
"eslint-plugin-react-hooks": "
|
|
82
|
+
"@types/sanitize-html": "2.13.0",
|
|
83
|
+
"@typescript-eslint/eslint-plugin": "7.0.0",
|
|
84
|
+
"@typescript-eslint/parser": "7.0.0",
|
|
85
|
+
eslint: "8.2.0",
|
|
86
|
+
"eslint-config-airbnb": "19.0.4",
|
|
87
|
+
"eslint-config-airbnb-typescript": "18.0.0",
|
|
88
|
+
"eslint-config-prettier": "9.1.0",
|
|
89
|
+
"eslint-plugin-import": "2.25.3",
|
|
90
|
+
"eslint-plugin-jsx-a11y": "6.10.2",
|
|
91
|
+
"eslint-plugin-prettier": "5.2.1",
|
|
92
|
+
"eslint-plugin-react": "7.28.0",
|
|
93
|
+
"eslint-plugin-react-hooks": "4.3.0",
|
|
95
94
|
prettier: "3.4.0",
|
|
96
|
-
react: "
|
|
97
|
-
"react-dom": "
|
|
98
|
-
"react-router-dom": "
|
|
99
|
-
"release-it": "
|
|
100
|
-
"styled-components": "
|
|
101
|
-
typescript: "
|
|
95
|
+
react: "18.3.1",
|
|
96
|
+
"react-dom": "18.3.1",
|
|
97
|
+
"react-router-dom": "6.30.0",
|
|
98
|
+
"release-it": "18.1.2",
|
|
99
|
+
"styled-components": "6.1.15",
|
|
100
|
+
typescript: "5.6.3"
|
|
102
101
|
};
|
|
103
102
|
const peerDependencies = {
|
|
104
103
|
"@strapi/strapi": "^5.0.0",
|
package/dist/server/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const name = "@_sh/strapi-plugin-ckeditor";
|
|
2
|
-
const version = "
|
|
2
|
+
const version = "6.0.0";
|
|
3
3
|
const description = "Integrates CKEditor 5 into your Strapi project as a fully customizable custom field. (Community Edition)";
|
|
4
4
|
const keywords = [
|
|
5
5
|
"strapi",
|
|
@@ -63,41 +63,40 @@ const scripts = {
|
|
|
63
63
|
"release:info": "release-it --changelog"
|
|
64
64
|
};
|
|
65
65
|
const dependencies = {
|
|
66
|
-
"@ckeditor/ckeditor5-react": "
|
|
67
|
-
"@strapi/design-system": "
|
|
68
|
-
"@strapi/icons": "
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
"
|
|
72
|
-
"sanitize-html": "^2.13.1",
|
|
66
|
+
"@ckeditor/ckeditor5-react": "~9.5.0",
|
|
67
|
+
"@strapi/design-system": "2.0.0-rc.18",
|
|
68
|
+
"@strapi/icons": "2.0.0-rc.18",
|
|
69
|
+
ckeditor5: "~45.0.0",
|
|
70
|
+
lodash: "4.17.21",
|
|
71
|
+
"sanitize-html": "2.13.0",
|
|
73
72
|
yup: "0.32.9"
|
|
74
73
|
};
|
|
75
74
|
const devDependencies = {
|
|
76
|
-
"@release-it/conventional-changelog": "
|
|
77
|
-
"@strapi/sdk-plugin": "
|
|
78
|
-
"@strapi/strapi": "
|
|
79
|
-
"@strapi/typescript-utils": "
|
|
75
|
+
"@release-it/conventional-changelog": "10.0.0",
|
|
76
|
+
"@strapi/sdk-plugin": "5.3.2",
|
|
77
|
+
"@strapi/strapi": "5.11.0",
|
|
78
|
+
"@strapi/typescript-utils": "5.11.0",
|
|
80
79
|
"@types/react": "^18.3.12",
|
|
81
80
|
"@types/react-dom": "^18.3.1",
|
|
82
|
-
"@types/sanitize-html": "
|
|
83
|
-
"@typescript-eslint/eslint-plugin": "
|
|
84
|
-
"@typescript-eslint/parser": "
|
|
85
|
-
eslint: "
|
|
86
|
-
"eslint-config-airbnb": "
|
|
87
|
-
"eslint-config-airbnb-typescript": "
|
|
88
|
-
"eslint-config-prettier": "
|
|
89
|
-
"eslint-plugin-import": "
|
|
90
|
-
"eslint-plugin-jsx-a11y": "
|
|
91
|
-
"eslint-plugin-prettier": "
|
|
92
|
-
"eslint-plugin-react": "
|
|
93
|
-
"eslint-plugin-react-hooks": "
|
|
81
|
+
"@types/sanitize-html": "2.13.0",
|
|
82
|
+
"@typescript-eslint/eslint-plugin": "7.0.0",
|
|
83
|
+
"@typescript-eslint/parser": "7.0.0",
|
|
84
|
+
eslint: "8.2.0",
|
|
85
|
+
"eslint-config-airbnb": "19.0.4",
|
|
86
|
+
"eslint-config-airbnb-typescript": "18.0.0",
|
|
87
|
+
"eslint-config-prettier": "9.1.0",
|
|
88
|
+
"eslint-plugin-import": "2.25.3",
|
|
89
|
+
"eslint-plugin-jsx-a11y": "6.10.2",
|
|
90
|
+
"eslint-plugin-prettier": "5.2.1",
|
|
91
|
+
"eslint-plugin-react": "7.28.0",
|
|
92
|
+
"eslint-plugin-react-hooks": "4.3.0",
|
|
94
93
|
prettier: "3.4.0",
|
|
95
|
-
react: "
|
|
96
|
-
"react-dom": "
|
|
97
|
-
"react-router-dom": "
|
|
98
|
-
"release-it": "
|
|
99
|
-
"styled-components": "
|
|
100
|
-
typescript: "
|
|
94
|
+
react: "18.3.1",
|
|
95
|
+
"react-dom": "18.3.1",
|
|
96
|
+
"react-router-dom": "6.30.0",
|
|
97
|
+
"release-it": "18.1.2",
|
|
98
|
+
"styled-components": "6.1.15",
|
|
99
|
+
typescript: "5.6.3"
|
|
101
100
|
};
|
|
102
101
|
const peerDependencies = {
|
|
103
102
|
"@strapi/strapi": "^5.0.0",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@_sh/strapi-plugin-ckeditor",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0",
|
|
4
4
|
"description": "Integrates CKEditor 5 into your Strapi project as a fully customizable custom field. (Community Edition)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"strapi",
|
|
@@ -64,41 +64,40 @@
|
|
|
64
64
|
"release:info": "release-it --changelog"
|
|
65
65
|
},
|
|
66
66
|
"dependencies": {
|
|
67
|
-
"@ckeditor/ckeditor5-react": "
|
|
68
|
-
"@strapi/design-system": "
|
|
69
|
-
"@strapi/icons": "
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"sanitize-html": "^2.13.1",
|
|
67
|
+
"@ckeditor/ckeditor5-react": "~9.5.0",
|
|
68
|
+
"@strapi/design-system": "2.0.0-rc.18",
|
|
69
|
+
"@strapi/icons": "2.0.0-rc.18",
|
|
70
|
+
"ckeditor5": "~45.0.0",
|
|
71
|
+
"lodash": "4.17.21",
|
|
72
|
+
"sanitize-html": "2.13.0",
|
|
74
73
|
"yup": "0.32.9"
|
|
75
74
|
},
|
|
76
75
|
"devDependencies": {
|
|
77
|
-
"@release-it/conventional-changelog": "
|
|
78
|
-
"@strapi/sdk-plugin": "
|
|
79
|
-
"@strapi/strapi": "
|
|
80
|
-
"@strapi/typescript-utils": "
|
|
76
|
+
"@release-it/conventional-changelog": "10.0.0",
|
|
77
|
+
"@strapi/sdk-plugin": "5.3.2",
|
|
78
|
+
"@strapi/strapi": "5.11.0",
|
|
79
|
+
"@strapi/typescript-utils": "5.11.0",
|
|
81
80
|
"@types/react": "^18.3.12",
|
|
82
81
|
"@types/react-dom": "^18.3.1",
|
|
83
|
-
"@types/sanitize-html": "
|
|
84
|
-
"@typescript-eslint/eslint-plugin": "
|
|
85
|
-
"@typescript-eslint/parser": "
|
|
86
|
-
"eslint": "
|
|
87
|
-
"eslint-config-airbnb": "
|
|
88
|
-
"eslint-config-airbnb-typescript": "
|
|
89
|
-
"eslint-config-prettier": "
|
|
90
|
-
"eslint-plugin-import": "
|
|
91
|
-
"eslint-plugin-jsx-a11y": "
|
|
92
|
-
"eslint-plugin-prettier": "
|
|
93
|
-
"eslint-plugin-react": "
|
|
94
|
-
"eslint-plugin-react-hooks": "
|
|
82
|
+
"@types/sanitize-html": "2.13.0",
|
|
83
|
+
"@typescript-eslint/eslint-plugin": "7.0.0",
|
|
84
|
+
"@typescript-eslint/parser": "7.0.0",
|
|
85
|
+
"eslint": "8.2.0",
|
|
86
|
+
"eslint-config-airbnb": "19.0.4",
|
|
87
|
+
"eslint-config-airbnb-typescript": "18.0.0",
|
|
88
|
+
"eslint-config-prettier": "9.1.0",
|
|
89
|
+
"eslint-plugin-import": "2.25.3",
|
|
90
|
+
"eslint-plugin-jsx-a11y": "6.10.2",
|
|
91
|
+
"eslint-plugin-prettier": "5.2.1",
|
|
92
|
+
"eslint-plugin-react": "7.28.0",
|
|
93
|
+
"eslint-plugin-react-hooks": "4.3.0",
|
|
95
94
|
"prettier": "3.4.0",
|
|
96
|
-
"react": "
|
|
97
|
-
"react-dom": "
|
|
98
|
-
"react-router-dom": "
|
|
99
|
-
"release-it": "
|
|
100
|
-
"styled-components": "
|
|
101
|
-
"typescript": "
|
|
95
|
+
"react": "18.3.1",
|
|
96
|
+
"react-dom": "18.3.1",
|
|
97
|
+
"react-router-dom": "6.30.0",
|
|
98
|
+
"release-it": "18.1.2",
|
|
99
|
+
"styled-components": "6.1.15",
|
|
100
|
+
"typescript": "5.6.3"
|
|
102
101
|
},
|
|
103
102
|
"peerDependencies": {
|
|
104
103
|
"@strapi/strapi": "^5.0.0",
|