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
@@ -4,6 +4,7 @@ import { useState, useCallback, useRef } from 'react';
4
4
  import { EMPTY_FORMAT_STYLE } from '../constants/defaultStyles';
5
5
  import { createSegment, segmentsToPlainText, reconcileTextChange, findPositionInSegments } from '../utils/parser';
6
6
  import { getSelectionStyle } from '../utils/formatter';
7
+ import { serializeSegments } from '../utils/serializer';
7
8
  import { useSelection } from '../hooks/useSelection';
8
9
  import { useFormatting } from '../hooks/useFormatting';
9
10
  /**
@@ -42,6 +43,7 @@ export function useRichText(options = {}) {
42
43
  selectionRef.current = selection;
43
44
  const activeStylesRef = useRef(activeStyles);
44
45
  activeStylesRef.current = activeStyles;
46
+ const preserveActiveStylesRef = useRef(false);
45
47
 
46
48
  // ─── Segment Change Handler ──────────────────────────────────────────────
47
49
 
@@ -74,7 +76,13 @@ export function useRichText(options = {}) {
74
76
  // ─── Selection Change Handler ────────────────────────────────────────────
75
77
 
76
78
  const onSelectionChange = useCallback(newSelection => {
79
+ const previousSelection = selectionRef.current;
77
80
  handleSelectionChange(newSelection);
81
+ const shouldPreserveActiveStyles = preserveActiveStylesRef.current && previousSelection.start === previousSelection.end && newSelection.start === newSelection.end && newSelection.start >= previousSelection.start && newSelection.start - previousSelection.start <= 1;
82
+ if (shouldPreserveActiveStyles) {
83
+ return;
84
+ }
85
+ preserveActiveStylesRef.current = false;
78
86
 
79
87
  // Update active styles based on cursor position
80
88
  if (newSelection.start === newSelection.end) {
@@ -93,6 +101,9 @@ export function useRichText(options = {}) {
93
101
  const getPlainText = useCallback(() => {
94
102
  return segmentsToPlainText(segmentsRef.current);
95
103
  }, []);
104
+ const getOutput = useCallback((format = 'markdown') => {
105
+ return serializeSegments(segmentsRef.current, format);
106
+ }, []);
96
107
  const exportJSON = useCallback(() => {
97
108
  return JSON.parse(JSON.stringify(segmentsRef.current));
98
109
  }, []);
@@ -105,7 +116,44 @@ export function useRichText(options = {}) {
105
116
  setActiveStyles({
106
117
  ...EMPTY_FORMAT_STYLE
107
118
  });
119
+ preserveActiveStylesRef.current = false;
108
120
  }, [updateSegments]);
121
+ const toggleFormat = useCallback(format => {
122
+ if (selectionRef.current.start === selectionRef.current.end) {
123
+ preserveActiveStylesRef.current = true;
124
+ }
125
+ formatting.toggleFormat(format);
126
+ }, [formatting]);
127
+ const setStyleProperty = useCallback((key, value) => {
128
+ if (selectionRef.current.start === selectionRef.current.end) {
129
+ preserveActiveStylesRef.current = true;
130
+ }
131
+ formatting.setStyleProperty(key, value);
132
+ }, [formatting]);
133
+ const setHeading = useCallback(level => {
134
+ if (selectionRef.current.start === selectionRef.current.end) {
135
+ preserveActiveStylesRef.current = true;
136
+ }
137
+ formatting.setHeading(level);
138
+ }, [formatting]);
139
+ const setColor = useCallback(color => {
140
+ if (selectionRef.current.start === selectionRef.current.end) {
141
+ preserveActiveStylesRef.current = true;
142
+ }
143
+ formatting.setColor(color);
144
+ }, [formatting]);
145
+ const setBackgroundColor = useCallback(color => {
146
+ if (selectionRef.current.start === selectionRef.current.end) {
147
+ preserveActiveStylesRef.current = true;
148
+ }
149
+ formatting.setBackgroundColor(color);
150
+ }, [formatting]);
151
+ const setFontSize = useCallback(size => {
152
+ if (selectionRef.current.start === selectionRef.current.end) {
153
+ preserveActiveStylesRef.current = true;
154
+ }
155
+ formatting.setFontSize(size);
156
+ }, [formatting]);
109
157
 
110
158
  // ─── Build Return Value ──────────────────────────────────────────────────
111
159
 
@@ -115,16 +163,17 @@ export function useRichText(options = {}) {
115
163
  activeStyles
116
164
  };
117
165
  const actions = {
118
- toggleFormat: formatting.toggleFormat,
119
- setStyleProperty: formatting.setStyleProperty,
120
- setHeading: formatting.setHeading,
121
- setColor: formatting.setColor,
122
- setBackgroundColor: formatting.setBackgroundColor,
123
- setFontSize: formatting.setFontSize,
166
+ toggleFormat,
167
+ setStyleProperty,
168
+ setHeading,
169
+ setColor,
170
+ setBackgroundColor,
171
+ setFontSize,
124
172
  handleTextChange,
125
173
  handleSelectionChange: onSelectionChange,
126
174
  isFormatActive: formatting.isFormatActive,
127
175
  getSelectionStyle: formatting.currentSelectionStyle,
176
+ getOutput,
128
177
  getPlainText,
129
178
  exportJSON,
130
179
  importJSON,
@@ -1 +1 @@
1
- {"version":3,"names":["useState","useCallback","useRef","EMPTY_FORMAT_STYLE","createSegment","segmentsToPlainText","reconcileTextChange","findPositionInSegments","getSelectionStyle","useSelection","useFormatting","useRichText","options","initialSegments","onChangeSegments","onChangeText","segments","setSegments","length","activeStyles","setActiveStyles","selection","handleSelectionChange","segmentsRef","current","selectionRef","activeStylesRef","updateSegments","newSegments","formatting","onSegmentsChange","onActiveStylesChange","handleTextChange","newText","currentSegments","currentSelection","currentActiveStyles","start","end","onSelectionChange","newSelection","pos","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":"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","ignoreList":[]}
1
+ {"version":3,"names":["useState","useCallback","useRef","EMPTY_FORMAT_STYLE","createSegment","segmentsToPlainText","reconcileTextChange","findPositionInSegments","getSelectionStyle","serializeSegments","useSelection","useFormatting","useRichText","options","initialSegments","onChangeSegments","onChangeText","segments","setSegments","length","activeStyles","setActiveStyles","selection","handleSelectionChange","segmentsRef","current","selectionRef","activeStylesRef","preserveActiveStylesRef","updateSegments","newSegments","formatting","onSegmentsChange","onActiveStylesChange","handleTextChange","newText","currentSegments","currentSelection","currentActiveStyles","start","end","onSelectionChange","newSelection","previousSelection","shouldPreserveActiveStyles","pos","seg","segmentIndex","styles","getPlainText","getOutput","format","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":[]}
@@ -11,5 +11,6 @@ export { RichTextProvider, useRichTextContext } from './context/RichTextContext'
11
11
  export { createSegment, segmentsToPlainText, getTotalLength, mergeAdjacentSegments, reconcileTextChange } from './utils/parser';
12
12
  export { toggleFormatOnSelection, setStyleOnSelection, setHeadingOnLine, isFormatActiveInSelection, getSelectionStyle } from './utils/formatter';
13
13
  export { formatStyleToTextStyle, segmentToTextStyle, segmentsToTextStyles } from './utils/styleMapper';
14
+ export { serializeSegments, segmentsToMarkdown, segmentsToHTML } from './utils/serializer';
14
15
  export { DEFAULT_COLORS, DEFAULT_THEME, DEFAULT_TOOLBAR_ITEMS, DEFAULT_BASE_TEXT_STYLE, HEADING_FONT_SIZES, EMPTY_FORMAT_STYLE } from './constants/defaultStyles';
15
16
  //# sourceMappingURL=index.d.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RichTextInput","OverlayText","Toolbar","ToolbarButton","useRichText","useSelection","useFormatting","RichTextProvider","useRichTextContext","createSegment","segmentsToPlainText","getTotalLength","mergeAdjacentSegments","reconcileTextChange","toggleFormatOnSelection","setStyleOnSelection","setHeadingOnLine","isFormatActiveInSelection","getSelectionStyle","formatStyleToTextStyle","segmentToTextStyle","segmentsToTextStyles","DEFAULT_COLORS","DEFAULT_THEME","DEFAULT_TOOLBAR_ITEMS","DEFAULT_BASE_TEXT_STYLE","HEADING_FONT_SIZES","EMPTY_FORMAT_STYLE"],"sourceRoot":"../../src","sources":["index.d.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,WAAW,QAAQ,qBAAqB;AAEjD,SAASC,YAAY,QAAQ,sBAAsB;AACnD,SAASC,aAAa,QAAQ,uBAAuB;AACrD,SAASC,gBAAgB,EAAEC,kBAAkB,QAAS,2BAA2B;AAEjF,SAASC,aAAa,EAAEC,mBAAmB,EAAEC,cAAc,EAAEC,qBAAqB,EAAEC,mBAAmB,QAAS,gBAAgB;AAChI,SAASC,uBAAuB,EAAEC,mBAAmB,EAAEC,gBAAgB,EAAEC,yBAAyB,EAAEC,iBAAiB,QAAS,mBAAmB;AACjJ,SAASC,sBAAsB,EAAEC,kBAAkB,EAAEC,oBAAoB,QAAS,qBAAqB;AACvG,SAASC,cAAc,EAAEC,aAAa,EAAEC,qBAAqB,EAAEC,uBAAuB,EAAEC,kBAAkB,EAAEC,kBAAkB,QAAS,2BAA2B","ignoreList":[]}
1
+ {"version":3,"names":["RichTextInput","OverlayText","Toolbar","ToolbarButton","useRichText","useSelection","useFormatting","RichTextProvider","useRichTextContext","createSegment","segmentsToPlainText","getTotalLength","mergeAdjacentSegments","reconcileTextChange","toggleFormatOnSelection","setStyleOnSelection","setHeadingOnLine","isFormatActiveInSelection","getSelectionStyle","formatStyleToTextStyle","segmentToTextStyle","segmentsToTextStyles","serializeSegments","segmentsToMarkdown","segmentsToHTML","DEFAULT_COLORS","DEFAULT_THEME","DEFAULT_TOOLBAR_ITEMS","DEFAULT_BASE_TEXT_STYLE","HEADING_FONT_SIZES","EMPTY_FORMAT_STYLE"],"sourceRoot":"../../src","sources":["index.d.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,WAAW,QAAQ,qBAAqB;AAEjD,SAASC,YAAY,QAAQ,sBAAsB;AACnD,SAASC,aAAa,QAAQ,uBAAuB;AACrD,SAASC,gBAAgB,EAAEC,kBAAkB,QAAS,2BAA2B;AAEjF,SAASC,aAAa,EAAEC,mBAAmB,EAAEC,cAAc,EAAEC,qBAAqB,EAAEC,mBAAmB,QAAS,gBAAgB;AAChI,SAASC,uBAAuB,EAAEC,mBAAmB,EAAEC,gBAAgB,EAAEC,yBAAyB,EAAEC,iBAAiB,QAAS,mBAAmB;AACjJ,SAASC,sBAAsB,EAAEC,kBAAkB,EAAEC,oBAAoB,QAAS,qBAAqB;AACvG,SAASC,iBAAiB,EAAEC,kBAAkB,EAAEC,cAAc,QAAS,oBAAoB;AAC3F,SAASC,cAAc,EAAEC,aAAa,EAAEC,qBAAqB,EAAEC,uBAAuB,EAAEC,kBAAkB,EAAEC,kBAAkB,QAAS,2BAA2B","ignoreList":[]}
@@ -17,6 +17,7 @@ export { RichTextProvider, useRichTextContext } from './context/RichTextContext'
17
17
  export { createSegment, segmentsToPlainText, getTotalLength, mergeAdjacentSegments, reconcileTextChange } from './utils/parser';
18
18
  export { toggleFormatOnSelection, setStyleOnSelection, setHeadingOnLine, isFormatActiveInSelection, getSelectionStyle } from './utils/formatter';
19
19
  export { formatStyleToTextStyle, segmentToTextStyle, segmentsToTextStyles } from './utils/styleMapper';
20
+ export { serializeSegments, segmentsToMarkdown, segmentsToHTML } from './utils/serializer';
20
21
 
21
22
  // ─── Constants ───────────────────────────────────────────────────────────────
22
23
  export { DEFAULT_COLORS, DEFAULT_THEME, DEFAULT_TOOLBAR_ITEMS, DEFAULT_BASE_TEXT_STYLE, HEADING_FONT_SIZES, EMPTY_FORMAT_STYLE } from './constants/defaultStyles';
@@ -1 +1 @@
1
- {"version":3,"names":["RichTextInput","OverlayText","Toolbar","ToolbarButton","useRichText","useSelection","useFormatting","RichTextProvider","useRichTextContext","createSegment","segmentsToPlainText","getTotalLength","mergeAdjacentSegments","reconcileTextChange","toggleFormatOnSelection","setStyleOnSelection","setHeadingOnLine","isFormatActiveInSelection","getSelectionStyle","formatStyleToTextStyle","segmentToTextStyle","segmentsToTextStyles","DEFAULT_COLORS","DEFAULT_THEME","DEFAULT_TOOLBAR_ITEMS","DEFAULT_BASE_TEXT_STYLE","HEADING_FONT_SIZES","EMPTY_FORMAT_STYLE"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA,SAASA,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,aAAa,QAAQ,4BAA4B;;AAE1D;AACA,SAASC,WAAW,QAAQ,qBAAqB;AAEjD,SAASC,YAAY,QAAQ,sBAAsB;AACnD,SAASC,aAAa,QAAQ,uBAAuB;;AAErD;AACA,SACEC,gBAAgB,EAChBC,kBAAkB,QACb,2BAA2B;AAGlC;AACA,SACEC,aAAa,EACbC,mBAAmB,EACnBC,cAAc,EACdC,qBAAqB,EACrBC,mBAAmB,QACd,gBAAgB;AACvB,SACEC,uBAAuB,EACvBC,mBAAmB,EACnBC,gBAAgB,EAChBC,yBAAyB,EACzBC,iBAAiB,QACZ,mBAAmB;AAC1B,SACEC,sBAAsB,EACtBC,kBAAkB,EAClBC,oBAAoB,QACf,qBAAqB;;AAE5B;AACA,SACEC,cAAc,EACdC,aAAa,EACbC,qBAAqB,EACrBC,uBAAuB,EACvBC,kBAAkB,EAClBC,kBAAkB,QACb,2BAA2B;;AAElC","ignoreList":[]}
1
+ {"version":3,"names":["RichTextInput","OverlayText","Toolbar","ToolbarButton","useRichText","useSelection","useFormatting","RichTextProvider","useRichTextContext","createSegment","segmentsToPlainText","getTotalLength","mergeAdjacentSegments","reconcileTextChange","toggleFormatOnSelection","setStyleOnSelection","setHeadingOnLine","isFormatActiveInSelection","getSelectionStyle","formatStyleToTextStyle","segmentToTextStyle","segmentsToTextStyles","serializeSegments","segmentsToMarkdown","segmentsToHTML","DEFAULT_COLORS","DEFAULT_THEME","DEFAULT_TOOLBAR_ITEMS","DEFAULT_BASE_TEXT_STYLE","HEADING_FONT_SIZES","EMPTY_FORMAT_STYLE"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA,SAASA,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,aAAa,QAAQ,4BAA4B;;AAE1D;AACA,SAASC,WAAW,QAAQ,qBAAqB;AAEjD,SAASC,YAAY,QAAQ,sBAAsB;AACnD,SAASC,aAAa,QAAQ,uBAAuB;;AAErD;AACA,SACEC,gBAAgB,EAChBC,kBAAkB,QACb,2BAA2B;AAGlC;AACA,SACEC,aAAa,EACbC,mBAAmB,EACnBC,cAAc,EACdC,qBAAqB,EACrBC,mBAAmB,QACd,gBAAgB;AACvB,SACEC,uBAAuB,EACvBC,mBAAmB,EACnBC,gBAAgB,EAChBC,yBAAyB,EACzBC,iBAAiB,QACZ,mBAAmB;AAC1B,SACEC,sBAAsB,EACtBC,kBAAkB,EAClBC,oBAAoB,QACf,qBAAqB;AAC5B,SACEC,iBAAiB,EACjBC,kBAAkB,EAClBC,cAAc,QACT,oBAAoB;;AAE3B;AACA,SACEC,cAAc,EACdC,aAAa,EACbC,qBAAqB,EACrBC,uBAAuB,EACvBC,kBAAkB,EAClBC,kBAAkB,QACb,2BAA2B;;AAElC","ignoreList":[]}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  import { createSegment, findPositionInSegments, mergeAdjacentSegments, segmentsToPlainText } from '../utils/parser';
4
- import { HEADING_FONT_SIZES } from '../constants/defaultStyles';
5
4
 
6
5
  /**
7
6
  * Toggle an inline format (bold, italic, etc.) on the selected range.
@@ -57,9 +56,7 @@ export function setHeadingOnLine(segments, selection, level) {
57
56
  lineEnd
58
57
  } = getLineRange(plainText, selection.start);
59
58
  const headingStyle = {
60
- heading: level,
61
- fontSize: HEADING_FONT_SIZES[level],
62
- bold: level !== 'none' ? true : undefined
59
+ heading: level === 'none' ? undefined : level
63
60
  };
64
61
  return applyStyleToRange(segments, lineStart, lineEnd, headingStyle);
65
62
  }
@@ -1 +1 @@
1
- {"version":3,"names":["createSegment","findPositionInSegments","mergeAdjacentSegments","segmentsToPlainText","HEADING_FONT_SIZES","toggleFormatOnSelection","segments","selection","format","start","end","normalizeSelection","selectedSegments","extractSegmentsInRange","allHaveFormat","every","s","styles","applyStyleToRange","setStyleOnSelection","key","value","setHeadingOnLine","level","plainText","lineStart","lineEnd","getLineRange","headingStyle","heading","fontSize","bold","undefined","isFormatActiveInSelection","selected","length","getSelectionStyle","pos","segmentIndex","result","i","italic","underline","strikethrough","code","color","backgroundColor","Math","min","max","seg","segStart","segEnd","text","overlapStart","overlapEnd","push","slice","styleDelta","newStyles","position"],"sourceRoot":"../../../src","sources":["utils/formatter.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createSegment","findPositionInSegments","mergeAdjacentSegments","segmentsToPlainText","toggleFormatOnSelection","segments","selection","format","start","end","normalizeSelection","selectedSegments","extractSegmentsInRange","allHaveFormat","every","s","styles","applyStyleToRange","setStyleOnSelection","key","value","setHeadingOnLine","level","plainText","lineStart","lineEnd","getLineRange","headingStyle","heading","undefined","isFormatActiveInSelection","selected","length","getSelectionStyle","pos","segmentIndex","result","i","bold","italic","underline","strikethrough","code","color","backgroundColor","fontSize","Math","min","max","seg","segStart","segEnd","text","overlapStart","overlapEnd","push","slice","styleDelta","newStyles","position"],"sourceRoot":"../../../src","sources":["utils/formatter.ts"],"mappings":";;AAOA,SACEA,aAAa,EACbC,sBAAsB,EACtBC,qBAAqB,EACrBC,mBAAmB,QACd,iBAAiB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,uBAAuBA,CACrCC,QAAyB,EACzBC,SAAyB,EACzBC,MAAkB,EACD;EACjB,IAAID,SAAS,CAACE,KAAK,KAAKF,SAAS,CAACG,GAAG,EAAE;IACrC;IACA,OAAOJ,QAAQ;EACjB;EAEA,MAAM;IAAEG,KAAK;IAAEC;EAAI,CAAC,GAAGC,kBAAkB,CAACJ,SAAS,CAAC;;EAEpD;EACA,MAAMK,gBAAgB,GAAGC,sBAAsB,CAACP,QAAQ,EAAEG,KAAK,EAAEC,GAAG,CAAC;EACrE,MAAMI,aAAa,GAAGF,gBAAgB,CAACG,KAAK,CAAEC,CAAC,IAAK,CAAC,CAACA,CAAC,CAACC,MAAM,CAACT,MAAM,CAAC,CAAC;;EAEvE;EACA,OAAOU,iBAAiB,CAACZ,QAAQ,EAAEG,KAAK,EAAEC,GAAG,EAAE;IAC7C,CAACF,MAAM,GAAG,CAACM;EACb,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA,OAAO,SAASK,mBAAmBA,CACjCb,QAAyB,EACzBC,SAAyB,EACzBa,GAAM,EACNC,KAAqB,EACJ;EACjB,IAAId,SAAS,CAACE,KAAK,KAAKF,SAAS,CAACG,GAAG,EAAE;IACrC,OAAOJ,QAAQ;EACjB;EAEA,MAAM;IAAEG,KAAK;IAAEC;EAAI,CAAC,GAAGC,kBAAkB,CAACJ,SAAS,CAAC;EACpD,OAAOW,iBAAiB,CAACZ,QAAQ,EAAEG,KAAK,EAAEC,GAAG,EAAE;IAAE,CAACU,GAAG,GAAGC;EAAM,CAAC,CAAC;AAClE;;AAEA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAC9BhB,QAAyB,EACzBC,SAAyB,EACzBgB,KAAmB,EACF;EACjB,MAAMC,SAAS,GAAGpB,mBAAmB,CAACE,QAAQ,CAAC;EAC/C,MAAM;IAAEmB,SAAS;IAAEC;EAAQ,CAAC,GAAGC,YAAY,CAACH,SAAS,EAAEjB,SAAS,CAACE,KAAK,CAAC;EAEvE,MAAMmB,YAAkC,GAAG;IACzCC,OAAO,EAAEN,KAAK,KAAK,MAAM,GAAGO,SAAS,GAAGP;EAC1C,CAAC;EAED,OAAOL,iBAAiB,CAACZ,QAAQ,EAAEmB,SAAS,EAAEC,OAAO,EAAEE,YAAY,CAAC;AACtE;;AAEA;AACA;AACA;AACA,OAAO,SAASG,yBAAyBA,CACvCzB,QAAyB,EACzBC,SAAyB,EACzBC,MAAkB,EACT;EACT,IAAID,SAAS,CAACE,KAAK,KAAKF,SAAS,CAACG,GAAG,EAAE;IACrC,OAAO,KAAK;EACd;EAEA,MAAM;IAAED,KAAK;IAAEC;EAAI,CAAC,GAAGC,kBAAkB,CAACJ,SAAS,CAAC;EACpD,MAAMyB,QAAQ,GAAGnB,sBAAsB,CAACP,QAAQ,EAAEG,KAAK,EAAEC,GAAG,CAAC;EAC7D,OAAOsB,QAAQ,CAACC,MAAM,GAAG,CAAC,IAAID,QAAQ,CAACjB,KAAK,CAAEC,CAAC,IAAK,CAAC,CAACA,CAAC,CAACC,MAAM,CAACT,MAAM,CAAC,CAAC;AACzE;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAAS0B,iBAAiBA,CAC/B5B,QAAyB,EACzBC,SAAyB,EACZ;EACb,IAAIA,SAAS,CAACE,KAAK,KAAKF,SAAS,CAACG,GAAG,EAAE;IACrC;IACA,MAAMyB,GAAG,GAAGjC,sBAAsB,CAACI,QAAQ,EAAEC,SAAS,CAACE,KAAK,CAAC;IAC7D,IAAIH,QAAQ,CAAC2B,MAAM,GAAG,CAAC,EAAE;MACvB,OAAO;QAAE,GAAG3B,QAAQ,CAAC6B,GAAG,CAACC,YAAY,CAAC,CAACnB;MAAO,CAAC;IACjD;IACA,OAAO,CAAC,CAAC;EACX;EAEA,MAAM;IAAER,KAAK;IAAEC;EAAI,CAAC,GAAGC,kBAAkB,CAACJ,SAAS,CAAC;EACpD,MAAMyB,QAAQ,GAAGnB,sBAAsB,CAACP,QAAQ,EAAEG,KAAK,EAAEC,GAAG,CAAC;EAE7D,IAAIsB,QAAQ,CAACC,MAAM,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;EAEpC,MAAMI,MAAmB,GAAG;IAAE,GAAGL,QAAQ,CAAC,CAAC,CAAC,CAACf;EAAO,CAAC;EAErD,KAAK,IAAIqB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGN,QAAQ,CAACC,MAAM,EAAEK,CAAC,EAAE,EAAE;IACxC,MAAMtB,CAAC,GAAGgB,QAAQ,CAACM,CAAC,CAAC,CAACrB,MAAM;IAC5B,IAAIoB,MAAM,CAACE,IAAI,KAAKT,SAAS,IAAIO,MAAM,CAACE,IAAI,KAAK,CAAC,CAACvB,CAAC,CAACuB,IAAI,EACvDF,MAAM,CAACE,IAAI,GAAGT,SAAS;IACzB,IAAIO,MAAM,CAACG,MAAM,KAAKV,SAAS,IAAIO,MAAM,CAACG,MAAM,KAAK,CAAC,CAACxB,CAAC,CAACwB,MAAM,EAC7DH,MAAM,CAACG,MAAM,GAAGV,SAAS;IAC3B,IAAIO,MAAM,CAACI,SAAS,KAAKX,SAAS,IAAIO,MAAM,CAACI,SAAS,KAAK,CAAC,CAACzB,CAAC,CAACyB,SAAS,EACtEJ,MAAM,CAACI,SAAS,GAAGX,SAAS;IAC9B,IACEO,MAAM,CAACK,aAAa,KAAKZ,SAAS,IAClCO,MAAM,CAACK,aAAa,KAAK,CAAC,CAAC1B,CAAC,CAAC0B,aAAa,EAE1CL,MAAM,CAACK,aAAa,GAAGZ,SAAS;IAClC,IAAIO,MAAM,CAACM,IAAI,KAAKb,SAAS,IAAIO,MAAM,CAACM,IAAI,KAAK,CAAC,CAAC3B,CAAC,CAAC2B,IAAI,EACvDN,MAAM,CAACM,IAAI,GAAGb,SAAS;IACzB,IAAIO,MAAM,CAACO,KAAK,KAAK5B,CAAC,CAAC4B,KAAK,EAAEP,MAAM,CAACO,KAAK,GAAGd,SAAS;IACtD,IAAIO,MAAM,CAACQ,eAAe,KAAK7B,CAAC,CAAC6B,eAAe,EAC9CR,MAAM,CAACQ,eAAe,GAAGf,SAAS;IACpC,IAAIO,MAAM,CAACS,QAAQ,KAAK9B,CAAC,CAAC8B,QAAQ,EAAET,MAAM,CAACS,QAAQ,GAAGhB,SAAS;IAC/D,IAAIO,MAAM,CAACR,OAAO,KAAKb,CAAC,CAACa,OAAO,EAAEQ,MAAM,CAACR,OAAO,GAAGC,SAAS;EAC9D;EAEA,OAAOO,MAAM;AACf;;AAEA;;AAEA;AACA;AACA;AACA,SAAS1B,kBAAkBA,CAACJ,SAAyB,EAAkB;EACrE,OAAO;IACLE,KAAK,EAAEsC,IAAI,CAACC,GAAG,CAACzC,SAAS,CAACE,KAAK,EAAEF,SAAS,CAACG,GAAG,CAAC;IAC/CA,GAAG,EAAEqC,IAAI,CAACE,GAAG,CAAC1C,SAAS,CAACE,KAAK,EAAEF,SAAS,CAACG,GAAG;EAC9C,CAAC;AACH;;AAEA;AACA;AACA;AACA,SAASG,sBAAsBA,CAC7BP,QAAyB,EACzBG,KAAa,EACbC,GAAW,EACM;EACjB,MAAM2B,MAAuB,GAAG,EAAE;EAClC,IAAIF,GAAG,GAAG,CAAC;EAEX,KAAK,MAAMe,GAAG,IAAI5C,QAAQ,EAAE;IAC1B,MAAM6C,QAAQ,GAAGhB,GAAG;IACpB,MAAMiB,MAAM,GAAGjB,GAAG,GAAGe,GAAG,CAACG,IAAI,CAACpB,MAAM;IAEpC,IAAImB,MAAM,IAAI3C,KAAK,EAAE;MACnB0B,GAAG,GAAGiB,MAAM;MACZ;IACF;IACA,IAAID,QAAQ,IAAIzC,GAAG,EAAE;MACnB;IACF;;IAEA;IACA,MAAM4C,YAAY,GAAGP,IAAI,CAACE,GAAG,CAACE,QAAQ,EAAE1C,KAAK,CAAC;IAC9C,MAAM8C,UAAU,GAAGR,IAAI,CAACC,GAAG,CAACI,MAAM,EAAE1C,GAAG,CAAC;IACxC2B,MAAM,CAACmB,IAAI,CACTvD,aAAa,CACXiD,GAAG,CAACG,IAAI,CAACI,KAAK,CAACH,YAAY,GAAGH,QAAQ,EAAEI,UAAU,GAAGJ,QAAQ,CAAC,EAC9DD,GAAG,CAACjC,MACN,CACF,CAAC;IAEDkB,GAAG,GAAGiB,MAAM;EACd;EAEA,OAAOf,MAAM;AACf;;AAEA;AACA;AACA;AACA;AACA,SAASnB,iBAAiBA,CACxBZ,QAAyB,EACzBG,KAAa,EACbC,GAAW,EACXgD,UAAgC,EACf;EACjB,MAAMrB,MAAuB,GAAG,EAAE;EAClC,IAAIF,GAAG,GAAG,CAAC;EAEX,KAAK,MAAMe,GAAG,IAAI5C,QAAQ,EAAE;IAC1B,MAAM6C,QAAQ,GAAGhB,GAAG;IACpB,MAAMiB,MAAM,GAAGjB,GAAG,GAAGe,GAAG,CAACG,IAAI,CAACpB,MAAM;IAEpC,IAAImB,MAAM,IAAI3C,KAAK,IAAI0C,QAAQ,IAAIzC,GAAG,EAAE;MACtC;MACA2B,MAAM,CAACmB,IAAI,CAACvD,aAAa,CAACiD,GAAG,CAACG,IAAI,EAAEH,GAAG,CAACjC,MAAM,CAAC,CAAC;IAClD,CAAC,MAAM;MACL;MACA,IAAIkC,QAAQ,GAAG1C,KAAK,EAAE;QACpB;QACA4B,MAAM,CAACmB,IAAI,CACTvD,aAAa,CAACiD,GAAG,CAACG,IAAI,CAACI,KAAK,CAAC,CAAC,EAAEhD,KAAK,GAAG0C,QAAQ,CAAC,EAAED,GAAG,CAACjC,MAAM,CAC/D,CAAC;MACH;;MAEA;MACA,MAAMqC,YAAY,GAAGP,IAAI,CAACE,GAAG,CAACE,QAAQ,EAAE1C,KAAK,CAAC;MAC9C,MAAM8C,UAAU,GAAGR,IAAI,CAACC,GAAG,CAACI,MAAM,EAAE1C,GAAG,CAAC;MACxC,MAAMiD,SAAS,GAAG;QAAE,GAAGT,GAAG,CAACjC,MAAM;QAAE,GAAGyC;MAAW,CAAC;MAClDrB,MAAM,CAACmB,IAAI,CACTvD,aAAa,CACXiD,GAAG,CAACG,IAAI,CAACI,KAAK,CAACH,YAAY,GAAGH,QAAQ,EAAEI,UAAU,GAAGJ,QAAQ,CAAC,EAC9DQ,SACF,CACF,CAAC;MAED,IAAIP,MAAM,GAAG1C,GAAG,EAAE;QAChB;QACA2B,MAAM,CAACmB,IAAI,CACTvD,aAAa,CAACiD,GAAG,CAACG,IAAI,CAACI,KAAK,CAAC/C,GAAG,GAAGyC,QAAQ,CAAC,EAAED,GAAG,CAACjC,MAAM,CAC1D,CAAC;MACH;IACF;IAEAkB,GAAG,GAAGiB,MAAM;EACd;EAEA,OAAOjD,qBAAqB,CAACkC,MAAM,CAAC;AACtC;;AAEA;AACA;AACA;AACA,SAASV,YAAYA,CACnB0B,IAAY,EACZO,QAAgB,EACwB;EACxC,IAAInC,SAAS,GAAGmC,QAAQ;EACxB,OAAOnC,SAAS,GAAG,CAAC,IAAI4B,IAAI,CAAC5B,SAAS,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;IACpDA,SAAS,EAAE;EACb;EAEA,IAAIC,OAAO,GAAGkC,QAAQ;EACtB,OAAOlC,OAAO,GAAG2B,IAAI,CAACpB,MAAM,IAAIoB,IAAI,CAAC3B,OAAO,CAAC,KAAK,IAAI,EAAE;IACtDA,OAAO,EAAE;EACX;EAEA,OAAO;IAAED,SAAS;IAAEC;EAAQ,CAAC;AAC/B;;AAEA;AACA,SAASzB,aAAa,QAAQ,iBAAiB","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=serializer.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["utils/serializer.d.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Serialize styled segments as Markdown or HTML.
5
+ */
6
+ export function serializeSegments(segments, format = 'markdown') {
7
+ const lines = splitSegmentsByLine(segments);
8
+ return lines.map(line => serializeLine(line, format)).join('\n');
9
+ }
10
+
11
+ /**
12
+ * Convenience wrapper for Markdown output.
13
+ */
14
+ export function segmentsToMarkdown(segments) {
15
+ return serializeSegments(segments, 'markdown');
16
+ }
17
+
18
+ /**
19
+ * Convenience wrapper for HTML output.
20
+ */
21
+ export function segmentsToHTML(segments) {
22
+ return serializeSegments(segments, 'html');
23
+ }
24
+ function splitSegmentsByLine(segments) {
25
+ const lines = [[]];
26
+ for (const segment of segments) {
27
+ const parts = segment.text.split('\n');
28
+ parts.forEach((part, index) => {
29
+ if (part.length > 0) {
30
+ lines[lines.length - 1]?.push({
31
+ text: part,
32
+ styles: {
33
+ ...segment.styles
34
+ }
35
+ });
36
+ }
37
+ if (index < parts.length - 1) {
38
+ lines.push([]);
39
+ }
40
+ });
41
+ }
42
+ return lines;
43
+ }
44
+ function serializeLine(line, format) {
45
+ const heading = getLineHeading(line);
46
+ const content = line.map(fragment => serializeFragment(fragment, format, heading)).join('');
47
+ if (format === 'html') {
48
+ const blockTag = heading ?? 'p';
49
+ return `<${blockTag}>${content}</${blockTag}>`;
50
+ }
51
+ const headingPrefix = getHeadingPrefix(heading);
52
+ if (!headingPrefix) {
53
+ return content;
54
+ }
55
+ return content.length > 0 ? `${headingPrefix} ${content}` : headingPrefix;
56
+ }
57
+ function serializeFragment(fragment, format, lineHeading) {
58
+ const normalizedStyles = {
59
+ ...fragment.styles,
60
+ heading: undefined,
61
+ // Markdown headings already express emphasis at the block level.
62
+ bold: lineHeading && lineHeading !== 'none' ? false : fragment.styles.bold
63
+ };
64
+ return format === 'html' ? serializeHtmlFragment(fragment.text, normalizedStyles) : serializeMarkdownFragment(fragment.text, normalizedStyles);
65
+ }
66
+ function serializeHtmlFragment(text, styles) {
67
+ let result = escapeHtml(text);
68
+ if (styles.code) {
69
+ result = `<code>${result}</code>`;
70
+ }
71
+ if (styles.bold) {
72
+ result = `<strong>${result}</strong>`;
73
+ }
74
+ if (styles.italic) {
75
+ result = `<em>${result}</em>`;
76
+ }
77
+ if (styles.underline) {
78
+ result = `<u>${result}</u>`;
79
+ }
80
+ if (styles.strikethrough) {
81
+ result = `<s>${result}</s>`;
82
+ }
83
+ const styleAttribute = buildInlineStyle(styles);
84
+ if (styleAttribute) {
85
+ result = `<span style="${styleAttribute}">${result}</span>`;
86
+ }
87
+ return result;
88
+ }
89
+ function serializeMarkdownFragment(text, styles) {
90
+ let result = escapeMarkdown(text);
91
+ if (styles.code) {
92
+ result = wrapInlineCode(text);
93
+ }
94
+ if (styles.bold) {
95
+ result = `**${result}**`;
96
+ }
97
+ if (styles.italic) {
98
+ result = `*${result}*`;
99
+ }
100
+ if (styles.strikethrough) {
101
+ result = `~~${result}~~`;
102
+ }
103
+ if (styles.underline) {
104
+ result = `<u>${result}</u>`;
105
+ }
106
+ const styleAttribute = buildInlineStyle(styles);
107
+ if (styleAttribute) {
108
+ result = `<span style="${styleAttribute}">${result}</span>`;
109
+ }
110
+ return result;
111
+ }
112
+ function buildInlineStyle(styles) {
113
+ const cssRules = [];
114
+ if (styles.color) {
115
+ cssRules.push(`color: ${styles.color}`);
116
+ }
117
+ if (styles.backgroundColor) {
118
+ cssRules.push(`background-color: ${styles.backgroundColor}`);
119
+ }
120
+ if (styles.fontSize) {
121
+ cssRules.push(`font-size: ${styles.fontSize}px`);
122
+ }
123
+ return cssRules.join('; ');
124
+ }
125
+ function getLineHeading(line) {
126
+ for (const fragment of line) {
127
+ if (fragment.styles.heading && fragment.styles.heading !== 'none') {
128
+ return fragment.styles.heading;
129
+ }
130
+ }
131
+ return undefined;
132
+ }
133
+ function getHeadingPrefix(heading) {
134
+ switch (heading) {
135
+ case 'h1':
136
+ return '#';
137
+ case 'h2':
138
+ return '##';
139
+ case 'h3':
140
+ return '###';
141
+ default:
142
+ return undefined;
143
+ }
144
+ }
145
+ function escapeHtml(text) {
146
+ return text.replaceAll('&', '&amp;').replaceAll('<', '&lt;').replaceAll('>', '&gt;').replaceAll('"', '&quot;').replaceAll("'", '&#39;');
147
+ }
148
+ function escapeMarkdown(text) {
149
+ return text.replace(/([\\`*_~[\]])/g, '\\$1');
150
+ }
151
+ function wrapInlineCode(text) {
152
+ const matches = text.match(/`+/g);
153
+ const longestBacktickRun = matches?.reduce((max, match) => Math.max(max, match.length), 0) ?? 0;
154
+ const fence = '`'.repeat(longestBacktickRun + 1);
155
+ return `${fence}${text}${fence}`;
156
+ }
157
+ //# sourceMappingURL=serializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["serializeSegments","segments","format","lines","splitSegmentsByLine","map","line","serializeLine","join","segmentsToMarkdown","segmentsToHTML","segment","parts","text","split","forEach","part","index","length","push","styles","heading","getLineHeading","content","fragment","serializeFragment","blockTag","headingPrefix","getHeadingPrefix","lineHeading","normalizedStyles","undefined","bold","serializeHtmlFragment","serializeMarkdownFragment","result","escapeHtml","code","italic","underline","strikethrough","styleAttribute","buildInlineStyle","escapeMarkdown","wrapInlineCode","cssRules","color","backgroundColor","fontSize","replaceAll","replace","matches","match","longestBacktickRun","reduce","max","Math","fence","repeat"],"sourceRoot":"../../../src","sources":["utils/serializer.ts"],"mappings":"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","ignoreList":[]}
@@ -3,19 +3,8 @@ import type { RichTextInputProps } from '../types';
3
3
  /**
4
4
  * RichTextInput — The main rich text editor component.
5
5
  *
6
- * Uses the Overlay Technique:
7
- * - A transparent `TextInput` on top captures user input and selection
8
- * - A styled `<Text>` layer behind it renders the formatted content
9
- * - Both share identical font metrics for pixel-perfect alignment
10
- *
11
- * @example
12
- * ```tsx
13
- * <RichTextInput
14
- * placeholder="Start typing..."
15
- * showToolbar
16
- * onChangeSegments={(segments) => console.log(segments)}
17
- * />
18
- * ```
6
+ * Uses a plain `TextInput` for editing and renders the serialized rich output
7
+ * below it as Markdown or HTML.
19
8
  */
20
9
  export declare const RichTextInput: React.FC<RichTextInputProps>;
21
10
  //# sourceMappingURL=RichTextInput.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RichTextInput.d.ts","sourceRoot":"","sources":["../../../../src/components/RichTextInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAiC,MAAM,OAAO,CAAC;AAQtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAOnD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAiItD,CAAC"}
1
+ {"version":3,"file":"RichTextInput.d.ts","sourceRoot":"","sources":["../../../../src/components/RichTextInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAYvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAenD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA6LtD,CAAC"}
@@ -9,6 +9,8 @@ export declare const DEFAULT_COLORS: {
9
9
  readonly placeholder: "#9CA3AF";
10
10
  readonly toolbarBackground: "#F9FAFB";
11
11
  readonly toolbarBorder: "#E5E7EB";
12
+ readonly outputBackground: "#F8FAFC";
13
+ readonly outputLabel: "#475569";
12
14
  readonly cursor: "#6366F1";
13
15
  readonly activeButtonBg: "#EEF2FF";
14
16
  readonly codeBackground: "#F3F4F6";
@@ -1 +1 @@
1
- {"version":3,"file":"defaultStyles.d.ts","sourceRoot":"","sources":["../../../../src/constants/defaultStyles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;CAUjB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;CAKrB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;CAK1B,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAUhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,aA0E3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,EAS9C,CAAC"}
1
+ {"version":3,"file":"defaultStyles.d.ts","sourceRoot":"","sources":["../../../../src/constants/defaultStyles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;CAYjB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;CAKrB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;CAK1B,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAUhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,aAiG3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,EAS9C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useFormatting.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useFormatting.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,WAAW,EACX,YAAY,EACZ,cAAc,EACf,MAAM,UAAU,CAAC;AASlB,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,SAAS,EAAE,cAAc,CAAC;IAC1B,YAAY,EAAE,WAAW,CAAC;IAC1B,gBAAgB,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;IACtD,oBAAoB,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;CACrD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,GACrB,EAAE,oBAAoB;2BAEV,UAAU;uBAqBlB,CAAC,SAAS,MAAM,WAAW,OAAO,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC;wBAoBnD,YAAY;sBAQZ,MAAM;gCAON,MAAM;wBAOP,MAAM;6BAOJ,UAAU,KAAG,OAAO;iCASe,WAAW;EAiB1D"}
1
+ {"version":3,"file":"useFormatting.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useFormatting.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,WAAW,EACX,YAAY,EACZ,cAAc,EACf,MAAM,UAAU,CAAC;AASlB,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,SAAS,EAAE,cAAc,CAAC;IAC1B,YAAY,EAAE,WAAW,CAAC;IAC1B,gBAAgB,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;IACtD,oBAAoB,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;CACrD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,GACrB,EAAE,oBAAoB;2BAEV,UAAU;uBAqBlB,CAAC,SAAS,MAAM,WAAW,OAAO,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC;wBAoBnD,YAAY;sBAqBZ,MAAM;gCAON,MAAM;wBAOP,MAAM;6BAOJ,UAAU,KAAG,OAAO;iCASe,WAAW;EAiB1D"}
@@ -1 +1 @@
1
- {"version":3,"file":"useRichText.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useRichText.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EAKb,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAYlB,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;IAClC,qCAAqC;IACrC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;IACvD,wCAAwC;IACxC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,CA4InB"}
1
+ {"version":3,"file":"useRichText.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useRichText.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EAMb,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAalB,MAAM,WAAW,kBAAkB;IACjC,oDAAoD;IACpD,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;IAClC,qCAAqC;IACrC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;IACvD,wCAAwC;IACxC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,OAAO,GAAE,kBAAuB,GAC/B,iBAAiB,CAgOnB"}
@@ -11,6 +11,7 @@ export type { RichTextProviderProps } from './context/RichTextContext';
11
11
  export { createSegment, segmentsToPlainText, getTotalLength, mergeAdjacentSegments, reconcileTextChange, } from './utils/parser';
12
12
  export { toggleFormatOnSelection, setStyleOnSelection, setHeadingOnLine, isFormatActiveInSelection, getSelectionStyle, } from './utils/formatter';
13
13
  export { formatStyleToTextStyle, segmentToTextStyle, segmentsToTextStyles, } from './utils/styleMapper';
14
+ export { serializeSegments, segmentsToMarkdown, segmentsToHTML, } from './utils/serializer';
14
15
  export { DEFAULT_COLORS, DEFAULT_THEME, DEFAULT_TOOLBAR_ITEMS, DEFAULT_BASE_TEXT_STYLE, HEADING_FONT_SIZES, EMPTY_FORMAT_STYLE, } from './constants/defaultStyles';
15
- export type { FormatType, HeadingLevel, ListType, FormatStyle, StyledSegment, SelectionRange, RichTextState, RichTextActions, UseRichTextReturn, RichTextTheme, ToolbarItem, ToolbarButtonRenderProps, ToolbarRenderProps, OverlayTextProps, ToolbarButtonProps, ToolbarProps, RichTextInputProps, } from './types';
16
+ export type { FormatType, HeadingLevel, ListType, OutputFormat, FormatStyle, StyledSegment, SelectionRange, RichTextState, RichTextActions, UseRichTextReturn, RichTextTheme, ToolbarItem, ToolbarButtonRenderProps, ToolbarRenderProps, OverlayTextProps, ToolbarButtonProps, ToolbarProps, RichTextInputProps, } from './types';
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,OAAO,EACL,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGvE,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,EAChB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,cAAc,EACd,aAAa,EACb,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AAGnC,YAAY,EACV,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,aAAa,EACb,cAAc,EACd,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,GACnB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,OAAO,EACL,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGvE,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,EAChB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,cAAc,EACd,aAAa,EACb,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AAGnC,YAAY,EACV,UAAU,EACV,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,aAAa,EACb,cAAc,EACd,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,GACnB,MAAM,SAAS,CAAC"}
@@ -11,6 +11,10 @@ export type HeadingLevel = 'h1' | 'h2' | 'h3' | 'none';
11
11
  * List type for a line/paragraph.
12
12
  */
13
13
  export type ListType = 'bullet' | 'ordered' | 'none';
14
+ /**
15
+ * Serialized output formats supported by the editor.
16
+ */
17
+ export type OutputFormat = 'markdown' | 'html';
14
18
  /**
15
19
  * Inline formatting styles attached to a text segment.
16
20
  */
@@ -79,6 +83,8 @@ export interface RichTextActions {
79
83
  isFormatActive: (format: FormatType) => boolean;
80
84
  /** Get the effective shared style at the current cursor/selection. */
81
85
  getSelectionStyle: () => FormatStyle;
86
+ /** Serialize the current content as markdown or HTML. */
87
+ getOutput: (format?: OutputFormat) => string;
82
88
  /** Get the full plain text content. */
83
89
  getPlainText: () => string;
84
90
  /** Export the segments as a serializable JSON array. */
@@ -103,10 +109,16 @@ export interface RichTextTheme {
103
109
  containerStyle?: ViewStyle;
104
110
  /** Style for the TextInput. */
105
111
  inputStyle?: TextStyle;
106
- /** Style for the overlay text container. */
112
+ /** Style for the legacy overlay text container. */
107
113
  overlayContainerStyle?: ViewStyle;
108
114
  /** Base text style applied to all segments before formatting. */
109
115
  baseTextStyle?: TextStyle;
116
+ /** Style for the serialized output container. */
117
+ outputContainerStyle?: ViewStyle;
118
+ /** Label style for the serialized output header. */
119
+ outputLabelStyle?: TextStyle;
120
+ /** Style for the serialized output text. */
121
+ outputTextStyle?: TextStyle;
110
122
  /** Style for the toolbar container. */
111
123
  toolbarStyle?: ViewStyle;
112
124
  /** Style for toolbar buttons. */
@@ -239,6 +251,12 @@ export interface RichTextInputProps {
239
251
  toolbarItems?: ToolbarItem[];
240
252
  /** Theme configuration. */
241
253
  theme?: RichTextTheme;
254
+ /** Whether to show the serialized output preview below the input. */
255
+ showOutputPreview?: boolean;
256
+ /** Format used for the serialized output preview. */
257
+ outputFormat?: OutputFormat;
258
+ /** Callback when the serialized output changes. */
259
+ onChangeOutput?: (output: string, format: OutputFormat) => void;
242
260
  /** Whether multiline input is enabled. */
243
261
  multiline?: boolean;
244
262
  /** Minimum height for the input area. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../../../src/utils/formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,WAAW,EACX,YAAY,EACZ,cAAc,EACf,MAAM,UAAU,CAAC;AAUlB;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,aAAa,EAAE,EACzB,SAAS,EAAE,cAAc,EACzB,MAAM,EAAE,UAAU,GACjB,aAAa,EAAE,CAgBjB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,WAAW,EAC7D,QAAQ,EAAE,aAAa,EAAE,EACzB,SAAS,EAAE,cAAc,EACzB,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GACpB,aAAa,EAAE,CAOjB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,aAAa,EAAE,EACzB,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,YAAY,GAClB,aAAa,EAAE,CAWjB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,aAAa,EAAE,EACzB,SAAS,EAAE,cAAc,EACzB,MAAM,EAAE,UAAU,GACjB,OAAO,CAQT;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,aAAa,EAAE,EACzB,SAAS,EAAE,cAAc,GACxB,WAAW,CAwCb;AAgID,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../../../src/utils/formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,WAAW,EACX,YAAY,EACZ,cAAc,EACf,MAAM,UAAU,CAAC;AAQlB;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,aAAa,EAAE,EACzB,SAAS,EAAE,cAAc,EACzB,MAAM,EAAE,UAAU,GACjB,aAAa,EAAE,CAgBjB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,WAAW,EAC7D,QAAQ,EAAE,aAAa,EAAE,EACzB,SAAS,EAAE,cAAc,EACzB,GAAG,EAAE,CAAC,EACN,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GACpB,aAAa,EAAE,CAOjB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,aAAa,EAAE,EACzB,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,YAAY,GAClB,aAAa,EAAE,CASjB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,aAAa,EAAE,EACzB,SAAS,EAAE,cAAc,EACzB,MAAM,EAAE,UAAU,GACjB,OAAO,CAQT;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,aAAa,EAAE,EACzB,SAAS,EAAE,cAAc,GACxB,WAAW,CAwCb;AAgID,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { OutputFormat, StyledSegment } from '../types';
2
+ /**
3
+ * Serialize styled segments as Markdown or HTML.
4
+ */
5
+ export declare function serializeSegments(segments: StyledSegment[], format?: OutputFormat): string;
6
+ /**
7
+ * Convenience wrapper for Markdown output.
8
+ */
9
+ export declare function segmentsToMarkdown(segments: StyledSegment[]): string;
10
+ /**
11
+ * Convenience wrapper for HTML output.
12
+ */
13
+ export declare function segmentsToHTML(segments: StyledSegment[]): string;
14
+ //# sourceMappingURL=serializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../../../../src/utils/serializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,YAAY,EACZ,aAAa,EACd,MAAM,UAAU,CAAC;AAIlB;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,aAAa,EAAE,EACzB,MAAM,GAAE,YAAyB,GAChC,MAAM,CAGR;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,CAEpE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,CAEhE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-richify",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "A production-grade, fully customizable React Native Rich Text Input using the Overlay Technique — no WebView required.",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",