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.
Files changed (63) hide show
  1. package/lib/commonjs/components/RichTextInput.js +71 -46
  2. package/lib/commonjs/components/RichTextInput.js.map +1 -1
  3. package/lib/commonjs/constants/defaultStyles.js +26 -1
  4. package/lib/commonjs/constants/defaultStyles.js.map +1 -1
  5. package/lib/commonjs/hooks/useFormatting.js +7 -1
  6. package/lib/commonjs/hooks/useFormatting.js.map +1 -1
  7. package/lib/commonjs/hooks/useRichText.js +55 -6
  8. package/lib/commonjs/hooks/useRichText.js.map +1 -1
  9. package/lib/commonjs/index.d.js +19 -0
  10. package/lib/commonjs/index.d.js.map +1 -1
  11. package/lib/commonjs/index.js +19 -0
  12. package/lib/commonjs/index.js.map +1 -1
  13. package/lib/commonjs/utils/formatter.js +1 -4
  14. package/lib/commonjs/utils/formatter.js.map +1 -1
  15. package/lib/commonjs/utils/serializer.d.js +6 -0
  16. package/lib/commonjs/utils/serializer.d.js.map +1 -0
  17. package/lib/commonjs/utils/serializer.js +163 -0
  18. package/lib/commonjs/utils/serializer.js.map +1 -0
  19. package/lib/module/components/RichTextInput.js +73 -49
  20. package/lib/module/components/RichTextInput.js.map +1 -1
  21. package/lib/module/constants/defaultStyles.js +26 -1
  22. package/lib/module/constants/defaultStyles.js.map +1 -1
  23. package/lib/module/hooks/useFormatting.js +7 -1
  24. package/lib/module/hooks/useFormatting.js.map +1 -1
  25. package/lib/module/hooks/useRichText.js +55 -6
  26. package/lib/module/hooks/useRichText.js.map +1 -1
  27. package/lib/module/index.d.js +1 -0
  28. package/lib/module/index.d.js.map +1 -1
  29. package/lib/module/index.js +1 -0
  30. package/lib/module/index.js.map +1 -1
  31. package/lib/module/utils/formatter.js +1 -4
  32. package/lib/module/utils/formatter.js.map +1 -1
  33. package/lib/module/utils/serializer.d.js +4 -0
  34. package/lib/module/utils/serializer.d.js.map +1 -0
  35. package/lib/module/utils/serializer.js +157 -0
  36. package/lib/module/utils/serializer.js.map +1 -0
  37. package/lib/typescript/src/components/RichTextInput.d.ts +2 -13
  38. package/lib/typescript/src/components/RichTextInput.d.ts.map +1 -1
  39. package/lib/typescript/src/constants/defaultStyles.d.ts +2 -0
  40. package/lib/typescript/src/constants/defaultStyles.d.ts.map +1 -1
  41. package/lib/typescript/src/hooks/useFormatting.d.ts.map +1 -1
  42. package/lib/typescript/src/hooks/useRichText.d.ts.map +1 -1
  43. package/lib/typescript/src/index.d.ts +2 -1
  44. package/lib/typescript/src/index.d.ts.map +1 -1
  45. package/lib/typescript/src/types/index.d.ts +19 -1
  46. package/lib/typescript/src/types/index.d.ts.map +1 -1
  47. package/lib/typescript/src/utils/formatter.d.ts.map +1 -1
  48. package/lib/typescript/src/utils/serializer.d.ts +14 -0
  49. package/lib/typescript/src/utils/serializer.d.ts.map +1 -0
  50. package/package.json +1 -1
  51. package/src/components/RichTextInput.d.ts +3 -14
  52. package/src/components/RichTextInput.tsx +107 -50
  53. package/src/constants/defaultStyles.d.ts +3 -1
  54. package/src/constants/defaultStyles.ts +26 -1
  55. package/src/hooks/useFormatting.ts +14 -1
  56. package/src/hooks/useRichText.ts +92 -6
  57. package/src/index.d.ts +2 -1
  58. package/src/index.ts +6 -0
  59. package/src/types/index.d.ts +19 -1
  60. package/src/types/index.ts +20 -1
  61. package/src/utils/formatter.ts +1 -5
  62. package/src/utils/serializer.d.ts +13 -0
  63. 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 _OverlayText = require("./OverlayText");
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 Overlay Technique:
20
- * - A transparent `TextInput` on top captures user input and selection
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
- }, [onReady, actions]);
66
-
67
- // Build plain text for the TextInput value
59
+ }, [actions, onReady]);
68
60
  const plainText = (0, _parser.segmentsToPlainText)(state.segments);
