@_sh/strapi-plugin-ckeditor 7.0.0 → 7.1.1
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/dist/_chunks/{Field-SB2kmV75.mjs → Field-CmFipUw8.mjs} +45 -17
- package/dist/_chunks/{Field-D_sK_Mfq.js → Field-DXPrjUnm.js} +44 -16
- package/dist/_chunks/{index-V5z1nLLU.js → index-Db6yDUsF.js} +177 -151
- package/dist/_chunks/{index-D6brYb_3.mjs → index-Hsx0G4L9.mjs} +176 -150
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/src/hooks/useGlobalStyles.d.ts +1 -0
- package/dist/admin/src/index.d.ts +1 -0
- package/dist/admin/src/styled.d.ts +5 -0
- package/dist/server/index.js +4 -4
- package/dist/server/index.mjs +4 -4
- package/package.json +4 -4
- package/dist/admin/src/components/GlobalStyling.d.ts +0 -4
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
2
|
import React, { createContext, useContext, useState, useEffect, useMemo, useRef, useCallback, useImperativeHandle } from "react";
|
|
3
3
|
import { Flex, IconButton, Modal, Field as Field$1, Loader, Box } from "@strapi/design-system";
|
|
4
|
-
import { styled, css,
|
|
4
|
+
import { styled, css, useTheme } from "styled-components";
|
|
5
5
|
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-Hsx0G4L9.mjs";
|
|
10
10
|
import "sanitize-html";
|
|
11
11
|
import { Collapse, Expand } from "@strapi/icons";
|
|
12
12
|
const STORAGE_KEYS = {
|
|
@@ -549,29 +549,57 @@ const Content = styled(Modal.Content)`
|
|
|
549
549
|
width: unset;
|
|
550
550
|
overflow: visible;
|
|
551
551
|
`;
|
|
552
|
-
|
|
553
|
-
${({ $editortTheme, $variant }) => $editortTheme && css`
|
|
554
|
-
${$editortTheme.common}
|
|
555
|
-
${$editortTheme[$variant]}
|
|
556
|
-
${$editortTheme.additional}
|
|
557
|
-
`}
|
|
558
|
-
`;
|
|
552
|
+
let styleElement = null;
|
|
559
553
|
const getSystemColorScheme = () => window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
560
|
-
function
|
|
561
|
-
|
|
554
|
+
function flattenCSS(styles, theme) {
|
|
555
|
+
if (styles == null || styles === false) return "";
|
|
556
|
+
if (typeof styles === "string") {
|
|
557
|
+
return styles;
|
|
558
|
+
}
|
|
559
|
+
if (typeof styles === "number") {
|
|
560
|
+
return String(styles);
|
|
561
|
+
}
|
|
562
|
+
if (typeof styles === "function") {
|
|
563
|
+
return flattenCSS(styles({ theme }), theme);
|
|
564
|
+
}
|
|
565
|
+
if (Array.isArray(styles)) {
|
|
566
|
+
return styles.map((part) => flattenCSS(part, theme)).join("");
|
|
567
|
+
}
|
|
568
|
+
return "";
|
|
569
|
+
}
|
|
570
|
+
function buildCSS(pluginTheme, strapiTheme) {
|
|
562
571
|
const profileTheme = getProfileTheme();
|
|
563
572
|
const variant = profileTheme && profileTheme !== "system" ? profileTheme : getSystemColorScheme();
|
|
564
|
-
return
|
|
573
|
+
return [
|
|
574
|
+
flattenCSS(pluginTheme.common, strapiTheme),
|
|
575
|
+
flattenCSS(pluginTheme[variant], strapiTheme),
|
|
576
|
+
flattenCSS(pluginTheme.additional, strapiTheme)
|
|
577
|
+
].join("\n");
|
|
578
|
+
}
|
|
579
|
+
function injectStyles(strapiTheme) {
|
|
580
|
+
const { theme } = getPluginConfig();
|
|
581
|
+
const cssText = buildCSS(theme, strapiTheme);
|
|
582
|
+
if (!styleElement) {
|
|
583
|
+
styleElement = document.createElement("style");
|
|
584
|
+
styleElement.id = "ck-editor-global-styles";
|
|
585
|
+
document.head.appendChild(styleElement);
|
|
586
|
+
}
|
|
587
|
+
if (styleElement.textContent !== cssText) {
|
|
588
|
+
styleElement.textContent = cssText;
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
function useGlobalStyles() {
|
|
592
|
+
const strapiTheme = useTheme();
|
|
593
|
+
useEffect(() => {
|
|
594
|
+
injectStyles(strapiTheme);
|
|
595
|
+
}, [strapiTheme]);
|
|
565
596
|
}
|
|
566
|
-
const MemoizedGlobalStyling = React.memo(GlobalStyling);
|
|
567
597
|
const Editor = React.forwardRef((_, forwardedRef) => {
|
|
568
598
|
const { name, hint, required, labelAction, label, error, preset } = useEditorContext();
|
|
599
|
+
useGlobalStyles();
|
|
569
600
|
return /* @__PURE__ */ jsx(Field$1.Root, { id: name, name, error, hint, required, children: /* @__PURE__ */ jsxs(Flex, { direction: "column", alignItems: "stretch", gap: 1, children: [
|
|
570
601
|
/* @__PURE__ */ jsx(Field$1.Label, { action: labelAction, children: label }),
|
|
571
|
-
preset ? /* @__PURE__ */
|
|
572
|
-
/* @__PURE__ */ jsx(MemoizedGlobalStyling, {}),
|
|
573
|
-
/* @__PURE__ */ jsx(EditorLayout, { children: /* @__PURE__ */ jsx(CKEReact, { ref: forwardedRef }) })
|
|
574
|
-
] }) : /* @__PURE__ */ jsx(LoaderBox, { hasRadius: true, background: "neutral100", children: /* @__PURE__ */ jsx(Loader, { children: "Loading..." }) }),
|
|
602
|
+
preset ? /* @__PURE__ */ jsx(EditorLayout, { children: /* @__PURE__ */ jsx(CKEReact, { ref: forwardedRef }) }) : /* @__PURE__ */ jsx(LoaderBox, { hasRadius: true, background: "neutral100", children: /* @__PURE__ */ jsx(Loader, { children: "Loading..." }) }),
|
|
575
603
|
/* @__PURE__ */ jsx(Field$1.Hint, {}),
|
|
576
604
|
/* @__PURE__ */ jsx(Field$1.Error, {})
|
|
577
605
|
] }) });
|
|
@@ -30,7 +30,7 @@ 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-Db6yDUsF.js");
|
|
34
34
|
require("sanitize-html");
|
|
35
35
|
const icons = require("@strapi/icons");
|
|
36
36
|
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
@@ -575,29 +575,57 @@ const Content = styledComponents.styled(designSystem.Modal.Content)`
|
|
|
575
575
|
width: unset;
|
|
576
576
|
overflow: visible;
|
|
577
577
|
`;
|
|
578
|
-
|
|
579
|
-
${({ $editortTheme, $variant }) => $editortTheme && styledComponents.css`
|
|
580
|
-
${$editortTheme.common}
|
|
581
|
-
${$editortTheme[$variant]}
|
|
582
|
-
${$editortTheme.additional}
|
|
583
|
-
`}
|
|
584
|
-
`;
|
|
578
|
+
let styleElement = null;
|
|
585
579
|
const getSystemColorScheme = () => window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
|
|
586
|
-
function
|
|
587
|
-
|
|
580
|
+
function flattenCSS(styles, theme) {
|
|
581
|
+
if (styles == null || styles === false) return "";
|
|
582
|
+
if (typeof styles === "string") {
|
|
583
|
+
return styles;
|
|
584
|
+
}
|
|
585
|
+
if (typeof styles === "number") {
|
|
586
|
+
return String(styles);
|
|
587
|
+
}
|
|
588
|
+
if (typeof styles === "function") {
|
|
589
|
+
return flattenCSS(styles({ theme }), theme);
|
|
590
|
+
}
|
|
591
|
+
if (Array.isArray(styles)) {
|
|
592
|
+
return styles.map((part) => flattenCSS(part, theme)).join("");
|
|
593
|
+
}
|
|
594
|
+
return "";
|
|
595
|
+
}
|
|
596
|
+
function buildCSS(pluginTheme, strapiTheme) {
|
|
588
597
|
const profileTheme = getProfileTheme();
|
|
589
598
|
const variant = profileTheme && profileTheme !== "system" ? profileTheme : getSystemColorScheme();
|
|
590
|
-
return
|
|
599
|
+
return [
|
|
600
|
+
flattenCSS(pluginTheme.common, strapiTheme),
|
|
601
|
+
flattenCSS(pluginTheme[variant], strapiTheme),
|
|
602
|
+
flattenCSS(pluginTheme.additional, strapiTheme)
|
|
603
|
+
].join("\n");
|
|
604
|
+
}
|
|
605
|
+
function injectStyles(strapiTheme) {
|
|
606
|
+
const { theme } = index.getPluginConfig();
|
|
607
|
+
const cssText = buildCSS(theme, strapiTheme);
|
|
608
|
+
if (!styleElement) {
|
|
609
|
+
styleElement = document.createElement("style");
|
|
610
|
+
styleElement.id = "ck-editor-global-styles";
|
|
611
|
+
document.head.appendChild(styleElement);
|
|
612
|
+
}
|
|
613
|
+
if (styleElement.textContent !== cssText) {
|
|
614
|
+
styleElement.textContent = cssText;
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
function useGlobalStyles() {
|
|
618
|
+
const strapiTheme = styledComponents.useTheme();
|
|
619
|
+
React.useEffect(() => {
|
|
620
|
+
injectStyles(strapiTheme);
|
|
621
|
+
}, [strapiTheme]);
|
|
591
622
|
}
|
|
592
|
-
const MemoizedGlobalStyling = React__default.default.memo(GlobalStyling);
|
|
593
623
|
const Editor = React__default.default.forwardRef((_, forwardedRef) => {
|
|
594
624
|
const { name, hint, required, labelAction, label, error, preset } = useEditorContext();
|
|
625
|
+
useGlobalStyles();
|
|
595
626
|
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Root, { id: name, name, error, hint, required, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 1, children: [
|
|
596
627
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { action: labelAction, children: label }),
|
|
597
|
-
preset ? /* @__PURE__ */ jsxRuntime.
|
|
598
|
-
/* @__PURE__ */ jsxRuntime.jsx(MemoizedGlobalStyling, {}),
|
|
599
|
-
/* @__PURE__ */ jsxRuntime.jsx(EditorLayout, { children: /* @__PURE__ */ jsxRuntime.jsx(CKEReact, { ref: forwardedRef }) })
|
|
600
|
-
] }) : /* @__PURE__ */ jsxRuntime.jsx(LoaderBox, { hasRadius: true, background: "neutral100", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Loader, { children: "Loading..." }) }),
|
|
628
|
+
preset ? /* @__PURE__ */ jsxRuntime.jsx(EditorLayout, { children: /* @__PURE__ */ jsxRuntime.jsx(CKEReact, { ref: forwardedRef }) }) : /* @__PURE__ */ jsxRuntime.jsx(LoaderBox, { hasRadius: true, background: "neutral100", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Loader, { children: "Loading..." }) }),
|
|
601
629
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {}),
|
|
602
630
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Error, {})
|
|
603
631
|
] }) });
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const yup = require("yup");
|
|
3
|
+
const cloneDeep = require("lodash/cloneDeep");
|
|
3
4
|
const styledComponents = require("styled-components");
|
|
4
5
|
const ckeditor5 = require("ckeditor5");
|
|
5
6
|
const sanitizeHtml = require("sanitize-html");
|
|
6
7
|
const jsxRuntime = require("react/jsx-runtime");
|
|
7
8
|
const designSystem = require("@strapi/design-system");
|
|
8
|
-
const cloneDeep = require("lodash/cloneDeep");
|
|
9
9
|
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
10
10
|
function _interopNamespace(e) {
|
|
11
11
|
if (e && e.__esModule) return e;
|
|
@@ -25,150 +25,8 @@ function _interopNamespace(e) {
|
|
|
25
25
|
return Object.freeze(n);
|
|
26
26
|
}
|
|
27
27
|
const yup__namespace = /* @__PURE__ */ _interopNamespace(yup);
|
|
28
|
-
const sanitizeHtml__namespace = /* @__PURE__ */ _interopNamespace(sanitizeHtml);
|
|
29
28
|
const cloneDeep__default = /* @__PURE__ */ _interopDefault(cloneDeep);
|
|
30
|
-
const
|
|
31
|
-
const version = "7.0.0";
|
|
32
|
-
const description = "Integrates CKEditor 5 into your Strapi project as a fully customizable custom field. (Community Edition)";
|
|
33
|
-
const keywords = [
|
|
34
|
-
"strapi",
|
|
35
|
-
"ckeditor",
|
|
36
|
-
"ckeditor5",
|
|
37
|
-
"ckeditor 5",
|
|
38
|
-
"wysiwyg",
|
|
39
|
-
"rich text",
|
|
40
|
-
"editor"
|
|
41
|
-
];
|
|
42
|
-
const author = {
|
|
43
|
-
name: "nshenderov"
|
|
44
|
-
};
|
|
45
|
-
const homepage = "https://market.strapi.io/plugins/@_sh-strapi-plugin-ckeditor";
|
|
46
|
-
const repository = {
|
|
47
|
-
type: "git",
|
|
48
|
-
url: "https://github.com/nshenderov/strapi-plugin-ckeditor.git"
|
|
49
|
-
};
|
|
50
|
-
const strapi = {
|
|
51
|
-
name: "ckeditor5",
|
|
52
|
-
displayName: "CKEditor 5",
|
|
53
|
-
description: "Integrates CKEditor 5 into your Strapi project as a fully customizable custom field. (Community Edition)",
|
|
54
|
-
kind: "plugin"
|
|
55
|
-
};
|
|
56
|
-
const type = "commonjs";
|
|
57
|
-
const exports$1 = {
|
|
58
|
-
"./package.json": "./package.json",
|
|
59
|
-
".": {
|
|
60
|
-
types: "./dist/admin/src/index.d.ts",
|
|
61
|
-
source: "./admin/src/index.ts",
|
|
62
|
-
"import": "./dist/admin/index.mjs",
|
|
63
|
-
require: "./dist/admin/index.js",
|
|
64
|
-
"default": "./dist/admin/index.js"
|
|
65
|
-
},
|
|
66
|
-
"./strapi-admin": {
|
|
67
|
-
types: "./dist/admin/src/index.d.ts",
|
|
68
|
-
source: "./admin/src/index.ts",
|
|
69
|
-
"import": "./dist/admin/index.mjs",
|
|
70
|
-
require: "./dist/admin/index.js",
|
|
71
|
-
"default": "./dist/admin/index.js"
|
|
72
|
-
},
|
|
73
|
-
"./strapi-server": {
|
|
74
|
-
types: "./dist/server/src/index.d.ts",
|
|
75
|
-
source: "./server/src/index.ts",
|
|
76
|
-
"import": "./dist/server/index.mjs",
|
|
77
|
-
require: "./dist/server/index.js",
|
|
78
|
-
"default": "./dist/server/index.js"
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
const files = [
|
|
82
|
-
"dist"
|
|
83
|
-
];
|
|
84
|
-
const scripts = {
|
|
85
|
-
build: "strapi-plugin build",
|
|
86
|
-
watch: "strapi-plugin watch",
|
|
87
|
-
"watch:link": "strapi-plugin watch:link",
|
|
88
|
-
verify: "strapi-plugin verify",
|
|
89
|
-
"test:ts:front": "run -T tsc -p admin/tsconfig.json",
|
|
90
|
-
"test:ts:back": "run -T tsc -p server/tsconfig.json",
|
|
91
|
-
release: "release-it",
|
|
92
|
-
"release:info": "release-it --changelog",
|
|
93
|
-
"lint:ts": "eslint . --ext ts,tsx --report-unused-disable-directives",
|
|
94
|
-
"lint:ts:fix": "eslint . --ext ts,tsx --report-unused-disable-directives --fix"
|
|
95
|
-
};
|
|
96
|
-
const dependencies = {
|
|
97
|
-
"@ckeditor/ckeditor5-react": "~11.0.1",
|
|
98
|
-
"@strapi/design-system": "2.1.2",
|
|
99
|
-
"@strapi/icons": "2.1.2",
|
|
100
|
-
ckeditor5: "~47.4.0",
|
|
101
|
-
lodash: "4.17.21",
|
|
102
|
-
"sanitize-html": "2.13.0",
|
|
103
|
-
yup: "0.32.9"
|
|
104
|
-
};
|
|
105
|
-
const devDependencies = {
|
|
106
|
-
"@release-it/conventional-changelog": "10.0.0",
|
|
107
|
-
"@strapi/sdk-plugin": "5.4.0",
|
|
108
|
-
"@strapi/strapi": "5.33.4",
|
|
109
|
-
"@strapi/typescript-utils": "5.33.4",
|
|
110
|
-
"@types/react": "^18.0.0",
|
|
111
|
-
"@types/react-dom": "^18.0.0",
|
|
112
|
-
"@types/sanitize-html": "^2.13.0",
|
|
113
|
-
"@typescript-eslint/eslint-plugin": "^7.0.0",
|
|
114
|
-
"@typescript-eslint/parser": "^7.0.0",
|
|
115
|
-
eslint: "^8.2.0",
|
|
116
|
-
"eslint-config-airbnb": "^19.0.4",
|
|
117
|
-
"eslint-config-airbnb-typescript": "^18.0.0",
|
|
118
|
-
"eslint-config-prettier": "^9.1.0",
|
|
119
|
-
"eslint-plugin-import": "^2.25.3",
|
|
120
|
-
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
121
|
-
"eslint-plugin-prettier": "^5.2.1",
|
|
122
|
-
"eslint-plugin-react": "^7.28.0",
|
|
123
|
-
"eslint-plugin-react-hooks": "^4.3.0",
|
|
124
|
-
prettier: "^3.4.0",
|
|
125
|
-
"release-it": "^18.1.2",
|
|
126
|
-
typescript: "5.6.3",
|
|
127
|
-
react: "^18.0.0",
|
|
128
|
-
"react-dom": "^18.0.0",
|
|
129
|
-
"react-router-dom": "^6.0.0",
|
|
130
|
-
"styled-components": "^6.0.0"
|
|
131
|
-
};
|
|
132
|
-
const peerDependencies = {
|
|
133
|
-
"@strapi/strapi": "^5.0.0",
|
|
134
|
-
react: "^18.0.0",
|
|
135
|
-
"react-dom": "^18.0.0",
|
|
136
|
-
"react-router-dom": "^6.0.0",
|
|
137
|
-
"styled-components": "^6.0.0"
|
|
138
|
-
};
|
|
139
|
-
const engines = {
|
|
140
|
-
node: ">=20.0.0 <=24.x.x",
|
|
141
|
-
npm: ">=6.0.0"
|
|
142
|
-
};
|
|
143
|
-
const license = "MIT";
|
|
144
|
-
const pluginPkg = {
|
|
145
|
-
name,
|
|
146
|
-
version,
|
|
147
|
-
description,
|
|
148
|
-
keywords,
|
|
149
|
-
author,
|
|
150
|
-
homepage,
|
|
151
|
-
repository,
|
|
152
|
-
strapi,
|
|
153
|
-
type,
|
|
154
|
-
exports: exports$1,
|
|
155
|
-
files,
|
|
156
|
-
scripts,
|
|
157
|
-
dependencies,
|
|
158
|
-
devDependencies,
|
|
159
|
-
peerDependencies,
|
|
160
|
-
engines,
|
|
161
|
-
license
|
|
162
|
-
};
|
|
163
|
-
const PLUGIN_ID = pluginPkg.strapi.name;
|
|
164
|
-
function isImageResponsive(imgFormats) {
|
|
165
|
-
const formats = Object.keys(imgFormats);
|
|
166
|
-
const isResponsive = !(formats.length === 1 && formats[0] === "thumbnail");
|
|
167
|
-
return isResponsive;
|
|
168
|
-
}
|
|
169
|
-
function prefixFileUrlWithBackendUrl(fileURL) {
|
|
170
|
-
return !!fileURL && fileURL.startsWith("/") ? `${window.strapi.backendURL}${fileURL}` : fileURL;
|
|
171
|
-
}
|
|
29
|
+
const sanitizeHtml__namespace = /* @__PURE__ */ _interopNamespace(sanitizeHtml);
|
|
172
30
|
const colors = styledComponents.css`
|
|
173
31
|
${({ theme }) => styledComponents.css`
|
|
174
32
|
:root {
|
|
@@ -342,8 +200,8 @@ const reset = styledComponents.css`
|
|
|
342
200
|
}
|
|
343
201
|
|
|
344
202
|
.ck-editor__main {
|
|
345
|
-
--ck-font-face:
|
|
346
|
-
sans-serif;
|
|
203
|
+
--ck-font-face:
|
|
204
|
+
'Source Sans Pro', system-ui, Roboto, 'Helvetica Neue', 'Helvetica', Arial, sans-serif;
|
|
347
205
|
|
|
348
206
|
font-family: var(--ck-font-face);
|
|
349
207
|
|
|
@@ -446,6 +304,15 @@ const plugin = styledComponents.css`
|
|
|
446
304
|
border: none !important;
|
|
447
305
|
}
|
|
448
306
|
|
|
307
|
+
[role='dialog'] .ck.ck-sticky-panel .ck-sticky-panel__content_sticky {
|
|
308
|
+
position: static !important;
|
|
309
|
+
width: auto !important;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
[role='dialog'] .ck.ck-sticky-panel .ck-sticky-panel__placeholder {
|
|
313
|
+
display: none !important;
|
|
314
|
+
}
|
|
315
|
+
|
|
449
316
|
.ck.ck-editor__main {
|
|
450
317
|
min-height: var(--ck-editor-min-height) !important;
|
|
451
318
|
max-height: var(--ck-editor-max-height) !important;
|
|
@@ -632,6 +499,148 @@ class StrapiMediaLib extends ckeditor5.Plugin {
|
|
|
632
499
|
this.strapiToggle();
|
|
633
500
|
}
|
|
634
501
|
}
|
|
502
|
+
const name = "@_sh/strapi-plugin-ckeditor";
|
|
503
|
+
const version = "7.1.1";
|
|
504
|
+
const description = "Integrates CKEditor 5 into your Strapi project as a fully customizable custom field. (Community Edition)";
|
|
505
|
+
const keywords = [
|
|
506
|
+
"strapi",
|
|
507
|
+
"ckeditor",
|
|
508
|
+
"ckeditor5",
|
|
509
|
+
"ckeditor 5",
|
|
510
|
+
"wysiwyg",
|
|
511
|
+
"rich text",
|
|
512
|
+
"editor"
|
|
513
|
+
];
|
|
514
|
+
const author = {
|
|
515
|
+
name: "nshenderov"
|
|
516
|
+
};
|
|
517
|
+
const homepage = "https://market.strapi.io/plugins/@_sh-strapi-plugin-ckeditor";
|
|
518
|
+
const repository = {
|
|
519
|
+
type: "git",
|
|
520
|
+
url: "https://github.com/nshenderov/strapi-plugin-ckeditor.git"
|
|
521
|
+
};
|
|
522
|
+
const strapi = {
|
|
523
|
+
name: "ckeditor5",
|
|
524
|
+
displayName: "CKEditor 5",
|
|
525
|
+
description: "Integrates CKEditor 5 into your Strapi project as a fully customizable custom field. (Community Edition)",
|
|
526
|
+
kind: "plugin"
|
|
527
|
+
};
|
|
528
|
+
const type = "commonjs";
|
|
529
|
+
const exports$2 = {
|
|
530
|
+
"./package.json": "./package.json",
|
|
531
|
+
".": {
|
|
532
|
+
types: "./dist/admin/src/index.d.ts",
|
|
533
|
+
source: "./admin/src/index.ts",
|
|
534
|
+
"import": "./dist/admin/index.mjs",
|
|
535
|
+
require: "./dist/admin/index.js",
|
|
536
|
+
"default": "./dist/admin/index.js"
|
|
537
|
+
},
|
|
538
|
+
"./strapi-admin": {
|
|
539
|
+
types: "./dist/admin/src/index.d.ts",
|
|
540
|
+
source: "./admin/src/index.ts",
|
|
541
|
+
"import": "./dist/admin/index.mjs",
|
|
542
|
+
require: "./dist/admin/index.js",
|
|
543
|
+
"default": "./dist/admin/index.js"
|
|
544
|
+
},
|
|
545
|
+
"./strapi-server": {
|
|
546
|
+
types: "./dist/server/src/index.d.ts",
|
|
547
|
+
source: "./server/src/index.ts",
|
|
548
|
+
"import": "./dist/server/index.mjs",
|
|
549
|
+
require: "./dist/server/index.js",
|
|
550
|
+
"default": "./dist/server/index.js"
|
|
551
|
+
}
|
|
552
|
+
};
|
|
553
|
+
const files = [
|
|
554
|
+
"dist"
|
|
555
|
+
];
|
|
556
|
+
const scripts = {
|
|
557
|
+
build: "strapi-plugin build",
|
|
558
|
+
watch: "strapi-plugin watch",
|
|
559
|
+
"watch:link": "strapi-plugin watch:link",
|
|
560
|
+
verify: "strapi-plugin verify",
|
|
561
|
+
"test:ts:front": "run -T tsc -p admin/tsconfig.json",
|
|
562
|
+
"test:ts:back": "run -T tsc -p server/tsconfig.json",
|
|
563
|
+
release: "release-it",
|
|
564
|
+
"release:info": "release-it --changelog",
|
|
565
|
+
"lint:ts": "eslint . --ext ts,tsx --report-unused-disable-directives",
|
|
566
|
+
"lint:ts:fix": "eslint . --ext ts,tsx --report-unused-disable-directives --fix"
|
|
567
|
+
};
|
|
568
|
+
const dependencies = {
|
|
569
|
+
"@ckeditor/ckeditor5-react": "~11.0.1",
|
|
570
|
+
ckeditor5: "~47.6.1",
|
|
571
|
+
lodash: "4.17.21",
|
|
572
|
+
"sanitize-html": "2.13.0",
|
|
573
|
+
yup: "0.32.9"
|
|
574
|
+
};
|
|
575
|
+
const devDependencies = {
|
|
576
|
+
"@release-it/conventional-changelog": "10.0.0",
|
|
577
|
+
"@strapi/sdk-plugin": "5.4.0",
|
|
578
|
+
"@strapi/strapi": "5.33.4",
|
|
579
|
+
"@strapi/typescript-utils": "5.33.4",
|
|
580
|
+
"@types/react": "^18.0.0",
|
|
581
|
+
"@types/react-dom": "^18.0.0",
|
|
582
|
+
"@types/sanitize-html": "^2.13.0",
|
|
583
|
+
"@typescript-eslint/eslint-plugin": "^7.0.0",
|
|
584
|
+
"@typescript-eslint/parser": "^7.0.0",
|
|
585
|
+
eslint: "^8.2.0",
|
|
586
|
+
"eslint-config-airbnb": "^19.0.4",
|
|
587
|
+
"eslint-config-airbnb-typescript": "^18.0.0",
|
|
588
|
+
"eslint-config-prettier": "^9.1.0",
|
|
589
|
+
"eslint-plugin-import": "^2.25.3",
|
|
590
|
+
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
591
|
+
"eslint-plugin-prettier": "^5.2.1",
|
|
592
|
+
"eslint-plugin-react": "^7.28.0",
|
|
593
|
+
"eslint-plugin-react-hooks": "^4.3.0",
|
|
594
|
+
prettier: "^3.4.0",
|
|
595
|
+
"release-it": "^18.1.2",
|
|
596
|
+
typescript: "5.6.3",
|
|
597
|
+
react: "^18.0.0",
|
|
598
|
+
"react-dom": "^18.0.0",
|
|
599
|
+
"react-router-dom": "^6.0.0",
|
|
600
|
+
"styled-components": "^6.0.0"
|
|
601
|
+
};
|
|
602
|
+
const peerDependencies = {
|
|
603
|
+
"@strapi/design-system": "^2.0.0",
|
|
604
|
+
"@strapi/icons": "^2.0.0",
|
|
605
|
+
"@strapi/strapi": "^5.0.0",
|
|
606
|
+
react: "^18.0.0",
|
|
607
|
+
"react-dom": "^18.0.0",
|
|
608
|
+
"react-router-dom": "^6.0.0",
|
|
609
|
+
"styled-components": "^6.0.0"
|
|
610
|
+
};
|
|
611
|
+
const engines = {
|
|
612
|
+
node: ">=20.0.0 <=24.x.x",
|
|
613
|
+
npm: ">=6.0.0"
|
|
614
|
+
};
|
|
615
|
+
const license = "MIT";
|
|
616
|
+
const pluginPkg = {
|
|
617
|
+
name,
|
|
618
|
+
version,
|
|
619
|
+
description,
|
|
620
|
+
keywords,
|
|
621
|
+
author,
|
|
622
|
+
homepage,
|
|
623
|
+
repository,
|
|
624
|
+
strapi,
|
|
625
|
+
type,
|
|
626
|
+
exports: exports$2,
|
|
627
|
+
files,
|
|
628
|
+
scripts,
|
|
629
|
+
dependencies,
|
|
630
|
+
devDependencies,
|
|
631
|
+
peerDependencies,
|
|
632
|
+
engines,
|
|
633
|
+
license
|
|
634
|
+
};
|
|
635
|
+
const PLUGIN_ID = pluginPkg.strapi.name;
|
|
636
|
+
function isImageResponsive(imgFormats) {
|
|
637
|
+
const formats = Object.keys(imgFormats);
|
|
638
|
+
const isResponsive = !(formats.length === 1 && formats[0] === "thumbnail");
|
|
639
|
+
return isResponsive;
|
|
640
|
+
}
|
|
641
|
+
function prefixFileUrlWithBackendUrl(fileURL) {
|
|
642
|
+
return !!fileURL && fileURL.startsWith("/") ? `${window.strapi.backendURL}${fileURL}` : fileURL;
|
|
643
|
+
}
|
|
635
644
|
class StrapiUploadAdapter extends ckeditor5.Plugin {
|
|
636
645
|
static get requires() {
|
|
637
646
|
return [ckeditor5.FileRepository];
|
|
@@ -1178,11 +1187,25 @@ function getPluginPresets() {
|
|
|
1178
1187
|
return PLUGIN_CONFIG.presets;
|
|
1179
1188
|
}
|
|
1180
1189
|
function getPluginTheme() {
|
|
1181
|
-
return PLUGIN_CONFIG.
|
|
1190
|
+
return PLUGIN_CONFIG.theme;
|
|
1182
1191
|
}
|
|
1183
1192
|
function getPluginConfig() {
|
|
1184
1193
|
return PLUGIN_CONFIG;
|
|
1185
1194
|
}
|
|
1195
|
+
const clonedDefaultTheme = cloneDeep__default.default(defaultTheme);
|
|
1196
|
+
const clonedDefaultHtmlPreset = cloneDeep__default.default(defaultHtmlPreset);
|
|
1197
|
+
const clonedDefaultMarkdownPreset = cloneDeep__default.default(defaultMarkdownPreset);
|
|
1198
|
+
const exports$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1199
|
+
__proto__: null,
|
|
1200
|
+
StrapiMediaLib,
|
|
1201
|
+
StrapiUploadAdapter,
|
|
1202
|
+
defaultHtmlPreset: clonedDefaultHtmlPreset,
|
|
1203
|
+
defaultMarkdownPreset: clonedDefaultMarkdownPreset,
|
|
1204
|
+
defaultTheme: clonedDefaultTheme,
|
|
1205
|
+
getPluginPresets,
|
|
1206
|
+
getPluginTheme,
|
|
1207
|
+
setPluginConfig
|
|
1208
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
1186
1209
|
function CKEditorIcon() {
|
|
1187
1210
|
return /* @__PURE__ */ jsxRuntime.jsx(IconBox, { justifyContent: "center", alignItems: "center", width: 7, height: 6, hasRadius: true, "aria-hidden": true, children: /* @__PURE__ */ jsxRuntime.jsx(SvgIcon, {}) });
|
|
1188
1211
|
}
|
|
@@ -1208,9 +1231,6 @@ const IconBox = styledComponents.styled(designSystem.Flex)`
|
|
|
1208
1231
|
background-color: ${designSystem.lightTheme.colors.secondary100};
|
|
1209
1232
|
border: 1px solid ${designSystem.lightTheme.colors.secondary200};
|
|
1210
1233
|
`;
|
|
1211
|
-
const clonedDefaultTheme = cloneDeep__default.default(defaultTheme);
|
|
1212
|
-
const clonedDefaultHtmlPreset = cloneDeep__default.default(defaultHtmlPreset);
|
|
1213
|
-
const clonedDefaultMarkdownPreset = cloneDeep__default.default(defaultMarkdownPreset);
|
|
1214
1234
|
const AVAILABLE_OPTIONS = [];
|
|
1215
1235
|
function fillAvailableOptions() {
|
|
1216
1236
|
const { presets } = getPluginConfig();
|
|
@@ -1233,6 +1253,12 @@ const index = {
|
|
|
1233
1253
|
fillAvailableOptions();
|
|
1234
1254
|
},
|
|
1235
1255
|
async register(app) {
|
|
1256
|
+
app.registerPlugin({
|
|
1257
|
+
id: PLUGIN_ID,
|
|
1258
|
+
isReady: true,
|
|
1259
|
+
name: "CKEditor",
|
|
1260
|
+
apis: exports$1
|
|
1261
|
+
});
|
|
1236
1262
|
app.customFields.register({
|
|
1237
1263
|
name: "CKEditor",
|
|
1238
1264
|
type: "richtext",
|
|
@@ -1247,7 +1273,7 @@ const index = {
|
|
|
1247
1273
|
defaultMessage: "The advanced rich text editor. (Community Edition)"
|
|
1248
1274
|
},
|
|
1249
1275
|
components: {
|
|
1250
|
-
Input: async () => Promise.resolve().then(() => require("./Field-
|
|
1276
|
+
Input: async () => Promise.resolve().then(() => require("./Field-DXPrjUnm.js")).then((module2) => ({
|
|
1251
1277
|
default: module2.Field
|
|
1252
1278
|
}))
|
|
1253
1279
|
},
|
|
@@ -1,152 +1,10 @@
|
|
|
1
1
|
import * as yup from "yup";
|
|
2
|
+
import cloneDeep from "lodash/cloneDeep";
|
|
2
3
|
import { css, styled } from "styled-components";
|
|
3
4
|
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
5
|
import * as sanitizeHtml from "sanitize-html";
|
|
5
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
7
|
import { Flex, lightTheme } from "@strapi/design-system";
|
|
7
|
-
import cloneDeep from "lodash/cloneDeep";
|
|
8
|
-
const name = "@_sh/strapi-plugin-ckeditor";
|
|
9
|
-
const version = "7.0.0";
|
|
10
|
-
const description = "Integrates CKEditor 5 into your Strapi project as a fully customizable custom field. (Community Edition)";
|
|
11
|
-
const keywords = [
|
|
12
|
-
"strapi",
|
|
13
|
-
"ckeditor",
|
|
14
|
-
"ckeditor5",
|
|
15
|
-
"ckeditor 5",
|
|
16
|
-
"wysiwyg",
|
|
17
|
-
"rich text",
|
|
18
|
-
"editor"
|
|
19
|
-
];
|
|
20
|
-
const author = {
|
|
21
|
-
name: "nshenderov"
|
|
22
|
-
};
|
|
23
|
-
const homepage = "https://market.strapi.io/plugins/@_sh-strapi-plugin-ckeditor";
|
|
24
|
-
const repository = {
|
|
25
|
-
type: "git",
|
|
26
|
-
url: "https://github.com/nshenderov/strapi-plugin-ckeditor.git"
|
|
27
|
-
};
|
|
28
|
-
const strapi = {
|
|
29
|
-
name: "ckeditor5",
|
|
30
|
-
displayName: "CKEditor 5",
|
|
31
|
-
description: "Integrates CKEditor 5 into your Strapi project as a fully customizable custom field. (Community Edition)",
|
|
32
|
-
kind: "plugin"
|
|
33
|
-
};
|
|
34
|
-
const type = "commonjs";
|
|
35
|
-
const exports = {
|
|
36
|
-
"./package.json": "./package.json",
|
|
37
|
-
".": {
|
|
38
|
-
types: "./dist/admin/src/index.d.ts",
|
|
39
|
-
source: "./admin/src/index.ts",
|
|
40
|
-
"import": "./dist/admin/index.mjs",
|
|
41
|
-
require: "./dist/admin/index.js",
|
|
42
|
-
"default": "./dist/admin/index.js"
|
|
43
|
-
},
|
|
44
|
-
"./strapi-admin": {
|
|
45
|
-
types: "./dist/admin/src/index.d.ts",
|
|
46
|
-
source: "./admin/src/index.ts",
|
|
47
|
-
"import": "./dist/admin/index.mjs",
|
|
48
|
-
require: "./dist/admin/index.js",
|
|
49
|
-
"default": "./dist/admin/index.js"
|
|
50
|
-
},
|
|
51
|
-
"./strapi-server": {
|
|
52
|
-
types: "./dist/server/src/index.d.ts",
|
|
53
|
-
source: "./server/src/index.ts",
|
|
54
|
-
"import": "./dist/server/index.mjs",
|
|
55
|
-
require: "./dist/server/index.js",
|
|
56
|
-
"default": "./dist/server/index.js"
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
const files = [
|
|
60
|
-
"dist"
|
|
61
|
-
];
|
|
62
|
-
const scripts = {
|
|
63
|
-
build: "strapi-plugin build",
|
|
64
|
-
watch: "strapi-plugin watch",
|
|
65
|
-
"watch:link": "strapi-plugin watch:link",
|
|
66
|
-
verify: "strapi-plugin verify",
|
|
67
|
-
"test:ts:front": "run -T tsc -p admin/tsconfig.json",
|
|
68
|
-
"test:ts:back": "run -T tsc -p server/tsconfig.json",
|
|
69
|
-
release: "release-it",
|
|
70
|
-
"release:info": "release-it --changelog",
|
|
71
|
-
"lint:ts": "eslint . --ext ts,tsx --report-unused-disable-directives",
|
|
72
|
-
"lint:ts:fix": "eslint . --ext ts,tsx --report-unused-disable-directives --fix"
|
|
73
|
-
};
|
|
74
|
-
const dependencies = {
|
|
75
|
-
"@ckeditor/ckeditor5-react": "~11.0.1",
|
|
76
|
-
"@strapi/design-system": "2.1.2",
|
|
77
|
-
"@strapi/icons": "2.1.2",
|
|
78
|
-
ckeditor5: "~47.4.0",
|
|
79
|
-
lodash: "4.17.21",
|
|
80
|
-
"sanitize-html": "2.13.0",
|
|
81
|
-
yup: "0.32.9"
|
|
82
|
-
};
|
|
83
|
-
const devDependencies = {
|
|
84
|
-
"@release-it/conventional-changelog": "10.0.0",
|
|
85
|
-
"@strapi/sdk-plugin": "5.4.0",
|
|
86
|
-
"@strapi/strapi": "5.33.4",
|
|
87
|
-
"@strapi/typescript-utils": "5.33.4",
|
|
88
|
-
"@types/react": "^18.0.0",
|
|
89
|
-
"@types/react-dom": "^18.0.0",
|
|
90
|
-
"@types/sanitize-html": "^2.13.0",
|
|
91
|
-
"@typescript-eslint/eslint-plugin": "^7.0.0",
|
|
92
|
-
"@typescript-eslint/parser": "^7.0.0",
|
|
93
|
-
eslint: "^8.2.0",
|
|
94
|
-
"eslint-config-airbnb": "^19.0.4",
|
|
95
|
-
"eslint-config-airbnb-typescript": "^18.0.0",
|
|
96
|
-
"eslint-config-prettier": "^9.1.0",
|
|
97
|
-
"eslint-plugin-import": "^2.25.3",
|
|
98
|
-
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
99
|
-
"eslint-plugin-prettier": "^5.2.1",
|
|
100
|
-
"eslint-plugin-react": "^7.28.0",
|
|
101
|
-
"eslint-plugin-react-hooks": "^4.3.0",
|
|
102
|
-
prettier: "^3.4.0",
|
|
103
|
-
"release-it": "^18.1.2",
|
|
104
|
-
typescript: "5.6.3",
|
|
105
|
-
react: "^18.0.0",
|
|
106
|
-
"react-dom": "^18.0.0",
|
|
107
|
-
"react-router-dom": "^6.0.0",
|
|
108
|
-
"styled-components": "^6.0.0"
|
|
109
|
-
};
|
|
110
|
-
const peerDependencies = {
|
|
111
|
-
"@strapi/strapi": "^5.0.0",
|
|
112
|
-
react: "^18.0.0",
|
|
113
|
-
"react-dom": "^18.0.0",
|
|
114
|
-
"react-router-dom": "^6.0.0",
|
|
115
|
-
"styled-components": "^6.0.0"
|
|
116
|
-
};
|
|
117
|
-
const engines = {
|
|
118
|
-
node: ">=20.0.0 <=24.x.x",
|
|
119
|
-
npm: ">=6.0.0"
|
|
120
|
-
};
|
|
121
|
-
const license = "MIT";
|
|
122
|
-
const pluginPkg = {
|
|
123
|
-
name,
|
|
124
|
-
version,
|
|
125
|
-
description,
|
|
126
|
-
keywords,
|
|
127
|
-
author,
|
|
128
|
-
homepage,
|
|
129
|
-
repository,
|
|
130
|
-
strapi,
|
|
131
|
-
type,
|
|
132
|
-
exports,
|
|
133
|
-
files,
|
|
134
|
-
scripts,
|
|
135
|
-
dependencies,
|
|
136
|
-
devDependencies,
|
|
137
|
-
peerDependencies,
|
|
138
|
-
engines,
|
|
139
|
-
license
|
|
140
|
-
};
|
|
141
|
-
const PLUGIN_ID = pluginPkg.strapi.name;
|
|
142
|
-
function isImageResponsive(imgFormats) {
|
|
143
|
-
const formats = Object.keys(imgFormats);
|
|
144
|
-
const isResponsive = !(formats.length === 1 && formats[0] === "thumbnail");
|
|
145
|
-
return isResponsive;
|
|
146
|
-
}
|
|
147
|
-
function prefixFileUrlWithBackendUrl(fileURL) {
|
|
148
|
-
return !!fileURL && fileURL.startsWith("/") ? `${window.strapi.backendURL}${fileURL}` : fileURL;
|
|
149
|
-
}
|
|
150
8
|
const colors = css`
|
|
151
9
|
${({ theme }) => css`
|
|
152
10
|
:root {
|
|
@@ -320,8 +178,8 @@ const reset = css`
|
|
|
320
178
|
}
|
|
321
179
|
|
|
322
180
|
.ck-editor__main {
|
|
323
|
-
--ck-font-face:
|
|
324
|
-
sans-serif;
|
|
181
|
+
--ck-font-face:
|
|
182
|
+
'Source Sans Pro', system-ui, Roboto, 'Helvetica Neue', 'Helvetica', Arial, sans-serif;
|
|
325
183
|
|
|
326
184
|
font-family: var(--ck-font-face);
|
|
327
185
|
|
|
@@ -424,6 +282,15 @@ const plugin = css`
|
|
|
424
282
|
border: none !important;
|
|
425
283
|
}
|
|
426
284
|
|
|
285
|
+
[role='dialog'] .ck.ck-sticky-panel .ck-sticky-panel__content_sticky {
|
|
286
|
+
position: static !important;
|
|
287
|
+
width: auto !important;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
[role='dialog'] .ck.ck-sticky-panel .ck-sticky-panel__placeholder {
|
|
291
|
+
display: none !important;
|
|
292
|
+
}
|
|
293
|
+
|
|
427
294
|
.ck.ck-editor__main {
|
|
428
295
|
min-height: var(--ck-editor-min-height) !important;
|
|
429
296
|
max-height: var(--ck-editor-max-height) !important;
|
|
@@ -610,6 +477,148 @@ class StrapiMediaLib extends Plugin {
|
|
|
610
477
|
this.strapiToggle();
|
|
611
478
|
}
|
|
612
479
|
}
|
|
480
|
+
const name = "@_sh/strapi-plugin-ckeditor";
|
|
481
|
+
const version = "7.1.1";
|
|
482
|
+
const description = "Integrates CKEditor 5 into your Strapi project as a fully customizable custom field. (Community Edition)";
|
|
483
|
+
const keywords = [
|
|
484
|
+
"strapi",
|
|
485
|
+
"ckeditor",
|
|
486
|
+
"ckeditor5",
|
|
487
|
+
"ckeditor 5",
|
|
488
|
+
"wysiwyg",
|
|
489
|
+
"rich text",
|
|
490
|
+
"editor"
|
|
491
|
+
];
|
|
492
|
+
const author = {
|
|
493
|
+
name: "nshenderov"
|
|
494
|
+
};
|
|
495
|
+
const homepage = "https://market.strapi.io/plugins/@_sh-strapi-plugin-ckeditor";
|
|
496
|
+
const repository = {
|
|
497
|
+
type: "git",
|
|
498
|
+
url: "https://github.com/nshenderov/strapi-plugin-ckeditor.git"
|
|
499
|
+
};
|
|
500
|
+
const strapi = {
|
|
501
|
+
name: "ckeditor5",
|
|
502
|
+
displayName: "CKEditor 5",
|
|
503
|
+
description: "Integrates CKEditor 5 into your Strapi project as a fully customizable custom field. (Community Edition)",
|
|
504
|
+
kind: "plugin"
|
|
505
|
+
};
|
|
506
|
+
const type = "commonjs";
|
|
507
|
+
const exports$1 = {
|
|
508
|
+
"./package.json": "./package.json",
|
|
509
|
+
".": {
|
|
510
|
+
types: "./dist/admin/src/index.d.ts",
|
|
511
|
+
source: "./admin/src/index.ts",
|
|
512
|
+
"import": "./dist/admin/index.mjs",
|
|
513
|
+
require: "./dist/admin/index.js",
|
|
514
|
+
"default": "./dist/admin/index.js"
|
|
515
|
+
},
|
|
516
|
+
"./strapi-admin": {
|
|
517
|
+
types: "./dist/admin/src/index.d.ts",
|
|
518
|
+
source: "./admin/src/index.ts",
|
|
519
|
+
"import": "./dist/admin/index.mjs",
|
|
520
|
+
require: "./dist/admin/index.js",
|
|
521
|
+
"default": "./dist/admin/index.js"
|
|
522
|
+
},
|
|
523
|
+
"./strapi-server": {
|
|
524
|
+
types: "./dist/server/src/index.d.ts",
|
|
525
|
+
source: "./server/src/index.ts",
|
|
526
|
+
"import": "./dist/server/index.mjs",
|
|
527
|
+
require: "./dist/server/index.js",
|
|
528
|
+
"default": "./dist/server/index.js"
|
|
529
|
+
}
|
|
530
|
+
};
|
|
531
|
+
const files = [
|
|
532
|
+
"dist"
|
|
533
|
+
];
|
|
534
|
+
const scripts = {
|
|
535
|
+
build: "strapi-plugin build",
|
|
536
|
+
watch: "strapi-plugin watch",
|
|
537
|
+
"watch:link": "strapi-plugin watch:link",
|
|
538
|
+
verify: "strapi-plugin verify",
|
|
539
|
+
"test:ts:front": "run -T tsc -p admin/tsconfig.json",
|
|
540
|
+
"test:ts:back": "run -T tsc -p server/tsconfig.json",
|
|
541
|
+
release: "release-it",
|
|
542
|
+
"release:info": "release-it --changelog",
|
|
543
|
+
"lint:ts": "eslint . --ext ts,tsx --report-unused-disable-directives",
|
|
544
|
+
"lint:ts:fix": "eslint . --ext ts,tsx --report-unused-disable-directives --fix"
|
|
545
|
+
};
|
|
546
|
+
const dependencies = {
|
|
547
|
+
"@ckeditor/ckeditor5-react": "~11.0.1",
|
|
548
|
+
ckeditor5: "~47.6.1",
|
|
549
|
+
lodash: "4.17.21",
|
|
550
|
+
"sanitize-html": "2.13.0",
|
|
551
|
+
yup: "0.32.9"
|
|
552
|
+
};
|
|
553
|
+
const devDependencies = {
|
|
554
|
+
"@release-it/conventional-changelog": "10.0.0",
|
|
555
|
+
"@strapi/sdk-plugin": "5.4.0",
|
|
556
|
+
"@strapi/strapi": "5.33.4",
|
|
557
|
+
"@strapi/typescript-utils": "5.33.4",
|
|
558
|
+
"@types/react": "^18.0.0",
|
|
559
|
+
"@types/react-dom": "^18.0.0",
|
|
560
|
+
"@types/sanitize-html": "^2.13.0",
|
|
561
|
+
"@typescript-eslint/eslint-plugin": "^7.0.0",
|
|
562
|
+
"@typescript-eslint/parser": "^7.0.0",
|
|
563
|
+
eslint: "^8.2.0",
|
|
564
|
+
"eslint-config-airbnb": "^19.0.4",
|
|
565
|
+
"eslint-config-airbnb-typescript": "^18.0.0",
|
|
566
|
+
"eslint-config-prettier": "^9.1.0",
|
|
567
|
+
"eslint-plugin-import": "^2.25.3",
|
|
568
|
+
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
569
|
+
"eslint-plugin-prettier": "^5.2.1",
|
|
570
|
+
"eslint-plugin-react": "^7.28.0",
|
|
571
|
+
"eslint-plugin-react-hooks": "^4.3.0",
|
|
572
|
+
prettier: "^3.4.0",
|
|
573
|
+
"release-it": "^18.1.2",
|
|
574
|
+
typescript: "5.6.3",
|
|
575
|
+
react: "^18.0.0",
|
|
576
|
+
"react-dom": "^18.0.0",
|
|
577
|
+
"react-router-dom": "^6.0.0",
|
|
578
|
+
"styled-components": "^6.0.0"
|
|
579
|
+
};
|
|
580
|
+
const peerDependencies = {
|
|
581
|
+
"@strapi/design-system": "^2.0.0",
|
|
582
|
+
"@strapi/icons": "^2.0.0",
|
|
583
|
+
"@strapi/strapi": "^5.0.0",
|
|
584
|
+
react: "^18.0.0",
|
|
585
|
+
"react-dom": "^18.0.0",
|
|
586
|
+
"react-router-dom": "^6.0.0",
|
|
587
|
+
"styled-components": "^6.0.0"
|
|
588
|
+
};
|
|
589
|
+
const engines = {
|
|
590
|
+
node: ">=20.0.0 <=24.x.x",
|
|
591
|
+
npm: ">=6.0.0"
|
|
592
|
+
};
|
|
593
|
+
const license = "MIT";
|
|
594
|
+
const pluginPkg = {
|
|
595
|
+
name,
|
|
596
|
+
version,
|
|
597
|
+
description,
|
|
598
|
+
keywords,
|
|
599
|
+
author,
|
|
600
|
+
homepage,
|
|
601
|
+
repository,
|
|
602
|
+
strapi,
|
|
603
|
+
type,
|
|
604
|
+
exports: exports$1,
|
|
605
|
+
files,
|
|
606
|
+
scripts,
|
|
607
|
+
dependencies,
|
|
608
|
+
devDependencies,
|
|
609
|
+
peerDependencies,
|
|
610
|
+
engines,
|
|
611
|
+
license
|
|
612
|
+
};
|
|
613
|
+
const PLUGIN_ID = pluginPkg.strapi.name;
|
|
614
|
+
function isImageResponsive(imgFormats) {
|
|
615
|
+
const formats = Object.keys(imgFormats);
|
|
616
|
+
const isResponsive = !(formats.length === 1 && formats[0] === "thumbnail");
|
|
617
|
+
return isResponsive;
|
|
618
|
+
}
|
|
619
|
+
function prefixFileUrlWithBackendUrl(fileURL) {
|
|
620
|
+
return !!fileURL && fileURL.startsWith("/") ? `${window.strapi.backendURL}${fileURL}` : fileURL;
|
|
621
|
+
}
|
|
613
622
|
class StrapiUploadAdapter extends Plugin {
|
|
614
623
|
static get requires() {
|
|
615
624
|
return [FileRepository];
|
|
@@ -1156,11 +1165,25 @@ function getPluginPresets() {
|
|
|
1156
1165
|
return PLUGIN_CONFIG.presets;
|
|
1157
1166
|
}
|
|
1158
1167
|
function getPluginTheme() {
|
|
1159
|
-
return PLUGIN_CONFIG.
|
|
1168
|
+
return PLUGIN_CONFIG.theme;
|
|
1160
1169
|
}
|
|
1161
1170
|
function getPluginConfig() {
|
|
1162
1171
|
return PLUGIN_CONFIG;
|
|
1163
1172
|
}
|
|
1173
|
+
const clonedDefaultTheme = cloneDeep(defaultTheme);
|
|
1174
|
+
const clonedDefaultHtmlPreset = cloneDeep(defaultHtmlPreset);
|
|
1175
|
+
const clonedDefaultMarkdownPreset = cloneDeep(defaultMarkdownPreset);
|
|
1176
|
+
const exports = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1177
|
+
__proto__: null,
|
|
1178
|
+
StrapiMediaLib,
|
|
1179
|
+
StrapiUploadAdapter,
|
|
1180
|
+
defaultHtmlPreset: clonedDefaultHtmlPreset,
|
|
1181
|
+
defaultMarkdownPreset: clonedDefaultMarkdownPreset,
|
|
1182
|
+
defaultTheme: clonedDefaultTheme,
|
|
1183
|
+
getPluginPresets,
|
|
1184
|
+
getPluginTheme,
|
|
1185
|
+
setPluginConfig
|
|
1186
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
1164
1187
|
function CKEditorIcon() {
|
|
1165
1188
|
return /* @__PURE__ */ jsx(IconBox, { justifyContent: "center", alignItems: "center", width: 7, height: 6, hasRadius: true, "aria-hidden": true, children: /* @__PURE__ */ jsx(SvgIcon, {}) });
|
|
1166
1189
|
}
|
|
@@ -1186,9 +1209,6 @@ const IconBox = styled(Flex)`
|
|
|
1186
1209
|
background-color: ${lightTheme.colors.secondary100};
|
|
1187
1210
|
border: 1px solid ${lightTheme.colors.secondary200};
|
|
1188
1211
|
`;
|
|
1189
|
-
const clonedDefaultTheme = cloneDeep(defaultTheme);
|
|
1190
|
-
const clonedDefaultHtmlPreset = cloneDeep(defaultHtmlPreset);
|
|
1191
|
-
const clonedDefaultMarkdownPreset = cloneDeep(defaultMarkdownPreset);
|
|
1192
1212
|
const AVAILABLE_OPTIONS = [];
|
|
1193
1213
|
function fillAvailableOptions() {
|
|
1194
1214
|
const { presets } = getPluginConfig();
|
|
@@ -1211,6 +1231,12 @@ const index = {
|
|
|
1211
1231
|
fillAvailableOptions();
|
|
1212
1232
|
},
|
|
1213
1233
|
async register(app) {
|
|
1234
|
+
app.registerPlugin({
|
|
1235
|
+
id: PLUGIN_ID,
|
|
1236
|
+
isReady: true,
|
|
1237
|
+
name: "CKEditor",
|
|
1238
|
+
apis: exports
|
|
1239
|
+
});
|
|
1214
1240
|
app.customFields.register({
|
|
1215
1241
|
name: "CKEditor",
|
|
1216
1242
|
type: "richtext",
|
|
@@ -1225,7 +1251,7 @@ const index = {
|
|
|
1225
1251
|
defaultMessage: "The advanced rich text editor. (Community Edition)"
|
|
1226
1252
|
},
|
|
1227
1253
|
components: {
|
|
1228
|
-
Input: async () => import("./Field-
|
|
1254
|
+
Input: async () => import("./Field-CmFipUw8.mjs").then((module) => ({
|
|
1229
1255
|
default: module.Field
|
|
1230
1256
|
}))
|
|
1231
1257
|
},
|
package/dist/admin/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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-Db6yDUsF.js");
|
|
5
5
|
require("ckeditor5");
|
|
6
6
|
require("sanitize-html");
|
|
7
7
|
exports.StrapiMediaLib = index.StrapiMediaLib;
|
package/dist/admin/index.mjs
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function useGlobalStyles(): void;
|
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 = "7.
|
|
3
|
+
const version = "7.1.1";
|
|
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",
|
|
@@ -67,9 +67,7 @@ const scripts = {
|
|
|
67
67
|
};
|
|
68
68
|
const dependencies = {
|
|
69
69
|
"@ckeditor/ckeditor5-react": "~11.0.1",
|
|
70
|
-
|
|
71
|
-
"@strapi/icons": "2.1.2",
|
|
72
|
-
ckeditor5: "~47.4.0",
|
|
70
|
+
ckeditor5: "~47.6.1",
|
|
73
71
|
lodash: "4.17.21",
|
|
74
72
|
"sanitize-html": "2.13.0",
|
|
75
73
|
yup: "0.32.9"
|
|
@@ -102,6 +100,8 @@ const devDependencies = {
|
|
|
102
100
|
"styled-components": "^6.0.0"
|
|
103
101
|
};
|
|
104
102
|
const peerDependencies = {
|
|
103
|
+
"@strapi/design-system": "^2.0.0",
|
|
104
|
+
"@strapi/icons": "^2.0.0",
|
|
105
105
|
"@strapi/strapi": "^5.0.0",
|
|
106
106
|
react: "^18.0.0",
|
|
107
107
|
"react-dom": "^18.0.0",
|
package/dist/server/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const name = "@_sh/strapi-plugin-ckeditor";
|
|
2
|
-
const version = "7.
|
|
2
|
+
const version = "7.1.1";
|
|
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",
|
|
@@ -66,9 +66,7 @@ const scripts = {
|
|
|
66
66
|
};
|
|
67
67
|
const dependencies = {
|
|
68
68
|
"@ckeditor/ckeditor5-react": "~11.0.1",
|
|
69
|
-
|
|
70
|
-
"@strapi/icons": "2.1.2",
|
|
71
|
-
ckeditor5: "~47.4.0",
|
|
69
|
+
ckeditor5: "~47.6.1",
|
|
72
70
|
lodash: "4.17.21",
|
|
73
71
|
"sanitize-html": "2.13.0",
|
|
74
72
|
yup: "0.32.9"
|
|
@@ -101,6 +99,8 @@ const devDependencies = {
|
|
|
101
99
|
"styled-components": "^6.0.0"
|
|
102
100
|
};
|
|
103
101
|
const peerDependencies = {
|
|
102
|
+
"@strapi/design-system": "^2.0.0",
|
|
103
|
+
"@strapi/icons": "^2.0.0",
|
|
104
104
|
"@strapi/strapi": "^5.0.0",
|
|
105
105
|
react: "^18.0.0",
|
|
106
106
|
"react-dom": "^18.0.0",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@_sh/strapi-plugin-ckeditor",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.1.1",
|
|
4
4
|
"description": "Integrates CKEditor 5 into your Strapi project as a fully customizable custom field. (Community Edition)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"strapi",
|
|
@@ -67,9 +67,7 @@
|
|
|
67
67
|
},
|
|
68
68
|
"dependencies": {
|
|
69
69
|
"@ckeditor/ckeditor5-react": "~11.0.1",
|
|
70
|
-
"
|
|
71
|
-
"@strapi/icons": "2.1.2",
|
|
72
|
-
"ckeditor5": "~47.4.0",
|
|
70
|
+
"ckeditor5": "~47.6.1",
|
|
73
71
|
"lodash": "4.17.21",
|
|
74
72
|
"sanitize-html": "2.13.0",
|
|
75
73
|
"yup": "0.32.9"
|
|
@@ -102,6 +100,8 @@
|
|
|
102
100
|
"styled-components": "^6.0.0"
|
|
103
101
|
},
|
|
104
102
|
"peerDependencies": {
|
|
103
|
+
"@strapi/design-system": "^2.0.0",
|
|
104
|
+
"@strapi/icons": "^2.0.0",
|
|
105
105
|
"@strapi/strapi": "^5.0.0",
|
|
106
106
|
"react": "^18.0.0",
|
|
107
107
|
"react-dom": "^18.0.0",
|