art-bd-ui 1.0.40 → 1.0.41
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/cjs/_virtual/index10.js +2 -8
- package/dist/cjs/_virtual/index5.js +2 -8
- package/dist/cjs/_virtual/index6.js +4 -4
- package/dist/cjs/_virtual/index7.js +8 -2
- package/dist/cjs/_virtual/index9.js +8 -2
- package/dist/cjs/components/ui/rich-editor/extensions/carousel/shared.js +1 -1
- package/dist/cjs/components/ui/rich-editor/extensions/details-content.js +1 -1
- package/dist/cjs/components/ui/rich-editor/extensions/details-summary.js +1 -1
- package/dist/cjs/components/ui/rich-editor/extensions/details.js +1 -1
- package/dist/cjs/components/ui/rich-editor/extensions/image.js +236 -0
- package/dist/cjs/components/ui/rich-editor/extensions/slash/default-suggestions.js +12 -0
- package/dist/cjs/components/ui/rich-editor/extensions.js +35 -35
- package/dist/cjs/components/ui/rich-editor/rich-editor.js +8 -1
- package/dist/cjs/components/ui/rich-editor/toolbar.js +2 -1
- package/dist/cjs/node_modules/@ckeditor/ckeditor5-mention/dist/index.js +1 -1
- package/dist/cjs/node_modules/@ckeditor/ckeditor5-paragraph/dist/index.js +1 -1
- package/dist/cjs/node_modules/@ckeditor/ckeditor5-ui/dist/index.js +1 -1
- package/dist/cjs/node_modules/@pdf-lib/standard-fonts/es/utils.js +1 -1
- package/dist/cjs/node_modules/@pdf-lib/upng/UPNG.js +1 -1
- package/dist/cjs/node_modules/@tiptap/extension-code-block/dist/index.js +0 -6
- package/dist/cjs/node_modules/@tiptap/extension-code-block-lowlight/dist/index.js +1 -1
- package/dist/cjs/node_modules/@tiptap/extension-image/dist/index.js +3 -2
- package/dist/cjs/node_modules/@tiptap/extension-link/dist/index.js +52 -28
- package/dist/cjs/node_modules/@tiptap/extension-list/dist/index.js +29 -1
- package/dist/cjs/node_modules/@tiptap/extension-paragraph/dist/index.js +13 -8
- package/dist/cjs/node_modules/@tiptap/extension-text-align/dist/index.js +2 -2
- package/dist/cjs/node_modules/@tiptap/extension-youtube/dist/index.js +1 -1
- package/dist/cjs/node_modules/@tiptap/extensions/dist/index.js +9 -2
- package/dist/cjs/node_modules/color-parse/index.js +1 -1
- package/dist/cjs/node_modules/pdf-lib/es/core/PDFContext.js +1 -1
- package/dist/cjs/node_modules/pdf-lib/es/core/structures/PDFFlateStream.js +1 -1
- package/dist/cjs/node_modules/prop-types/index.js +1 -1
- package/dist/cjs/node_modules/prop-types/node_modules/react-is/index.js +1 -1
- package/dist/esm/_virtual/index10.js +2 -6
- package/dist/esm/_virtual/index5.js +2 -6
- package/dist/esm/_virtual/index6.js +4 -4
- package/dist/esm/_virtual/index7.js +6 -2
- package/dist/esm/_virtual/index9.js +6 -2
- package/dist/esm/components/ui/rich-editor/extensions/carousel/shared.js +1 -1
- package/dist/esm/components/ui/rich-editor/extensions/details-content.js +1 -1
- package/dist/esm/components/ui/rich-editor/extensions/details-summary.js +1 -1
- package/dist/esm/components/ui/rich-editor/extensions/details.js +1 -1
- package/dist/esm/components/ui/rich-editor/extensions/image.js +234 -0
- package/dist/esm/components/ui/rich-editor/extensions/slash/default-suggestions.js +12 -0
- package/dist/esm/components/ui/rich-editor/extensions.js +29 -29
- package/dist/esm/components/ui/rich-editor/rich-editor.js +8 -1
- package/dist/esm/components/ui/rich-editor/toolbar.js +2 -1
- package/dist/esm/node_modules/@ckeditor/ckeditor5-mention/dist/index.js +1 -1
- package/dist/esm/node_modules/@ckeditor/ckeditor5-paragraph/dist/index.js +1 -1
- package/dist/esm/node_modules/@ckeditor/ckeditor5-ui/dist/index.js +1 -1
- package/dist/esm/node_modules/@pdf-lib/standard-fonts/es/utils.js +1 -1
- package/dist/esm/node_modules/@pdf-lib/upng/UPNG.js +1 -1
- package/dist/esm/node_modules/@tiptap/extension-code-block/dist/index.js +1 -4
- package/dist/esm/node_modules/@tiptap/extension-code-block-lowlight/dist/index.js +2 -2
- package/dist/esm/node_modules/@tiptap/extension-image/dist/index.js +3 -2
- package/dist/esm/node_modules/@tiptap/extension-link/dist/index.js +52 -28
- package/dist/esm/node_modules/@tiptap/extension-list/dist/index.js +30 -2
- package/dist/esm/node_modules/@tiptap/extension-paragraph/dist/index.js +13 -8
- package/dist/esm/node_modules/@tiptap/extension-text-align/dist/index.js +2 -2
- package/dist/esm/node_modules/@tiptap/extension-youtube/dist/index.js +1 -1
- package/dist/esm/node_modules/@tiptap/extensions/dist/index.js +9 -3
- package/dist/esm/node_modules/color-parse/index.js +1 -1
- package/dist/esm/node_modules/pdf-lib/es/core/PDFContext.js +1 -1
- package/dist/esm/node_modules/pdf-lib/es/core/structures/PDFFlateStream.js +1 -1
- package/dist/esm/node_modules/prop-types/index.js +1 -1
- package/dist/esm/node_modules/prop-types/node_modules/react-is/index.js +1 -1
- package/dist/styles.css +318 -0
- package/dist/types/index.d.ts +10 -10
- package/package.json +45 -45
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var reactIs = {exports: {}};
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
var index = require('../node_modules/pako/index.js');
|
|
7
|
-
|
|
8
|
-
var pakoExports = index.__require();
|
|
9
|
-
var pako = /*@__PURE__*/_commonjsHelpers.getDefaultExportFromCjs(pakoExports);
|
|
10
|
-
|
|
11
|
-
exports.default = pako;
|
|
5
|
+
exports.__module = reactIs;
|
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var propTypes = {exports: {}};
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
var index = require('../node_modules/color-name/index.js');
|
|
7
|
-
|
|
8
|
-
var colorNameExports = index.__require();
|
|
9
|
-
var names = /*@__PURE__*/_commonjsHelpers.getDefaultExportFromCjs(colorNameExports);
|
|
10
|
-
|
|
11
|
-
exports.default = names;
|
|
5
|
+
exports.__module = propTypes;
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var _commonjsHelpers = require('./_commonjsHelpers.js');
|
|
6
|
-
var index
|
|
6
|
+
var index = require('../node_modules/color-name/index.js');
|
|
7
7
|
|
|
8
|
-
var
|
|
9
|
-
var
|
|
8
|
+
var colorNameExports = index.__require();
|
|
9
|
+
var names = /*@__PURE__*/_commonjsHelpers.getDefaultExportFromCjs(colorNameExports);
|
|
10
10
|
|
|
11
|
-
exports.default =
|
|
11
|
+
exports.default = names;
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
var _commonjsHelpers = require('./_commonjsHelpers.js');
|
|
6
|
+
var index$1 = require('../node_modules/color-convert/index.js');
|
|
7
|
+
|
|
8
|
+
var colorConvertExports = index$1.__require();
|
|
9
|
+
var index = /*@__PURE__*/_commonjsHelpers.getDefaultExportFromCjs(colorConvertExports);
|
|
10
|
+
|
|
11
|
+
exports.default = index;
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
var _commonjsHelpers = require('./_commonjsHelpers.js');
|
|
6
|
+
var index = require('../node_modules/pako/index.js');
|
|
7
|
+
|
|
8
|
+
var pakoExports = index.__require();
|
|
9
|
+
var pako = /*@__PURE__*/_commonjsHelpers.getDefaultExportFromCjs(pakoExports);
|
|
10
|
+
|
|
11
|
+
exports.default = pako;
|
|
@@ -120,7 +120,7 @@ function SharedCarousel({ images, opts, className }) {
|
|
|
120
120
|
if (!slides.length) {
|
|
121
121
|
return null;
|
|
122
122
|
}
|
|
123
|
-
return (jsxRuntime.jsx("div", { className: utils.cn("w-full", className), children: jsxRuntime.jsxs("div", { className: "max-w-screen", style: frameStyle, children: [jsxRuntime.jsx("div", { style: viewportStyle, children: jsxRuntime.jsxs(carousel.Carousel, { opts: {
|
|
123
|
+
return (jsxRuntime.jsx("div", { className: utils.cn("w-full", className), children: jsxRuntime.jsxs("div", { className: "max-w-screen overflow-hidden", style: frameStyle, children: [jsxRuntime.jsx("div", { style: viewportStyle, children: jsxRuntime.jsxs(carousel.Carousel, { opts: {
|
|
124
124
|
loop: opts.loop,
|
|
125
125
|
align: "center",
|
|
126
126
|
axis: "x",
|
|
@@ -10,7 +10,7 @@ var index = require('../../../../node_modules/@tiptap/extension-details/dist/ind
|
|
|
10
10
|
*/
|
|
11
11
|
const DetailsContent = index.DetailsContent.configure({
|
|
12
12
|
HTMLAttributes: {
|
|
13
|
-
class: "px-4
|
|
13
|
+
class: "px-4 pb-4 pt-3 text-sm [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",
|
|
14
14
|
},
|
|
15
15
|
});
|
|
16
16
|
|
|
@@ -10,7 +10,7 @@ var index = require('../../../../node_modules/@tiptap/extension-details/dist/ind
|
|
|
10
10
|
*/
|
|
11
11
|
const DetailsSummary = index.DetailsSummary.configure({
|
|
12
12
|
HTMLAttributes: {
|
|
13
|
-
class: "
|
|
13
|
+
class: "relative m-0 list-none rounded-lg bg-muted/40 px-12 py-3 text-sm font-medium leading-6 text-foreground transition-colors outline-none hover:bg-muted/60 before:absolute before:left-6 before:top-1/2 before:inline-block before:-translate-y-1/2 before:text-xs before:leading-none before:text-muted-foreground before:transition-transform before:content-['❯'] [.is-open_&]:rounded-b-none [.is-open_&]:border-b [.is-open_&]:border-border [.is-open_&]:before:rotate-90 [.is-open_&]:before:transform group-open/details:rounded-b-none group-open/details:border-b group-open/details:border-border group-open/details:before:rotate-90 group-open/details:before:transform [[data-type='details']_&]:before:content-none [&::-webkit-details-marker]:hidden",
|
|
14
14
|
},
|
|
15
15
|
});
|
|
16
16
|
|
|
@@ -12,7 +12,7 @@ const Details = index.Details.configure({
|
|
|
12
12
|
persist: true, // Save open/closed state in document
|
|
13
13
|
openClassName: "is-open",
|
|
14
14
|
HTMLAttributes: {
|
|
15
|
-
class: "mt-4 rounded-lg border border-border bg-card text-card-foreground shadow-sm first:mt-0",
|
|
15
|
+
class: "group/details relative mt-4 overflow-hidden rounded-lg border border-border bg-card text-card-foreground shadow-sm first:mt-0 [&>button]:absolute [&>button]:left-3 [&>button]:top-3 [&>button]:z-10 [&>button]:inline-flex [&>button]:size-6 [&>button]:cursor-pointer [&>button]:items-center [&>button]:justify-center [&>button]:rounded-md [&>button]:border-0 [&>button]:bg-transparent [&>button]:p-0 [&>button]:text-muted-foreground [&>button]:transition-colors [&>button:hover]:bg-muted [&>button:hover]:text-foreground [&>button:focus-visible]:outline-none [&>button:focus-visible]:ring-2 [&>button:focus-visible]:ring-ring [&>button:focus-visible]:ring-offset-2 [&>button:focus-visible]:ring-offset-background [&>button::before]:inline-block [&>button::before]:text-xs [&>button::before]:leading-none [&>button::before]:transition-transform [&>button::before]:content-['❯'] [&.is-open>button::before]:rotate-90 [&.is-open>button::before]:transform",
|
|
16
16
|
},
|
|
17
17
|
});
|
|
18
18
|
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index$1 = require('../../../../node_modules/@tiptap/core/dist/index.js');
|
|
4
|
+
var index = require('../../../../node_modules/@tiptap/extension-image/dist/index.js');
|
|
5
|
+
|
|
6
|
+
const IMAGE_ALIGNMENTS = ["left", "center", "right"];
|
|
7
|
+
const IMAGE_ELEMENT_CLASS = "rich-editor-image";
|
|
8
|
+
const IMAGE_NODE_VIEW_CLASSES = {
|
|
9
|
+
container: "rich-editor-image-resize-container",
|
|
10
|
+
wrapper: "rich-editor-image-resize-wrapper",
|
|
11
|
+
handle: "rich-editor-image-resize-handle",
|
|
12
|
+
resizing: "rich-editor-image-resizing",
|
|
13
|
+
};
|
|
14
|
+
function toImageAlignment(value) {
|
|
15
|
+
if (typeof value !== "string") {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
return IMAGE_ALIGNMENTS.includes(value) ? value : null;
|
|
19
|
+
}
|
|
20
|
+
function parseImageAlignment(value) {
|
|
21
|
+
const parsed = toImageAlignment(value);
|
|
22
|
+
if (parsed) {
|
|
23
|
+
return parsed;
|
|
24
|
+
}
|
|
25
|
+
return "left";
|
|
26
|
+
}
|
|
27
|
+
function parsePixelDimension(value) {
|
|
28
|
+
if (typeof value === "number" && Number.isFinite(value)) {
|
|
29
|
+
return Math.max(1, Math.round(value));
|
|
30
|
+
}
|
|
31
|
+
if (typeof value === "string") {
|
|
32
|
+
const trimmed = value.trim();
|
|
33
|
+
if (!trimmed) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
const parsed = Number.parseFloat(trimmed.replace(/px$/i, ""));
|
|
37
|
+
if (Number.isFinite(parsed)) {
|
|
38
|
+
return Math.max(1, Math.round(parsed));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
function applyNodeAlignment(container, value) {
|
|
44
|
+
const alignment = parseImageAlignment(value);
|
|
45
|
+
container.dataset.imageAlign = alignment;
|
|
46
|
+
if (alignment === "center") {
|
|
47
|
+
container.style.justifyContent = "center";
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (alignment === "right") {
|
|
51
|
+
container.style.justifyContent = "flex-end";
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
container.style.justifyContent = "flex-start";
|
|
55
|
+
}
|
|
56
|
+
function applyImageDimensions(element, width, height) {
|
|
57
|
+
const parsedWidth = parsePixelDimension(width);
|
|
58
|
+
const parsedHeight = parsePixelDimension(height);
|
|
59
|
+
if (parsedWidth === null) {
|
|
60
|
+
element.style.removeProperty("width");
|
|
61
|
+
element.removeAttribute("width");
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
element.style.width = `${parsedWidth}px`;
|
|
65
|
+
element.setAttribute("width", String(parsedWidth));
|
|
66
|
+
}
|
|
67
|
+
if (parsedHeight === null) {
|
|
68
|
+
element.style.removeProperty("height");
|
|
69
|
+
element.removeAttribute("height");
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
element.style.height = `${parsedHeight}px`;
|
|
73
|
+
element.setAttribute("height", String(parsedHeight));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function applyImageElementAttributes(element, attrs) {
|
|
77
|
+
const src = typeof attrs.src === "string" ? attrs.src : "";
|
|
78
|
+
if (src) {
|
|
79
|
+
if (element.getAttribute("src") !== src) {
|
|
80
|
+
element.setAttribute("src", src);
|
|
81
|
+
element.src = src;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
element.removeAttribute("src");
|
|
86
|
+
}
|
|
87
|
+
const alt = typeof attrs.alt === "string" ? attrs.alt : null;
|
|
88
|
+
if (alt !== null) {
|
|
89
|
+
element.setAttribute("alt", alt);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
element.removeAttribute("alt");
|
|
93
|
+
}
|
|
94
|
+
const title = typeof attrs.title === "string" ? attrs.title : null;
|
|
95
|
+
if (title !== null && title.length > 0) {
|
|
96
|
+
element.setAttribute("title", title);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
element.removeAttribute("title");
|
|
100
|
+
}
|
|
101
|
+
const align = parseImageAlignment(attrs.align);
|
|
102
|
+
if (align === "left") {
|
|
103
|
+
element.removeAttribute("data-align");
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
element.setAttribute("data-align", align);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Image extension with persisted alignment metadata.
|
|
111
|
+
* Alignment is stored as `data-align` to avoid conflicting with resize styles.
|
|
112
|
+
*/
|
|
113
|
+
const Image = index.default.extend({
|
|
114
|
+
addAttributes() {
|
|
115
|
+
var _a;
|
|
116
|
+
return Object.assign(Object.assign({}, (_a = this.parent) === null || _a === void 0 ? void 0 : _a.call(this)), { align: {
|
|
117
|
+
default: "left",
|
|
118
|
+
parseHTML: (element) => {
|
|
119
|
+
const fromAttr = toImageAlignment(element.getAttribute("data-align"));
|
|
120
|
+
if (fromAttr) {
|
|
121
|
+
return fromAttr;
|
|
122
|
+
}
|
|
123
|
+
const style = element.style;
|
|
124
|
+
const fromFloat = toImageAlignment(style.float);
|
|
125
|
+
if (fromFloat) {
|
|
126
|
+
return fromFloat;
|
|
127
|
+
}
|
|
128
|
+
if (style.marginLeft === "auto" && style.marginRight === "auto") {
|
|
129
|
+
return "center";
|
|
130
|
+
}
|
|
131
|
+
if (style.marginLeft === "auto") {
|
|
132
|
+
return "right";
|
|
133
|
+
}
|
|
134
|
+
return "left";
|
|
135
|
+
},
|
|
136
|
+
renderHTML: (attributes) => {
|
|
137
|
+
const align = parseImageAlignment(attributes.align);
|
|
138
|
+
if (align === "left") {
|
|
139
|
+
return {};
|
|
140
|
+
}
|
|
141
|
+
return {
|
|
142
|
+
"data-align": align,
|
|
143
|
+
};
|
|
144
|
+
},
|
|
145
|
+
} });
|
|
146
|
+
},
|
|
147
|
+
addNodeView() {
|
|
148
|
+
const resizeOptions = this.options.resize;
|
|
149
|
+
if (!resizeOptions || !resizeOptions.enabled || typeof document === "undefined" || !this.editor.isEditable) {
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
152
|
+
const { directions, minWidth, minHeight, alwaysPreserveAspectRatio } = resizeOptions;
|
|
153
|
+
return ({ node, getPos, HTMLAttributes }) => {
|
|
154
|
+
const element = document.createElement("img");
|
|
155
|
+
element.classList.add(IMAGE_ELEMENT_CLASS);
|
|
156
|
+
Object.entries(HTMLAttributes).forEach(([key, value]) => {
|
|
157
|
+
if (value == null || key === "width" || key === "height" || key === "align") {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
element.setAttribute(key, String(value));
|
|
161
|
+
});
|
|
162
|
+
applyImageElementAttributes(element, node.attrs);
|
|
163
|
+
applyImageDimensions(element, node.attrs.width, node.attrs.height);
|
|
164
|
+
const nodeView = new index$1.ResizableNodeView({
|
|
165
|
+
editor: this.editor,
|
|
166
|
+
element,
|
|
167
|
+
node,
|
|
168
|
+
getPos,
|
|
169
|
+
onResize: (width, height) => {
|
|
170
|
+
element.style.width = `${width}px`;
|
|
171
|
+
element.style.height = `${height}px`;
|
|
172
|
+
},
|
|
173
|
+
onCommit: (width, height) => {
|
|
174
|
+
const pos = getPos();
|
|
175
|
+
if (pos === undefined) {
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
this.editor
|
|
179
|
+
.chain()
|
|
180
|
+
.setNodeSelection(pos)
|
|
181
|
+
.updateAttributes(this.name, {
|
|
182
|
+
width,
|
|
183
|
+
height,
|
|
184
|
+
})
|
|
185
|
+
.run();
|
|
186
|
+
},
|
|
187
|
+
onUpdate: (updatedNode) => {
|
|
188
|
+
if (updatedNode.type.name !== this.name) {
|
|
189
|
+
return false;
|
|
190
|
+
}
|
|
191
|
+
applyImageElementAttributes(element, updatedNode.attrs);
|
|
192
|
+
applyImageDimensions(element, updatedNode.attrs.width, updatedNode.attrs.height);
|
|
193
|
+
applyNodeAlignment(nodeView.dom, updatedNode.attrs.align);
|
|
194
|
+
return true;
|
|
195
|
+
},
|
|
196
|
+
options: {
|
|
197
|
+
directions,
|
|
198
|
+
min: {
|
|
199
|
+
width: minWidth,
|
|
200
|
+
height: minHeight,
|
|
201
|
+
},
|
|
202
|
+
preserveAspectRatio: alwaysPreserveAspectRatio === true,
|
|
203
|
+
className: IMAGE_NODE_VIEW_CLASSES,
|
|
204
|
+
},
|
|
205
|
+
});
|
|
206
|
+
const dom = nodeView.dom;
|
|
207
|
+
dom.style.width = "100%";
|
|
208
|
+
applyNodeAlignment(dom, node.attrs.align);
|
|
209
|
+
const revealNode = () => {
|
|
210
|
+
dom.style.visibility = "";
|
|
211
|
+
dom.style.pointerEvents = "";
|
|
212
|
+
};
|
|
213
|
+
dom.style.visibility = "hidden";
|
|
214
|
+
dom.style.pointerEvents = "none";
|
|
215
|
+
if (element.complete) {
|
|
216
|
+
revealNode();
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
element.onload = revealNode;
|
|
220
|
+
element.onerror = revealNode;
|
|
221
|
+
}
|
|
222
|
+
return nodeView;
|
|
223
|
+
};
|
|
224
|
+
},
|
|
225
|
+
renderHTML({ HTMLAttributes }) {
|
|
226
|
+
const className = [HTMLAttributes.class, IMAGE_ELEMENT_CLASS].filter(Boolean).join(" ");
|
|
227
|
+
return [
|
|
228
|
+
"img",
|
|
229
|
+
index$1.mergeAttributes(this.options.HTMLAttributes, HTMLAttributes, {
|
|
230
|
+
class: className || undefined,
|
|
231
|
+
}),
|
|
232
|
+
];
|
|
233
|
+
},
|
|
234
|
+
});
|
|
235
|
+
|
|
236
|
+
exports.Image = Image;
|
|
@@ -8,6 +8,7 @@ var list = require('../../../../../node_modules/lucide-react/dist/esm/icons/list
|
|
|
8
8
|
var listOrdered = require('../../../../../node_modules/lucide-react/dist/esm/icons/list-ordered.js');
|
|
9
9
|
var textQuote = require('../../../../../node_modules/lucide-react/dist/esm/icons/text-quote.js');
|
|
10
10
|
var code = require('../../../../../node_modules/lucide-react/dist/esm/icons/code.js');
|
|
11
|
+
var chevronDown = require('../../../../../node_modules/lucide-react/dist/esm/icons/chevron-down.js');
|
|
11
12
|
var minus = require('../../../../../node_modules/lucide-react/dist/esm/icons/minus.js');
|
|
12
13
|
var table = require('../../../../../node_modules/lucide-react/dist/esm/icons/table.js');
|
|
13
14
|
var image = require('../../../../../node_modules/lucide-react/dist/esm/icons/image.js');
|
|
@@ -108,6 +109,17 @@ const suggestionItems = [
|
|
|
108
109
|
editor.chain().focus().deleteRange(range).toggleCodeBlock().run();
|
|
109
110
|
},
|
|
110
111
|
},
|
|
112
|
+
{
|
|
113
|
+
title: "Details",
|
|
114
|
+
description: "Insert a collapsible details block.",
|
|
115
|
+
group: INSERT_GROUP,
|
|
116
|
+
searchTerms: ["details", "collapsible", "disclosure", "faq", "accordion"],
|
|
117
|
+
icon: chevronDown.default,
|
|
118
|
+
isAvailable: (editor) => hasExtension(editor, "details"),
|
|
119
|
+
command: ({ editor, range }) => {
|
|
120
|
+
editor.chain().focus().deleteRange(range).setDetails().run();
|
|
121
|
+
},
|
|
122
|
+
},
|
|
111
123
|
{
|
|
112
124
|
title: "Horizontal Rule",
|
|
113
125
|
description: "Insert a divider line.",
|
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var lodash = require('../../../_virtual/lodash.js');
|
|
4
|
-
var index$
|
|
5
|
-
var index$
|
|
6
|
-
var index$
|
|
7
|
-
var index$
|
|
8
|
-
var index$
|
|
9
|
-
var index$
|
|
10
|
-
var index$
|
|
4
|
+
var index$a = require('../../../node_modules/@tiptap/extension-document/dist/index.js');
|
|
5
|
+
var index$b = require('../../../node_modules/@tiptap/extension-text/dist/index.js');
|
|
6
|
+
var index$d = require('../../../node_modules/@tiptap/extension-bold/dist/index.js');
|
|
7
|
+
var index$e = require('../../../node_modules/@tiptap/extension-italic/dist/index.js');
|
|
8
|
+
var index$f = require('../../../node_modules/@tiptap/extension-strike/dist/index.js');
|
|
9
|
+
var index$c = require('../../../node_modules/@tiptap/extension-hard-break/dist/index.js');
|
|
10
|
+
var index$g = require('../../../node_modules/@tiptap/extension-underline/dist/index.js');
|
|
11
11
|
var index = require('../../../node_modules/@tiptap/extension-link/dist/index.js');
|
|
12
|
-
var index$
|
|
13
|
-
var index$i = require('../../../node_modules/@tiptap/extension-
|
|
14
|
-
var index$
|
|
15
|
-
var index$6 = require('../../../node_modules/@tiptap/extension-
|
|
16
|
-
var index$7 = require('../../../node_modules/@tiptap/extension-
|
|
17
|
-
var index$
|
|
18
|
-
var index$4 = require('../../../node_modules/@tiptap/extension-
|
|
19
|
-
var index$
|
|
20
|
-
var index$2 = require('../../../node_modules/@tiptap/extension-
|
|
21
|
-
var index$
|
|
22
|
-
var index$9 = require('../../../node_modules/@tiptap/
|
|
23
|
-
var index$a = require('../../../node_modules/@tiptap/extensions/dist/index.js');
|
|
12
|
+
var index$h = require('../../../node_modules/@tiptap/extension-highlight/dist/index.js');
|
|
13
|
+
var index$i = require('../../../node_modules/@tiptap/extension-text-style/dist/index.js');
|
|
14
|
+
var index$5 = require('../../../node_modules/@tiptap/extension-history/dist/index.js');
|
|
15
|
+
var index$6 = require('../../../node_modules/@tiptap/extension-dropcursor/dist/index.js');
|
|
16
|
+
var index$7 = require('../../../node_modules/@tiptap/extension-gapcursor/dist/index.js');
|
|
17
|
+
var index$3 = require('../../../node_modules/@tiptap/extension-placeholder/dist/index.js');
|
|
18
|
+
var index$4 = require('../../../node_modules/@tiptap/extension-character-count/dist/index.js');
|
|
19
|
+
var index$1 = require('../../../node_modules/@tiptap/extension-youtube/dist/index.js');
|
|
20
|
+
var index$2 = require('../../../node_modules/@tiptap/extension-text-align/dist/index.js');
|
|
21
|
+
var index$8 = require('../../../node_modules/@tiptap/extension-list/dist/index.js');
|
|
22
|
+
var index$9 = require('../../../node_modules/@tiptap/extensions/dist/index.js');
|
|
24
23
|
var indent = require('./extensions/indent.js');
|
|
25
24
|
require('./extensions/table/table.js');
|
|
26
25
|
require('../../../node_modules/@tiptap/extension-table/dist/index.js');
|
|
@@ -46,6 +45,7 @@ var blockquote = require('./extensions/blockquote.js');
|
|
|
46
45
|
var bulletList = require('./extensions/bullet-list.js');
|
|
47
46
|
var orderedList = require('./extensions/ordered-list.js');
|
|
48
47
|
var listItem = require('./extensions/list-item.js');
|
|
48
|
+
var image = require('./extensions/image.js');
|
|
49
49
|
var horizontalRule = require('./extensions/horizontal-rule.js');
|
|
50
50
|
var details = require('./extensions/details.js');
|
|
51
51
|
var detailsSummary = require('./extensions/details-summary.js');
|
|
@@ -76,8 +76,8 @@ var lowlightBase = require('./extensions/code-block/lowlight-base.js');
|
|
|
76
76
|
*/
|
|
77
77
|
const CORE_EXTENSIONS = [
|
|
78
78
|
// Document structure
|
|
79
|
+
index$a.default,
|
|
79
80
|
index$b.default,
|
|
80
|
-
index$c.default,
|
|
81
81
|
// Block content
|
|
82
82
|
paragraph.Paragraph,
|
|
83
83
|
heading.Heading,
|
|
@@ -91,25 +91,25 @@ const CORE_EXTENSIONS = [
|
|
|
91
91
|
detailsContent.DetailsContent,
|
|
92
92
|
extension.Columns,
|
|
93
93
|
extension.Column,
|
|
94
|
-
index$
|
|
94
|
+
index$c.default,
|
|
95
95
|
emoji.Emoji,
|
|
96
96
|
// Inline marks (formatting)
|
|
97
|
+
index$d.default,
|
|
97
98
|
index$e.default,
|
|
98
99
|
index$f.default,
|
|
99
100
|
index$g.default,
|
|
100
|
-
index$h.default,
|
|
101
101
|
code.Code,
|
|
102
102
|
subscript.Subscript,
|
|
103
103
|
superscript.Superscript,
|
|
104
|
-
index$
|
|
104
|
+
index$h.default,
|
|
105
105
|
index.default,
|
|
106
106
|
// Text styling
|
|
107
|
-
index$
|
|
107
|
+
index$2.default,
|
|
108
108
|
indent.Indent,
|
|
109
|
-
index$
|
|
109
|
+
index$i.TextStyleKit, // Includes TextStyle, Color, BackgroundColor, FontSize, FontFamily, LineHeight
|
|
110
110
|
// Rich content
|
|
111
|
+
image.Image,
|
|
111
112
|
index$1.default,
|
|
112
|
-
index$2.default,
|
|
113
113
|
extension$1.Carousel,
|
|
114
114
|
kit.TableKit,
|
|
115
115
|
lowlightBase.CodeBlockLowlightBase,
|
|
@@ -128,7 +128,7 @@ const defaultExtensionConfigs = new Map([
|
|
|
128
128
|
},
|
|
129
129
|
],
|
|
130
130
|
[
|
|
131
|
-
|
|
131
|
+
image.Image.name,
|
|
132
132
|
{
|
|
133
133
|
resize: {
|
|
134
134
|
enabled: true,
|
|
@@ -140,14 +140,14 @@ const defaultExtensionConfigs = new Map([
|
|
|
140
140
|
},
|
|
141
141
|
],
|
|
142
142
|
[
|
|
143
|
-
index$
|
|
143
|
+
index$1.default.name,
|
|
144
144
|
{
|
|
145
145
|
controls: true,
|
|
146
146
|
nocookie: true,
|
|
147
147
|
},
|
|
148
148
|
],
|
|
149
149
|
[
|
|
150
|
-
index$
|
|
150
|
+
index$2.default.name,
|
|
151
151
|
{
|
|
152
152
|
types: ["heading", "paragraph"],
|
|
153
153
|
defaultAlignment: "left",
|
|
@@ -163,24 +163,24 @@ const defaultExtensionConfigs = new Map([
|
|
|
163
163
|
},
|
|
164
164
|
],
|
|
165
165
|
[
|
|
166
|
-
index$
|
|
166
|
+
index$3.default.name,
|
|
167
167
|
{
|
|
168
168
|
placeholder: "Start typing…",
|
|
169
169
|
},
|
|
170
170
|
],
|
|
171
171
|
[
|
|
172
|
-
index$
|
|
172
|
+
index$4.default.name,
|
|
173
173
|
{
|
|
174
174
|
limit: 0,
|
|
175
175
|
},
|
|
176
176
|
],
|
|
177
177
|
]);
|
|
178
178
|
const EDITOR_EXTENSIONS = [
|
|
179
|
+
index$5.default,
|
|
179
180
|
index$6.default,
|
|
180
181
|
index$7.default,
|
|
181
|
-
index$8.
|
|
182
|
-
index$9.
|
|
183
|
-
index$a.TrailingNode,
|
|
182
|
+
index$8.ListKeymap,
|
|
183
|
+
index$9.TrailingNode,
|
|
184
184
|
slash.Slash.configure({
|
|
185
185
|
suggestion: {
|
|
186
186
|
items: defaultSuggestions.defaultSlashSuggestions,
|
|
@@ -192,8 +192,8 @@ const EDITOR_EXTENSIONS = [
|
|
|
192
192
|
render: slashSuggestionRenderer.renderSlashSuggestion,
|
|
193
193
|
},
|
|
194
194
|
}),
|
|
195
|
-
index$5.default,
|
|
196
195
|
index$4.default,
|
|
196
|
+
index$3.default,
|
|
197
197
|
emoji.EmojiEditor,
|
|
198
198
|
editor.CarouselEditor,
|
|
199
199
|
tableActionsExtension.TableActionsExtension,
|
|
@@ -37,7 +37,14 @@ function RichEditor({ initialValue, outputFormat, onChange, editable = true, pla
|
|
|
37
37
|
content: initialValue || "",
|
|
38
38
|
extensions: extensions.getEditorExtensions([
|
|
39
39
|
index$1.CodeBlockLowlight,
|
|
40
|
-
index$2.default.configure({
|
|
40
|
+
index$2.default.configure({
|
|
41
|
+
placeholder: ({ node }) => {
|
|
42
|
+
if (node.type.name === "detailsSummary") {
|
|
43
|
+
return "Summary";
|
|
44
|
+
}
|
|
45
|
+
return placeholder;
|
|
46
|
+
},
|
|
47
|
+
}),
|
|
41
48
|
editor.CarouselEditor.configure({
|
|
42
49
|
onUploadFiles: (files) => onFileUploadRef.current(files),
|
|
43
50
|
}),
|
|
@@ -32,6 +32,7 @@ var plus = require('../../../node_modules/lucide-react/dist/esm/icons/plus.js');
|
|
|
32
32
|
var image = require('../../../node_modules/lucide-react/dist/esm/icons/image.js');
|
|
33
33
|
var video = require('../../../node_modules/lucide-react/dist/esm/icons/video.js');
|
|
34
34
|
var columns2 = require('../../../node_modules/lucide-react/dist/esm/icons/columns-2.js');
|
|
35
|
+
var chevronDown = require('../../../node_modules/lucide-react/dist/esm/icons/chevron-down.js');
|
|
35
36
|
var smile = require('../../../node_modules/lucide-react/dist/esm/icons/smile.js');
|
|
36
37
|
var galleryThumbnails = require('../../../node_modules/lucide-react/dist/esm/icons/gallery-thumbnails.js');
|
|
37
38
|
var minus = require('../../../node_modules/lucide-react/dist/esm/icons/minus.js');
|
|
@@ -155,7 +156,7 @@ function InsertMenu({ editor, onFileUpload, showInsertItems = true, showCodeBloc
|
|
|
155
156
|
if (!hasMenuItems) {
|
|
156
157
|
return null;
|
|
157
158
|
}
|
|
158
|
-
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs(dropdownMenu.DropdownMenu, { children: [jsxRuntime.jsxs(tooltip.Tooltip, { children: [jsxRuntime.jsx(dropdownMenu.DropdownMenuTrigger, { asChild: true, children: jsxRuntime.jsx(tooltip.TooltipTrigger, { asChild: true, children: jsxRuntime.jsxs(button.Button, { variant: "ghost", size: "sm", className: "h-8 gap-1.5 rounded-md px-2.5 text-xs font-medium hover:bg-muted", "aria-label": "Insert", children: [jsxRuntime.jsx(plus.default, { className: "size-4" }), jsxRuntime.jsx("span", { className: "hidden sm:inline", children: "Insert" })] }) }) }), jsxRuntime.jsx(tooltip.TooltipContent, { children: "Insert" })] }), jsxRuntime.jsxs(dropdownMenu.DropdownMenuContent, { align: "start", className: "w-48", children: [showInsertItems && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs(dropdownMenu.DropdownMenuItem, { onClick: () => setImageOpen(true), children: [jsxRuntime.jsx(image.default, { className: "mr-2 size-4" }), " Image"] }), jsxRuntime.jsxs(dropdownMenu.DropdownMenuItem, { onClick: () => setYoutubeOpen(true), children: [jsxRuntime.jsx(video.default, { className: "mr-2 size-4" }), " YouTube Video"] }), jsxRuntime.jsxs(dropdownMenu.DropdownMenuItem, { onClick: () => setColumnsOpen(true), children: [jsxRuntime.jsx(columns2.default, { className: "mr-2 size-4" }), " Columns Layout"] }), jsxRuntime.jsxs(dropdownMenu.DropdownMenuItem, { onClick: () => {
|
|
159
|
+
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs(dropdownMenu.DropdownMenu, { children: [jsxRuntime.jsxs(tooltip.Tooltip, { children: [jsxRuntime.jsx(dropdownMenu.DropdownMenuTrigger, { asChild: true, children: jsxRuntime.jsx(tooltip.TooltipTrigger, { asChild: true, children: jsxRuntime.jsxs(button.Button, { variant: "ghost", size: "sm", className: "h-8 gap-1.5 rounded-md px-2.5 text-xs font-medium hover:bg-muted", "aria-label": "Insert", children: [jsxRuntime.jsx(plus.default, { className: "size-4" }), jsxRuntime.jsx("span", { className: "hidden sm:inline", children: "Insert" })] }) }) }), jsxRuntime.jsx(tooltip.TooltipContent, { children: "Insert" })] }), jsxRuntime.jsxs(dropdownMenu.DropdownMenuContent, { align: "start", className: "w-48", children: [showInsertItems && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs(dropdownMenu.DropdownMenuItem, { onClick: () => setImageOpen(true), children: [jsxRuntime.jsx(image.default, { className: "mr-2 size-4" }), " Image"] }), jsxRuntime.jsxs(dropdownMenu.DropdownMenuItem, { onClick: () => setYoutubeOpen(true), children: [jsxRuntime.jsx(video.default, { className: "mr-2 size-4" }), " YouTube Video"] }), jsxRuntime.jsxs(dropdownMenu.DropdownMenuItem, { onClick: () => setColumnsOpen(true), children: [jsxRuntime.jsx(columns2.default, { className: "mr-2 size-4" }), " Columns Layout"] }), editor.extensionManager.extensions.some((ext) => ext.name === "details") && (jsxRuntime.jsxs(dropdownMenu.DropdownMenuItem, { onClick: () => editor.chain().focus().setDetails().run(), children: [jsxRuntime.jsx(chevronDown.default, { className: "mr-2 size-4" }), " Details"] })), jsxRuntime.jsxs(dropdownMenu.DropdownMenuItem, { onClick: () => {
|
|
159
160
|
setTimeout(() => {
|
|
160
161
|
editor.chain().focus().insertContent(":").run();
|
|
161
162
|
}, 0);
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
require('../../ckeditor5-core/dist/index.js');
|
|
4
4
|
var index = require('../../ckeditor5-utils/dist/index.js');
|
|
5
|
-
require('../../../../_virtual/index5.js');
|
|
6
5
|
require('../../../../_virtual/index6.js');
|
|
6
|
+
require('../../../../_virtual/index7.js');
|
|
7
7
|
require('../../ckeditor5-engine/dist/index.js');
|
|
8
8
|
|
|
9
9
|
/**
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
var index = require('../../ckeditor5-core/dist/index.js');
|
|
4
4
|
var index$1 = require('../../ckeditor5-utils/dist/index.js');
|
|
5
|
-
require('../../../../_virtual/index5.js');
|
|
6
5
|
require('../../../../_virtual/index6.js');
|
|
6
|
+
require('../../../../_virtual/index7.js');
|
|
7
7
|
require('../../ckeditor5-engine/dist/index.js');
|
|
8
8
|
|
|
9
9
|
/**
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var index$1 = require('../../ckeditor5-utils/dist/index.js');
|
|
4
4
|
var index = require('../../ckeditor5-core/dist/index.js');
|
|
5
5
|
var index$3 = require('../../../color-parse/index.js');
|
|
6
|
-
var index$2 = require('../../../../_virtual/
|
|
6
|
+
var index$2 = require('../../../../_virtual/index7.js');
|
|
7
7
|
var hex = require('../../../vanilla-colorful/lib/entrypoints/hex.js');
|
|
8
8
|
require('../../ckeditor5-engine/dist/index.js');
|
|
9
9
|
var assignIn = require('../../../lodash-es/assignIn.js');
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
3
|
var index = require('../../core/dist/index.js');
|
|
6
4
|
var index$1 = require('../../../prosemirror-state/dist/index.js');
|
|
7
5
|
|
|
@@ -316,10 +314,6 @@ var CodeBlock = index.Node.create({
|
|
|
316
314
|
}
|
|
317
315
|
});
|
|
318
316
|
|
|
319
|
-
// src/index.ts
|
|
320
|
-
var index_default = CodeBlock;
|
|
321
|
-
|
|
322
317
|
exports.CodeBlock = CodeBlock;
|
|
323
318
|
exports.backtickInputRegex = backtickInputRegex;
|
|
324
|
-
exports.default = index_default;
|
|
325
319
|
exports.tildeInputRegex = tildeInputRegex;
|