69
-
70
- // Handle selection change from TextInput
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
- // Input style
93
- const inputStyle = [styles.textInput, resolvedTheme.baseTextStyle ?? _defaultStyles.DEFAULT_THEME.baseTextStyle, resolvedTheme.inputStyle ?? _defaultStyles.DEFAULT_THEME.inputStyle, textInputProps?.style, styles.hiddenInputText];
94
-
95
- // Toolbar component
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)(_OverlayText.OverlayText, {
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
- hiddenInputText: {
157
- // Keep the editable layer invisible while preserving the caret.
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","_parser","_useRichText","_OverlayText","_Toolbar","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","RichTextInput","initialSegments","onChangeSegments","onChangeText","placeholder","editable","maxLength","showToolbar","toolbarPosition","toolbarItems","theme","multiline","minHeight","maxHeight","autoFocus","textInputProps","renderToolbar","onReady","resolvedTheme","DEFAULT_THEME","state","actions","useRichText","useEffect","plainText","segmentsToPlainText","segments","onSelectionChange","useCallback","start","end","nativeEvent","selection","handleSelectionChange","containerStyle","inputAreaStyle","styles","inputArea","undefined","inputStyle","textInput","baseTextStyle","style","hiddenInputText","toolbarComponent","jsx","Toolbar","items","toolbarBorderStyle","borderBottomWidth","borderBottomColor","colors","toolbarBorder","borderTopWidth","borderTopColor","jsxs","View","children","OverlayText","TextInput","value","handleTextChange","placeholderTextColor","underlineColorAndroid","selectionColor","cursor","textAlignVertical","scrollEnabled","exports","displayName","StyleSheet","create","position","zIndex","color","backgroundColor","textShadowColor"],"sourceRoot":"../../../src","sources":["components/RichTextInput.tsx"],"mappings":"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","ignoreList":[]}
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: 'transparent',
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","fontWeight","toolbarButtonActiveTextStyle","codeStyle","colors","DEFAULT_TOOLBAR_ITEMS","id","label","format"],"sourceRoot":"../../../src","sources":["constants/defaultStyles.ts"],"mappings":"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","ignoreList":[]}
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
- }, [segments, selection, onSegmentsChange]);
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":"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","ignoreList":[]}
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: formatting.toggleFormat,
123
- setStyleProperty: formatting.setStyleProperty,
124
- setHeading: formatting.setHeading,
125
- setColor: formatting.setColor,
126
- setBackgroundColor: formatting.setBackgroundColor,
127
- setFontSize: formatting.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","state","actions","toggleFormat","setStyleProperty","setHeading","setColor","setBackgroundColor","setFontSize","isFormatActive","currentSelectionStyle"],"sourceRoot":"../../../src","sources":["hooks/useRichText.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AASA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAMA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AAWA;AACA;AACA;AACA;AACA;AACA;AACO,SAASM,WAAWA,CACzBC,OAA2B,GAAG,CAAC,CAAC,EACb;EACnB,MAAM;IAAEC,eAAe;IAAEC,gBAAgB;IAAEC;EAAa,CAAC,GAAGH,OAAO;;EAEnE;;EAEA,MAAM,CAACI,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAC,eAAQ,EAAkB,MAAM;IAC9D,IAAIL,eAAe,IAAIA,eAAe,CAACM,MAAM,GAAG,CAAC,EAAE;MACjD,OAAON,eAAe;IACxB;IACA,OAAO,CAAC,IAAAO,qBAAa,EAAC,EAAE,CAAC,CAAC;EAC5B,CAAC,CAAC;EAEF,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAJ,eAAQ,EAAc;IAC5D,GAAGK;EACL,CAAC,CAAC;EAEF,MAAM;IAAEC,SAAS;IAAEC;EAAsB,CAAC,GAAG,IAAAC,0BAAY,EAAC,CAAC;;EAE3D;EACA,MAAMC,WAAW,GAAG,IAAAC,aAAM,EAACZ,QAAQ,CAAC;EACpCW,WAAW,CAACE,OAAO,GAAGb,QAAQ;EAC9B,MAAMc,YAAY,GAAG,IAAAF,aAAM,EAACJ,SAAS,CAAC;EACtCM,YAAY,CAACD,OAAO,GAAGL,SAAS;EAChC,MAAMO,eAAe,GAAG,IAAAH,aAAM,EAACP,YAAY,CAAC;EAC5CU,eAAe,CAACF,OAAO,GAAGR,YAAY;;EAEtC;;EAEA,MAAMW,cAAc,GAAG,IAAAC,kBAAW,EAC/BC,WAA4B,IAAK;IAChCjB,WAAW,CAACiB,WAAW,CAAC;IACxBpB,gBAAgB,GAAGoB,WAAW,CAAC;IAC/BnB,YAAY,GAAG,IAAAoB,2BAAmB,EAACD,WAAW,CAAC,CAAC;EAClD,CAAC,EACD,CAACpB,gBAAgB,EAAEC,YAAY,CACjC,CAAC;;EAED;;EAEA,MAAMqB,UAAU,GAAG,IAAAC,4BAAa,EAAC;IAC/BrB,QAAQ;IACRQ,SAAS;IACTH,YAAY;IACZiB,gBAAgB,EAAEN,cAAc;IAChCO,oBAAoB,EAAEjB;EACxB,CAAC,CAAC;;EAEF;;EAEA,MAAMkB,gBAAgB,GAAG,IAAAP,kBAAW,EACjCQ,OAAe,IAAK;IACnB,MAAMC,eAAe,GAAGf,WAAW,CAACE,OAAO;IAC3C,MAAMc,gBAAgB,GAAGb,YAAY,CAACD,OAAO;IAC7C,MAAMe,mBAAmB,GACvBD,gBAAgB,CAACE,KAAK,KAAKF,gBAAgB,CAACG,GAAG,GAC3Cf,eAAe,CAACF,OAAO,GACvB,IAAAkB,4BAAiB,EAACL,eAAe,EAAEC,gBAAgB,CAAC;IAE1D,MAAMT,WAAW,GAAG,IAAAc,2BAAmB,EACrCN,eAAe,EACfD,OAAO,EACPG,mBACF,CAAC;IAEDZ,cAAc,CAACE,WAAW,CAAC;EAC7B,CAAC,EACD,CAACF,cAAc,CACjB,CAAC;;EAED;;EAEA,MAAMiB,iBAAiB,GAAG,IAAAhB,kBAAW,EAClCiB,YAA4B,IAAK;IAChCzB,qBAAqB,CAACyB,YAAY,CAAC;;IAEnC;IACA,IAAIA,YAAY,CAACL,KAAK,KAAKK,YAAY,CAACJ,GAAG,EAAE;MAC3C,MAAMK,GAAG,GAAG,IAAAC,8BAAsB,EAChCzB,WAAW,CAACE,OAAO,EACnBqB,YAAY,CAACL,KACf,CAAC;MACD,IAAIlB,WAAW,CAACE,OAAO,CAACV,MAAM,GAAG,CAAC,EAAE;QAClC,MAAMkC,GAAG,GAAG1B,WAAW,CAACE,OAAO,CAACsB,GAAG,CAACG,YAAY,CAAC;QACjDhC,eAAe,CAAC;UAAE,GAAG+B,GAAG,CAACE;QAAO,CAAC,CAAC;MACpC;IACF;EACF,CAAC,EACD,CAAC9B,qBAAqB,CACxB,CAAC;;EAED;;EAEA,MAAM+B,YAAY,GAAG,IAAAvB,kBAAW,EAAC,MAAc;IAC7C,OAAO,IAAAE,2BAAmB,EAACR,WAAW,CAACE,OAAO,CAAC;EACjD,CAAC,EAAE,EAAE,CAAC;EAEN,MAAM4B,UAAU,GAAG,IAAAxB,kBAAW,EAAC,MAAuB;IACpD,OAAOyB,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAACjC,WAAW,CAACE,OAAO,CAAC,CAAC;EACxD,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMgC,UAAU,GAAG,IAAA5B,kBAAW,EAC3BC,WAA4B,IAAK;IAChC,MAAM4B,YAAY,GAChB5B,WAAW,CAACf,MAAM,GAAG,CAAC,GAAGe,WAAW,GAAG,CAAC,IAAAd,qBAAa,EAAC,EAAE,CAAC,CAAC;IAC5DY,cAAc,CAAC8B,YAAY,CAAC;EAC9B,CAAC,EACD,CAAC9B,cAAc,CACjB,CAAC;EAED,MAAM+B,KAAK,GAAG,IAAA9B,kBAAW,EAAC,MAAM;IAC9BD,cAAc,CAAC,CAAC,IAAAZ,qBAAa,EAAC,EAAE,CAAC,CAAC,CAAC;IACnCE,eAAe,CAAC;MAAE,GAAGC;IAAmB,CAAC,CAAC;EAC5C,CAAC,EAAE,CAACS,cAAc,CAAC,CAAC;;EAEpB;;EAEA,MAAMgC,KAAoB,GAAG;IAC3BhD,QAAQ;IACRQ,SAAS;IACTH;EACF,CAAC;EAED,MAAM4C,OAAwB,GAAG;IAC/BC,YAAY,EAAE9B,UAAU,CAAC8B,YAAY;IACrCC,gBAAgB,EAAE/B,UAAU,CAAC+B,gBAAgB;IAC7CC,UAAU,EAAEhC,UAAU,CAACgC,UAAU;IACjCC,QAAQ,EAAEjC,UAAU,CAACiC,QAAQ;IAC7BC,kBAAkB,EAAElC,UAAU,CAACkC,kBAAkB;IACjDC,WAAW,EAAEnC,UAAU,CAACmC,WAAW;IACnC/B,gBAAgB;IAChBf,qBAAqB,EAAEwB,iBAAiB;IACxCuB,cAAc,EAAEpC,UAAU,CAACoC,cAAc;IACzCzB,iBAAiB,EAAEX,UAAU,CAACqC,qBAAqB;IACnDjB,YAAY;IACZC,UAAU;IACVI,UAAU;IACVE;EACF,CAAC;EAED,OAAO;IAAEC,KAAK;IAAEC;EAAQ,CAAC;AAC3B","ignoreList":[]}
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":[]}
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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,cAAA,GAAAX,OAAA","ignoreList":[]}
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":[]}
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;AAOA,IAAAW,cAAA,GAAAX,OAAA","ignoreList":[]}
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
  }