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.
Files changed (69) hide show
  1. package/dist/cjs/_virtual/index10.js +2 -8
  2. package/dist/cjs/_virtual/index5.js +2 -8
  3. package/dist/cjs/_virtual/index6.js +4 -4
  4. package/dist/cjs/_virtual/index7.js +8 -2
  5. package/dist/cjs/_virtual/index9.js +8 -2
  6. package/dist/cjs/components/ui/rich-editor/extensions/carousel/shared.js +1 -1
  7. package/dist/cjs/components/ui/rich-editor/extensions/details-content.js +1 -1
  8. package/dist/cjs/components/ui/rich-editor/extensions/details-summary.js +1 -1
  9. package/dist/cjs/components/ui/rich-editor/extensions/details.js +1 -1
  10. package/dist/cjs/components/ui/rich-editor/extensions/image.js +236 -0
  11. package/dist/cjs/components/ui/rich-editor/extensions/slash/default-suggestions.js +12 -0
  12. package/dist/cjs/components/ui/rich-editor/extensions.js +35 -35
  13. package/dist/cjs/components/ui/rich-editor/rich-editor.js +8 -1
  14. package/dist/cjs/components/ui/rich-editor/toolbar.js +2 -1
  15. package/dist/cjs/node_modules/@ckeditor/ckeditor5-mention/dist/index.js +1 -1
  16. package/dist/cjs/node_modules/@ckeditor/ckeditor5-paragraph/dist/index.js +1 -1
  17. package/dist/cjs/node_modules/@ckeditor/ckeditor5-ui/dist/index.js +1 -1
  18. package/dist/cjs/node_modules/@pdf-lib/standard-fonts/es/utils.js +1 -1
  19. package/dist/cjs/node_modules/@pdf-lib/upng/UPNG.js +1 -1
  20. package/dist/cjs/node_modules/@tiptap/extension-code-block/dist/index.js +0 -6
  21. package/dist/cjs/node_modules/@tiptap/extension-code-block-lowlight/dist/index.js +1 -1
  22. package/dist/cjs/node_modules/@tiptap/extension-image/dist/index.js +3 -2
  23. package/dist/cjs/node_modules/@tiptap/extension-link/dist/index.js +52 -28
  24. package/dist/cjs/node_modules/@tiptap/extension-list/dist/index.js +29 -1
  25. package/dist/cjs/node_modules/@tiptap/extension-paragraph/dist/index.js +13 -8
  26. package/dist/cjs/node_modules/@tiptap/extension-text-align/dist/index.js +2 -2
  27. package/dist/cjs/node_modules/@tiptap/extension-youtube/dist/index.js +1 -1
  28. package/dist/cjs/node_modules/@tiptap/extensions/dist/index.js +9 -2
  29. package/dist/cjs/node_modules/color-parse/index.js +1 -1
  30. package/dist/cjs/node_modules/pdf-lib/es/core/PDFContext.js +1 -1
  31. package/dist/cjs/node_modules/pdf-lib/es/core/structures/PDFFlateStream.js +1 -1
  32. package/dist/cjs/node_modules/prop-types/index.js +1 -1
  33. package/dist/cjs/node_modules/prop-types/node_modules/react-is/index.js +1 -1
  34. package/dist/esm/_virtual/index10.js +2 -6
  35. package/dist/esm/_virtual/index5.js +2 -6
  36. package/dist/esm/_virtual/index6.js +4 -4
  37. package/dist/esm/_virtual/index7.js +6 -2
  38. package/dist/esm/_virtual/index9.js +6 -2
  39. package/dist/esm/components/ui/rich-editor/extensions/carousel/shared.js +1 -1
  40. package/dist/esm/components/ui/rich-editor/extensions/details-content.js +1 -1
  41. package/dist/esm/components/ui/rich-editor/extensions/details-summary.js +1 -1
  42. package/dist/esm/components/ui/rich-editor/extensions/details.js +1 -1
  43. package/dist/esm/components/ui/rich-editor/extensions/image.js +234 -0
  44. package/dist/esm/components/ui/rich-editor/extensions/slash/default-suggestions.js +12 -0
  45. package/dist/esm/components/ui/rich-editor/extensions.js +29 -29
  46. package/dist/esm/components/ui/rich-editor/rich-editor.js +8 -1
  47. package/dist/esm/components/ui/rich-editor/toolbar.js +2 -1
  48. package/dist/esm/node_modules/@ckeditor/ckeditor5-mention/dist/index.js +1 -1
  49. package/dist/esm/node_modules/@ckeditor/ckeditor5-paragraph/dist/index.js +1 -1
  50. package/dist/esm/node_modules/@ckeditor/ckeditor5-ui/dist/index.js +1 -1
  51. package/dist/esm/node_modules/@pdf-lib/standard-fonts/es/utils.js +1 -1
  52. package/dist/esm/node_modules/@pdf-lib/upng/UPNG.js +1 -1
  53. package/dist/esm/node_modules/@tiptap/extension-code-block/dist/index.js +1 -4
  54. package/dist/esm/node_modules/@tiptap/extension-code-block-lowlight/dist/index.js +2 -2
  55. package/dist/esm/node_modules/@tiptap/extension-image/dist/index.js +3 -2
  56. package/dist/esm/node_modules/@tiptap/extension-link/dist/index.js +52 -28
  57. package/dist/esm/node_modules/@tiptap/extension-list/dist/index.js +30 -2
  58. package/dist/esm/node_modules/@tiptap/extension-paragraph/dist/index.js +13 -8
  59. package/dist/esm/node_modules/@tiptap/extension-text-align/dist/index.js +2 -2
  60. package/dist/esm/node_modules/@tiptap/extension-youtube/dist/index.js +1 -1
  61. package/dist/esm/node_modules/@tiptap/extensions/dist/index.js +9 -3
  62. package/dist/esm/node_modules/color-parse/index.js +1 -1
  63. package/dist/esm/node_modules/pdf-lib/es/core/PDFContext.js +1 -1
  64. package/dist/esm/node_modules/pdf-lib/es/core/structures/PDFFlateStream.js +1 -1
  65. package/dist/esm/node_modules/prop-types/index.js +1 -1
  66. package/dist/esm/node_modules/prop-types/node_modules/react-is/index.js +1 -1
  67. package/dist/styles.css +318 -0
  68. package/dist/types/index.d.ts +10 -10
  69. package/package.json +45 -45
