@multiplatform.one/rich-text 7.4.1 → 7.5.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/dist/cjs/RichTextEditor/index.cjs +115 -50
- package/dist/cjs/RichTextEditor/index.native.js +119 -53
- package/dist/cjs/RichTextEditor/index.native.js.map +1 -1
- package/dist/cjs/toolbar/HeadingPicker.cjs +0 -7
- package/dist/cjs/toolbar/HeadingPicker.native.js +17 -13
- package/dist/cjs/toolbar/HeadingPicker.native.js.map +1 -1
- package/dist/cjs/toolbar/ListPicker.cjs +0 -7
- package/dist/cjs/toolbar/ListPicker.native.js +11 -12
- package/dist/cjs/toolbar/ListPicker.native.js.map +1 -1
- package/dist/cjs/toolbar/MoreDropdown.cjs +0 -7
- package/dist/cjs/toolbar/MoreDropdown.native.js +11 -12
- package/dist/cjs/toolbar/MoreDropdown.native.js.map +1 -1
- package/dist/esm/RichTextEditor/index.mjs +117 -53
- package/dist/esm/RichTextEditor/index.mjs.map +1 -1
- package/dist/esm/RichTextEditor/index.native.js +121 -56
- package/dist/esm/RichTextEditor/index.native.js.map +1 -1
- package/dist/esm/toolbar/HeadingPicker.mjs +0 -7
- package/dist/esm/toolbar/HeadingPicker.mjs.map +1 -1
- package/dist/esm/toolbar/HeadingPicker.native.js +17 -13
- package/dist/esm/toolbar/HeadingPicker.native.js.map +1 -1
- package/dist/esm/toolbar/ListPicker.mjs +0 -7
- package/dist/esm/toolbar/ListPicker.mjs.map +1 -1
- package/dist/esm/toolbar/ListPicker.native.js +11 -12
- package/dist/esm/toolbar/ListPicker.native.js.map +1 -1
- package/dist/esm/toolbar/MoreDropdown.mjs +0 -7
- package/dist/esm/toolbar/MoreDropdown.mjs.map +1 -1
- package/dist/esm/toolbar/MoreDropdown.native.js +11 -12
- package/dist/esm/toolbar/MoreDropdown.native.js.map +1 -1
- package/dist/jsx/RichTextEditor/index.mjs +117 -53
- package/dist/jsx/RichTextEditor/index.mjs.map +1 -1
- package/dist/jsx/RichTextEditor/index.native.js +119 -53
- package/dist/jsx/RichTextEditor/index.native.js.map +1 -1
- package/dist/jsx/toolbar/HeadingPicker.mjs +0 -7
- package/dist/jsx/toolbar/HeadingPicker.mjs.map +1 -1
- package/dist/jsx/toolbar/HeadingPicker.native.js +17 -13
- package/dist/jsx/toolbar/HeadingPicker.native.js.map +1 -1
- package/dist/jsx/toolbar/ListPicker.mjs +0 -7
- package/dist/jsx/toolbar/ListPicker.mjs.map +1 -1
- package/dist/jsx/toolbar/ListPicker.native.js +11 -12
- package/dist/jsx/toolbar/ListPicker.native.js.map +1 -1
- package/dist/jsx/toolbar/MoreDropdown.mjs +0 -7
- package/dist/jsx/toolbar/MoreDropdown.mjs.map +1 -1
- package/dist/jsx/toolbar/MoreDropdown.native.js +11 -12
- package/dist/jsx/toolbar/MoreDropdown.native.js.map +1 -1
- package/package.json +8 -8
- package/src/RichEditor.stories.tsx +36 -1
- package/src/RichTextEditor/index.tsx +134 -50
- package/src/RichTextEditor/richTextEditor.spec.tsx +141 -147
- package/src/toolbar/HeadingPicker.tsx +15 -14
- package/src/toolbar/ListPicker.tsx +9 -13
- package/src/toolbar/MoreDropdown.tsx +9 -13
- package/types/RichTextEditor/index.d.ts +6 -0
- package/types/RichTextEditor/index.d.ts.map +1 -1
- package/types/toolbar/HeadingPicker.d.ts.map +1 -1
- package/types/toolbar/ListPicker.d.ts.map +1 -1
- package/types/toolbar/MoreDropdown.d.ts.map +1 -1
|
@@ -175,19 +175,18 @@ function MoreDropdown(param) {
|
|
|
175
175
|
tooltip: (0, import_t.t)("More"),
|
|
176
176
|
children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(MoreIcon, {})
|
|
177
177
|
})
|
|
178
|
-
}),
|
|
178
|
+
}),
|
|
179
|
+
/*
|
|
180
|
+
* MPO-85: no onCloseAutoFocus — DropdownMenu.Content stopped accepting
|
|
181
|
+
* and forwarding it, so the handler was already discarded before it
|
|
182
|
+
* failed the build. Intent, to restore with the pass-through: toolbar
|
|
183
|
+
* menus must not steal focus back to the trigger on select-close, so
|
|
184
|
+
* focus returns to the editor and typing continues. Escape still
|
|
185
|
+
* restores the trigger via the menu's own close().
|
|
186
|
+
*/
|
|
187
|
+
/* @__PURE__ */
|
|
188
|
+
(0, import_jsx_runtime.jsxs)(import_components.DropdownMenu.Content, {
|
|
179
189
|
minWidth: 200,
|
|
180
|
-
// Toolbar menus must not steal focus back to the trigger on
|
|
181
|
-
// select-close: focus returns to the editor so typing continues.
|
|
182
|
-
// Escape still restores the trigger via the menu's own close().
|
|
183
|
-
onCloseAutoFocus: function onCloseAutoFocus(event) {
|
|
184
|
-
event.preventDefault();
|
|
185
|
-
if (selectedRef.current) {
|
|
186
|
-
var _editorRef_current;
|
|
187
|
-
selectedRef.current = false;
|
|
188
|
-
(_editorRef_current = editorRef.current) === null || _editorRef_current === void 0 ? void 0 : _editorRef_current.focus();
|
|
189
|
-
}
|
|
190
|
-
},
|
|
191
190
|
children: [inlineItems.length > 0 && /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
|
|
192
191
|
children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(ItemSection, {
|
|
193
192
|
items: inlineItems,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","MoreDropdown_exports","__export","MoreDropdown","module","exports","import_jsx_runtime","require","import_react","import_react2","import_components","import_capabilities","import_ToolbarButton","import_icons","import_shortcuts","import_t","INLINE_ITEMS","label","SHORTCUTS","subscript","command","icon","SubscriptIcon","isActive","s","isSubscript","label2","superscript","SuperscriptIcon","isActive2","isSuperscript","ALIGN_ITEMS","label3","alignLeft","AlignLeftIcon","isActive3","textAlign","label4","alignCenter","AlignCenterIcon","isActive4","label5","alignRight","AlignRightIcon","isActive5","label6","alignJustify","AlignJustifyIcon","isActive6","BLOCK_ITEMS","label7","horizontalRule","HorizontalRuleIcon","label8","clearFormatting","ClearFormattingIcon","MoreIcon","jsx","DotsThreeIcon","size","weight","ItemSection","param","items","state","onSelect","Fragment","children","map","item","_item_isActive","Icon","label9","DropdownMenu","Item","closeOnSelect","backgroundColor","call","onSelect1","payload","editorRef","capabilities","disabled","open","setOpen","useState","selectedRef","useRef","handleSelect","handleSelect2","_editorRef_current","current","executeCommand","inlineItems","filter"
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","MoreDropdown_exports","__export","MoreDropdown","module","exports","import_jsx_runtime","require","import_react","import_react2","import_components","import_capabilities","import_ToolbarButton","import_icons","import_shortcuts","import_t","INLINE_ITEMS","label","SHORTCUTS","subscript","command","icon","SubscriptIcon","isActive","s","isSubscript","label2","superscript","SuperscriptIcon","isActive2","isSuperscript","ALIGN_ITEMS","label3","alignLeft","AlignLeftIcon","isActive3","textAlign","label4","alignCenter","AlignCenterIcon","isActive4","label5","alignRight","AlignRightIcon","isActive5","label6","alignJustify","AlignJustifyIcon","isActive6","BLOCK_ITEMS","label7","horizontalRule","HorizontalRuleIcon","label8","clearFormatting","ClearFormattingIcon","MoreIcon","jsx","DotsThreeIcon","size","weight","ItemSection","param","items","state","onSelect","Fragment","children","map","item","_item_isActive","Icon","label9","DropdownMenu","Item","closeOnSelect","backgroundColor","call","onSelect1","payload","editorRef","capabilities","disabled","open","setOpen","useState","selectedRef","useRef","handleSelect","handleSelect2","_editorRef_current","current","executeCommand","inlineItems","filter"],"sources":["../../../src/toolbar/MoreDropdown.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,10 +1,66 @@
|
|
|
1
|
-
import { useCallback, useRef, useState } from "react";
|
|
2
|
-
import {
|
|
1
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
2
|
+
import { isWeb } from "tamagui";
|
|
3
3
|
import { Field, FieldLayout, Skeleton, getFieldError, mergeFieldHandler, useFormField, useResolvedValidators } from "@multiplatform.one/forms";
|
|
4
4
|
import { RichEditor } from "../RichEditor.mjs";
|
|
5
5
|
import { t } from "../shared/t.mjs";
|
|
6
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
-
|
|
6
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
function richTextIsEmpty(v) {
|
|
8
|
+
return !v || v === "<p></p>" || v === "";
|
|
9
|
+
}
|
|
10
|
+
function applyExternalContent(editor, next, capabilities) {
|
|
11
|
+
if (!editor) return;
|
|
12
|
+
if (capabilities === "markdown") {
|
|
13
|
+
editor.setMarkdown(next);
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
editor.setHTML(next);
|
|
17
|
+
}
|
|
18
|
+
function RichTextExternalValueSync({
|
|
19
|
+
value,
|
|
20
|
+
editorRef,
|
|
21
|
+
capabilities
|
|
22
|
+
}) {
|
|
23
|
+
const isFirst = useRef(true);
|
|
24
|
+
const lastPushed = useRef(value);
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
if (isFirst.current) {
|
|
27
|
+
isFirst.current = false;
|
|
28
|
+
lastPushed.current = value;
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (value === lastPushed.current) return;
|
|
32
|
+
lastPushed.current = value;
|
|
33
|
+
applyExternalContent(editorRef.current, value, capabilities);
|
|
34
|
+
}, [value, editorRef, capabilities]);
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
function EditorFocusTarget({
|
|
38
|
+
id,
|
|
39
|
+
editorRef
|
|
40
|
+
}) {
|
|
41
|
+
if (!isWeb) return null;
|
|
42
|
+
return /* @__PURE__ */jsx("textarea", {
|
|
43
|
+
id,
|
|
44
|
+
tabIndex: -1,
|
|
45
|
+
"aria-hidden": true,
|
|
46
|
+
readOnly: true,
|
|
47
|
+
value: "",
|
|
48
|
+
onFocus: event => {
|
|
49
|
+
event.currentTarget.blur();
|
|
50
|
+
editorRef.current?.focus();
|
|
51
|
+
},
|
|
52
|
+
style: {
|
|
53
|
+
position: "absolute",
|
|
54
|
+
width: 1,
|
|
55
|
+
height: 1,
|
|
56
|
+
padding: 0,
|
|
57
|
+
margin: 0,
|
|
58
|
+
border: 0,
|
|
59
|
+
opacity: 0,
|
|
60
|
+
overflow: "hidden"
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
8
64
|
function RichTextEditor(props) {
|
|
9
65
|
const {
|
|
10
66
|
defaultValue = "",
|
|
@@ -24,6 +80,7 @@ function RichTextEditor(props) {
|
|
|
24
80
|
helperText,
|
|
25
81
|
required,
|
|
26
82
|
size,
|
|
83
|
+
id: idProp,
|
|
27
84
|
value: controlledValue,
|
|
28
85
|
onChange,
|
|
29
86
|
onBlur,
|
|
@@ -39,8 +96,7 @@ function RichTextEditor(props) {
|
|
|
39
96
|
inlineEditing,
|
|
40
97
|
onImageUpload,
|
|
41
98
|
onFileUpload,
|
|
42
|
-
mentions
|
|
43
|
-
..._restProps
|
|
99
|
+
mentions
|
|
44
100
|
} = props;
|
|
45
101
|
const placeholder = placeholderProp ?? t("Write something...");
|
|
46
102
|
const {
|
|
@@ -48,7 +104,9 @@ function RichTextEditor(props) {
|
|
|
48
104
|
knobProps,
|
|
49
105
|
id
|
|
50
106
|
} = useFormField({
|
|
51
|
-
form
|
|
107
|
+
form,
|
|
108
|
+
id: idProp,
|
|
109
|
+
compact
|
|
52
110
|
});
|
|
53
111
|
const resolvedValidators = useResolvedValidators(required, validators, label, name, richTextIsEmpty);
|
|
54
112
|
const editorRef = useRef(null);
|
|
@@ -58,56 +116,68 @@ function RichTextEditor(props) {
|
|
|
58
116
|
setInternalValue(html);
|
|
59
117
|
onChange?.(html);
|
|
60
118
|
}, [onChange]);
|
|
119
|
+
const layoutBind = {
|
|
120
|
+
id,
|
|
121
|
+
label,
|
|
122
|
+
labelProps,
|
|
123
|
+
helperText,
|
|
124
|
+
required,
|
|
125
|
+
size,
|
|
126
|
+
knobProps,
|
|
127
|
+
disabled,
|
|
128
|
+
purpose: "description",
|
|
129
|
+
placeholder
|
|
130
|
+
};
|
|
61
131
|
if (skeleton) {
|
|
62
|
-
return /* @__PURE__ */
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
width: "30%",
|
|
67
|
-
height: 14
|
|
68
|
-
}), /* @__PURE__ */jsx(Skeleton, {
|
|
132
|
+
return /* @__PURE__ */jsx(FieldLayout, {
|
|
133
|
+
...layoutBind,
|
|
134
|
+
error: errorProp,
|
|
135
|
+
children: /* @__PURE__ */jsx(Skeleton, {
|
|
69
136
|
variant: "rounded",
|
|
70
137
|
width: "100%",
|
|
71
138
|
height: minHeight
|
|
72
|
-
})
|
|
139
|
+
})
|
|
73
140
|
});
|
|
74
141
|
}
|
|
75
142
|
const renderEditor = (currentValue, onValueChange, handleBlur, hasError) => {
|
|
76
|
-
return /* @__PURE__ */
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
143
|
+
return /* @__PURE__ */jsxs(Fragment, {
|
|
144
|
+
children: [/* @__PURE__ */jsx(RichTextExternalValueSync, {
|
|
145
|
+
value: currentValue,
|
|
146
|
+
editorRef,
|
|
147
|
+
capabilities
|
|
148
|
+
}), /* @__PURE__ */jsx(EditorFocusTarget, {
|
|
149
|
+
id,
|
|
150
|
+
editorRef
|
|
151
|
+
}), /* @__PURE__ */jsx(RichEditor, {
|
|
152
|
+
ref: editorRef,
|
|
153
|
+
initialContent: currentValue,
|
|
154
|
+
onChange: html => onValueChange(html),
|
|
155
|
+
onBlur: handleBlur,
|
|
156
|
+
placeholder,
|
|
157
|
+
editable: !disabled && !readOnly,
|
|
158
|
+
minHeight,
|
|
159
|
+
maxHeight,
|
|
160
|
+
showToolbar,
|
|
161
|
+
showBubbleToolbar,
|
|
162
|
+
sections,
|
|
163
|
+
capabilities,
|
|
164
|
+
hasError,
|
|
165
|
+
size,
|
|
166
|
+
compact,
|
|
167
|
+
fullscreen,
|
|
168
|
+
defaultFullscreen,
|
|
169
|
+
onFullscreenChange,
|
|
170
|
+
inlineEditing,
|
|
171
|
+
onImageUpload,
|
|
172
|
+
onFileUpload,
|
|
173
|
+
mentions
|
|
174
|
+
})]
|
|
99
175
|
});
|
|
100
176
|
};
|
|
101
177
|
if (!resolvedForm || !name) {
|
|
102
178
|
return /* @__PURE__ */jsx(FieldLayout, {
|
|
103
|
-
|
|
104
|
-
label,
|
|
105
|
-
labelProps,
|
|
179
|
+
...layoutBind,
|
|
106
180
|
error: errorProp,
|
|
107
|
-
helperText,
|
|
108
|
-
required,
|
|
109
|
-
size,
|
|
110
|
-
knobProps,
|
|
111
181
|
onBlur,
|
|
112
182
|
children: renderEditor(value, handleChange, onBlur, !!errorProp)
|
|
113
183
|
});
|
|
@@ -123,19 +193,13 @@ function RichTextEditor(props) {
|
|
|
123
193
|
const resolvedError = getFieldError(field, errorProp);
|
|
124
194
|
const fieldValue = field.state.value ?? "";
|
|
125
195
|
return /* @__PURE__ */jsx(FieldLayout, {
|
|
126
|
-
|
|
127
|
-
label,
|
|
128
|
-
labelProps,
|
|
196
|
+
...layoutBind,
|
|
129
197
|
error: resolvedError,
|
|
130
|
-
helperText,
|
|
131
|
-
required,
|
|
132
|
-
size,
|
|
133
|
-
knobProps,
|
|
134
198
|
onBlur: mergeFieldHandler(field, "handleBlur", onBlur),
|
|
135
199
|
children: renderEditor(fieldValue, v => field.handleChange(v), () => field.handleBlur(), !!resolvedError)
|
|
136
200
|
});
|
|
137
201
|
}
|
|
138
202
|
});
|
|
139
203
|
}
|
|
140
|
-
export { RichTextEditor };
|
|
204
|
+
export { RichTextEditor, richTextIsEmpty };
|
|
141
205
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useRef","useState","
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useRef","useState","isWeb","Field","FieldLayout","Skeleton","getFieldError","mergeFieldHandler","useFormField","useResolvedValidators","RichEditor","t","Fragment","jsx","jsxs","richTextIsEmpty","v","applyExternalContent","editor","next","capabilities","setMarkdown","setHTML","RichTextExternalValueSync","value","editorRef","isFirst","lastPushed","current","EditorFocusTarget","id","tabIndex","readOnly","onFocus","event","currentTarget","blur","focus","style","position","width","height","padding","margin","border","opacity","overflow","RichTextEditor","props","defaultValue","form","placeholder","placeholderProp","disabled","minHeight","maxHeight","mode","name","preserveValue","validators","label","labelProps","error","errorProp","helperText","required","size","idProp","controlledValue","onChange","onBlur","showToolbar","compact","showBubbleToolbar","sections","skeleton","fullscreen","defaultFullscreen","onFullscreenChange","inlineEditing","onImageUpload","onFileUpload","mentions","resolvedForm","knobProps","resolvedValidators","internalValue","setInternalValue","handleChange","html","layoutBind","purpose","children","variant","renderEditor","currentValue","onValueChange","handleBlur","hasError","ref","initialContent","editable","field","resolvedError","fieldValue","state"],"sources":["../../../src/RichTextEditor/index.tsx"],"sourcesContent":[null],"mappings":"AAcA,SAASA,WAAA,EAAaC,SAAA,EAAWC,MAAA,EAAQC,QAAA,QAAgB;AAEzD,SAASC,KAAA,QAAa;AAEtB,SACEC,KAAA,EACAC,WAAA,EACAC,QAAA,EACAC,aAAA,EACAC,iBAAA,EACAC,YAAA,EACAC,qBAAA,QAIK;AAOP,SAASC,UAAA,QAAkB;AAC3B,SAASC,CAAA,QAAS;AAgEd,SA2MEC,QAAA,EA3MFC,GAAA,EA2MEC,IAAA,QA3MF;AAtDG,SAASC,gBAAgBC,CAAA,EAAqB;EACnD,OAAO,CAACA,CAAA,IAAKA,CAAA,KAAM,aAAaA,CAAA,KAAM;AACxC;AAEA,SAASC,qBACPC,MAAA,EACAC,IAAA,EACAC,YAAA,EACA;EACA,IAAI,CAACF,MAAA,EAAQ;EACb,IAAIE,YAAA,KAAiB,YAAY;IAC/BF,MAAA,CAAOG,WAAA,CAAYF,IAAI;IACvB;EACF;EACAD,MAAA,CAAOI,OAAA,CAAQH,IAAI;AACrB;AAMA,SAASI,0BAA0B;EACjCC,KAAA;EACAC,SAAA;EACAL;AACF,GAIG;EACD,MAAMM,OAAA,GAAU1B,MAAA,CAAO,IAAI;EAC3B,MAAM2B,UAAA,GAAa3B,MAAA,CAAOwB,KAAK;EAC/BzB,SAAA,CAAU,MAAM;IACd,IAAI2B,OAAA,CAAQE,OAAA,EAAS;MACnBF,OAAA,CAAQE,OAAA,GAAU;MAClBD,UAAA,CAAWC,OAAA,GAAUJ,KAAA;MACrB;IACF;IACA,IAAIA,KAAA,KAAUG,UAAA,CAAWC,OAAA,EAAS;IAClCD,UAAA,CAAWC,OAAA,GAAUJ,KAAA;IACrBP,oBAAA,CAAqBQ,SAAA,CAAUG,OAAA,EAASJ,KAAA,EAAOJ,YAAY;EAC7D,GAAG,CAACI,KAAA,EAAOC,SAAA,EAAWL,YAAY,CAAC;EACnC,OAAO;AACT;AAEA,SAASS,kBAAkB;EACzBC,EAAA;EACAL;AACF,GAGG;EACD,IAAI,CAACvB,KAAA,EAAO,OAAO;EACnB,OACE,eAAAW,GAAA,CAAC;IACCiB,EAAA;IACAC,QAAA,EAAU;IACV,eAAW;IACXC,QAAA,EAAQ;IACRR,KAAA,EAAM;IACNS,OAAA,EAAUC,KAAA,IAAU;MAClBA,KAAA,CAAMC,aAAA,CAAcC,IAAA,CAAK;MACzBX,SAAA,CAAUG,OAAA,EAASS,KAAA,CAAM;IAC3B;IACAC,KAAA,EAAO;MACLC,QAAA,EAAU;MACVC,KAAA,EAAO;MACPC,MAAA,EAAQ;MACRC,OAAA,EAAS;MACTC,MAAA,EAAQ;MACRC,MAAA,EAAQ;MACRC,OAAA,EAAS;MACTC,QAAA,EAAU;IACZ;EAAA,CACF;AAEJ;AAmFO,SAASC,eAMdC,KAAA,EAAwF;EACxF,MAAM;IACJC,YAAA,GAAe;IACfC,IAAA;IACAC,WAAA,EAAaC,eAAA;IACbC,QAAA;IACArB,QAAA;IACAsB,SAAA,GAAY;IACZC,SAAA;IACAC,IAAA;IACAC,IAAA;IACAC,aAAA;IACAC,UAAA;IACAC,KAAA;IACAC,UAAA;IACAC,KAAA,EAAOC,SAAA;IACPC,UAAA;IACAC,QAAA;IACAC,IAAA;IACApC,EAAA,EAAIqC,MAAA;IACJ3C,KAAA,EAAO4C,eAAA;IACPC,QAAA;IACAC,MAAA;IACAC,WAAA,GAAc;IACdC,OAAA,GAAU;IACVC,iBAAA,GAAoB;IACpBC,QAAA;IACAtD,YAAA;IACAuD,QAAA;IACAC,UAAA;IACAC,iBAAA;IACAC,kBAAA;IACAC,aAAA;IACAC,aAAA;IACAC,YAAA;IACAC;EACF,IAAIlC,KAAA;EAEJ,MAAMG,WAAA,GAAcC,eAAA,IAAmBzC,CAAA,CAAE,oBAAoB;EAC7D,MAAM;IAAEwE,YAAA;IAAcC,SAAA;IAAWtD;EAAG,IAAItB,YAAA,CAAa;IAAE0C,IAAA;IAAMpB,EAAA,EAAIqC,MAAA;IAAQK;EAAQ,CAAC;EAClF,MAAMa,kBAAA,GAAqB5E,qBAAA,CACzBwD,QAAA,EACAN,UAAA,EACAC,KAAA,EACAH,IAAA,EACA1C,eACF;EACA,MAAMU,SAAA,GAAYzB,MAAA,CAAsB,IAAI;EAC5C,MAAM,CAACsF,aAAA,EAAeC,gBAAgB,IAAItF,QAAA,CAASmE,eAAA,IAAmBnB,YAAY;EAElF,MAAMzB,KAAA,GAAQ4C,eAAA,IAAmBkB,aAAA;EAEjC,MAAME,YAAA,GAAe1F,WAAA,CAClB2F,IAAA,IAAiB;IAChBF,gBAAA,CAAiBE,IAAI;IACrBpB,QAAA,GAAWoB,IAAI;EACjB,GACA,CAACpB,QAAQ,CACX;EAEA,MAAMqB,UAAA,GAAa;IACjB5D,EAAA;IACA8B,KAAA;IACAC,UAAA;IACAG,UAAA;IACAC,QAAA;IACAC,IAAA;IACAkB,SAAA;IACA/B,QAAA;IACAsC,OAAA,EAAS;IACTxC;EACF;EAKA,IAAIwB,QAAA,EAAU;IACZ,OACE,eAAA9D,GAAA,CAACT,WAAA;MAAa,GAAGsF,UAAA;MAAY5B,KAAA,EAAOC,SAAA;MAClC6B,QAAA,iBAAA/E,GAAA,CAACR,QAAA;QAASwF,OAAA,EAAQ;QAAUrD,KAAA,EAAM;QAAOC,MAAA,EAAQa;MAAA,CAAW;IAAA,CAC9D;EAEJ;EAGA,MAAMwC,YAAA,GAAeA,CACnBC,YAAA,EACAC,aAAA,EACAC,UAAA,EACAC,QAAA,KACG;IACH,OACE,eAAApF,IAAA,CAAAF,QAAA;MACEgF,QAAA,kBAAA/E,GAAA,CAACU,yBAAA;QACCC,KAAA,EAAOuE,YAAA;QACPtE,SAAA;QACAL;MAAA,CACF,GACA,eAAAP,GAAA,CAACgB,iBAAA;QAAkBC,EAAA;QAAQL;MAAA,CAAsB,GACjD,eAAAZ,GAAA,CAACH,UAAA;QACCyF,GAAA,EAAK1E,SAAA;QACL2E,cAAA,EAAgBL,YAAA;QAChB1B,QAAA,EAAWoB,IAAA,IAASO,aAAA,CAAcP,IAAI;QACtCnB,MAAA,EAAQ2B,UAAA;QACR9C,WAAA;QACAkD,QAAA,EAAU,CAAChD,QAAA,IAAY,CAACrB,QAAA;QACxBsB,SAAA;QACAC,SAAA;QACAgB,WAAA;QACAE,iBAAA;QACAC,QAAA;QACAtD,YAAA;QACA8E,QAAA;QACAhC,IAAA;QACAM,OAAA;QACAI,UAAA;QACAC,iBAAA;QACAC,kBAAA;QACAC,aAAA;QACAC,aAAA;QACAC,YAAA;QACAC;MAAA,CACF;IAAA,CACF;EAEJ;EAGA,IAAI,CAACC,YAAA,IAAgB,CAAC1B,IAAA,EAAM;IAC1B,OACE,eAAA5C,GAAA,CAACT,WAAA;MAAa,GAAGsF,UAAA;MAAY5B,KAAA,EAAOC,SAAA;MAAWO,MAAA;MAC5CsB,QAAA,EAAAE,YAAA,CAAatE,KAAA,EAAOgE,YAAA,EAAclB,MAAA,EAAe,CAAC,CAACP,SAAS;IAAA,CAC/D;EAEJ;EAGA,OACE,eAAAlD,GAAA,CAACV,KAAA;IACC8C,YAAA;IACAC,IAAA,EAAMiC,YAAA;IACN3B,IAAA;IACAC,IAAA;IACAC,aAAA;IACAC,UAAA,EAAY0B,kBAAA;IAEXO,QAAA,EAACU,KAAA,IAAU;MACV,MAAMC,aAAA,GAAgBjG,aAAA,CAAcgG,KAAA,EAAOvC,SAAS;MACpD,MAAMyC,UAAA,GAAcF,KAAA,CAAMG,KAAA,CAAMjF,KAAA,IAAoB;MAEpD,OACE,eAAAX,GAAA,CAACT,WAAA;QACE,GAAGsF,UAAA;QACJ5B,KAAA,EAAOyC,aAAA;QACPjC,MAAA,EAAQ/D,iBAAA,CAAkB+F,KAAA,EAAO,cAAchC,MAAM;QAEpDsB,QAAA,EAAAE,YAAA,CACCU,UAAA,EACCxF,CAAA,IAAMsF,KAAA,CAAMd,YAAA,CAAaxE,CAAQ,GAClC,MAAMsF,KAAA,CAAML,UAAA,CAAW,GACvB,CAAC,CAACM,aACJ;MAAA,CACF;IAEJ;EAAA,CACF;AAEJ","ignoreList":[]}
|
|
@@ -1,12 +1,69 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useCallback, useRef, useState } from "react";
|
|
3
|
-
import {
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
3
|
+
import { isWeb } from "tamagui";
|
|
4
4
|
import { Field, FieldLayout, Skeleton, getFieldError, mergeFieldHandler, useFormField, useResolvedValidators } from "@multiplatform.one/forms";
|
|
5
5
|
import { RichEditor } from "../RichEditor.native.js";
|
|
6
6
|
import { t } from "../shared/t.native.js";
|
|
7
|
-
|
|
7
|
+
function richTextIsEmpty(v) {
|
|
8
8
|
return !v || v === "<p></p>" || v === "";
|
|
9
|
-
}
|
|
9
|
+
}
|
|
10
|
+
function applyExternalContent(editor, next, capabilities) {
|
|
11
|
+
if (!editor) return;
|
|
12
|
+
if (capabilities === "markdown") {
|
|
13
|
+
editor.setMarkdown(next);
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
editor.setHTML(next);
|
|
17
|
+
}
|
|
18
|
+
function RichTextExternalValueSync(param) {
|
|
19
|
+
var {
|
|
20
|
+
value,
|
|
21
|
+
editorRef,
|
|
22
|
+
capabilities
|
|
23
|
+
} = param;
|
|
24
|
+
var isFirst = useRef(true);
|
|
25
|
+
var lastPushed = useRef(value);
|
|
26
|
+
useEffect(function () {
|
|
27
|
+
if (isFirst.current) {
|
|
28
|
+
isFirst.current = false;
|
|
29
|
+
lastPushed.current = value;
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
if (value === lastPushed.current) return;
|
|
33
|
+
lastPushed.current = value;
|
|
34
|
+
applyExternalContent(editorRef.current, value, capabilities);
|
|
35
|
+
}, [value, editorRef, capabilities]);
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
function EditorFocusTarget(param) {
|
|
39
|
+
var {
|
|
40
|
+
id,
|
|
41
|
+
editorRef
|
|
42
|
+
} = param;
|
|
43
|
+
if (!isWeb) return null;
|
|
44
|
+
return /* @__PURE__ */_jsx("textarea", {
|
|
45
|
+
id,
|
|
46
|
+
tabIndex: -1,
|
|
47
|
+
"aria-hidden": true,
|
|
48
|
+
readOnly: true,
|
|
49
|
+
value: "",
|
|
50
|
+
onFocus: function onFocus(event) {
|
|
51
|
+
var _editorRef_current;
|
|
52
|
+
event.currentTarget.blur();
|
|
53
|
+
(_editorRef_current = editorRef.current) === null || _editorRef_current === void 0 ? void 0 : _editorRef_current.focus();
|
|
54
|
+
},
|
|
55
|
+
style: {
|
|
56
|
+
position: "absolute",
|
|
57
|
+
width: 1,
|
|
58
|
+
height: 1,
|
|
59
|
+
padding: 0,
|
|
60
|
+
margin: 0,
|
|
61
|
+
border: 0,
|
|
62
|
+
opacity: 0,
|
|
63
|
+
overflow: "hidden"
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
10
67
|
function RichTextEditor(props) {
|
|
11
68
|
var {
|
|
12
69
|
defaultValue = "",
|
|
@@ -26,6 +83,7 @@ function RichTextEditor(props) {
|
|
|
26
83
|
helperText,
|
|
27
84
|
required,
|
|
28
85
|
size,
|
|
86
|
+
id: idProp,
|
|
29
87
|
value: controlledValue,
|
|
30
88
|
onChange,
|
|
31
89
|
onBlur,
|
|
@@ -41,8 +99,7 @@ function RichTextEditor(props) {
|
|
|
41
99
|
inlineEditing,
|
|
42
100
|
onImageUpload,
|
|
43
101
|
onFileUpload,
|
|
44
|
-
mentions
|
|
45
|
-
..._restProps
|
|
102
|
+
mentions
|
|
46
103
|
} = props;
|
|
47
104
|
var placeholder = placeholderProp !== null && placeholderProp !== void 0 ? placeholderProp : t("Write something...");
|
|
48
105
|
var {
|
|
@@ -50,7 +107,9 @@ function RichTextEditor(props) {
|
|
|
50
107
|
knobProps,
|
|
51
108
|
id
|
|
52
109
|
} = useFormField({
|
|
53
|
-
form
|
|
110
|
+
form,
|
|
111
|
+
id: idProp,
|
|
112
|
+
compact
|
|
54
113
|
});
|
|
55
114
|
var resolvedValidators = useResolvedValidators(required, validators, label, name, richTextIsEmpty);
|
|
56
115
|
var editorRef = useRef(null);
|
|
@@ -60,58 +119,70 @@ function RichTextEditor(props) {
|
|
|
60
119
|
setInternalValue(html);
|
|
61
120
|
onChange === null || onChange === void 0 ? void 0 : onChange(html);
|
|
62
121
|
}, [onChange]);
|
|
122
|
+
var layoutBind = {
|
|
123
|
+
id,
|
|
124
|
+
label,
|
|
125
|
+
labelProps,
|
|
126
|
+
helperText,
|
|
127
|
+
required,
|
|
128
|
+
size,
|
|
129
|
+
knobProps,
|
|
130
|
+
disabled,
|
|
131
|
+
purpose: "description",
|
|
132
|
+
placeholder
|
|
133
|
+
};
|
|
63
134
|
if (skeleton) {
|
|
64
|
-
return /* @__PURE__ */
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
width: "30%",
|
|
69
|
-
height: 14
|
|
70
|
-
}), /* @__PURE__ */_jsx(Skeleton, {
|
|
135
|
+
return /* @__PURE__ */_jsx(FieldLayout, {
|
|
136
|
+
...layoutBind,
|
|
137
|
+
error: errorProp,
|
|
138
|
+
children: /* @__PURE__ */_jsx(Skeleton, {
|
|
71
139
|
variant: "rounded",
|
|
72
140
|
width: "100%",
|
|
73
141
|
height: minHeight
|
|
74
|
-
})
|
|
142
|
+
})
|
|
75
143
|
});
|
|
76
144
|
}
|
|
77
145
|
var renderEditor = function renderEditor2(currentValue, onValueChange, handleBlur, hasError) {
|
|
78
|
-
return /* @__PURE__ */
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
},
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
146
|
+
return /* @__PURE__ */_jsxs(_Fragment, {
|
|
147
|
+
children: [/* @__PURE__ */_jsx(RichTextExternalValueSync, {
|
|
148
|
+
value: currentValue,
|
|
149
|
+
editorRef,
|
|
150
|
+
capabilities
|
|
151
|
+
}), /* @__PURE__ */_jsx(EditorFocusTarget, {
|
|
152
|
+
id,
|
|
153
|
+
editorRef
|
|
154
|
+
}), /* @__PURE__ */_jsx(RichEditor, {
|
|
155
|
+
ref: editorRef,
|
|
156
|
+
initialContent: currentValue,
|
|
157
|
+
onChange: function onChange2(html) {
|
|
158
|
+
return onValueChange(html);
|
|
159
|
+
},
|
|
160
|
+
onBlur: handleBlur,
|
|
161
|
+
placeholder,
|
|
162
|
+
editable: !disabled && !readOnly,
|
|
163
|
+
minHeight,
|
|
164
|
+
maxHeight,
|
|
165
|
+
showToolbar,
|
|
166
|
+
showBubbleToolbar,
|
|
167
|
+
sections,
|
|
168
|
+
capabilities,
|
|
169
|
+
hasError,
|
|
170
|
+
size,
|
|
171
|
+
compact,
|
|
172
|
+
fullscreen,
|
|
173
|
+
defaultFullscreen,
|
|
174
|
+
onFullscreenChange,
|
|
175
|
+
inlineEditing,
|
|
176
|
+
onImageUpload,
|
|
177
|
+
onFileUpload,
|
|
178
|
+
mentions
|
|
179
|
+
})]
|
|
103
180
|
});
|
|
104
181
|
};
|
|
105
182
|
if (!resolvedForm || !name) {
|
|
106
183
|
return /* @__PURE__ */_jsx(FieldLayout, {
|
|
107
|
-
|
|
108
|
-
label,
|
|
109
|
-
labelProps,
|
|
184
|
+
...layoutBind,
|
|
110
185
|
error: errorProp,
|
|
111
|
-
helperText,
|
|
112
|
-
required,
|
|
113
|
-
size,
|
|
114
|
-
knobProps,
|
|
115
186
|
onBlur,
|
|
116
187
|
children: renderEditor(value, handleChange, onBlur, !!errorProp)
|
|
117
188
|
});
|
|
@@ -128,14 +199,8 @@ function RichTextEditor(props) {
|
|
|
128
199
|
var resolvedError = getFieldError(field, errorProp);
|
|
129
200
|
var fieldValue = (_field_state_value = field.state.value) !== null && _field_state_value !== void 0 ? _field_state_value : "";
|
|
130
201
|
return /* @__PURE__ */_jsx(FieldLayout, {
|
|
131
|
-
|
|
132
|
-
label,
|
|
133
|
-
labelProps,
|
|
202
|
+
...layoutBind,
|
|
134
203
|
error: resolvedError,
|
|
135
|
-
helperText,
|
|
136
|
-
required,
|
|
137
|
-
size,
|
|
138
|
-
knobProps,
|
|
139
204
|
onBlur: mergeFieldHandler(field, "handleBlur", onBlur),
|
|
140
205
|
children: renderEditor(fieldValue, function (v) {
|
|
141
206
|
return field.handleChange(v);
|
|
@@ -146,5 +211,5 @@ function RichTextEditor(props) {
|
|
|
146
211
|
}
|
|
147
212
|
});
|
|
148
213
|
}
|
|
149
|
-
export { RichTextEditor };
|
|
214
|
+
export { RichTextEditor, richTextIsEmpty };
|
|
150
215
|
//# sourceMappingURL=index.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","useCallback","useRef","useState","
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","useCallback","useEffect","useRef","useState","isWeb","Field","FieldLayout","Skeleton","getFieldError","mergeFieldHandler","useFormField","useResolvedValidators","RichEditor","t","richTextIsEmpty","v","applyExternalContent","editor","next","capabilities","setMarkdown","setHTML","RichTextExternalValueSync","param","value","editorRef","isFirst","lastPushed","current","EditorFocusTarget","id","tabIndex","readOnly","onFocus","event","_editorRef_current","currentTarget","blur","focus","style","position","width","height","padding","margin","border","opacity","overflow","RichTextEditor","props","defaultValue","form","placeholder","placeholderProp","disabled","minHeight","maxHeight","mode","name","preserveValue","validators","label","labelProps","error","errorProp","helperText","required","size","idProp","controlledValue","onChange","onBlur","showToolbar","compact","showBubbleToolbar","sections","skeleton","fullscreen","defaultFullscreen","onFullscreenChange","inlineEditing","onImageUpload","onFileUpload","mentions","resolvedForm","knobProps","resolvedValidators","internalValue","setInternalValue","handleChange","html","layoutBind","purpose","children","variant","renderEditor","renderEditor2","currentValue","onValueChange","handleBlur","hasError","ref","initialContent","onChange2","editable","field","_field_state_value","resolvedError","fieldValue","state"],"sources":["../../../src/RichTextEditor/index.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -91,13 +91,6 @@ function HeadingPicker({
|
|
|
91
91
|
})
|
|
92
92
|
}), /* @__PURE__ */jsx(DropdownMenu.Content, {
|
|
93
93
|
minWidth: 200,
|
|
94
|
-
onCloseAutoFocus: event => {
|
|
95
|
-
event.preventDefault();
|
|
96
|
-
if (selectedRef.current) {
|
|
97
|
-
selectedRef.current = false;
|
|
98
|
-
editorRef.current?.focus();
|
|
99
|
-
}
|
|
100
|
-
},
|
|
101
94
|
children: HEADING_OPTIONS.map(option => {
|
|
102
95
|
const description = option.description();
|
|
103
96
|
return /* @__PURE__ */jsxs(DropdownMenu.Item, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRef","useState","DropdownMenu","Text","ToolbarDropdownButton","t","jsx","jsxs","HEADING_OPTIONS","label","description","command","stateKey","fontSize","fontWeight","getActiveHeadingLabel","state","isHeading1","isHeading2","isHeading3","isHeading4","isHeading5","isHeading6","isAnyHeadingActive","HeadingPicker","editorRef","disabled","open","setOpen","selectedRef","onOpenChange","placement","children","Trigger","asChild","active","onPress","Content","minWidth","
|
|
1
|
+
{"version":3,"names":["useRef","useState","DropdownMenu","Text","ToolbarDropdownButton","t","jsx","jsxs","HEADING_OPTIONS","label","description","command","stateKey","fontSize","fontWeight","getActiveHeadingLabel","state","isHeading1","isHeading2","isHeading3","isHeading4","isHeading5","isHeading6","isAnyHeadingActive","HeadingPicker","editorRef","disabled","open","setOpen","selectedRef","onOpenChange","placement","children","Trigger","asChild","active","onPress","Content","minWidth","map","option","Item","closeOnSelect","backgroundColor","onSelect","current","executeCommand","color"],"sources":["../../../src/toolbar/HeadingPicker.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|