react-native-richify 1.0.3 → 1.0.4
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/lib/commonjs/components/RichTextInput.js +71 -46
- package/lib/commonjs/components/RichTextInput.js.map +1 -1
- package/lib/commonjs/constants/defaultStyles.js +26 -1
- package/lib/commonjs/constants/defaultStyles.js.map +1 -1
- package/lib/commonjs/hooks/useFormatting.js +7 -1
- package/lib/commonjs/hooks/useFormatting.js.map +1 -1
- package/lib/commonjs/hooks/useRichText.js +55 -6
- package/lib/commonjs/hooks/useRichText.js.map +1 -1
- package/lib/commonjs/index.d.js +19 -0
- package/lib/commonjs/index.d.js.map +1 -1
- package/lib/commonjs/index.js +19 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/utils/formatter.js +1 -4
- package/lib/commonjs/utils/formatter.js.map +1 -1
- package/lib/commonjs/utils/serializer.d.js +6 -0
- package/lib/commonjs/utils/serializer.d.js.map +1 -0
- package/lib/commonjs/utils/serializer.js +163 -0
- package/lib/commonjs/utils/serializer.js.map +1 -0
- package/lib/module/components/RichTextInput.js +73 -49
- package/lib/module/components/RichTextInput.js.map +1 -1
- package/lib/module/constants/defaultStyles.js +26 -1
- package/lib/module/constants/defaultStyles.js.map +1 -1
- package/lib/module/hooks/useFormatting.js +7 -1
- package/lib/module/hooks/useFormatting.js.map +1 -1
- package/lib/module/hooks/useRichText.js +55 -6
- package/lib/module/hooks/useRichText.js.map +1 -1
- package/lib/module/index.d.js +1 -0
- package/lib/module/index.d.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils/formatter.js +1 -4
- package/lib/module/utils/formatter.js.map +1 -1
- package/lib/module/utils/serializer.d.js +4 -0
- package/lib/module/utils/serializer.d.js.map +1 -0
- package/lib/module/utils/serializer.js +157 -0
- package/lib/module/utils/serializer.js.map +1 -0
- package/lib/typescript/src/components/RichTextInput.d.ts +2 -13
- package/lib/typescript/src/components/RichTextInput.d.ts.map +1 -1
- package/lib/typescript/src/constants/defaultStyles.d.ts +2 -0
- package/lib/typescript/src/constants/defaultStyles.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useFormatting.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRichText.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/types/index.d.ts +19 -1
- package/lib/typescript/src/types/index.d.ts.map +1 -1
- package/lib/typescript/src/utils/formatter.d.ts.map +1 -1
- package/lib/typescript/src/utils/serializer.d.ts +14 -0
- package/lib/typescript/src/utils/serializer.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/components/RichTextInput.d.ts +3 -14
- package/src/components/RichTextInput.tsx +107 -50
- package/src/constants/defaultStyles.d.ts +3 -1
- package/src/constants/defaultStyles.ts +26 -1
- package/src/hooks/useFormatting.ts +14 -1
- package/src/hooks/useRichText.ts +92 -6
- package/src/index.d.ts +2 -1
- package/src/index.ts +6 -0
- package/src/types/index.d.ts +19 -1
- package/src/types/index.ts +20 -1
- package/src/utils/formatter.ts +1 -5
- package/src/utils/serializer.d.ts +13 -0
- package/src/utils/serializer.ts +223 -0
|
@@ -7,28 +7,20 @@ exports.RichTextInput = void 0;
|
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _defaultStyles = require("../constants/defaultStyles");
|
|
10
|
-
var _parser = require("../utils/parser");
|
|
11
10
|
var _useRichText = require("../hooks/useRichText");
|
|
12
|
-
var
|
|
11
|
+
var _parser = require("../utils/parser");
|
|
12
|
+
var _serializer = require("../utils/serializer");
|
|
13
13
|
var _Toolbar = require("./Toolbar");
|
|
14
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
15
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
16
|
+
const OUTPUT_PANEL_HEIGHT = 180;
|
|
17
|
+
const isJestRuntime = typeof globalThis.process?.env?.JEST_WORKER_ID === 'string';
|
|
18
|
+
|
|
16
19
|
/**
|
|
17
20
|
* RichTextInput — The main rich text editor component.
|
|
18
21
|
*
|
|
19
|
-
* Uses the
|
|
20
|
-
*
|
|
21
|
-
* - A styled `<Text>` layer behind it renders the formatted content
|
|
22
|
-
* - Both share identical font metrics for pixel-perfect alignment
|
|
23
|
-
*
|
|
24
|
-
* @example
|
|
25
|
-
* ```tsx
|
|
26
|
-
* <RichTextInput
|
|
27
|
-
* placeholder="Start typing..."
|
|
28
|
-
* showToolbar
|
|
29
|
-
* onChangeSegments={(segments) => console.log(segments)}
|
|
30
|
-
* />
|
|
31
|
-
* ```
|
|
22
|
+
* Uses a plain `TextInput` for editing and renders the serialized rich output
|
|
23
|
+
* below it as Markdown or HTML.
|
|
32
24
|
*/
|
|
33
25
|
const RichTextInput = ({
|
|
34
26
|
initialSegments,
|
|
@@ -41,6 +33,9 @@ const RichTextInput = ({
|
|
|
41
33
|
toolbarPosition = 'top',
|
|
42
34
|
toolbarItems,
|
|
43
35
|
theme,
|
|
36
|
+
showOutputPreview = true,
|
|
37
|
+
outputFormat = 'markdown',
|
|
38
|
+
onChangeOutput,
|
|
44
39
|
multiline = true,
|
|
45
40
|
minHeight = 120,
|
|
46
41
|
maxHeight,
|
|
@@ -50,6 +45,7 @@ const RichTextInput = ({
|
|
|
50
45
|
onReady
|
|
51
46
|
}) => {
|
|
52
47
|
const resolvedTheme = theme ?? _defaultStyles.DEFAULT_THEME;
|
|
48
|
+
const previewProgress = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
|
|
53
49
|
const {
|
|
54
50
|
state,
|
|
55
51
|
actions
|
|
@@ -58,16 +54,27 @@ const RichTextInput = ({
|
|
|
58
54
|
onChangeSegments,
|
|
59
55
|
onChangeText
|
|
60
56
|
});
|
|
61
|
-
|
|
62
|
-
// Expose actions via onReady callback
|
|
63
57
|
(0, _react.useEffect)(() => {
|
|
64
58
|
onReady?.(actions);
|
|
65
|
-
}, [
|
|
66
|
-
|
|
67
|
-
// Build plain text for the TextInput value
|
|
59
|
+
}, [actions, onReady]);
|
|
68
60
|
const plainText = (0, _parser.segmentsToPlainText)(state.segments);
|
|
69
|
-
|
|
70
|
-
|
|
61
|
+
const serializedOutput = (0, _react.useMemo)(() => (0, _serializer.serializeSegments)(state.segments, outputFormat), [outputFormat, state.segments]);
|
|
62
|
+
const shouldShowOutputPreview = showOutputPreview && plainText.length > 0;
|
|
63
|
+
(0, _react.useEffect)(() => {
|
|
64
|
+
onChangeOutput?.(serializedOutput, outputFormat);
|
|
65
|
+
}, [onChangeOutput, outputFormat, serializedOutput]);
|
|
66
|
+
(0, _react.useEffect)(() => {
|
|
67
|
+
if (isJestRuntime) {
|
|
68
|
+
previewProgress.setValue(shouldShowOutputPreview ? 1 : 0);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
_reactNative.Animated.timing(previewProgress, {
|
|
72
|
+
toValue: shouldShowOutputPreview ? 1 : 0,
|
|
73
|
+
duration: 180,
|
|
74
|
+
easing: _reactNative.Easing.out(_reactNative.Easing.cubic),
|
|
75
|
+
useNativeDriver: false
|
|
76
|
+
}).start();
|
|
77
|
+
}, [previewProgress, shouldShowOutputPreview]);
|
|
71
78
|
const onSelectionChange = (0, _react.useCallback)(e => {
|
|
72
79
|
const {
|
|
73
80
|
start,
|
|
@@ -78,21 +85,33 @@ const RichTextInput = ({
|
|
|
78
85
|
end
|
|
79
86
|
});
|
|
80
87
|
}, [actions]);
|
|
81
|
-
|
|
82
|
-
// Container style
|
|
83
88
|
const containerStyle = [resolvedTheme.containerStyle ?? _defaultStyles.DEFAULT_THEME.containerStyle];
|
|
84
|
-
|
|
85
|
-
// Input area style
|
|
86
89
|
const inputAreaStyle = [styles.inputArea, {
|
|
87
90
|
minHeight
|
|
88
91
|
}, maxHeight ? {
|
|
89
92
|
maxHeight
|
|
90
93
|
} : undefined];
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
const inputStyle = [styles.textInput, resolvedTheme.baseTextStyle ?? _defaultStyles.DEFAULT_THEME.baseTextStyle, resolvedTheme.inputStyle ?? _defaultStyles.DEFAULT_THEME.inputStyle, textInputProps?.style];
|
|
95
|
+
const outputAnimatedStyle = {
|
|
96
|
+
maxHeight: previewProgress.interpolate({
|
|
97
|
+
inputRange: [0, 1],
|
|
98
|
+
outputRange: [0, OUTPUT_PANEL_HEIGHT]
|
|
99
|
+
}),
|
|
100
|
+
opacity: previewProgress,
|
|
101
|
+
marginTop: previewProgress.interpolate({
|
|
102
|
+
inputRange: [0, 1],
|
|
103
|
+
outputRange: [0, 12]
|
|
104
|
+
}),
|
|
105
|
+
transform: [{
|
|
106
|
+
translateY: previewProgress.interpolate({
|
|
107
|
+
inputRange: [0, 1],
|
|
108
|
+
outputRange: [-8, 0]
|
|
109
|
+
})
|
|
110
|
+
}]
|
|
111
|
+
};
|
|
112
|
+
const outputContainerStyle = [resolvedTheme.outputContainerStyle ?? _defaultStyles.DEFAULT_THEME.outputContainerStyle];
|
|
113
|
+
const outputLabelStyle = [resolvedTheme.outputLabelStyle ?? _defaultStyles.DEFAULT_THEME.outputLabelStyle];
|
|
114
|
+
const outputTextStyle = [resolvedTheme.outputTextStyle ?? _defaultStyles.DEFAULT_THEME.outputTextStyle];
|
|
96
115
|
const toolbarComponent = showToolbar ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Toolbar.Toolbar, {
|
|
97
116
|
actions: actions,
|
|
98
117
|
state: state,
|
|
@@ -100,8 +119,6 @@ const RichTextInput = ({
|
|
|
100
119
|
theme: resolvedTheme,
|
|
101
120
|
renderToolbar: renderToolbar
|
|
102
121
|
}) : null;
|
|
103
|
-
|
|
104
|
-
// Toolbar border
|
|
105
122
|
const toolbarBorderStyle = toolbarPosition === 'top' ? {
|
|
106
123
|
borderBottomWidth: 1,
|
|
107
124
|
borderBottomColor: resolvedTheme.colors?.toolbarBorder ?? _defaultStyles.DEFAULT_THEME.colors?.toolbarBorder
|
|
@@ -116,11 +133,7 @@ const RichTextInput = ({
|
|
|
116
133
|
children: toolbarComponent
|
|
117
134
|
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
118
135
|
style: inputAreaStyle,
|
|
119
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
120
|
-
segments: state.segments,
|
|
121
|
-
baseTextStyle: resolvedTheme.baseTextStyle,
|
|
122
|
-
theme: resolvedTheme
|
|
123
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
|
|
136
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
|
|
124
137
|
...textInputProps,
|
|
125
138
|
style: inputStyle,
|
|
126
139
|
value: plainText,
|
|
@@ -132,10 +145,26 @@ const RichTextInput = ({
|
|
|
132
145
|
editable: editable,
|
|
133
146
|
maxLength: maxLength,
|
|
134
147
|
autoFocus: autoFocus,
|
|
135
|
-
underlineColorAndroid: "transparent",
|
|
136
148
|
selectionColor: resolvedTheme.colors?.cursor ?? _defaultStyles.DEFAULT_THEME.colors?.cursor,
|
|
137
149
|
textAlignVertical: "top",
|
|
138
150
|
scrollEnabled: typeof maxHeight === 'number'
|
|
151
|
+
}), showOutputPreview && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
|
|
152
|
+
pointerEvents: shouldShowOutputPreview ? 'auto' : 'none',
|
|
153
|
+
style: [styles.outputAnimatedWrapper, outputAnimatedStyle],
|
|
154
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
155
|
+
style: outputContainerStyle,
|
|
156
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
157
|
+
style: outputLabelStyle,
|
|
158
|
+
children: outputFormat === 'html' ? 'HTML output' : 'Markdown output'
|
|
159
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
|
|
160
|
+
showsVerticalScrollIndicator: false,
|
|
161
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
162
|
+
selectable: true,
|
|
163
|
+
style: outputTextStyle,
|
|
164
|
+
children: serializedOutput
|
|
165
|
+
})
|
|
166
|
+
})]
|
|
167
|
+
})
|
|
139
168
|
})]
|
|
140
169
|
}), toolbarPosition === 'bottom' && toolbarComponent && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
141
170
|
style: toolbarBorderStyle,
|
|
@@ -150,14 +179,10 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
150
179
|
position: 'relative'
|
|
151
180
|
},
|
|
152
181
|
textInput: {
|
|
153
|
-
position: 'relative'
|
|
154
|
-
zIndex: 1
|
|
182
|
+
position: 'relative'
|
|
155
183
|
},
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
color: 'transparent',
|
|
159
|
-
backgroundColor: 'transparent',
|
|
160
|
-
textShadowColor: 'transparent'
|
|
184
|
+
outputAnimatedWrapper: {
|
|
185
|
+
overflow: 'hidden'
|
|
161
186
|
}
|
|
162
187
|
});
|
|
163
188
|
//# sourceMappingURL=RichTextInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_defaultStyles","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_defaultStyles","_useRichText","_parser","_serializer","_Toolbar","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","OUTPUT_PANEL_HEIGHT","isJestRuntime","globalThis","process","env","JEST_WORKER_ID","RichTextInput","initialSegments","onChangeSegments","onChangeText","placeholder","editable","maxLength","showToolbar","toolbarPosition","toolbarItems","theme","showOutputPreview","outputFormat","onChangeOutput","multiline","minHeight","maxHeight","autoFocus","textInputProps","renderToolbar","onReady","resolvedTheme","DEFAULT_THEME","previewProgress","useRef","Animated","Value","current","state","actions","useRichText","useEffect","plainText","segmentsToPlainText","segments","serializedOutput","useMemo","serializeSegments","shouldShowOutputPreview","length","setValue","timing","toValue","duration","easing","Easing","out","cubic","useNativeDriver","start","onSelectionChange","useCallback","end","nativeEvent","selection","handleSelectionChange","containerStyle","inputAreaStyle","styles","inputArea","undefined","inputStyle","textInput","baseTextStyle","style","outputAnimatedStyle","interpolate","inputRange","outputRange","opacity","marginTop","transform","translateY","outputContainerStyle","outputLabelStyle","outputTextStyle","toolbarComponent","jsx","Toolbar","items","toolbarBorderStyle","borderBottomWidth","borderBottomColor","colors","toolbarBorder","borderTopWidth","borderTopColor","jsxs","View","children","TextInput","value","handleTextChange","placeholderTextColor","selectionColor","cursor","textAlignVertical","scrollEnabled","pointerEvents","outputAnimatedWrapper","Text","ScrollView","showsVerticalScrollIndicator","selectable","exports","displayName","StyleSheet","create","position","overflow"],"sourceRoot":"../../../src","sources":["components/RichTextInput.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,6 +14,8 @@ const DEFAULT_COLORS = exports.DEFAULT_COLORS = {
|
|
|
14
14
|
placeholder: '#9CA3AF',
|
|
15
15
|
toolbarBackground: '#F9FAFB',
|
|
16
16
|
toolbarBorder: '#E5E7EB',
|
|
17
|
+
outputBackground: '#F8FAFC',
|
|
18
|
+
outputLabel: '#475569',
|
|
17
19
|
cursor: '#6366F1',
|
|
18
20
|
activeButtonBg: '#EEF2FF',
|
|
19
21
|
codeBackground: '#F3F4F6'
|
|
@@ -68,7 +70,7 @@ const DEFAULT_THEME = exports.DEFAULT_THEME = {
|
|
|
68
70
|
inputStyle: {
|
|
69
71
|
fontSize: DEFAULT_BASE_TEXT_STYLE.fontSize,
|
|
70
72
|
lineHeight: DEFAULT_BASE_TEXT_STYLE.lineHeight,
|
|
71
|
-
color:
|
|
73
|
+
color: DEFAULT_COLORS.text,
|
|
72
74
|
paddingHorizontal: 16,
|
|
73
75
|
paddingVertical: 12,
|
|
74
76
|
textAlignVertical: 'top'
|
|
@@ -87,6 +89,29 @@ const DEFAULT_THEME = exports.DEFAULT_THEME = {
|
|
|
87
89
|
lineHeight: DEFAULT_BASE_TEXT_STYLE.lineHeight,
|
|
88
90
|
color: DEFAULT_COLORS.text
|
|
89
91
|
},
|
|
92
|
+
outputContainerStyle: {
|
|
93
|
+
marginHorizontal: 12,
|
|
94
|
+
marginBottom: 12,
|
|
95
|
+
padding: 12,
|
|
96
|
+
borderRadius: 10,
|
|
97
|
+
borderWidth: 1,
|
|
98
|
+
borderColor: DEFAULT_COLORS.toolbarBorder,
|
|
99
|
+
backgroundColor: DEFAULT_COLORS.outputBackground
|
|
100
|
+
},
|
|
101
|
+
outputLabelStyle: {
|
|
102
|
+
marginBottom: 8,
|
|
103
|
+
fontSize: 12,
|
|
104
|
+
fontWeight: '700',
|
|
105
|
+
letterSpacing: 0.4,
|
|
106
|
+
color: DEFAULT_COLORS.outputLabel,
|
|
107
|
+
textTransform: 'uppercase'
|
|
108
|
+
},
|
|
109
|
+
outputTextStyle: {
|
|
110
|
+
fontSize: 14,
|
|
111
|
+
lineHeight: 20,
|
|
112
|
+
color: DEFAULT_COLORS.text,
|
|
113
|
+
fontFamily: 'monospace'
|
|
114
|
+
},
|
|
90
115
|
toolbarStyle: {
|
|
91
116
|
flexDirection: 'row',
|
|
92
117
|
alignItems: 'center',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DEFAULT_COLORS","exports","primary","background","text","placeholder","toolbarBackground","toolbarBorder","cursor","activeButtonBg","codeBackground","HEADING_FONT_SIZES","h1","h2","h3","none","DEFAULT_BASE_TEXT_STYLE","fontSize","lineHeight","color","fontFamily","undefined","EMPTY_FORMAT_STYLE","bold","italic","underline","strikethrough","code","backgroundColor","heading","DEFAULT_THEME","containerStyle","borderWidth","borderColor","borderRadius","overflow","inputStyle","paddingHorizontal","paddingVertical","textAlignVertical","overlayContainerStyle","position","top","left","right","bottom","baseTextStyle","toolbarStyle","flexDirection","alignItems","gap","toolbarButtonStyle","minWidth","justifyContent","toolbarButtonActiveStyle","toolbarButtonTextStyle","
|
|
1
|
+
{"version":3,"names":["DEFAULT_COLORS","exports","primary","background","text","placeholder","toolbarBackground","toolbarBorder","outputBackground","outputLabel","cursor","activeButtonBg","codeBackground","HEADING_FONT_SIZES","h1","h2","h3","none","DEFAULT_BASE_TEXT_STYLE","fontSize","lineHeight","color","fontFamily","undefined","EMPTY_FORMAT_STYLE","bold","italic","underline","strikethrough","code","backgroundColor","heading","DEFAULT_THEME","containerStyle","borderWidth","borderColor","borderRadius","overflow","inputStyle","paddingHorizontal","paddingVertical","textAlignVertical","overlayContainerStyle","position","top","left","right","bottom","baseTextStyle","outputContainerStyle","marginHorizontal","marginBottom","padding","outputLabelStyle","fontWeight","letterSpacing","textTransform","outputTextStyle","toolbarStyle","flexDirection","alignItems","gap","toolbarButtonStyle","minWidth","justifyContent","toolbarButtonActiveStyle","toolbarButtonTextStyle","toolbarButtonActiveTextStyle","codeStyle","colors","DEFAULT_TOOLBAR_ITEMS","id","label","format"],"sourceRoot":"../../../src","sources":["constants/defaultStyles.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -44,9 +44,15 @@ function useFormatting({
|
|
|
44
44
|
}
|
|
45
45
|
}, [segments, selection, activeStyles, onSegmentsChange, onActiveStylesChange]);
|
|
46
46
|
const setHeading = (0, _react.useCallback)(level => {
|
|
47
|
+
if (selection.start === selection.end) {
|
|
48
|
+
onActiveStylesChange({
|
|
49
|
+
...activeStyles,
|
|
50
|
+
heading: level === 'none' ? undefined : level
|
|
51
|
+
});
|
|
52
|
+
}
|
|
47
53
|
const newSegments = (0, _formatter.setHeadingOnLine)(segments, selection, level);
|
|
48
54
|
onSegmentsChange(newSegments);
|
|
49
|
-
}, [
|
|
55
|
+
}, [activeStyles, onActiveStylesChange, onSegmentsChange, segments, selection]);
|
|
50
56
|
const setColor = (0, _react.useCallback)(color => {
|
|
51
57
|
setStyleProperty('color', color);
|
|
52
58
|
}, [setStyleProperty]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_formatter","useFormatting","segments","selection","activeStyles","onSegmentsChange","onActiveStylesChange","toggleFormat","useCallback","format","start","end","newSegments","toggleFormatOnSelection","setStyleProperty","key","value","setStyleOnSelection","setHeading","level","setHeadingOnLine","setColor","color","setBackgroundColor","setFontSize","size","isFormatActive","isFormatActiveInSelection","currentSelectionStyle","getSelectionStyle"],"sourceRoot":"../../../src","sources":["hooks/useFormatting.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAQA,IAAAC,UAAA,GAAAD,OAAA;AAgBA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,aAAaA,CAAC;EAC5BC,QAAQ;EACRC,SAAS;EACTC,YAAY;EACZC,gBAAgB;EAChBC;AACoB,CAAC,EAAE;EACvB,MAAMC,YAAY,GAAG,IAAAC,kBAAW,EAC7BC,MAAkB,IAAK;IACtB,IAAIN,SAAS,CAACO,KAAK,KAAKP,SAAS,CAACQ,GAAG,EAAE;MACrC;MACAL,oBAAoB,CAAC;QACnB,GAAGF,YAAY;QACf,CAACK,MAAM,GAAG,CAACL,YAAY,CAACK,MAAM;MAChC,CAAC,CAAC;IACJ,CAAC,MAAM;MACL;MACA,MAAMG,WAAW,GAAG,IAAAC,kCAAuB,EACzCX,QAAQ,EACRC,SAAS,EACTM,MACF,CAAC;MACDJ,gBAAgB,CAACO,WAAW,CAAC;IAC/B;EACF,CAAC,EACD,CAACV,QAAQ,EAAEC,SAAS,EAAEC,YAAY,EAAEC,gBAAgB,EAAEC,oBAAoB,CAC5E,CAAC;EAED,MAAMQ,gBAAgB,GAAG,IAAAN,kBAAW,EAClC,CAA8BO,GAAM,EAAEC,KAAqB,KAAK;IAC9D,IAAIb,SAAS,CAACO,KAAK,KAAKP,SAAS,CAACQ,GAAG,EAAE;MACrCL,oBAAoB,CAAC;QACnB,GAAGF,YAAY;QACf,CAACW,GAAG,GAAGC;MACT,CAAC,CAAC;IACJ,CAAC,MAAM;MACL,MAAMJ,WAAW,GAAG,IAAAK,8BAAmB,EACrCf,QAAQ,EACRC,SAAS,EACTY,GAAG,EACHC,KACF,CAAC;MACDX,gBAAgB,CAACO,WAAW,CAAC;IAC/B;EACF,CAAC,EACD,CAACV,QAAQ,EAAEC,SAAS,EAAEC,YAAY,EAAEC,gBAAgB,EAAEC,oBAAoB,CAC5E,CAAC;EAED,MAAMY,UAAU,GAAG,IAAAV,kBAAW,EAC3BW,KAAmB,IAAK;IACvB,MAAMP,WAAW,GAAG,
|
|
1
|
+
{"version":3,"names":["_react","require","_formatter","useFormatting","segments","selection","activeStyles","onSegmentsChange","onActiveStylesChange","toggleFormat","useCallback","format","start","end","newSegments","toggleFormatOnSelection","setStyleProperty","key","value","setStyleOnSelection","setHeading","level","heading","undefined","setHeadingOnLine","setColor","color","setBackgroundColor","setFontSize","size","isFormatActive","isFormatActiveInSelection","currentSelectionStyle","getSelectionStyle"],"sourceRoot":"../../../src","sources":["hooks/useFormatting.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,6 +8,7 @@ var _react = require("react");
|
|
|
8
8
|
var _defaultStyles = require("../constants/defaultStyles");
|
|
9
9
|
var _parser = require("../utils/parser");
|
|
10
10
|
var _formatter = require("../utils/formatter");
|
|
11
|
+
var _serializer = require("../utils/serializer");
|
|
11
12
|
var _useSelection = require("../hooks/useSelection");
|
|
12
13
|
var _useFormatting = require("../hooks/useFormatting");
|
|
13
14
|
/**
|
|
@@ -46,6 +47,7 @@ function useRichText(options = {}) {
|
|
|
46
47
|
selectionRef.current = selection;
|
|
47
48
|
const activeStylesRef = (0, _react.useRef)(activeStyles);
|
|
48
49
|
activeStylesRef.current = activeStyles;
|
|
50
|
+
const preserveActiveStylesRef = (0, _react.useRef)(false);
|
|
49
51
|
|
|
50
52
|
// ─── Segment Change Handler ──────────────────────────────────────────────
|
|
51
53
|
|
|
@@ -78,7 +80,13 @@ function useRichText(options = {}) {
|
|
|
78
80
|
// ─── Selection Change Handler ────────────────────────────────────────────
|
|
79
81
|
|
|
80
82
|
const onSelectionChange = (0, _react.useCallback)(newSelection => {
|
|
83
|
+
const previousSelection = selectionRef.current;
|
|
81
84
|
handleSelectionChange(newSelection);
|
|
85
|
+
const shouldPreserveActiveStyles = preserveActiveStylesRef.current && previousSelection.start === previousSelection.end && newSelection.start === newSelection.end && newSelection.start >= previousSelection.start && newSelection.start - previousSelection.start <= 1;
|
|
86
|
+
if (shouldPreserveActiveStyles) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
preserveActiveStylesRef.current = false;
|
|
82
90
|
|
|
83
91
|
// Update active styles based on cursor position
|
|
84
92
|
if (newSelection.start === newSelection.end) {
|
|
@@ -97,6 +105,9 @@ function useRichText(options = {}) {
|
|
|
97
105
|
const getPlainText = (0, _react.useCallback)(() => {
|
|
98
106
|
return (0, _parser.segmentsToPlainText)(segmentsRef.current);
|
|
99
107
|
}, []);
|
|
108
|
+
const getOutput = (0, _react.useCallback)((format = 'markdown') => {
|
|
109
|
+
return (0, _serializer.serializeSegments)(segmentsRef.current, format);
|
|
110
|
+
}, []);
|
|
100
111
|
const exportJSON = (0, _react.useCallback)(() => {
|
|
101
112
|
return JSON.parse(JSON.stringify(segmentsRef.current));
|
|
102
113
|
}, []);
|
|
@@ -109,7 +120,44 @@ function useRichText(options = {}) {
|
|
|
109
120
|
setActiveStyles({
|
|
110
121
|
..._defaultStyles.EMPTY_FORMAT_STYLE
|
|
111
122
|
});
|
|
123
|
+
preserveActiveStylesRef.current = false;
|
|
112
124
|
}, [updateSegments]);
|
|
125
|
+
const toggleFormat = (0, _react.useCallback)(format => {
|
|
126
|
+
if (selectionRef.current.start === selectionRef.current.end) {
|
|
127
|
+
preserveActiveStylesRef.current = true;
|
|
128
|
+
}
|
|
129
|
+
formatting.toggleFormat(format);
|
|
130
|
+
}, [formatting]);
|
|
131
|
+
const setStyleProperty = (0, _react.useCallback)((key, value) => {
|
|
132
|
+
if (selectionRef.current.start === selectionRef.current.end) {
|
|
133
|
+
preserveActiveStylesRef.current = true;
|
|
134
|
+
}
|
|
135
|
+
formatting.setStyleProperty(key, value);
|
|
136
|
+
}, [formatting]);
|
|
137
|
+
const setHeading = (0, _react.useCallback)(level => {
|
|
138
|
+
if (selectionRef.current.start === selectionRef.current.end) {
|
|
139
|
+
preserveActiveStylesRef.current = true;
|
|
140
|
+
}
|
|
141
|
+
formatting.setHeading(level);
|
|
142
|
+
}, [formatting]);
|
|
143
|
+
const setColor = (0, _react.useCallback)(color => {
|
|
144
|
+
if (selectionRef.current.start === selectionRef.current.end) {
|
|
145
|
+
preserveActiveStylesRef.current = true;
|
|
146
|
+
}
|
|
147
|
+
formatting.setColor(color);
|
|
148
|
+
}, [formatting]);
|
|
149
|
+
const setBackgroundColor = (0, _react.useCallback)(color => {
|
|
150
|
+
if (selectionRef.current.start === selectionRef.current.end) {
|
|
151
|
+
preserveActiveStylesRef.current = true;
|
|
152
|
+
}
|
|
153
|
+
formatting.setBackgroundColor(color);
|
|
154
|
+
}, [formatting]);
|
|
155
|
+
const setFontSize = (0, _react.useCallback)(size => {
|
|
156
|
+
if (selectionRef.current.start === selectionRef.current.end) {
|
|
157
|
+
preserveActiveStylesRef.current = true;
|
|
158
|
+
}
|
|
159
|
+
formatting.setFontSize(size);
|
|
160
|
+
}, [formatting]);
|
|
113
161
|
|
|
114
162
|
// ─── Build Return Value ──────────────────────────────────────────────────
|
|
115
163
|
|
|
@@ -119,16 +167,17 @@ function useRichText(options = {}) {
|
|
|
119
167
|
activeStyles
|
|
120
168
|
};
|
|
121
169
|
const actions = {
|
|
122
|
-
toggleFormat
|
|
123
|
-
setStyleProperty
|
|
124
|
-
setHeading
|
|
125
|
-
setColor
|
|
126
|
-
setBackgroundColor
|
|
127
|
-
setFontSize
|
|
170
|
+
toggleFormat,
|
|
171
|
+
setStyleProperty,
|
|
172
|
+
setHeading,
|
|
173
|
+
setColor,
|
|
174
|
+
setBackgroundColor,
|
|
175
|
+
setFontSize,
|
|
128
176
|
handleTextChange,
|
|
129
177
|
handleSelectionChange: onSelectionChange,
|
|
130
178
|
isFormatActive: formatting.isFormatActive,
|
|
131
179
|
getSelectionStyle: formatting.currentSelectionStyle,
|
|
180
|
+
getOutput,
|
|
132
181
|
getPlainText,
|
|
133
182
|
exportJSON,
|
|
134
183
|
importJSON,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_defaultStyles","_parser","_formatter","_useSelection","_useFormatting","useRichText","options","initialSegments","onChangeSegments","onChangeText","segments","setSegments","useState","length","createSegment","activeStyles","setActiveStyles","EMPTY_FORMAT_STYLE","selection","handleSelectionChange","useSelection","segmentsRef","useRef","current","selectionRef","activeStylesRef","updateSegments","useCallback","newSegments","segmentsToPlainText","formatting","useFormatting","onSegmentsChange","onActiveStylesChange","handleTextChange","newText","currentSegments","currentSelection","currentActiveStyles","start","end","getSelectionStyle","reconcileTextChange","onSelectionChange","newSelection","pos","findPositionInSegments","seg","segmentIndex","styles","getPlainText","exportJSON","JSON","parse","stringify","importJSON","safeSegments","clear","
|
|
1
|
+
{"version":3,"names":["_react","require","_defaultStyles","_parser","_formatter","_serializer","_useSelection","_useFormatting","useRichText","options","initialSegments","onChangeSegments","onChangeText","segments","setSegments","useState","length","createSegment","activeStyles","setActiveStyles","EMPTY_FORMAT_STYLE","selection","handleSelectionChange","useSelection","segmentsRef","useRef","current","selectionRef","activeStylesRef","preserveActiveStylesRef","updateSegments","useCallback","newSegments","segmentsToPlainText","formatting","useFormatting","onSegmentsChange","onActiveStylesChange","handleTextChange","newText","currentSegments","currentSelection","currentActiveStyles","start","end","getSelectionStyle","reconcileTextChange","onSelectionChange","newSelection","previousSelection","shouldPreserveActiveStyles","pos","findPositionInSegments","seg","segmentIndex","styles","getPlainText","getOutput","format","serializeSegments","exportJSON","JSON","parse","stringify","importJSON","safeSegments","clear","toggleFormat","setStyleProperty","key","value","setHeading","level","setColor","color","setBackgroundColor","setFontSize","size","state","actions","isFormatActive","currentSelectionStyle"],"sourceRoot":"../../../src","sources":["hooks/useRichText.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/index.d.js
CHANGED
|
@@ -117,6 +117,18 @@ Object.defineProperty(exports, "segmentToTextStyle", {
|
|
|
117
117
|
return _styleMapper.segmentToTextStyle;
|
|
118
118
|
}
|
|
119
119
|
});
|
|
120
|
+
Object.defineProperty(exports, "segmentsToHTML", {
|
|
121
|
+
enumerable: true,
|
|
122
|
+
get: function () {
|
|
123
|
+
return _serializer.segmentsToHTML;
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
Object.defineProperty(exports, "segmentsToMarkdown", {
|
|
127
|
+
enumerable: true,
|
|
128
|
+
get: function () {
|
|
129
|
+
return _serializer.segmentsToMarkdown;
|
|
130
|
+
}
|
|
131
|
+
});
|
|
120
132
|
Object.defineProperty(exports, "segmentsToPlainText", {
|
|
121
133
|
enumerable: true,
|
|
122
134
|
get: function () {
|
|
@@ -129,6 +141,12 @@ Object.defineProperty(exports, "segmentsToTextStyles", {
|
|
|
129
141
|
return _styleMapper.segmentsToTextStyles;
|
|
130
142
|
}
|
|
131
143
|
});
|
|
144
|
+
Object.defineProperty(exports, "serializeSegments", {
|
|
145
|
+
enumerable: true,
|
|
146
|
+
get: function () {
|
|
147
|
+
return _serializer.serializeSegments;
|
|
148
|
+
}
|
|
149
|
+
});
|
|
132
150
|
Object.defineProperty(exports, "setHeadingOnLine", {
|
|
133
151
|
enumerable: true,
|
|
134
152
|
get: function () {
|
|
@@ -182,5 +200,6 @@ var _RichTextContext = require("./context/RichTextContext");
|
|
|
182
200
|
var _parser = require("./utils/parser");
|
|
183
201
|
var _formatter = require("./utils/formatter");
|
|
184
202
|
var _styleMapper = require("./utils/styleMapper");
|
|
203
|
+
var _serializer = require("./utils/serializer");
|
|
185
204
|
var _defaultStyles = require("./constants/defaultStyles");
|
|
186
205
|
//# sourceMappingURL=index.d.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_RichTextInput","require","_OverlayText","_Toolbar","_ToolbarButton","_useRichText","_useSelection","_useFormatting","_RichTextContext","_parser","_formatter","_styleMapper","_defaultStyles"],"sourceRoot":"../../src","sources":["index.d.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_RichTextInput","require","_OverlayText","_Toolbar","_ToolbarButton","_useRichText","_useSelection","_useFormatting","_RichTextContext","_parser","_formatter","_styleMapper","_serializer","_defaultStyles"],"sourceRoot":"../../src","sources":["index.d.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AAEA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,cAAA,GAAAN,OAAA;AACA,IAAAO,gBAAA,GAAAP,OAAA;AAEA,IAAAQ,OAAA,GAAAR,OAAA;AACA,IAAAS,UAAA,GAAAT,OAAA;AACA,IAAAU,YAAA,GAAAV,OAAA;AACA,IAAAW,WAAA,GAAAX,OAAA;AACA,IAAAY,cAAA,GAAAZ,OAAA","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -117,6 +117,18 @@ Object.defineProperty(exports, "segmentToTextStyle", {
|
|
|
117
117
|
return _styleMapper.segmentToTextStyle;
|
|
118
118
|
}
|
|
119
119
|
});
|
|
120
|
+
Object.defineProperty(exports, "segmentsToHTML", {
|
|
121
|
+
enumerable: true,
|
|
122
|
+
get: function () {
|
|
123
|
+
return _serializer.segmentsToHTML;
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
Object.defineProperty(exports, "segmentsToMarkdown", {
|
|
127
|
+
enumerable: true,
|
|
128
|
+
get: function () {
|
|
129
|
+
return _serializer.segmentsToMarkdown;
|
|
130
|
+
}
|
|
131
|
+
});
|
|
120
132
|
Object.defineProperty(exports, "segmentsToPlainText", {
|
|
121
133
|
enumerable: true,
|
|
122
134
|
get: function () {
|
|
@@ -129,6 +141,12 @@ Object.defineProperty(exports, "segmentsToTextStyles", {
|
|
|
129
141
|
return _styleMapper.segmentsToTextStyles;
|
|
130
142
|
}
|
|
131
143
|
});
|
|
144
|
+
Object.defineProperty(exports, "serializeSegments", {
|
|
145
|
+
enumerable: true,
|
|
146
|
+
get: function () {
|
|
147
|
+
return _serializer.serializeSegments;
|
|
148
|
+
}
|
|
149
|
+
});
|
|
132
150
|
Object.defineProperty(exports, "setHeadingOnLine", {
|
|
133
151
|
enumerable: true,
|
|
134
152
|
get: function () {
|
|
@@ -182,5 +200,6 @@ var _RichTextContext = require("./context/RichTextContext");
|
|
|
182
200
|
var _parser = require("./utils/parser");
|
|
183
201
|
var _formatter = require("./utils/formatter");
|
|
184
202
|
var _styleMapper = require("./utils/styleMapper");
|
|
203
|
+
var _serializer = require("./utils/serializer");
|
|
185
204
|
var _defaultStyles = require("./constants/defaultStyles");
|
|
186
205
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_RichTextInput","require","_OverlayText","_Toolbar","_ToolbarButton","_useRichText","_useSelection","_useFormatting","_RichTextContext","_parser","_formatter","_styleMapper","_defaultStyles"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_RichTextInput","require","_OverlayText","_Toolbar","_ToolbarButton","_useRichText","_useSelection","_useFormatting","_RichTextContext","_parser","_formatter","_styleMapper","_serializer","_defaultStyles"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AAGA,IAAAI,YAAA,GAAAJ,OAAA;AAEA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,cAAA,GAAAN,OAAA;AAGA,IAAAO,gBAAA,GAAAP,OAAA;AAOA,IAAAQ,OAAA,GAAAR,OAAA;AAOA,IAAAS,UAAA,GAAAT,OAAA;AAOA,IAAAU,YAAA,GAAAV,OAAA;AAKA,IAAAW,WAAA,GAAAX,OAAA;AAOA,IAAAY,cAAA,GAAAZ,OAAA","ignoreList":[]}
|
|
@@ -15,7 +15,6 @@ exports.setHeadingOnLine = setHeadingOnLine;
|
|
|
15
15
|
exports.setStyleOnSelection = setStyleOnSelection;
|
|
16
16
|
exports.toggleFormatOnSelection = toggleFormatOnSelection;
|
|
17
17
|
var _parser = require("../utils/parser");
|
|
18
|
-
var _defaultStyles = require("../constants/defaultStyles");
|
|
19
18
|
/**
|
|
20
19
|
* Toggle an inline format (bold, italic, etc.) on the selected range.
|
|
21
20
|
*
|
|
@@ -70,9 +69,7 @@ function setHeadingOnLine(segments, selection, level) {
|
|
|
70
69
|
lineEnd
|
|
71
70
|
} = getLineRange(plainText, selection.start);
|
|
72
71
|
const headingStyle = {
|
|
73
|
-
heading: level
|
|
74
|
-
fontSize: _defaultStyles.HEADING_FONT_SIZES[level],
|
|
75
|
-
bold: level !== 'none' ? true : undefined
|
|
72
|
+
heading: level === 'none' ? undefined : level
|
|
76
73
|
};
|
|
77
74
|
return applyStyleToRange(segments, lineStart, lineEnd, headingStyle);
|
|
78
75
|
}
|