@reacteditor/core 0.0.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +85 -0
- package/dist/Editor-GBV2O5RD.css +415 -0
- package/dist/Editor-IKMJILGR.mjs +204 -0
- package/dist/Render-EFT7YD2C.css +103 -0
- package/dist/Render-VDC7AEQK.mjs +55 -0
- package/dist/actions-BCDhqbeL.d.mts +849 -0
- package/dist/actions-BCDhqbeL.d.ts +849 -0
- package/dist/chunk-2YLS65V2.mjs +103 -0
- package/dist/chunk-6B2Q5R3C.mjs +53 -0
- package/dist/chunk-DXGQXXQG.mjs +63 -0
- package/dist/chunk-F7S5S6I2.mjs +114 -0
- package/dist/chunk-GAUBBDIR.mjs +463 -0
- package/dist/chunk-GUMYXUO3.mjs +33 -0
- package/dist/chunk-M6W7YEVX.mjs +95 -0
- package/dist/chunk-MFI3RDA4.mjs +11 -0
- package/dist/chunk-QNHSXCWU.mjs +8692 -0
- package/dist/chunk-SURZYH7D.mjs +1726 -0
- package/dist/chunk-V2OPYD42.mjs +708 -0
- package/dist/chunk-VD3EVRUF.mjs +476 -0
- package/dist/chunk-VOLQMQPK.mjs +146 -0
- package/dist/chunk-VUEM62JF.mjs +523 -0
- package/dist/chunk-Y2EFNT5P.mjs +108 -0
- package/dist/full-ELX6RALJ.css +311 -0
- package/dist/full-OBTPW7TC.mjs +93 -0
- package/dist/index-ComBHfdn.d.ts +117 -0
- package/dist/index-DVwiIwYU.d.mts +117 -0
- package/dist/index.css +3033 -0
- package/dist/index.d.mts +396 -0
- package/dist/index.d.ts +396 -0
- package/dist/index.js +14688 -0
- package/dist/index.mjs +87 -0
- package/dist/internal.d.mts +27 -0
- package/dist/internal.d.ts +27 -0
- package/dist/internal.js +931 -0
- package/dist/internal.mjs +13 -0
- package/dist/loaded-35WC23HJ.mjs +60 -0
- package/dist/loaded-TBSVRJPY.css +90 -0
- package/dist/loaded-ULSROV73.mjs +57 -0
- package/dist/loaded-YYRJPIWZ.mjs +57 -0
- package/dist/no-external.css +3031 -0
- package/dist/no-external.d.mts +21 -0
- package/dist/no-external.d.ts +21 -0
- package/dist/no-external.js +14688 -0
- package/dist/no-external.mjs +87 -0
- package/dist/rsc.css +103 -0
- package/dist/rsc.d.mts +27 -0
- package/dist/rsc.d.ts +27 -0
- package/dist/rsc.js +1493 -0
- package/dist/rsc.mjs +148 -0
- package/dist/walk-tree-BPIigVTF.d.mts +29 -0
- package/dist/walk-tree-BZq1CPCH.d.ts +29 -0
- package/package.json +139 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/* css-module:/Users/rami/Documents/apps/frontend-react-editor/packages/core/components/RichTextEditor/styles.module.css/#css-module-data */
|
|
2
|
+
._RichTextEditor_1grt5_1 .ProseMirror {
|
|
3
|
+
white-space: pre-wrap;
|
|
4
|
+
word-wrap: break-word;
|
|
5
|
+
cursor: text;
|
|
6
|
+
outline: none;
|
|
7
|
+
position: relative;
|
|
8
|
+
}
|
|
9
|
+
._RichTextEditor_1grt5_1 .rich-text * {
|
|
10
|
+
white-space: pre-wrap;
|
|
11
|
+
user-select: auto;
|
|
12
|
+
-webkit-user-select: auto;
|
|
13
|
+
}
|
|
14
|
+
._RichTextEditor_1grt5_1 .rich-text blockquote {
|
|
15
|
+
margin: 1em 0;
|
|
16
|
+
padding: 0 1em;
|
|
17
|
+
border-left: 4px solid var(--re-border-default);
|
|
18
|
+
}
|
|
19
|
+
._RichTextEditor_1grt5_1 .rich-text code {
|
|
20
|
+
background-color: var(--re-surface-sunken);
|
|
21
|
+
padding: 4px 8px;
|
|
22
|
+
border-radius: var(--re-radius-sm);
|
|
23
|
+
}
|
|
24
|
+
._RichTextEditor_1grt5_1 .rich-text p:empty::before {
|
|
25
|
+
content: "\a0";
|
|
26
|
+
}
|
|
27
|
+
._RichTextEditor_1grt5_1 .rich-text pre code {
|
|
28
|
+
display: block;
|
|
29
|
+
padding: 8px 12px;
|
|
30
|
+
}
|
|
31
|
+
._RichTextEditor_1grt5_1 .rich-text > *:first-child,
|
|
32
|
+
._RichTextEditor_1grt5_1 .ProseMirror > *:first-child,
|
|
33
|
+
._RichTextEditor_1grt5_1 .rich-text * p:first-of-type {
|
|
34
|
+
margin-top: 0;
|
|
35
|
+
}
|
|
36
|
+
._RichTextEditor_1grt5_1 .rich-text > *:last-child,
|
|
37
|
+
._RichTextEditor_1grt5_1 .ProseMirror > *:last-child,
|
|
38
|
+
._RichTextEditor_1grt5_1 .rich-text * p:last-of-type {
|
|
39
|
+
margin-bottom: 0;
|
|
40
|
+
}
|
|
41
|
+
._RichTextEditor--editor_1grt5_50 {
|
|
42
|
+
background: var(--re-surface-panel);
|
|
43
|
+
border-width: 1px;
|
|
44
|
+
border-style: solid;
|
|
45
|
+
border-color: var(--re-border-default);
|
|
46
|
+
border-radius: var(--re-radius-md);
|
|
47
|
+
box-sizing: border-box;
|
|
48
|
+
display: flex;
|
|
49
|
+
flex-direction: column;
|
|
50
|
+
font-family: inherit;
|
|
51
|
+
font-size: var(--re-font-size-xxs);
|
|
52
|
+
resize: vertical;
|
|
53
|
+
text-align: initial;
|
|
54
|
+
transition: border-color var(--re-motion-fast) var(--re-ease), box-shadow var(--re-motion-fast) var(--re-ease);
|
|
55
|
+
width: 100%;
|
|
56
|
+
max-width: 100%;
|
|
57
|
+
min-height: 128px;
|
|
58
|
+
}
|
|
59
|
+
._RichTextEditor--editor_1grt5_50 .rich-text {
|
|
60
|
+
flex-grow: 1;
|
|
61
|
+
}
|
|
62
|
+
._RichTextEditor--editor_1grt5_50 .rich-text:not(:has(.ProseMirror)),
|
|
63
|
+
._RichTextEditor--editor_1grt5_50 .rich-text .ProseMirror {
|
|
64
|
+
height: 100%;
|
|
65
|
+
padding: 12px 15px;
|
|
66
|
+
}
|
|
67
|
+
._RichTextEditor--editor_1grt5_50 .rich-text ul,
|
|
68
|
+
._RichTextEditor--editor_1grt5_50 .rich-text ol {
|
|
69
|
+
padding-left: 24px;
|
|
70
|
+
}
|
|
71
|
+
._RichTextEditor--editor_1grt5_50 .rich-text li {
|
|
72
|
+
line-height: 1.5;
|
|
73
|
+
}
|
|
74
|
+
._RichTextEditor--editor_1grt5_50 .rich-text p {
|
|
75
|
+
margin-block: 12px;
|
|
76
|
+
}
|
|
77
|
+
._RichTextEditor--editor_1grt5_50 .rich-text ul {
|
|
78
|
+
list-style: disc;
|
|
79
|
+
}
|
|
80
|
+
._RichTextEditor--editor_1grt5_50 .rich-text ol {
|
|
81
|
+
list-style: decimal;
|
|
82
|
+
}
|
|
83
|
+
._RichTextEditor--editor_1grt5_50:focus-within {
|
|
84
|
+
border-color: var(--re-accent);
|
|
85
|
+
outline: none;
|
|
86
|
+
box-shadow: var(--re-ring);
|
|
87
|
+
transition: none;
|
|
88
|
+
}
|
|
89
|
+
._RichTextEditor--editor_1grt5_50._RichTextEditor--disabled_1grt5_109 {
|
|
90
|
+
background: var(--re-surface-sunken);
|
|
91
|
+
}
|
|
92
|
+
._RichTextEditor_1grt5_1:not(:focus-within):not(._RichTextEditor--isActive_1grt5_113) .ProseMirror ::selection {
|
|
93
|
+
background-color: transparent;
|
|
94
|
+
}
|
|
95
|
+
._RichTextEditor-menu_1grt5_119 {
|
|
96
|
+
border-bottom: 1px solid var(--re-border-subtle);
|
|
97
|
+
position: sticky;
|
|
98
|
+
top: 0;
|
|
99
|
+
z-index: 1;
|
|
100
|
+
}
|
|
101
|
+
._RichTextEditor--disabled_1grt5_109 ._RichTextEditor-menu_1grt5_119 {
|
|
102
|
+
border-bottom: 1px solid var(--re-border-subtle);
|
|
103
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import {
|
|
2
|
+
EditorRichText
|
|
3
|
+
} from "./chunk-2YLS65V2.mjs";
|
|
4
|
+
import {
|
|
5
|
+
styles_module_default
|
|
6
|
+
} from "./chunk-MFI3RDA4.mjs";
|
|
7
|
+
import {
|
|
8
|
+
get_class_name_factory_default
|
|
9
|
+
} from "./chunk-Y2EFNT5P.mjs";
|
|
10
|
+
import {
|
|
11
|
+
init_react_import
|
|
12
|
+
} from "./chunk-M6W7YEVX.mjs";
|
|
13
|
+
|
|
14
|
+
// components/RichTextEditor/components/Render.tsx
|
|
15
|
+
init_react_import();
|
|
16
|
+
import { generateHTML, generateJSON } from "@tiptap/html";
|
|
17
|
+
import { useMemo } from "react";
|
|
18
|
+
import { jsx } from "react/jsx-runtime";
|
|
19
|
+
var getClassName = get_class_name_factory_default("RichTextEditor", styles_module_default);
|
|
20
|
+
function RichTextRender({
|
|
21
|
+
content,
|
|
22
|
+
field
|
|
23
|
+
}) {
|
|
24
|
+
const { tiptap = {}, options } = field;
|
|
25
|
+
const { extensions = [] } = tiptap;
|
|
26
|
+
const loadedExtensions = useMemo(
|
|
27
|
+
() => [EditorRichText.configure(options), ...extensions],
|
|
28
|
+
[field, extensions]
|
|
29
|
+
);
|
|
30
|
+
const normalized = useMemo(() => {
|
|
31
|
+
if (typeof content === "object" && (content == null ? void 0 : content.type) === "doc") {
|
|
32
|
+
return content;
|
|
33
|
+
}
|
|
34
|
+
if (typeof content === "string") {
|
|
35
|
+
const isHtml = /<\/?[a-z][\s\S]*>/i.test(content);
|
|
36
|
+
if (isHtml) {
|
|
37
|
+
return generateJSON(content, loadedExtensions);
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
type: "doc",
|
|
41
|
+
content: [
|
|
42
|
+
{ type: "paragraph", content: [{ type: "text", text: content }] }
|
|
43
|
+
]
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
return { type: "doc", content: [] };
|
|
47
|
+
}, [content, loadedExtensions]);
|
|
48
|
+
const html = useMemo(() => {
|
|
49
|
+
return generateHTML(normalized, loadedExtensions);
|
|
50
|
+
}, [normalized, loadedExtensions]);
|
|
51
|
+
return /* @__PURE__ */ jsx("div", { className: getClassName(), children: /* @__PURE__ */ jsx("div", { className: "rich-text", dangerouslySetInnerHTML: { __html: html } }) });
|
|
52
|
+
}
|
|
53
|
+
export {
|
|
54
|
+
RichTextRender
|
|
55
|
+
};
|