react-native-richify 1.0.4 → 1.0.6
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 +383 -120
- package/lib/commonjs/components/RenderedOutput.js +168 -0
- package/lib/commonjs/components/RenderedOutput.js.map +1 -0
- package/lib/commonjs/components/RichTextInput.js +130 -15
- package/lib/commonjs/components/RichTextInput.js.map +1 -1
- package/lib/commonjs/components/Toolbar.js +41 -2
- package/lib/commonjs/components/Toolbar.js.map +1 -1
- package/lib/commonjs/constants/defaultStyles.js +51 -1
- package/lib/commonjs/constants/defaultStyles.js.map +1 -1
- package/lib/commonjs/hooks/useFormatting.js +44 -2
- package/lib/commonjs/hooks/useFormatting.js.map +1 -1
- package/lib/commonjs/hooks/useRichText.js +75 -6
- package/lib/commonjs/hooks/useRichText.js.map +1 -1
- package/lib/commonjs/utils/formatter.js +48 -9
- package/lib/commonjs/utils/formatter.js.map +1 -1
- package/lib/commonjs/utils/parser.js +1 -1
- package/lib/commonjs/utils/parser.js.map +1 -1
- package/lib/commonjs/utils/serializer.js +102 -6
- package/lib/commonjs/utils/serializer.js.map +1 -1
- package/lib/commonjs/utils/styleMapper.js +11 -0
- package/lib/commonjs/utils/styleMapper.js.map +1 -1
- package/lib/module/components/RenderedOutput.js +163 -0
- package/lib/module/components/RenderedOutput.js.map +1 -0
- package/lib/module/components/RichTextInput.js +131 -16
- package/lib/module/components/RichTextInput.js.map +1 -1
- package/lib/module/components/Toolbar.js +41 -2
- package/lib/module/components/Toolbar.js.map +1 -1
- package/lib/module/constants/defaultStyles.js +51 -1
- package/lib/module/constants/defaultStyles.js.map +1 -1
- package/lib/module/hooks/useFormatting.js +45 -3
- package/lib/module/hooks/useFormatting.js.map +1 -1
- package/lib/module/hooks/useRichText.js +75 -6
- package/lib/module/hooks/useRichText.js.map +1 -1
- package/lib/module/utils/formatter.js +46 -9
- package/lib/module/utils/formatter.js.map +1 -1
- package/lib/module/utils/parser.js +1 -1
- package/lib/module/utils/parser.js.map +1 -1
- package/lib/module/utils/serializer.js +102 -6
- package/lib/module/utils/serializer.js.map +1 -1
- package/lib/module/utils/styleMapper.js +11 -0
- package/lib/module/utils/styleMapper.js.map +1 -1
- package/lib/typescript/src/components/RenderedOutput.d.ts +9 -0
- package/lib/typescript/src/components/RenderedOutput.d.ts.map +1 -0
- package/lib/typescript/src/components/RichTextInput.d.ts.map +1 -1
- package/lib/typescript/src/components/Toolbar.d.ts.map +1 -1
- package/lib/typescript/src/constants/defaultStyles.d.ts +1 -0
- package/lib/typescript/src/constants/defaultStyles.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useFormatting.d.ts +4 -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 +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/types/index.d.ts +94 -1
- package/lib/typescript/src/types/index.d.ts.map +1 -1
- package/lib/typescript/src/utils/formatter.d.ts +9 -1
- package/lib/typescript/src/utils/formatter.d.ts.map +1 -1
- package/lib/typescript/src/utils/parser.d.ts.map +1 -1
- package/lib/typescript/src/utils/serializer.d.ts.map +1 -1
- package/lib/typescript/src/utils/styleMapper.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/RenderedOutput.tsx +231 -0
- package/src/components/RichTextInput.tsx +193 -19
- package/src/components/Toolbar.tsx +54 -2
- package/src/constants/defaultStyles.d.ts +2 -1
- package/src/constants/defaultStyles.ts +20 -0
- package/src/hooks/useFormatting.ts +101 -2
- package/src/hooks/useRichText.ts +101 -5
- package/src/index.d.ts +1 -1
- package/src/index.ts +4 -0
- package/src/types/index.d.ts +94 -1
- package/src/types/index.ts +104 -1
- package/src/utils/formatter.ts +60 -6
- package/src/utils/parser.ts +6 -1
- package/src/utils/serializer.ts +150 -8
- package/src/utils/styleMapper.ts +21 -0
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React, { useEffect, useCallback, useMemo, useRef } from 'react';
|
|
3
|
+
import React, { useEffect, useCallback, useMemo, useRef, useState } from 'react';
|
|
4
4
|
import { Animated, Easing, ScrollView, StyleSheet, Text, TextInput, View } from 'react-native';
|
|
5
5
|
import { DEFAULT_THEME } from '../constants/defaultStyles';
|
|
6
6
|
import { useRichText } from '../hooks/useRichText';
|
|
7
7
|
import { segmentsToPlainText } from '../utils/parser';
|
|
8
8
|
import { serializeSegments } from '../utils/serializer';
|
|
9
|
+
import { RenderedOutput } from './RenderedOutput';
|
|
9
10
|
import { Toolbar } from './Toolbar';
|
|
10
11
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
-
const
|
|
12
|
+
const DEFAULT_OUTPUT_PANEL_MAX_HEIGHT = 180;
|
|
12
13
|
const isJestRuntime = typeof globalThis.process?.env?.JEST_WORKER_ID === 'string';
|
|
13
14
|
|
|
14
15
|
/**
|
|
@@ -29,8 +30,16 @@ export const RichTextInput = ({
|
|
|
29
30
|
toolbarItems,
|
|
30
31
|
theme,
|
|
31
32
|
showOutputPreview = true,
|
|
32
|
-
outputFormat
|
|
33
|
+
outputFormat,
|
|
34
|
+
defaultOutputFormat = 'markdown',
|
|
35
|
+
outputPreviewMode,
|
|
36
|
+
defaultOutputPreviewMode = 'literal',
|
|
37
|
+
maxOutputHeight = DEFAULT_OUTPUT_PANEL_MAX_HEIGHT,
|
|
33
38
|
onChangeOutput,
|
|
39
|
+
onChangeOutputFormat,
|
|
40
|
+
onChangeOutputPreviewMode,
|
|
41
|
+
onRequestLink,
|
|
42
|
+
onRequestImage,
|
|
34
43
|
multiline = true,
|
|
35
44
|
minHeight = 120,
|
|
36
45
|
maxHeight,
|
|
@@ -41,6 +50,9 @@ export const RichTextInput = ({
|
|
|
41
50
|
}) => {
|
|
42
51
|
const resolvedTheme = theme ?? DEFAULT_THEME;
|
|
43
52
|
const previewProgress = useRef(new Animated.Value(0)).current;
|
|
53
|
+
const [internalOutputFormat, setInternalOutputFormat] = useState(defaultOutputFormat);
|
|
54
|
+
const [internalOutputPreviewMode, setInternalOutputPreviewMode] = useState(defaultOutputPreviewMode);
|
|
55
|
+
const [contentHeight, setContentHeight] = useState(minHeight);
|
|
44
56
|
const {
|
|
45
57
|
state,
|
|
46
58
|
actions
|
|
@@ -53,11 +65,21 @@ export const RichTextInput = ({
|
|
|
53
65
|
onReady?.(actions);
|
|
54
66
|
}, [actions, onReady]);
|
|
55
67
|
const plainText = segmentsToPlainText(state.segments);
|
|
56
|
-
const
|
|
68
|
+
const resolvedOutputFormat = outputFormat ?? internalOutputFormat;
|
|
69
|
+
const resolvedOutputPreviewMode = outputPreviewMode ?? internalOutputPreviewMode;
|
|
70
|
+
const inputHeight = Math.max(minHeight, typeof maxHeight === 'number' ? Math.min(contentHeight, maxHeight) : contentHeight);
|
|
71
|
+
const shouldScrollInput = typeof maxHeight === 'number' && contentHeight > maxHeight;
|
|
72
|
+
const serializedOutput = useMemo(() => serializeSegments(state.segments, resolvedOutputFormat), [resolvedOutputFormat, state.segments]);
|
|
57
73
|
const shouldShowOutputPreview = showOutputPreview && plainText.length > 0;
|
|
74
|
+
const normalizedSelection = useMemo(() => ({
|
|
75
|
+
start: Math.min(state.selection.start, state.selection.end),
|
|
76
|
+
end: Math.max(state.selection.start, state.selection.end)
|
|
77
|
+
}), [state.selection.end, state.selection.start]);
|
|
78
|
+
const selectedText = useMemo(() => plainText.slice(normalizedSelection.start, normalizedSelection.end), [normalizedSelection.end, normalizedSelection.start, plainText]);
|
|
79
|
+
const selectionStyle = useMemo(() => actions.getSelectionStyle(), [actions, state.activeStyles, state.segments, state.selection]);
|
|
58
80
|
useEffect(() => {
|
|
59
|
-
onChangeOutput?.(serializedOutput,
|
|
60
|
-
}, [onChangeOutput,
|
|
81
|
+
onChangeOutput?.(serializedOutput, resolvedOutputFormat);
|
|
82
|
+
}, [onChangeOutput, resolvedOutputFormat, serializedOutput]);
|
|
61
83
|
useEffect(() => {
|
|
62
84
|
if (isJestRuntime) {
|
|
63
85
|
previewProgress.setValue(shouldShowOutputPreview ? 1 : 0);
|
|
@@ -80,17 +102,70 @@ export const RichTextInput = ({
|
|
|
80
102
|
end
|
|
81
103
|
});
|
|
82
104
|
}, [actions]);
|
|
105
|
+
const onContentSizeChange = useCallback(e => {
|
|
106
|
+
setContentHeight(Math.ceil(e.nativeEvent.contentSize.height));
|
|
107
|
+
textInputProps?.onContentSizeChange?.(e);
|
|
108
|
+
}, [textInputProps]);
|
|
109
|
+
const handleOutputFormatChange = useCallback(format => {
|
|
110
|
+
if (outputFormat === undefined) {
|
|
111
|
+
setInternalOutputFormat(format);
|
|
112
|
+
}
|
|
113
|
+
onChangeOutputFormat?.(format);
|
|
114
|
+
}, [onChangeOutputFormat, outputFormat]);
|
|
115
|
+
const handleOutputPreviewModeChange = useCallback(mode => {
|
|
116
|
+
if (outputPreviewMode === undefined) {
|
|
117
|
+
setInternalOutputPreviewMode(mode);
|
|
118
|
+
}
|
|
119
|
+
onChangeOutputPreviewMode?.(mode);
|
|
120
|
+
}, [onChangeOutputPreviewMode, outputPreviewMode]);
|
|
121
|
+
const handleRequestLink = useCallback(() => {
|
|
122
|
+
if (onRequestLink) {
|
|
123
|
+
onRequestLink({
|
|
124
|
+
selectedText,
|
|
125
|
+
currentUrl: selectionStyle.link,
|
|
126
|
+
applyLink: actions.setLink
|
|
127
|
+
});
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
if (selectionStyle.link) {
|
|
131
|
+
actions.setLink(undefined);
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
const detectedUrl = detectLinkTarget(selectedText);
|
|
135
|
+
if (detectedUrl) {
|
|
136
|
+
actions.setLink(detectedUrl);
|
|
137
|
+
}
|
|
138
|
+
}, [actions, onRequestLink, selectedText, selectionStyle.link]);
|
|
139
|
+
const handleRequestImage = useCallback(() => {
|
|
140
|
+
if (onRequestImage) {
|
|
141
|
+
onRequestImage({
|
|
142
|
+
insertImage: actions.insertImage
|
|
143
|
+
});
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
const detectedSource = detectImageSource(selectedText);
|
|
147
|
+
if (detectedSource) {
|
|
148
|
+
actions.insertImage(detectedSource, {
|
|
149
|
+
alt: selectedText.trim() || undefined
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}, [actions, onRequestImage, selectedText]);
|
|
153
|
+
const outputLabel = useMemo(() => {
|
|
154
|
+
const formatLabel = resolvedOutputFormat === 'html' ? 'HTML' : 'Markdown';
|
|
155
|
+
if (resolvedOutputPreviewMode === 'rendered') {
|
|
156
|
+
return `${formatLabel} preview`;
|
|
157
|
+
}
|
|
158
|
+
return `${formatLabel} output`;
|
|
159
|
+
}, [resolvedOutputFormat, resolvedOutputPreviewMode]);
|
|
83
160
|
const containerStyle = [resolvedTheme.containerStyle ?? DEFAULT_THEME.containerStyle];
|
|
84
|
-
const inputAreaStyle = [styles.inputArea
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
} : undefined];
|
|
89
|
-
const inputStyle = [styles.textInput, resolvedTheme.baseTextStyle ?? DEFAULT_THEME.baseTextStyle, resolvedTheme.inputStyle ?? DEFAULT_THEME.inputStyle, textInputProps?.style];
|
|
161
|
+
const inputAreaStyle = [styles.inputArea];
|
|
162
|
+
const inputStyle = [styles.textInput, resolvedTheme.baseTextStyle ?? DEFAULT_THEME.baseTextStyle, resolvedTheme.inputStyle ?? DEFAULT_THEME.inputStyle, {
|
|
163
|
+
height: inputHeight
|
|
164
|
+
}, textInputProps?.style];
|
|
90
165
|
const outputAnimatedStyle = {
|
|
91
166
|
maxHeight: previewProgress.interpolate({
|
|
92
167
|
inputRange: [0, 1],
|
|
93
|
-
outputRange: [0,
|
|
168
|
+
outputRange: [0, maxOutputHeight + 72]
|
|
94
169
|
}),
|
|
95
170
|
opacity: previewProgress,
|
|
96
171
|
marginTop: previewProgress.interpolate({
|
|
@@ -112,6 +187,12 @@ export const RichTextInput = ({
|
|
|
112
187
|
state: state,
|
|
113
188
|
items: toolbarItems,
|
|
114
189
|
theme: resolvedTheme,
|
|
190
|
+
outputFormat: resolvedOutputFormat,
|
|
191
|
+
outputPreviewMode: resolvedOutputPreviewMode,
|
|
192
|
+
onOutputFormatChange: handleOutputFormatChange,
|
|
193
|
+
onOutputPreviewModeChange: handleOutputPreviewModeChange,
|
|
194
|
+
onRequestLink: handleRequestLink,
|
|
195
|
+
onRequestImage: handleRequestImage,
|
|
115
196
|
renderToolbar: renderToolbar
|
|
116
197
|
}) : null;
|
|
117
198
|
const toolbarBorderStyle = toolbarPosition === 'top' ? {
|
|
@@ -134,6 +215,7 @@ export const RichTextInput = ({
|
|
|
134
215
|
value: plainText,
|
|
135
216
|
onChangeText: actions.handleTextChange,
|
|
136
217
|
onSelectionChange: onSelectionChange,
|
|
218
|
+
onContentSizeChange: onContentSizeChange,
|
|
137
219
|
multiline: multiline,
|
|
138
220
|
placeholder: placeholder,
|
|
139
221
|
placeholderTextColor: resolvedTheme.colors?.placeholder ?? DEFAULT_THEME.colors?.placeholder,
|
|
@@ -142,7 +224,7 @@ export const RichTextInput = ({
|
|
|
142
224
|
autoFocus: autoFocus,
|
|
143
225
|
selectionColor: resolvedTheme.colors?.cursor ?? DEFAULT_THEME.colors?.cursor,
|
|
144
226
|
textAlignVertical: "top",
|
|
145
|
-
scrollEnabled:
|
|
227
|
+
scrollEnabled: shouldScrollInput
|
|
146
228
|
}), showOutputPreview && /*#__PURE__*/_jsx(Animated.View, {
|
|
147
229
|
pointerEvents: shouldShowOutputPreview ? 'auto' : 'none',
|
|
148
230
|
style: [styles.outputAnimatedWrapper, outputAnimatedStyle],
|
|
@@ -150,10 +232,16 @@ export const RichTextInput = ({
|
|
|
150
232
|
style: outputContainerStyle,
|
|
151
233
|
children: [/*#__PURE__*/_jsx(Text, {
|
|
152
234
|
style: outputLabelStyle,
|
|
153
|
-
children:
|
|
235
|
+
children: outputLabel
|
|
154
236
|
}), /*#__PURE__*/_jsx(ScrollView, {
|
|
237
|
+
style: {
|
|
238
|
+
maxHeight: maxOutputHeight
|
|
239
|
+
},
|
|
155
240
|
showsVerticalScrollIndicator: false,
|
|
156
|
-
children: /*#__PURE__*/_jsx(
|
|
241
|
+
children: resolvedOutputPreviewMode === 'rendered' ? /*#__PURE__*/_jsx(RenderedOutput, {
|
|
242
|
+
segments: state.segments,
|
|
243
|
+
theme: resolvedTheme
|
|
244
|
+
}) : /*#__PURE__*/_jsx(Text, {
|
|
157
245
|
selectable: true,
|
|
158
246
|
style: outputTextStyle,
|
|
159
247
|
children: serializedOutput
|
|
@@ -179,4 +267,31 @@ const styles = StyleSheet.create({
|
|
|
179
267
|
overflow: 'hidden'
|
|
180
268
|
}
|
|
181
269
|
});
|
|
270
|
+
function detectLinkTarget(value) {
|
|
271
|
+
const trimmed = value.trim();
|
|
272
|
+
if (trimmed.length === 0) {
|
|
273
|
+
return undefined;
|
|
274
|
+
}
|
|
275
|
+
if (/^https?:\/\//i.test(trimmed) || /^mailto:/i.test(trimmed)) {
|
|
276
|
+
return trimmed;
|
|
277
|
+
}
|
|
278
|
+
if (/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(trimmed)) {
|
|
279
|
+
return `mailto:${trimmed}`;
|
|
280
|
+
}
|
|
281
|
+
if (/^[^\s]+\.[^\s]+$/.test(trimmed)) {
|
|
282
|
+
return `https://${trimmed}`;
|
|
283
|
+
}
|
|
284
|
+
return undefined;
|
|
285
|
+
}
|
|
286
|
+
function detectImageSource(value) {
|
|
287
|
+
const normalized = detectLinkTarget(value);
|
|
288
|
+
if (!normalized) {
|
|
289
|
+
return undefined;
|
|
290
|
+
}
|
|
291
|
+
const candidate = normalized.replace(/^mailto:/i, '');
|
|
292
|
+
if (/\.(png|jpe?g|gif|webp|svg)(\?.*)?$/i.test(candidate)) {
|
|
293
|
+
return normalized;
|
|
294
|
+
}
|
|
295
|
+
return undefined;
|
|
296
|
+
}
|
|
182
297
|
//# sourceMappingURL=RichTextInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useCallback","useMemo","useRef","Animated","Easing","ScrollView","StyleSheet","Text","TextInput","View","DEFAULT_THEME","useRichText","segmentsToPlainText","serializeSegments","Toolbar","jsx","_jsx","jsxs","_jsxs","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","previewProgress","Value","current","state","actions","plainText","segments","serializedOutput","shouldShowOutputPreview","length","setValue","timing","toValue","duration","easing","out","cubic","useNativeDriver","start","onSelectionChange","e","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","items","toolbarBorderStyle","borderBottomWidth","borderBottomColor","colors","toolbarBorder","borderTopWidth","borderTopColor","children","value","handleTextChange","placeholderTextColor","selectionColor","cursor","textAlignVertical","scrollEnabled","pointerEvents","outputAnimatedWrapper","showsVerticalScrollIndicator","selectable","displayName","create","position","overflow"],"sourceRoot":"../../../src","sources":["components/RichTextInput.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useEffect","useCallback","useMemo","useRef","useState","Animated","Easing","ScrollView","StyleSheet","Text","TextInput","View","DEFAULT_THEME","useRichText","segmentsToPlainText","serializeSegments","RenderedOutput","Toolbar","jsx","_jsx","jsxs","_jsxs","DEFAULT_OUTPUT_PANEL_MAX_HEIGHT","isJestRuntime","globalThis","process","env","JEST_WORKER_ID","RichTextInput","initialSegments","onChangeSegments","onChangeText","placeholder","editable","maxLength","showToolbar","toolbarPosition","toolbarItems","theme","showOutputPreview","outputFormat","defaultOutputFormat","outputPreviewMode","defaultOutputPreviewMode","maxOutputHeight","onChangeOutput","onChangeOutputFormat","onChangeOutputPreviewMode","onRequestLink","onRequestImage","multiline","minHeight","maxHeight","autoFocus","textInputProps","renderToolbar","onReady","resolvedTheme","previewProgress","Value","current","internalOutputFormat","setInternalOutputFormat","internalOutputPreviewMode","setInternalOutputPreviewMode","contentHeight","setContentHeight","state","actions","plainText","segments","resolvedOutputFormat","resolvedOutputPreviewMode","inputHeight","Math","max","min","shouldScrollInput","serializedOutput","shouldShowOutputPreview","length","normalizedSelection","start","selection","end","selectedText","slice","selectionStyle","getSelectionStyle","activeStyles","setValue","timing","toValue","duration","easing","out","cubic","useNativeDriver","onSelectionChange","e","nativeEvent","handleSelectionChange","onContentSizeChange","ceil","contentSize","height","handleOutputFormatChange","format","undefined","handleOutputPreviewModeChange","mode","handleRequestLink","currentUrl","link","applyLink","setLink","detectedUrl","detectLinkTarget","handleRequestImage","insertImage","detectedSource","detectImageSource","alt","trim","outputLabel","formatLabel","containerStyle","inputAreaStyle","styles","inputArea","inputStyle","textInput","baseTextStyle","style","outputAnimatedStyle","interpolate","inputRange","outputRange","opacity","marginTop","transform","translateY","outputContainerStyle","outputLabelStyle","outputTextStyle","toolbarComponent","items","onOutputFormatChange","onOutputPreviewModeChange","toolbarBorderStyle","borderBottomWidth","borderBottomColor","colors","toolbarBorder","borderTopWidth","borderTopColor","children","value","handleTextChange","placeholderTextColor","selectionColor","cursor","textAlignVertical","scrollEnabled","pointerEvents","outputAnimatedWrapper","showsVerticalScrollIndicator","selectable","displayName","create","position","overflow","trimmed","test","normalized","candidate","replace"],"sourceRoot":"../../../src","sources":["components/RichTextInput.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IACVC,SAAS,EACTC,WAAW,EACXC,OAAO,EACPC,MAAM,EACNC,QAAQ,QACH,OAAO;AACd,SACEC,QAAQ,EACRC,MAAM,EACNC,UAAU,EACVC,UAAU,EACVC,IAAI,EACJC,SAAS,EACTC,IAAI,QAIC,cAAc;AAErB,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,WAAW,QAAQ,sBAAsB;AAClD,SAASC,mBAAmB,QAAQ,iBAAiB;AACrD,SAASC,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,OAAO,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEpC,MAAMC,+BAA+B,GAAG,GAAG;AAC3C,MAAMC,aAAa,GACjB,OACEC,UAAU,CAGVC,OAAO,EAAEC,GAAG,EAAEC,cAAc,KAAK,QAAQ;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,aAA2C,GAAGA,CAAC;EAC1DC,eAAe;EACfC,gBAAgB;EAChBC,YAAY;EACZC,WAAW,GAAG,iBAAiB;EAC/BC,QAAQ,GAAG,IAAI;EACfC,SAAS;EACTC,WAAW,GAAG,IAAI;EAClBC,eAAe,GAAG,KAAK;EACvBC,YAAY;EACZC,KAAK;EACLC,iBAAiB,GAAG,IAAI;EACxBC,YAAY;EACZC,mBAAmB,GAAG,UAAU;EAChCC,iBAAiB;EACjBC,wBAAwB,GAAG,SAAS;EACpCC,eAAe,GAAGtB,+BAA+B;EACjDuB,cAAc;EACdC,oBAAoB;EACpBC,yBAAyB;EACzBC,aAAa;EACbC,cAAc;EACdC,SAAS,GAAG,IAAI;EAChBC,SAAS,GAAG,GAAG;EACfC,SAAS;EACTC,SAAS,GAAG,KAAK;EACjBC,cAAc;EACdC,aAAa;EACbC;AACF,CAAC,KAAK;EACJ,MAAMC,aAAa,GAAGnB,KAAK,IAAI1B,aAAa;EAC5C,MAAM8C,eAAe,GAAGvD,MAAM,CAAC,IAAIE,QAAQ,CAACsD,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAC7D,MAAM,CAACC,oBAAoB,EAAEC,uBAAuB,CAAC,GACnD1D,QAAQ,CAACqC,mBAAmB,CAAC;EAC/B,MAAM,CAACsB,yBAAyB,EAAEC,4BAA4B,CAAC,GAAG5D,QAAQ,CACxEuC,wBACF,CAAC;EACD,MAAM,CAACsB,aAAa,EAAEC,gBAAgB,CAAC,GAAG9D,QAAQ,CAAC+C,SAAS,CAAC;EAE7D,MAAM;IAAEgB,KAAK;IAAEC;EAAQ,CAAC,GAAGvD,WAAW,CAAC;IACrCgB,eAAe;IACfC,gBAAgB;IAChBC;EACF,CAAC,CAAC;EAEF/B,SAAS,CAAC,MAAM;IACdwD,OAAO,GAAGY,OAAO,CAAC;EACpB,CAAC,EAAE,CAACA,OAAO,EAAEZ,OAAO,CAAC,CAAC;EAEtB,MAAMa,SAAS,GAAGvD,mBAAmB,CAACqD,KAAK,CAACG,QAAQ,CAAC;EACrD,MAAMC,oBAAoB,GAAG/B,YAAY,IAAIqB,oBAAoB;EACjE,MAAMW,yBAAyB,GAC7B9B,iBAAiB,IAAIqB,yBAAyB;EAChD,MAAMU,WAAW,GAAGC,IAAI,CAACC,GAAG,CAC1BxB,SAAS,EACT,OAAOC,SAAS,KAAK,QAAQ,GACzBsB,IAAI,CAACE,GAAG,CAACX,aAAa,EAAEb,SAAS,CAAC,GAClCa,aACN,CAAC;EACD,MAAMY,iBAAiB,GACrB,OAAOzB,SAAS,KAAK,QAAQ,IAAIa,aAAa,GAAGb,SAAS;EAC5D,MAAM0B,gBAAgB,GAAG5E,OAAO,CAC9B,MAAMa,iBAAiB,CAACoD,KAAK,CAACG,QAAQ,EAAEC,oBAAoB,CAAC,EAC7D,CAACA,oBAAoB,EAAEJ,KAAK,CAACG,QAAQ,CACvC,CAAC;EACD,MAAMS,uBAAuB,GAAGxC,iBAAiB,IAAI8B,SAAS,CAACW,MAAM,GAAG,CAAC;EACzE,MAAMC,mBAAmB,GAAG/E,OAAO,CACjC,OAAO;IACLgF,KAAK,EAAER,IAAI,CAACE,GAAG,CAACT,KAAK,CAACgB,SAAS,CAACD,KAAK,EAAEf,KAAK,CAACgB,SAAS,CAACC,GAAG,CAAC;IAC3DA,GAAG,EAAEV,IAAI,CAACC,GAAG,CAACR,KAAK,CAACgB,SAAS,CAACD,KAAK,EAAEf,KAAK,CAACgB,SAAS,CAACC,GAAG;EAC1D,CAAC,CAAC,EACF,CAACjB,KAAK,CAACgB,SAAS,CAACC,GAAG,EAAEjB,KAAK,CAACgB,SAAS,CAACD,KAAK,CAC7C,CAAC;EACD,MAAMG,YAAY,GAAGnF,OAAO,CAC1B,MAAMmE,SAAS,CAACiB,KAAK,CAACL,mBAAmB,CAACC,KAAK,EAAED,mBAAmB,CAACG,GAAG,CAAC,EACzE,CAACH,mBAAmB,CAACG,GAAG,EAAEH,mBAAmB,CAACC,KAAK,EAAEb,SAAS,CAChE,CAAC;EACD,MAAMkB,cAAc,GAAGrF,OAAO,CAC5B,MAAMkE,OAAO,CAACoB,iBAAiB,CAAC,CAAC,EACjC,CAACpB,OAAO,EAAED,KAAK,CAACsB,YAAY,EAAEtB,KAAK,CAACG,QAAQ,EAAEH,KAAK,CAACgB,SAAS,CAC/D,CAAC;EAEDnF,SAAS,CAAC,MAAM;IACd6C,cAAc,GAAGiC,gBAAgB,EAAEP,oBAAoB,CAAC;EAC1D,CAAC,EAAE,CAAC1B,cAAc,EAAE0B,oBAAoB,EAAEO,gBAAgB,CAAC,CAAC;EAE5D9E,SAAS,CAAC,MAAM;IACd,IAAIuB,aAAa,EAAE;MACjBmC,eAAe,CAACgC,QAAQ,CAACX,uBAAuB,GAAG,CAAC,GAAG,CAAC,CAAC;MACzD;IACF;IAEA1E,QAAQ,CAACsF,MAAM,CAACjC,eAAe,EAAE;MAC/BkC,OAAO,EAAEb,uBAAuB,GAAG,CAAC,GAAG,CAAC;MACxCc,QAAQ,EAAE,GAAG;MACbC,MAAM,EAAExF,MAAM,CAACyF,GAAG,CAACzF,MAAM,CAAC0F,KAAK,CAAC;MAChCC,eAAe,EAAE;IACnB,CAAC,CAAC,CAACf,KAAK,CAAC,CAAC;EACZ,CAAC,EAAE,CAACxB,eAAe,EAAEqB,uBAAuB,CAAC,CAAC;EAE9C,MAAMmB,iBAAiB,GAAGjG,WAAW,CAClCkG,CAA0D,IAAK;IAC9D,MAAM;MAAEjB,KAAK;MAAEE;IAAI,CAAC,GAAGe,CAAC,CAACC,WAAW,CAACjB,SAAS;IAC9Cf,OAAO,CAACiC,qBAAqB,CAAC;MAAEnB,KAAK;MAAEE;IAAI,CAAC,CAAC;EAC/C,CAAC,EACD,CAAChB,OAAO,CACV,CAAC;EAED,MAAMkC,mBAAmB,GAAGrG,WAAW,CACpCkG,CAA4D,IAAK;IAChEjC,gBAAgB,CAACQ,IAAI,CAAC6B,IAAI,CAACJ,CAAC,CAACC,WAAW,CAACI,WAAW,CAACC,MAAM,CAAC,CAAC;IAC7DnD,cAAc,EAAEgD,mBAAmB,GAAGH,CAAC,CAAC;EAC1C,CAAC,EACD,CAAC7C,cAAc,CACjB,CAAC;EAED,MAAMoD,wBAAwB,GAAGzG,WAAW,CACzC0G,MAA2B,IAAK;IAC/B,IAAInE,YAAY,KAAKoE,SAAS,EAAE;MAC9B9C,uBAAuB,CAAC6C,MAAM,CAAC;IACjC;IAEA7D,oBAAoB,GAAG6D,MAAM,CAAC;EAChC,CAAC,EACD,CAAC7D,oBAAoB,EAAEN,YAAY,CACrC,CAAC;EAED,MAAMqE,6BAA6B,GAAG5G,WAAW,CAC9C6G,IAA4B,IAAK;IAChC,IAAIpE,iBAAiB,KAAKkE,SAAS,EAAE;MACnC5C,4BAA4B,CAAC8C,IAAI,CAAC;IACpC;IAEA/D,yBAAyB,GAAG+D,IAAI,CAAC;EACnC,CAAC,EACD,CAAC/D,yBAAyB,EAAEL,iBAAiB,CAC/C,CAAC;EAED,MAAMqE,iBAAiB,GAAG9G,WAAW,CAAC,MAAM;IAC1C,IAAI+C,aAAa,EAAE;MACjBA,aAAa,CAAC;QACZqC,YAAY;QACZ2B,UAAU,EAAEzB,cAAc,CAAC0B,IAAI;QAC/BC,SAAS,EAAE9C,OAAO,CAAC+C;MACrB,CAAC,CAAC;MACF;IACF;IAEA,IAAI5B,cAAc,CAAC0B,IAAI,EAAE;MACvB7C,OAAO,CAAC+C,OAAO,CAACP,SAAS,CAAC;MAC1B;IACF;IAEA,MAAMQ,WAAW,GAAGC,gBAAgB,CAAChC,YAAY,CAAC;IAClD,IAAI+B,WAAW,EAAE;MACfhD,OAAO,CAAC+C,OAAO,CAACC,WAAW,CAAC;IAC9B;EACF,CAAC,EAAE,CAAChD,OAAO,EAAEpB,aAAa,EAAEqC,YAAY,EAAEE,cAAc,CAAC0B,IAAI,CAAC,CAAC;EAE/D,MAAMK,kBAAkB,GAAGrH,WAAW,CAAC,MAAM;IAC3C,IAAIgD,cAAc,EAAE;MAClBA,cAAc,CAAC;QACbsE,WAAW,EAAEnD,OAAO,CAACmD;MACvB,CAAC,CAAC;MACF;IACF;IAEA,MAAMC,cAAc,GAAGC,iBAAiB,CAACpC,YAAY,CAAC;IACtD,IAAImC,cAAc,EAAE;MAClBpD,OAAO,CAACmD,WAAW,CAACC,cAAc,EAAE;QAClCE,GAAG,EAAErC,YAAY,CAACsC,IAAI,CAAC,CAAC,IAAIf;MAC9B,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAACxC,OAAO,EAAEnB,cAAc,EAAEoC,YAAY,CAAC,CAAC;EAE3C,MAAMuC,WAAW,GAAG1H,OAAO,CAAC,MAAM;IAChC,MAAM2H,WAAW,GAAGtD,oBAAoB,KAAK,MAAM,GAAG,MAAM,GAAG,UAAU;IAEzE,IAAIC,yBAAyB,KAAK,UAAU,EAAE;MAC5C,OAAO,GAAGqD,WAAW,UAAU;IACjC;IAEA,OAAO,GAAGA,WAAW,SAAS;EAChC,CAAC,EAAE,CAACtD,oBAAoB,EAAEC,yBAAyB,CAAC,CAAC;EAErD,MAAMsD,cAAc,GAAG,CACrBrE,aAAa,CAACqE,cAAc,IAAIlH,aAAa,CAACkH,cAAc,CAC7D;EACD,MAAMC,cAAc,GAAG,CAACC,MAAM,CAACC,SAAS,CAAC;EACzC,MAAMC,UAAU,GAAG,CACjBF,MAAM,CAACG,SAAS,EAChB1E,aAAa,CAAC2E,aAAa,IAAIxH,aAAa,CAACwH,aAAa,EAC1D3E,aAAa,CAACyE,UAAU,IAAItH,aAAa,CAACsH,UAAU,EACpD;IAAEzB,MAAM,EAAEhC;EAAY,CAAC,EACvBnB,cAAc,EAAE+E,KAAK,CACtB;EACD,MAAMC,mBAAmB,GAAG;IAC1BlF,SAAS,EAAEM,eAAe,CAAC6E,WAAW,CAAC;MACrCC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;MAClBC,WAAW,EAAE,CAAC,CAAC,EAAE7F,eAAe,GAAG,EAAE;IACvC,CAAC,CAAC;IACF8F,OAAO,EAAEhF,eAAe;IACxBiF,SAAS,EAAEjF,eAAe,CAAC6E,WAAW,CAAC;MACrCC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;MAClBC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;IACrB,CAAC,CAAC;IACFG,SAAS,EAAE,CACT;MACEC,UAAU,EAAEnF,eAAe,CAAC6E,WAAW,CAAC;QACtCC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAClBC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;MACrB,CAAC;IACH,CAAC;EAEL,CAAC;EACD,MAAMK,oBAAoB,GAAG,CAC3BrF,aAAa,CAACqF,oBAAoB,IAAIlI,aAAa,CAACkI,oBAAoB,CACzE;EACD,MAAMC,gBAAgB,GAAG,CACvBtF,aAAa,CAACsF,gBAAgB,IAAInI,aAAa,CAACmI,gBAAgB,CACjE;EACD,MAAMC,eAAe,GAAG,CACtBvF,aAAa,CAACuF,eAAe,IAAIpI,aAAa,CAACoI,eAAe,CAC/D;EAED,MAAMC,gBAAgB,GAAG9G,WAAW,gBAClChB,IAAA,CAACF,OAAO;IACNmD,OAAO,EAAEA,OAAQ;IACjBD,KAAK,EAAEA,KAAM;IACb+E,KAAK,EAAE7G,YAAa;IACpBC,KAAK,EAAEmB,aAAc;IACrBjB,YAAY,EAAE+B,oBAAqB;IACnC7B,iBAAiB,EAAE8B,yBAA0B;IAC7C2E,oBAAoB,EAAEzC,wBAAyB;IAC/C0C,yBAAyB,EAAEvC,6BAA8B;IACzD7D,aAAa,EAAE+D,iBAAkB;IACjC9D,cAAc,EAAEqE,kBAAmB;IACnC/D,aAAa,EAAEA;EAAc,CAC9B,CAAC,GACA,IAAI;EAER,MAAM8F,kBAAkB,GACtBjH,eAAe,KAAK,KAAK,GACrB;IACEkH,iBAAiB,EAAE,CAAC;IACpBC,iBAAiB,EACf9F,aAAa,CAAC+F,MAAM,EAAEC,aAAa,IACnC7I,aAAa,CAAC4I,MAAM,EAAEC;EAC1B,CAAC,GACD;IACEC,cAAc,EAAE,CAAC;IACjBC,cAAc,EACZlG,aAAa,CAAC+F,MAAM,EAAEC,aAAa,IACnC7I,aAAa,CAAC4I,MAAM,EAAEC;EAC1B,CAAC;EAEP,oBACEpI,KAAA,CAACV,IAAI;IAAC0H,KAAK,EAAEP,cAAe;IAAA8B,QAAA,GACzBxH,eAAe,KAAK,KAAK,IAAI6G,gBAAgB,iBAC5C9H,IAAA,CAACR,IAAI;MAAC0H,KAAK,EAAEgB,kBAAmB;MAAAO,QAAA,EAAEX;IAAgB,CAAO,CAC1D,eAED5H,KAAA,CAACV,IAAI;MAAC0H,KAAK,EAAEN,cAAe;MAAA6B,QAAA,gBAC1BzI,IAAA,CAACT,SAAS;QAAA,GACJ4C,cAAc;QAClB+E,KAAK,EAAEH,UAAW;QAClB2B,KAAK,EAAExF,SAAU;QACjBtC,YAAY,EAAEqC,OAAO,CAAC0F,gBAAiB;QACvC5D,iBAAiB,EAAEA,iBAAkB;QACrCI,mBAAmB,EAAEA,mBAAoB;QACzCpD,SAAS,EAAEA,SAAU;QACrBlB,WAAW,EAAEA,WAAY;QACzB+H,oBAAoB,EAClBtG,aAAa,CAAC+F,MAAM,EAAExH,WAAW,IACjCpB,aAAa,CAAC4I,MAAM,EAAExH,WACvB;QACDC,QAAQ,EAAEA,QAAS;QACnBC,SAAS,EAAEA,SAAU;QACrBmB,SAAS,EAAEA,SAAU;QACrB2G,cAAc,EACZvG,aAAa,CAAC+F,MAAM,EAAES,MAAM,IAAIrJ,aAAa,CAAC4I,MAAM,EAAES,MACvD;QACDC,iBAAiB,EAAC,KAAK;QACvBC,aAAa,EAAEtF;MAAkB,CAClC,CAAC,EAEDtC,iBAAiB,iBAChBpB,IAAA,CAACd,QAAQ,CAACM,IAAI;QACZyJ,aAAa,EAAErF,uBAAuB,GAAG,MAAM,GAAG,MAAO;QACzDsD,KAAK,EAAE,CAACL,MAAM,CAACqC,qBAAqB,EAAE/B,mBAAmB,CAAE;QAAAsB,QAAA,eAE3DvI,KAAA,CAACV,IAAI;UAAC0H,KAAK,EAAES,oBAAqB;UAAAc,QAAA,gBAChCzI,IAAA,CAACV,IAAI;YAAC4H,KAAK,EAAEU,gBAAiB;YAAAa,QAAA,EAC3BhC;UAAW,CACR,CAAC,eACPzG,IAAA,CAACZ,UAAU;YACT8H,KAAK,EAAE;cAAEjF,SAAS,EAAER;YAAgB,CAAE;YACtC0H,4BAA4B,EAAE,KAAM;YAAAV,QAAA,EAEnCpF,yBAAyB,KAAK,UAAU,gBACvCrD,IAAA,CAACH,cAAc;cACbsD,QAAQ,EAAEH,KAAK,CAACG,QAAS;cACzBhC,KAAK,EAAEmB;YAAc,CACtB,CAAC,gBAEFtC,IAAA,CAACV,IAAI;cAAC8J,UAAU;cAAClC,KAAK,EAAEW,eAAgB;cAAAY,QAAA,EACrC9E;YAAgB,CACb;UACP,CACS,CAAC;QAAA,CACT;MAAC,CACM,CAChB;IAAA,CACG,CAAC,EAEN1C,eAAe,KAAK,QAAQ,IAAI6G,gBAAgB,iBAC/C9H,IAAA,CAACR,IAAI;MAAC0H,KAAK,EAAEgB,kBAAmB;MAAAO,QAAA,EAAEX;IAAgB,CAAO,CAC1D;EAAA,CACG,CAAC;AAEX,CAAC;AAEDrH,aAAa,CAAC4I,WAAW,GAAG,eAAe;AAE3C,MAAMxC,MAAM,GAAGxH,UAAU,CAACiK,MAAM,CAAC;EAC/BxC,SAAS,EAAE;IACTyC,QAAQ,EAAE;EACZ,CAAC;EACDvC,SAAS,EAAE;IACTuC,QAAQ,EAAE;EACZ,CAAC;EACDL,qBAAqB,EAAE;IACrBM,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC;AAEF,SAAStD,gBAAgBA,CAACwC,KAAa,EAAsB;EAC3D,MAAMe,OAAO,GAAGf,KAAK,CAAClC,IAAI,CAAC,CAAC;EAC5B,IAAIiD,OAAO,CAAC5F,MAAM,KAAK,CAAC,EAAE;IACxB,OAAO4B,SAAS;EAClB;EAEA,IAAI,eAAe,CAACiE,IAAI,CAACD,OAAO,CAAC,IAAI,WAAW,CAACC,IAAI,CAACD,OAAO,CAAC,EAAE;IAC9D,OAAOA,OAAO;EAChB;EAEA,IAAI,4BAA4B,CAACC,IAAI,CAACD,OAAO,CAAC,EAAE;IAC9C,OAAO,UAAUA,OAAO,EAAE;EAC5B;EAEA,IAAI,kBAAkB,CAACC,IAAI,CAACD,OAAO,CAAC,EAAE;IACpC,OAAO,WAAWA,OAAO,EAAE;EAC7B;EAEA,OAAOhE,SAAS;AAClB;AAEA,SAASa,iBAAiBA,CAACoC,KAAa,EAAsB;EAC5D,MAAMiB,UAAU,GAAGzD,gBAAgB,CAACwC,KAAK,CAAC;EAC1C,IAAI,CAACiB,UAAU,EAAE;IACf,OAAOlE,SAAS;EAClB;EAEA,MAAMmE,SAAS,GAAGD,UAAU,CAACE,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;EACrD,IAAI,qCAAqC,CAACH,IAAI,CAACE,SAAS,CAAC,EAAE;IACzD,OAAOD,UAAU;EACnB;EAEA,OAAOlE,SAAS;AAClB","ignoreList":[]}
|
|
@@ -21,6 +21,12 @@ export const Toolbar = /*#__PURE__*/React.memo(({
|
|
|
21
21
|
items,
|
|
22
22
|
theme,
|
|
23
23
|
visible = true,
|
|
24
|
+
outputFormat = 'markdown',
|
|
25
|
+
outputPreviewMode = 'literal',
|
|
26
|
+
onOutputFormatChange,
|
|
27
|
+
onOutputPreviewModeChange,
|
|
28
|
+
onRequestLink,
|
|
29
|
+
onRequestImage,
|
|
24
30
|
renderToolbar
|
|
25
31
|
}) => {
|
|
26
32
|
const resolvedTheme = theme ?? DEFAULT_THEME;
|
|
@@ -37,19 +43,40 @@ export const Toolbar = /*#__PURE__*/React.memo(({
|
|
|
37
43
|
if (item.heading) {
|
|
38
44
|
isActive = selectionStyle.heading === item.heading;
|
|
39
45
|
}
|
|
46
|
+
if (item.listType) {
|
|
47
|
+
isActive = selectionStyle.listType === item.listType;
|
|
48
|
+
}
|
|
49
|
+
if (item.textAlign) {
|
|
50
|
+
isActive = selectionStyle.textAlign === item.textAlign;
|
|
51
|
+
}
|
|
52
|
+
if (item.outputFormat) {
|
|
53
|
+
isActive = outputFormat === item.outputFormat;
|
|
54
|
+
}
|
|
55
|
+
if (item.outputPreviewMode) {
|
|
56
|
+
isActive = outputPreviewMode === item.outputPreviewMode;
|
|
57
|
+
}
|
|
58
|
+
if (item.actionType === 'link') {
|
|
59
|
+
isActive = !!selectionStyle.link;
|
|
60
|
+
}
|
|
40
61
|
return {
|
|
41
62
|
...item,
|
|
42
63
|
active: item.active ?? isActive
|
|
43
64
|
};
|
|
44
65
|
});
|
|
45
|
-
}, [actions, toolbarItems]);
|
|
66
|
+
}, [actions, outputFormat, outputPreviewMode, toolbarItems]);
|
|
46
67
|
|
|
47
68
|
// Custom render
|
|
48
69
|
if (renderToolbar) {
|
|
49
70
|
return renderToolbar({
|
|
50
71
|
items: enrichedItems,
|
|
51
72
|
state,
|
|
52
|
-
actions
|
|
73
|
+
actions,
|
|
74
|
+
outputFormat,
|
|
75
|
+
outputPreviewMode,
|
|
76
|
+
onOutputFormatChange: onOutputFormatChange ?? (() => undefined),
|
|
77
|
+
onOutputPreviewModeChange: onOutputPreviewModeChange ?? (() => undefined),
|
|
78
|
+
onRequestLink,
|
|
79
|
+
onRequestImage
|
|
53
80
|
});
|
|
54
81
|
}
|
|
55
82
|
if (!visible) {
|
|
@@ -75,6 +102,18 @@ export const Toolbar = /*#__PURE__*/React.memo(({
|
|
|
75
102
|
actions.toggleFormat(item.format);
|
|
76
103
|
} else if (item.heading) {
|
|
77
104
|
actions.setHeading(item.heading);
|
|
105
|
+
} else if (item.listType) {
|
|
106
|
+
actions.setListType(item.listType);
|
|
107
|
+
} else if (item.textAlign) {
|
|
108
|
+
actions.setTextAlign(item.textAlign);
|
|
109
|
+
} else if (item.outputFormat) {
|
|
110
|
+
onOutputFormatChange?.(item.outputFormat);
|
|
111
|
+
} else if (item.outputPreviewMode) {
|
|
112
|
+
onOutputPreviewModeChange?.(item.outputPreviewMode);
|
|
113
|
+
} else if (item.actionType === 'link') {
|
|
114
|
+
onRequestLink?.();
|
|
115
|
+
} else if (item.actionType === 'image') {
|
|
116
|
+
onRequestImage?.();
|
|
78
117
|
}
|
|
79
118
|
}
|
|
80
119
|
}, item.id))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","View","ScrollView","StyleSheet","DEFAULT_THEME","DEFAULT_TOOLBAR_ITEMS","ToolbarButton","jsx","_jsx","Toolbar","memo","actions","state","items","theme","visible","renderToolbar","resolvedTheme","toolbarItems","enrichedItems","selectionStyle","getSelectionStyle","map","item","isActive","format","isFormatActive","heading","active","toolbarStyle","style","children","horizontal","showsHorizontalScrollIndicator","keyboardShouldPersistTaps","contentContainerStyle","styles","scrollContent","label","renderButton","onPress","toggleFormat","setHeading","id","displayName","create","flexDirection","alignItems","gap"],"sourceRoot":"../../../src","sources":["components/Toolbar.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,IAAI,EAAEC,UAAU,EAAEC,UAAU,QAAQ,cAAc;AAE3D,SAASC,aAAa,EAAEC,qBAAqB,QAAQ,4BAA4B;AACjF,SAASC,aAAa,QAAQ,iBAAiB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA,SAAAC,GAAA,IAAAC,IAAA;AASA,OAAO,MAAMC,OAA+B,gBAAGV,KAAK,CAACW,IAAI,CACvD,CAAC;
|
|
1
|
+
{"version":3,"names":["React","useMemo","View","ScrollView","StyleSheet","DEFAULT_THEME","DEFAULT_TOOLBAR_ITEMS","ToolbarButton","jsx","_jsx","Toolbar","memo","actions","state","items","theme","visible","outputFormat","outputPreviewMode","onOutputFormatChange","onOutputPreviewModeChange","onRequestLink","onRequestImage","renderToolbar","resolvedTheme","toolbarItems","enrichedItems","selectionStyle","getSelectionStyle","map","item","isActive","format","isFormatActive","heading","listType","textAlign","actionType","link","active","undefined","toolbarStyle","style","children","horizontal","showsHorizontalScrollIndicator","keyboardShouldPersistTaps","contentContainerStyle","styles","scrollContent","label","renderButton","onPress","toggleFormat","setHeading","setListType","setTextAlign","id","displayName","create","flexDirection","alignItems","gap"],"sourceRoot":"../../../src","sources":["components/Toolbar.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,IAAI,EAAEC,UAAU,EAAEC,UAAU,QAAQ,cAAc;AAE3D,SAASC,aAAa,EAAEC,qBAAqB,QAAQ,4BAA4B;AACjF,SAASC,aAAa,QAAQ,iBAAiB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA,SAAAC,GAAA,IAAAC,IAAA;AASA,OAAO,MAAMC,OAA+B,gBAAGV,KAAK,CAACW,IAAI,CACvD,CAAC;EACCC,OAAO;EACPC,KAAK;EACLC,KAAK;EACLC,KAAK;EACLC,OAAO,GAAG,IAAI;EACdC,YAAY,GAAG,UAAU;EACzBC,iBAAiB,GAAG,SAAS;EAC7BC,oBAAoB;EACpBC,yBAAyB;EACzBC,aAAa;EACbC,cAAc;EACdC;AACF,CAAC,KAAK;EACJ,MAAMC,aAAa,GAAGT,KAAK,IAAIV,aAAa;EAC5C,MAAMoB,YAAY,GAAGX,KAAK,IAAIR,qBAAqB;;EAEnD;EACA,MAAMoB,aAA4B,GAAGzB,OAAO,CAAC,MAAM;IACjD,MAAM0B,cAAc,GAAGf,OAAO,CAACgB,iBAAiB,CAAC,CAAC;IAElD,OAAOH,YAAY,CAACI,GAAG,CAAEC,IAAI,IAAK;MAChC,IAAIC,QAAQ,GAAG,KAAK;MAEpB,IAAID,IAAI,CAACE,MAAM,EAAE;QACfD,QAAQ,GAAGnB,OAAO,CAACqB,cAAc,CAACH,IAAI,CAACE,MAAM,CAAC;MAChD;MAEA,IAAIF,IAAI,CAACI,OAAO,EAAE;QAChBH,QAAQ,GAAGJ,cAAc,CAACO,OAAO,KAAKJ,IAAI,CAACI,OAAO;MACpD;MAEA,IAAIJ,IAAI,CAACK,QAAQ,EAAE;QACjBJ,QAAQ,GAAGJ,cAAc,CAACQ,QAAQ,KAAKL,IAAI,CAACK,QAAQ;MACtD;MAEA,IAAIL,IAAI,CAACM,SAAS,EAAE;QAClBL,QAAQ,GAAGJ,cAAc,CAACS,SAAS,KAAKN,IAAI,CAACM,SAAS;MACxD;MAEA,IAAIN,IAAI,CAACb,YAAY,EAAE;QACrBc,QAAQ,GAAGd,YAAY,KAAKa,IAAI,CAACb,YAAY;MAC/C;MAEA,IAAIa,IAAI,CAACZ,iBAAiB,EAAE;QAC1Ba,QAAQ,GAAGb,iBAAiB,KAAKY,IAAI,CAACZ,iBAAiB;MACzD;MAEA,IAAIY,IAAI,CAACO,UAAU,KAAK,MAAM,EAAE;QAC9BN,QAAQ,GAAG,CAAC,CAACJ,cAAc,CAACW,IAAI;MAClC;MAEA,OAAO;QACL,GAAGR,IAAI;QACPS,MAAM,EAAET,IAAI,CAACS,MAAM,IAAIR;MACzB,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,EAAE,CAACnB,OAAO,EAAEK,YAAY,EAAEC,iBAAiB,EAAEO,YAAY,CAAC,CAAC;;EAE5D;EACA,IAAIF,aAAa,EAAE;IACjB,OAAOA,aAAa,CAAC;MACnBT,KAAK,EAAEY,aAAa;MACpBb,KAAK;MACLD,OAAO;MACPK,YAAY;MACZC,iBAAiB;MACjBC,oBAAoB,EAAEA,oBAAoB,KAAK,MAAMqB,SAAS,CAAC;MAC/DpB,yBAAyB,EACvBA,yBAAyB,KAAK,MAAMoB,SAAS,CAAC;MAChDnB,aAAa;MACbC;IACF,CAAC,CAAC;EACJ;EAEA,IAAI,CAACN,OAAO,EAAE;IACZ,OAAO,IAAI;EACb;EAEA,MAAMyB,YAAY,GAAG,CACnBjB,aAAa,CAACiB,YAAY,IAAIpC,aAAa,CAACoC,YAAY,CACzD;EAED,oBACEhC,IAAA,CAACP,IAAI;IAACwC,KAAK,EAAED,YAAa;IAAAE,QAAA,eACxBlC,IAAA,CAACN,UAAU;MACTyC,UAAU;MACVC,8BAA8B,EAAE,KAAM;MACtCC,yBAAyB,EAAC,QAAQ;MAClCC,qBAAqB,EAAEC,MAAM,CAACC,aAAc;MAAAN,QAAA,EAE3CjB,aAAa,CAACG,GAAG,CAAEC,IAAI,iBACtBrB,IAAA,CAACF,aAAa;QAEZ2C,KAAK,EAAEpB,IAAI,CAACoB,KAAM;QAClBX,MAAM,EAAE,CAAC,CAACT,IAAI,CAACS,MAAO;QACtBxB,KAAK,EAAES,aAAc;QACrB2B,YAAY,EAAErB,IAAI,CAACqB,YAAa;QAChCC,OAAO,EAAEA,CAAA,KAAM;UACb,IAAItB,IAAI,CAACsB,OAAO,EAAE;YAChBtB,IAAI,CAACsB,OAAO,CAAC,CAAC;UAChB,CAAC,MAAM,IAAItB,IAAI,CAACE,MAAM,EAAE;YACtBpB,OAAO,CAACyC,YAAY,CAACvB,IAAI,CAACE,MAAM,CAAC;UACnC,CAAC,MAAM,IAAIF,IAAI,CAACI,OAAO,EAAE;YACvBtB,OAAO,CAAC0C,UAAU,CAACxB,IAAI,CAACI,OAAO,CAAC;UAClC,CAAC,MAAM,IAAIJ,IAAI,CAACK,QAAQ,EAAE;YACxBvB,OAAO,CAAC2C,WAAW,CAACzB,IAAI,CAACK,QAAQ,CAAC;UACpC,CAAC,MAAM,IAAIL,IAAI,CAACM,SAAS,EAAE;YACzBxB,OAAO,CAAC4C,YAAY,CAAC1B,IAAI,CAACM,SAAS,CAAC;UACtC,CAAC,MAAM,IAAIN,IAAI,CAACb,YAAY,EAAE;YAC5BE,oBAAoB,GAAGW,IAAI,CAACb,YAAY,CAAC;UAC3C,CAAC,MAAM,IAAIa,IAAI,CAACZ,iBAAiB,EAAE;YACjCE,yBAAyB,GAAGU,IAAI,CAACZ,iBAAiB,CAAC;UACrD,CAAC,MAAM,IAAIY,IAAI,CAACO,UAAU,KAAK,MAAM,EAAE;YACrChB,aAAa,GAAG,CAAC;UACnB,CAAC,MAAM,IAAIS,IAAI,CAACO,UAAU,KAAK,OAAO,EAAE;YACtCf,cAAc,GAAG,CAAC;UACpB;QACF;MAAE,GAzBGQ,IAAI,CAAC2B,EA0BX,CACF;IAAC,CACQ;EAAC,CACT,CAAC;AAEX,CACF,CAAC;AAED/C,OAAO,CAACgD,WAAW,GAAG,SAAS;AAE/B,MAAMV,MAAM,GAAG5C,UAAU,CAACuD,MAAM,CAAC;EAC/BV,aAAa,EAAE;IACbW,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,GAAG,EAAE;EACP;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -12,6 +12,7 @@ export const DEFAULT_COLORS = {
|
|
|
12
12
|
toolbarBorder: '#E5E7EB',
|
|
13
13
|
outputBackground: '#F8FAFC',
|
|
14
14
|
outputLabel: '#475569',
|
|
15
|
+
link: '#2563EB',
|
|
15
16
|
cursor: '#6366F1',
|
|
16
17
|
activeButtonBg: '#EEF2FF',
|
|
17
18
|
codeBackground: '#F3F4F6'
|
|
@@ -49,7 +50,12 @@ export const EMPTY_FORMAT_STYLE = {
|
|
|
49
50
|
color: undefined,
|
|
50
51
|
backgroundColor: undefined,
|
|
51
52
|
fontSize: undefined,
|
|
52
|
-
heading: undefined
|
|
53
|
+
heading: undefined,
|
|
54
|
+
listType: undefined,
|
|
55
|
+
textAlign: undefined,
|
|
56
|
+
link: undefined,
|
|
57
|
+
imageSrc: undefined,
|
|
58
|
+
imageAlt: undefined
|
|
53
59
|
};
|
|
54
60
|
|
|
55
61
|
/**
|
|
@@ -108,6 +114,9 @@ export const DEFAULT_THEME = {
|
|
|
108
114
|
color: DEFAULT_COLORS.text,
|
|
109
115
|
fontFamily: 'monospace'
|
|
110
116
|
},
|
|
117
|
+
renderedOutputStyle: {
|
|
118
|
+
gap: 10
|
|
119
|
+
},
|
|
111
120
|
toolbarStyle: {
|
|
112
121
|
flexDirection: 'row',
|
|
113
122
|
alignItems: 'center',
|
|
@@ -150,6 +159,7 @@ export const DEFAULT_THEME = {
|
|
|
150
159
|
placeholder: DEFAULT_COLORS.placeholder,
|
|
151
160
|
toolbarBackground: DEFAULT_COLORS.toolbarBackground,
|
|
152
161
|
toolbarBorder: DEFAULT_COLORS.toolbarBorder,
|
|
162
|
+
link: DEFAULT_COLORS.link,
|
|
153
163
|
cursor: DEFAULT_COLORS.cursor
|
|
154
164
|
}
|
|
155
165
|
};
|
|
@@ -189,5 +199,45 @@ export const DEFAULT_TOOLBAR_ITEMS = [{
|
|
|
189
199
|
id: 'h3',
|
|
190
200
|
label: 'H3',
|
|
191
201
|
heading: 'h3'
|
|
202
|
+
}, {
|
|
203
|
+
id: 'bullet',
|
|
204
|
+
label: '\u2022\u2261',
|
|
205
|
+
listType: 'bullet'
|
|
206
|
+
}, {
|
|
207
|
+
id: 'ordered',
|
|
208
|
+
label: '1\u2261',
|
|
209
|
+
listType: 'ordered'
|
|
210
|
+
}, {
|
|
211
|
+
id: 'link',
|
|
212
|
+
label: '\ud83d\udd17',
|
|
213
|
+
actionType: 'link'
|
|
214
|
+
}, {
|
|
215
|
+
id: 'align-left',
|
|
216
|
+
label: '\u21e4',
|
|
217
|
+
textAlign: 'left'
|
|
218
|
+
}, {
|
|
219
|
+
id: 'align-center',
|
|
220
|
+
label: '\u2194',
|
|
221
|
+
textAlign: 'center'
|
|
222
|
+
}, {
|
|
223
|
+
id: 'align-right',
|
|
224
|
+
label: '\u21e5',
|
|
225
|
+
textAlign: 'right'
|
|
226
|
+
}, {
|
|
227
|
+
id: 'format-markdown',
|
|
228
|
+
label: 'MD',
|
|
229
|
+
outputFormat: 'markdown'
|
|
230
|
+
}, {
|
|
231
|
+
id: 'format-html',
|
|
232
|
+
label: 'HTML',
|
|
233
|
+
outputFormat: 'html'
|
|
234
|
+
}, {
|
|
235
|
+
id: 'preview-literal',
|
|
236
|
+
label: 'Raw',
|
|
237
|
+
outputPreviewMode: 'literal'
|
|
238
|
+
}, {
|
|
239
|
+
id: 'preview-rendered',
|
|
240
|
+
label: 'View',
|
|
241
|
+
outputPreviewMode: 'rendered'
|
|
192
242
|
}];
|
|
193
243
|
//# sourceMappingURL=defaultStyles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DEFAULT_COLORS","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","
|
|
1
|
+
{"version":3,"names":["DEFAULT_COLORS","primary","background","text","placeholder","toolbarBackground","toolbarBorder","outputBackground","outputLabel","link","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","listType","textAlign","imageSrc","imageAlt","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","renderedOutputStyle","gap","toolbarStyle","flexDirection","alignItems","toolbarButtonStyle","minWidth","justifyContent","toolbarButtonActiveStyle","toolbarButtonTextStyle","toolbarButtonActiveTextStyle","codeStyle","colors","DEFAULT_TOOLBAR_ITEMS","id","label","format","actionType","outputFormat","outputPreviewMode"],"sourceRoot":"../../../src","sources":["constants/defaultStyles.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { useCallback } from 'react';
|
|
4
|
-
import { toggleFormatOnSelection, setStyleOnSelection, setHeadingOnLine, isFormatActiveInSelection, getSelectionStyle } from '../utils/formatter';
|
|
4
|
+
import { toggleFormatOnSelection, setStyleOnSelection, setHeadingOnLine, setListTypeOnLine, setTextAlignOnLine, isFormatActiveInSelection, getSelectionStyle } from '../utils/formatter';
|
|
5
5
|
/**
|
|
6
6
|
* Hook that provides formatting commands for the rich text editor.
|
|
7
7
|
*
|
|
@@ -40,15 +40,54 @@ export function useFormatting({
|
|
|
40
40
|
}
|
|
41
41
|
}, [segments, selection, activeStyles, onSegmentsChange, onActiveStylesChange]);
|
|
42
42
|
const setHeading = useCallback(level => {
|
|
43
|
+
const currentHeading = selection.start === selection.end ? getSelectionStyle(segments, selection).heading ?? activeStyles.heading : getSelectionStyle(segments, selection).heading;
|
|
44
|
+
const nextHeading = currentHeading === level ? 'none' : level;
|
|
43
45
|
if (selection.start === selection.end) {
|
|
44
46
|
onActiveStylesChange({
|
|
45
47
|
...activeStyles,
|
|
46
|
-
heading:
|
|
48
|
+
heading: nextHeading === 'none' ? undefined : nextHeading,
|
|
49
|
+
listType: nextHeading === 'none' ? activeStyles.listType : undefined
|
|
47
50
|
});
|
|
48
51
|
}
|
|
49
|
-
const newSegments = setHeadingOnLine(segments, selection,
|
|
52
|
+
const newSegments = setHeadingOnLine(segments, selection, nextHeading);
|
|
50
53
|
onSegmentsChange(newSegments);
|
|
51
54
|
}, [activeStyles, onActiveStylesChange, onSegmentsChange, segments, selection]);
|
|
55
|
+
const setListType = useCallback(listType => {
|
|
56
|
+
const currentListType = selection.start === selection.end ? getSelectionStyle(segments, selection).listType ?? activeStyles.listType : getSelectionStyle(segments, selection).listType;
|
|
57
|
+
const nextListType = currentListType === listType ? 'none' : listType;
|
|
58
|
+
if (selection.start === selection.end) {
|
|
59
|
+
onActiveStylesChange({
|
|
60
|
+
...activeStyles,
|
|
61
|
+
listType: nextListType === 'none' ? undefined : nextListType,
|
|
62
|
+
heading: nextListType === 'none' ? activeStyles.heading : undefined
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
const newSegments = setListTypeOnLine(segments, selection, nextListType);
|
|
66
|
+
onSegmentsChange(newSegments);
|
|
67
|
+
}, [activeStyles, onActiveStylesChange, onSegmentsChange, segments, selection]);
|
|
68
|
+
const setTextAlign = useCallback(textAlign => {
|
|
69
|
+
const currentTextAlign = selection.start === selection.end ? getSelectionStyle(segments, selection).textAlign ?? activeStyles.textAlign : getSelectionStyle(segments, selection).textAlign;
|
|
70
|
+
const nextTextAlign = currentTextAlign === textAlign ? undefined : textAlign;
|
|
71
|
+
if (selection.start === selection.end) {
|
|
72
|
+
onActiveStylesChange({
|
|
73
|
+
...activeStyles,
|
|
74
|
+
textAlign: nextTextAlign
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
const newSegments = setTextAlignOnLine(segments, selection, nextTextAlign);
|
|
78
|
+
onSegmentsChange(newSegments);
|
|
79
|
+
}, [activeStyles, onActiveStylesChange, onSegmentsChange, segments, selection]);
|
|
80
|
+
const setLink = useCallback(url => {
|
|
81
|
+
if (selection.start === selection.end) {
|
|
82
|
+
onActiveStylesChange({
|
|
83
|
+
...activeStyles,
|
|
84
|
+
link: url
|
|
85
|
+
});
|
|
86
|
+
} else {
|
|
87
|
+
const newSegments = setStyleOnSelection(segments, selection, 'link', url);
|
|
88
|
+
onSegmentsChange(newSegments);
|
|
89
|
+
}
|
|
90
|
+
}, [segments, selection, activeStyles, onSegmentsChange, onActiveStylesChange]);
|
|
52
91
|
const setColor = useCallback(color => {
|
|
53
92
|
setStyleProperty('color', color);
|
|
54
93
|
}, [setStyleProperty]);
|
|
@@ -74,6 +113,9 @@ export function useFormatting({
|
|
|
74
113
|
toggleFormat,
|
|
75
114
|
setStyleProperty,
|
|
76
115
|
setHeading,
|
|
116
|
+
setListType,
|
|
117
|
+
setTextAlign,
|
|
118
|
+
setLink,
|
|
77
119
|
setColor,
|
|
78
120
|
setBackgroundColor,
|
|
79
121
|
setFontSize,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","toggleFormatOnSelection","setStyleOnSelection","setHeadingOnLine","isFormatActiveInSelection","getSelectionStyle","useFormatting","segments","selection","activeStyles","onSegmentsChange","onActiveStylesChange","toggleFormat","format","start","end","newSegments","setStyleProperty","key","value","setHeading","level","heading","undefined","setColor","color","setBackgroundColor","setFontSize","size","isFormatActive","currentSelectionStyle"],"sourceRoot":"../../../src","sources":["hooks/useFormatting.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;
|
|
1
|
+
{"version":3,"names":["useCallback","toggleFormatOnSelection","setStyleOnSelection","setHeadingOnLine","setListTypeOnLine","setTextAlignOnLine","isFormatActiveInSelection","getSelectionStyle","useFormatting","segments","selection","activeStyles","onSegmentsChange","onActiveStylesChange","toggleFormat","format","start","end","newSegments","setStyleProperty","key","value","setHeading","level","currentHeading","heading","nextHeading","undefined","listType","setListType","currentListType","nextListType","setTextAlign","textAlign","currentTextAlign","nextTextAlign","setLink","url","link","setColor","color","setBackgroundColor","setFontSize","size","isFormatActive","currentSelectionStyle"],"sourceRoot":"../../../src","sources":["hooks/useFormatting.ts"],"mappings":"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","ignoreList":[]}
|