@@ -1,11 +1,5 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
3
+ var reactIs = {exports: {}};
4
4
 
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;
5
+ exports.__module = reactIs;
@@ -1,11 +1,5 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
3
+ var propTypes = {exports: {}};
4
4
 
5
- var _commonjsHelpers = require('./_commonjsHelpers.js');
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$1 = require('../node_modules/color-convert/index.js');
6
+ var index = require('../node_modules/color-name/index.js');
7
7
 
8
- var colorConvertExports = index$1.__require();
9
- var index = /*@__PURE__*/_commonjsHelpers.getDefaultExportFromCjs(colorConvertExports);
8
+ var colorNameExports = index.__require();
9
+ var names = /*@__PURE__*/_commonjsHelpers.getDefaultExportFromCjs(colorNameExports);
10
10
 
11
- exports.default = index;
11
+ exports.default = names;
@@ -1,5 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var propTypes = {exports: {}};
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- exports.__module = propTypes;
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
- var reactIs = {exports: {}};
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- exports.__module = reactIs;
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 py-3 text-sm",
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: "flex cursor-pointer items-center justify-between rounded-t-lg bg-muted/50 px-4 py-3 font-semibold text-foreground hover:bg-muted transition-colors [&::-webkit-details-marker]:hidden",
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$b = require('../../../node_modules/@tiptap/extension-document/dist/index.js');
5
- var index$c = require('../../../node_modules/@tiptap/extension-text/dist/index.js');
6
- var index$e = require('../../../node_modules/@tiptap/extension-bold/dist/index.js');
7
- var index$f = require('../../../node_modules/@tiptap/extension-italic/dist/index.js');
8
- var index$g = require('../../../node_modules/@tiptap/extension-strike/dist/index.js');
9
- var index$d = require('../../../node_modules/@tiptap/extension-hard-break/dist/index.js');
10
- var index$h = require('../../../node_modules/@tiptap/extension-underline/dist/index.js');
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$1 = require('../../../node_modules/@tiptap/extension-image/dist/index.js');
13
- var index$i = require('../../../node_modules/@tiptap/extension-highlight/dist/index.js');
14
- var index$j = require('../../../node_modules/@tiptap/extension-text-style/dist/index.js');
15
- var index$6 = require('../../../node_modules/@tiptap/extension-history/dist/index.js');
16
- var index$7 = require('../../../node_modules/@tiptap/extension-dropcursor/dist/index.js');
17
- var index$8 = require('../../../node_modules/@tiptap/extension-gapcursor/dist/index.js');
18
- var index$4 = require('../../../node_modules/@tiptap/extension-placeholder/dist/index.js');
19
- var index$5 = require('../../../node_modules/@tiptap/extension-character-count/dist/index.js');
20
- var index$2 = require('../../../node_modules/@tiptap/extension-youtube/dist/index.js');
21
- var index$3 = require('../../../node_modules/@tiptap/extension-text-align/dist/index.js');
22
- var index$9 = require('../../../node_modules/@tiptap/extension-list/dist/index.js');
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$d.default,
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$i.default,
104
+ index$h.default,
105
105
  index.default,
106
106
  // Text styling
107
- index$3.default,
107
+ index$2.default,
108
108
  indent.Indent,
109
- index$j.TextStyleKit, // Includes TextStyle, Color, BackgroundColor, FontSize, FontFamily, LineHeight
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
- index$1.default.name,
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$2.default.name,
143
+ index$1.default.name,
144
144
  {
145
145
  controls: true,
146
146
  nocookie: true,
147
147
  },
148
148
  ],
149
149
  [
150
- index$3.default.name,
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$4.default.name,
166
+ index$3.default.name,
167
167
  {
168
168
  placeholder: "Start typing…",
169
169
  },
170
170
  ],
171
171
  [
172
- index$5.default.name,
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.default,
182
- index$9.ListKeymap,
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({ placeholder }),
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/index6.js');
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,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('../../../../_virtual/index10.js');
3
+ var index = require('../../../../_virtual/index9.js');
4
4
 
5
5
  /*
6
6
  * The `chars`, `lookup`, and `decodeFromBase64` members of this file are
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var index = require('../../../_virtual/index10.js');
5
+ var index = require('../../../_virtual/index9.js');
6
6
 
7
7
  var UPNG = {};
8
8
 
@@ -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;