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
@@ -1 +1 @@
1
- {"version":3,"names":["_parser","require","_defaultStyles","toggleFormatOnSelection","segments","selection","format","start","end","normalizeSelection","selectedSegments","extractSegmentsInRange","allHaveFormat","every","s","styles","applyStyleToRange","setStyleOnSelection","key","value","setHeadingOnLine","level","plainText","segmentsToPlainText","lineStart","lineEnd","getLineRange","headingStyle","heading","fontSize","HEADING_FONT_SIZES","bold","undefined","isFormatActiveInSelection","selected","length","getSelectionStyle","pos","findPositionInSegments","segmentIndex","result","i","italic","underline","strikethrough","code","color","backgroundColor","Math","min","max","seg","segStart","segEnd","text","overlapStart","overlapEnd","push","createSegment","slice","styleDelta","newStyles","mergeAdjacentSegments","position"],"sourceRoot":"../../../src","sources":["utils/formatter.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_parser","require","toggleFormatOnSelection","segments","selection","format","start","end","normalizeSelection","selectedSegments","extractSegmentsInRange","allHaveFormat","every","s","styles","applyStyleToRange","setStyleOnSelection","key","value","setHeadingOnLine","level","plainText","segmentsToPlainText","lineStart","lineEnd","getLineRange","headingStyle","heading","undefined","isFormatActiveInSelection","selected","length","getSelectionStyle","pos","findPositionInSegments","segmentIndex","result","i","bold","italic","underline","strikethrough","code","color","backgroundColor","fontSize","Math","min","max","seg","segStart","segEnd","text","overlapStart","overlapEnd","push","createSegment","slice","styleDelta","newStyles","mergeAdjacentSegments","position"],"sourceRoot":"../../../src","sources":["utils/formatter.ts"],"mappings":";;;;;;;;;;;;;;;;AAOA,IAAAA,OAAA,GAAAC,OAAA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,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;AACO,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;AACO,SAASC,gBAAgBA,CAC9BhB,QAAyB,EACzBC,SAAyB,EACzBgB,KAAmB,EACF;EACjB,MAAMC,SAAS,GAAG,IAAAC,2BAAmB,EAACnB,QAAQ,CAAC;EAC/C,MAAM;IAAEoB,SAAS;IAAEC;EAAQ,CAAC,GAAGC,YAAY,CAACJ,SAAS,EAAEjB,SAAS,CAACE,KAAK,CAAC;EAEvE,MAAMoB,YAAkC,GAAG;IACzCC,OAAO,EAAEP,KAAK,KAAK,MAAM,GAAGQ,SAAS,GAAGR;EAC1C,CAAC;EAED,OAAOL,iBAAiB,CAACZ,QAAQ,EAAEoB,SAAS,EAAEC,OAAO,EAAEE,YAAY,CAAC;AACtE;;AAEA;AACA;AACA;AACO,SAASG,yBAAyBA,CACvC1B,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,MAAM0B,QAAQ,GAAGpB,sBAAsB,CAACP,QAAQ,EAAEG,KAAK,EAAEC,GAAG,CAAC;EAC7D,OAAOuB,QAAQ,CAACC,MAAM,GAAG,CAAC,IAAID,QAAQ,CAAClB,KAAK,CAAEC,CAAC,IAAK,CAAC,CAACA,CAAC,CAACC,MAAM,CAACT,MAAM,CAAC,CAAC;AACzE;;AAEA;AACA;AACA;AACA;AACO,SAAS2B,iBAAiBA,CAC/B7B,QAAyB,EACzBC,SAAyB,EACZ;EACb,IAAIA,SAAS,CAACE,KAAK,KAAKF,SAAS,CAACG,GAAG,EAAE;IACrC;IACA,MAAM0B,GAAG,GAAG,IAAAC,8BAAsB,EAAC/B,QAAQ,EAAEC,SAAS,CAACE,KAAK,CAAC;IAC7D,IAAIH,QAAQ,CAAC4B,MAAM,GAAG,CAAC,EAAE;MACvB,OAAO;QAAE,GAAG5B,QAAQ,CAAC8B,GAAG,CAACE,YAAY,CAAC,CAACrB;MAAO,CAAC;IACjD;IACA,OAAO,CAAC,CAAC;EACX;EAEA,MAAM;IAAER,KAAK;IAAEC;EAAI,CAAC,GAAGC,kBAAkB,CAACJ,SAAS,CAAC;EACpD,MAAM0B,QAAQ,GAAGpB,sBAAsB,CAACP,QAAQ,EAAEG,KAAK,EAAEC,GAAG,CAAC;EAE7D,IAAIuB,QAAQ,CAACC,MAAM,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;EAEpC,MAAMK,MAAmB,GAAG;IAAE,GAAGN,QAAQ,CAAC,CAAC,CAAC,CAAChB;EAAO,CAAC;EAErD,KAAK,IAAIuB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,QAAQ,CAACC,MAAM,EAAEM,CAAC,EAAE,EAAE;IACxC,MAAMxB,CAAC,GAAGiB,QAAQ,CAACO,CAAC,CAAC,CAACvB,MAAM;IAC5B,IAAIsB,MAAM,CAACE,IAAI,KAAKV,SAAS,IAAIQ,MAAM,CAACE,IAAI,KAAK,CAAC,CAACzB,CAAC,CAACyB,IAAI,EACvDF,MAAM,CAACE,IAAI,GAAGV,SAAS;IACzB,IAAIQ,MAAM,CAACG,MAAM,KAAKX,SAAS,IAAIQ,MAAM,CAACG,MAAM,KAAK,CAAC,CAAC1B,CAAC,CAAC0B,MAAM,EAC7DH,MAAM,CAACG,MAAM,GAAGX,SAAS;IAC3B,IAAIQ,MAAM,CAACI,SAAS,KAAKZ,SAAS,IAAIQ,MAAM,CAACI,SAAS,KAAK,CAAC,CAAC3B,CAAC,CAAC2B,SAAS,EACtEJ,MAAM,CAACI,SAAS,GAAGZ,SAAS;IAC9B,IACEQ,MAAM,CAACK,aAAa,KAAKb,SAAS,IAClCQ,MAAM,CAACK,aAAa,KAAK,CAAC,CAAC5B,CAAC,CAAC4B,aAAa,EAE1CL,MAAM,CAACK,aAAa,GAAGb,SAAS;IAClC,IAAIQ,MAAM,CAACM,IAAI,KAAKd,SAAS,IAAIQ,MAAM,CAACM,IAAI,KAAK,CAAC,CAAC7B,CAAC,CAAC6B,IAAI,EACvDN,MAAM,CAACM,IAAI,GAAGd,SAAS;IACzB,IAAIQ,MAAM,CAACO,KAAK,KAAK9B,CAAC,CAAC8B,KAAK,EAAEP,MAAM,CAACO,KAAK,GAAGf,SAAS;IACtD,IAAIQ,MAAM,CAACQ,eAAe,KAAK/B,CAAC,CAAC+B,eAAe,EAC9CR,MAAM,CAACQ,eAAe,GAAGhB,SAAS;IACpC,IAAIQ,MAAM,CAACS,QAAQ,KAAKhC,CAAC,CAACgC,QAAQ,EAAET,MAAM,CAACS,QAAQ,GAAGjB,SAAS;IAC/D,IAAIQ,MAAM,CAACT,OAAO,KAAKd,CAAC,CAACc,OAAO,EAAES,MAAM,CAACT,OAAO,GAAGC,SAAS;EAC9D;EAEA,OAAOQ,MAAM;AACf;;AAEA;;AAEA;AACA;AACA;AACA,SAAS5B,kBAAkBA,CAACJ,SAAyB,EAAkB;EACrE,OAAO;IACLE,KAAK,EAAEwC,IAAI,CAACC,GAAG,CAAC3C,SAAS,CAACE,KAAK,EAAEF,SAAS,CAACG,GAAG,CAAC;IAC/CA,GAAG,EAAEuC,IAAI,CAACE,GAAG,CAAC5C,SAAS,CAACE,KAAK,EAAEF,SAAS,CAACG,GAAG;EAC9C,CAAC;AACH;;AAEA;AACA;AACA;AACA,SAASG,sBAAsBA,CAC7BP,QAAyB,EACzBG,KAAa,EACbC,GAAW,EACM;EACjB,MAAM6B,MAAuB,GAAG,EAAE;EAClC,IAAIH,GAAG,GAAG,CAAC;EAEX,KAAK,MAAMgB,GAAG,IAAI9C,QAAQ,EAAE;IAC1B,MAAM+C,QAAQ,GAAGjB,GAAG;IACpB,MAAMkB,MAAM,GAAGlB,GAAG,GAAGgB,GAAG,CAACG,IAAI,CAACrB,MAAM;IAEpC,IAAIoB,MAAM,IAAI7C,KAAK,EAAE;MACnB2B,GAAG,GAAGkB,MAAM;MACZ;IACF;IACA,IAAID,QAAQ,IAAI3C,GAAG,EAAE;MACnB;IACF;;IAEA;IACA,MAAM8C,YAAY,GAAGP,IAAI,CAACE,GAAG,CAACE,QAAQ,EAAE5C,KAAK,CAAC;IAC9C,MAAMgD,UAAU,GAAGR,IAAI,CAACC,GAAG,CAACI,MAAM,EAAE5C,GAAG,CAAC;IACxC6B,MAAM,CAACmB,IAAI,CACT,IAAAC,qBAAa,EACXP,GAAG,CAACG,IAAI,CAACK,KAAK,CAACJ,YAAY,GAAGH,QAAQ,EAAEI,UAAU,GAAGJ,QAAQ,CAAC,EAC9DD,GAAG,CAACnC,MACN,CACF,CAAC;IAEDmB,GAAG,GAAGkB,MAAM;EACd;EAEA,OAAOf,MAAM;AACf;;AAEA;AACA;AACA;AACA;AACA,SAASrB,iBAAiBA,CACxBZ,QAAyB,EACzBG,KAAa,EACbC,GAAW,EACXmD,UAAgC,EACf;EACjB,MAAMtB,MAAuB,GAAG,EAAE;EAClC,IAAIH,GAAG,GAAG,CAAC;EAEX,KAAK,MAAMgB,GAAG,IAAI9C,QAAQ,EAAE;IAC1B,MAAM+C,QAAQ,GAAGjB,GAAG;IACpB,MAAMkB,MAAM,GAAGlB,GAAG,GAAGgB,GAAG,CAACG,IAAI,CAACrB,MAAM;IAEpC,IAAIoB,MAAM,IAAI7C,KAAK,IAAI4C,QAAQ,IAAI3C,GAAG,EAAE;MACtC;MACA6B,MAAM,CAACmB,IAAI,CAAC,IAAAC,qBAAa,EAACP,GAAG,CAACG,IAAI,EAAEH,GAAG,CAACnC,MAAM,CAAC,CAAC;IAClD,CAAC,MAAM;MACL;MACA,IAAIoC,QAAQ,GAAG5C,KAAK,EAAE;QACpB;QACA8B,MAAM,CAACmB,IAAI,CACT,IAAAC,qBAAa,EAACP,GAAG,CAACG,IAAI,CAACK,KAAK,CAAC,CAAC,EAAEnD,KAAK,GAAG4C,QAAQ,CAAC,EAAED,GAAG,CAACnC,MAAM,CAC/D,CAAC;MACH;;MAEA;MACA,MAAMuC,YAAY,GAAGP,IAAI,CAACE,GAAG,CAACE,QAAQ,EAAE5C,KAAK,CAAC;MAC9C,MAAMgD,UAAU,GAAGR,IAAI,CAACC,GAAG,CAACI,MAAM,EAAE5C,GAAG,CAAC;MACxC,MAAMoD,SAAS,GAAG;QAAE,GAAGV,GAAG,CAACnC,MAAM;QAAE,GAAG4C;MAAW,CAAC;MAClDtB,MAAM,CAACmB,IAAI,CACT,IAAAC,qBAAa,EACXP,GAAG,CAACG,IAAI,CAACK,KAAK,CAACJ,YAAY,GAAGH,QAAQ,EAAEI,UAAU,GAAGJ,QAAQ,CAAC,EAC9DS,SACF,CACF,CAAC;MAED,IAAIR,MAAM,GAAG5C,GAAG,EAAE;QAChB;QACA6B,MAAM,CAACmB,IAAI,CACT,IAAAC,qBAAa,EAACP,GAAG,CAACG,IAAI,CAACK,KAAK,CAAClD,GAAG,GAAG2C,QAAQ,CAAC,EAAED,GAAG,CAACnC,MAAM,CAC1D,CAAC;MACH;IACF;IAEAmB,GAAG,GAAGkB,MAAM;EACd;EAEA,OAAO,IAAAS,6BAAqB,EAACxB,MAAM,CAAC;AACtC;;AAEA;AACA;AACA;AACA,SAASX,YAAYA,CACnB2B,IAAY,EACZS,QAAgB,EACwB;EACxC,IAAItC,SAAS,GAAGsC,QAAQ;EACxB,OAAOtC,SAAS,GAAG,CAAC,IAAI6B,IAAI,CAAC7B,SAAS,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;IACpDA,SAAS,EAAE;EACb;EAEA,IAAIC,OAAO,GAAGqC,QAAQ;EACtB,OAAOrC,OAAO,GAAG4B,IAAI,CAACrB,MAAM,IAAIqB,IAAI,CAAC5B,OAAO,CAAC,KAAK,IAAI,EAAE;IACtDA,OAAO,EAAE;EACX;EAEA,OAAO;IAAED,SAAS;IAAEC;EAAQ,CAAC;AAC/B;;AAEA","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=serializer.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["utils/serializer.d.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.segmentsToHTML = segmentsToHTML;
7
+ exports.segmentsToMarkdown = segmentsToMarkdown;
8
+ exports.serializeSegments = serializeSegments;
9
+ /**
10
+ * Serialize styled segments as Markdown or HTML.
11
+ */
12
+ function serializeSegments(segments, format = 'markdown') {
13
+ const lines = splitSegmentsByLine(segments);
14
+ return lines.map(line => serializeLine(line, format)).join('\n');
15
+ }
16
+
17
+ /**
18
+ * Convenience wrapper for Markdown output.
19
+ */
20
+ function segmentsToMarkdown(segments) {
21
+ return serializeSegments(segments, 'markdown');
22
+ }
23
+
24
+ /**
25
+ * Convenience wrapper for HTML output.
26
+ */
27
+ function segmentsToHTML(segments) {
28
+ return serializeSegments(segments, 'html');
29
+ }
30
+ function splitSegmentsByLine(segments) {
31
+ const lines = [[]];
32
+ for (const segment of segments) {
33
+ const parts = segment.text.split('\n');
34
+ parts.forEach((part, index) => {
35
+ if (part.length > 0) {
36
+ lines[lines.length - 1]?.push({
37
+ text: part,
38
+ styles: {
39
+ ...segment.styles
40
+ }
41
+ });
42
+ }
43
+ if (index < parts.length - 1) {
44
+ lines.push([]);
45
+ }
46
+ });
47
+ }
48
+ return lines;
49
+ }
50
+ function serializeLine(line, format) {
51
+ const heading = getLineHeading(line);
52
+ const content = line.map(fragment => serializeFragment(fragment, format, heading)).join('');
53
+ if (format === 'html') {
54
+ const blockTag = heading ?? 'p';
55
+ return `<${blockTag}>${content}</${blockTag}>`;
56
+ }
57
+ const headingPrefix = getHeadingPrefix(heading);
58
+ if (!headingPrefix) {
59
+ return content;
60
+ }
61
+ return content.length > 0 ? `${headingPrefix} ${content}` : headingPrefix;
62
+ }
63
+ function serializeFragment(fragment, format, lineHeading) {
64
+ const normalizedStyles = {
65
+ ...fragment.styles,
66
+ heading: undefined,
67
+ // Markdown headings already express emphasis at the block level.
68
+ bold: lineHeading && lineHeading !== 'none' ? false : fragment.styles.bold
69
+ };
70
+ return format === 'html' ? serializeHtmlFragment(fragment.text, normalizedStyles) : serializeMarkdownFragment(fragment.text, normalizedStyles);
71
+ }
72
+ function serializeHtmlFragment(text, styles) {
73
+ let result = escapeHtml(text);
74
+ if (styles.code) {
75
+ result = `<code>${result}</code>`;
76
+ }
77
+ if (styles.bold) {
78
+ result = `<strong>${result}</strong>`;
79
+ }
80
+ if (styles.italic) {
81
+ result = `<em>${result}</em>`;
82
+ }
83
+ if (styles.underline) {
84
+ result = `<u>${result}</u>`;
85
+ }
86
+ if (styles.strikethrough) {
87
+ result = `<s>${result}</s>`;
88
+ }
89
+ const styleAttribute = buildInlineStyle(styles);
90
+ if (styleAttribute) {
91
+ result = `<span style="${styleAttribute}">${result}</span>`;
92
+ }
93
+ return result;
94
+ }
95
+ function serializeMarkdownFragment(text, styles) {
96
+ let result = escapeMarkdown(text);
97
+ if (styles.code) {
98
+ result = wrapInlineCode(text);
99
+ }
100
+ if (styles.bold) {
101
+ result = `**${result}**`;
102
+ }
103
+ if (styles.italic) {
104
+ result = `*${result}*`;
105
+ }
106
+ if (styles.strikethrough) {
107
+ result = `~~${result}~~`;
108
+ }
109
+ if (styles.underline) {
110
+ result = `<u>${result}</u>`;
111
+ }
112
+ const styleAttribute = buildInlineStyle(styles);
113
+ if (styleAttribute) {
114
+ result = `<span style="${styleAttribute}">${result}</span>`;
115
+ }
116
+ return result;
117
+ }
118
+ function buildInlineStyle(styles) {
119
+ const cssRules = [];
120
+ if (styles.color) {
121
+ cssRules.push(`color: ${styles.color}`);
122
+ }
123
+ if (styles.backgroundColor) {
124
+ cssRules.push(`background-color: ${styles.backgroundColor}`);
125
+ }
126
+ if (styles.fontSize) {
127
+ cssRules.push(`font-size: ${styles.fontSize}px`);
128
+ }
129
+ return cssRules.join('; ');
130
+ }
131
+ function getLineHeading(line) {
132
+ for (const fragment of line) {
133
+ if (fragment.styles.heading && fragment.styles.heading !== 'none') {
134
+ return fragment.styles.heading;
135
+ }
136
+ }
137
+ return undefined;
138
+ }
139
+ function getHeadingPrefix(heading) {
140
+ switch (heading) {
141
+ case 'h1':
142
+ return '#';
143
+ case 'h2':
144
+ return '##';
145
+ case 'h3':
146
+ return '###';
147
+ default:
148
+ return undefined;
149
+ }
150
+ }
151
+ function escapeHtml(text) {
152
+ return text.replaceAll('&', '&amp;').replaceAll('<', '&lt;').replaceAll('>', '&gt;').replaceAll('"', '&quot;').replaceAll("'", '&#39;');
153
+ }
154
+ function escapeMarkdown(text) {
155
+ return text.replace(/([\\`*_~[\]])/g, '\\$1');
156
+ }
157
+ function wrapInlineCode(text) {
158
+ const matches = text.match(/`+/g);
159
+ const longestBacktickRun = matches?.reduce((max, match) => Math.max(max, match.length), 0) ?? 0;
160
+ const fence = '`'.repeat(longestBacktickRun + 1);
161
+ return `${fence}${text}${fence}`;
162
+ }
163
+ //# 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":";;;;;;;;AASA;AACA;AACA;AACO,SAASA,iBAAiBA,CAC/BC,QAAyB,EACzBC,MAAoB,GAAG,UAAU,EACzB;EACR,MAAMC,KAAK,GAAGC,mBAAmB,CAACH,QAAQ,CAAC;EAC3C,OAAOE,KAAK,CAACE,GAAG,CAAEC,IAAI,IAAKC,aAAa,CAACD,IAAI,EAAEJ,MAAM,CAAC,CAAC,CAACM,IAAI,CAAC,IAAI,CAAC;AACpE;;AAEA;AACA;AACA;AACO,SAASC,kBAAkBA,CAACR,QAAyB,EAAU;EACpE,OAAOD,iBAAiB,CAACC,QAAQ,EAAE,UAAU,CAAC;AAChD;;AAEA;AACA;AACA;AACO,SAASS,cAAcA,CAACT,QAAyB,EAAU;EAChE,OAAOD,iBAAiB,CAACC,QAAQ,EAAE,MAAM,CAAC;AAC5C;AAEA,SAASG,mBAAmBA,CAACH,QAAyB,EAAoB;EACxE,MAAME,KAAuB,GAAG,CAAC,EAAE,CAAC;EAEpC,KAAK,MAAMQ,OAAO,IAAIV,QAAQ,EAAE;IAC9B,MAAMW,KAAK,GAAGD,OAAO,CAACE,IAAI,CAACC,KAAK,CAAC,IAAI,CAAC;IAEtCF,KAAK,CAACG,OAAO,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;MAC7B,IAAID,IAAI,CAACE,MAAM,GAAG,CAAC,EAAE;QACnBf,KAAK,CAACA,KAAK,CAACe,MAAM,GAAG,CAAC,CAAC,EAAEC,IAAI,CAAC;UAC5BN,IAAI,EAAEG,IAAI;UACVI,MAAM,EAAE;YAAE,GAAGT,OAAO,CAACS;UAAO;QAC9B,CAAC,CAAC;MACJ;MAEA,IAAIH,KAAK,GAAGL,KAAK,CAACM,MAAM,GAAG,CAAC,EAAE;QAC5Bf,KAAK,CAACgB,IAAI,CAAC,EAAE,CAAC;MAChB;IACF,CAAC,CAAC;EACJ;EAEA,OAAOhB,KAAK;AACd;AAEA,SAASI,aAAaA,CACpBD,IAAoB,EACpBJ,MAAoB,EACZ;EACR,MAAMmB,OAAO,GAAGC,cAAc,CAAChB,IAAI,CAAC;EACpC,MAAMiB,OAAO,GAAGjB,IAAI,CACjBD,GAAG,CAAEmB,QAAQ,IAAKC,iBAAiB,CAACD,QAAQ,EAAEtB,MAAM,EAAEmB,OAAO,CAAC,CAAC,CAC/Db,IAAI,CAAC,EAAE,CAAC;EAEX,IAAIN,MAAM,KAAK,MAAM,EAAE;IACrB,MAAMwB,QAAQ,GAAGL,OAAO,IAAI,GAAG;IAC/B,OAAO,IAAIK,QAAQ,IAAIH,OAAO,KAAKG,QAAQ,GAAG;EAChD;EAEA,MAAMC,aAAa,GAAGC,gBAAgB,CAACP,OAAO,CAAC;EAC/C,IAAI,CAACM,aAAa,EAAE;IAClB,OAAOJ,OAAO;EAChB;EAEA,OAAOA,OAAO,CAACL,MAAM,GAAG,CAAC,GAAG,GAAGS,aAAa,IAAIJ,OAAO,EAAE,GAAGI,aAAa;AAC3E;AAEA,SAASF,iBAAiBA,CACxBD,QAAsB,EACtBtB,MAAoB,EACpB2B,WAA0B,EAClB;EACR,MAAMC,gBAA6B,GAAG;IACpC,GAAGN,QAAQ,CAACJ,MAAM;IAClBC,OAAO,EAAEU,SAAS;IAClB;IACAC,IAAI,EACFH,WAAW,IAAIA,WAAW,KAAK,MAAM,GAAG,KAAK,GAAGL,QAAQ,CAACJ,MAAM,CAACY;EACpE,CAAC;EAED,OAAO9B,MAAM,KAAK,MAAM,GACpB+B,qBAAqB,CAACT,QAAQ,CAACX,IAAI,EAAEiB,gBAAgB,CAAC,GACtDI,yBAAyB,CAACV,QAAQ,CAACX,IAAI,EAAEiB,gBAAgB,CAAC;AAChE;AAEA,SAASG,qBAAqBA,CAACpB,IAAY,EAAEO,MAAmB,EAAU;EACxE,IAAIe,MAAM,GAAGC,UAAU,CAACvB,IAAI,CAAC;EAE7B,IAAIO,MAAM,CAACiB,IAAI,EAAE;IACfF,MAAM,GAAG,SAASA,MAAM,SAAS;EACnC;EAEA,IAAIf,MAAM,CAACY,IAAI,EAAE;IACfG,MAAM,GAAG,WAAWA,MAAM,WAAW;EACvC;EAEA,IAAIf,MAAM,CAACkB,MAAM,EAAE;IACjBH,MAAM,GAAG,OAAOA,MAAM,OAAO;EAC/B;EAEA,IAAIf,MAAM,CAACmB,SAAS,EAAE;IACpBJ,MAAM,GAAG,MAAMA,MAAM,MAAM;EAC7B;EAEA,IAAIf,MAAM,CAACoB,aAAa,EAAE;IACxBL,MAAM,GAAG,MAAMA,MAAM,MAAM;EAC7B;EAEA,MAAMM,cAAc,GAAGC,gBAAgB,CAACtB,MAAM,CAAC;EAC/C,IAAIqB,cAAc,EAAE;IAClBN,MAAM,GAAG,gBAAgBM,cAAc,KAAKN,MAAM,SAAS;EAC7D;EAEA,OAAOA,MAAM;AACf;AAEA,SAASD,yBAAyBA,CAACrB,IAAY,EAAEO,MAAmB,EAAU;EAC5E,IAAIe,MAAM,GAAGQ,cAAc,CAAC9B,IAAI,CAAC;EAEjC,IAAIO,MAAM,CAACiB,IAAI,EAAE;IACfF,MAAM,GAAGS,cAAc,CAAC/B,IAAI,CAAC;EAC/B;EAEA,IAAIO,MAAM,CAACY,IAAI,EAAE;IACfG,MAAM,GAAG,KAAKA,MAAM,IAAI;EAC1B;EAEA,IAAIf,MAAM,CAACkB,MAAM,EAAE;IACjBH,MAAM,GAAG,IAAIA,MAAM,GAAG;EACxB;EAEA,IAAIf,MAAM,CAACoB,aAAa,EAAE;IACxBL,MAAM,GAAG,KAAKA,MAAM,IAAI;EAC1B;EAEA,IAAIf,MAAM,CAACmB,SAAS,EAAE;IACpBJ,MAAM,GAAG,MAAMA,MAAM,MAAM;EAC7B;EAEA,MAAMM,cAAc,GAAGC,gBAAgB,CAACtB,MAAM,CAAC;EAC/C,IAAIqB,cAAc,EAAE;IAClBN,MAAM,GAAG,gBAAgBM,cAAc,KAAKN,MAAM,SAAS;EAC7D;EAEA,OAAOA,MAAM;AACf;AAEA,SAASO,gBAAgBA,CAACtB,MAAmB,EAAU;EACrD,MAAMyB,QAAkB,GAAG,EAAE;EAE7B,IAAIzB,MAAM,CAAC0B,KAAK,EAAE;IAChBD,QAAQ,CAAC1B,IAAI,CAAC,UAAUC,MAAM,CAAC0B,KAAK,EAAE,CAAC;EACzC;EAEA,IAAI1B,MAAM,CAAC2B,eAAe,EAAE;IAC1BF,QAAQ,CAAC1B,IAAI,CAAC,qBAAqBC,MAAM,CAAC2B,eAAe,EAAE,CAAC;EAC9D;EAEA,IAAI3B,MAAM,CAAC4B,QAAQ,EAAE;IACnBH,QAAQ,CAAC1B,IAAI,CAAC,cAAcC,MAAM,CAAC4B,QAAQ,IAAI,CAAC;EAClD;EAEA,OAAOH,QAAQ,CAACrC,IAAI,CAAC,IAAI,CAAC;AAC5B;AAEA,SAASc,cAAcA,CAAChB,IAAoB,EAA4B;EACtE,KAAK,MAAMkB,QAAQ,IAAIlB,IAAI,EAAE;IAC3B,IAAIkB,QAAQ,CAACJ,MAAM,CAACC,OAAO,IAAIG,QAAQ,CAACJ,MAAM,CAACC,OAAO,KAAK,MAAM,EAAE;MACjE,OAAOG,QAAQ,CAACJ,MAAM,CAACC,OAAO;IAChC;EACF;EAEA,OAAOU,SAAS;AAClB;AAEA,SAASH,gBAAgBA,CAACP,OAAsB,EAAsB;EACpE,QAAQA,OAAO;IACb,KAAK,IAAI;MACP,OAAO,GAAG;IACZ,KAAK,IAAI;MACP,OAAO,IAAI;IACb,KAAK,IAAI;MACP,OAAO,KAAK;IACd;MACE,OAAOU,SAAS;EACpB;AACF;AAEA,SAASK,UAAUA,CAACvB,IAAY,EAAU;EACxC,OAAOA,IAAI,CACRoC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CACxBA,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CACvBA,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CACvBA,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CACzBA,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC;AAC7B;AAEA,SAASN,cAAcA,CAAC9B,IAAY,EAAU;EAC5C,OAAOA,IAAI,CAACqC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC;AAC/C;AAEA,SAASN,cAAcA,CAAC/B,IAAY,EAAU;EAC5C,MAAMsC,OAAO,GAAGtC,IAAI,CAACuC,KAAK,CAAC,KAAK,CAAC;EACjC,MAAMC,kBAAkB,GAAGF,OAAO,EAAEG,MAAM,CACxC,CAACC,GAAG,EAAEH,KAAK,KAAKI,IAAI,CAACD,GAAG,CAACA,GAAG,EAAEH,KAAK,CAAClC,MAAM,CAAC,EAC3C,CACF,CAAC,IAAI,CAAC;EACN,MAAMuC,KAAK,GAAG,GAAG,CAACC,MAAM,CAACL,kBAAkB,GAAG,CAAC,CAAC;EAEhD,OAAO,GAAGI,KAAK,GAAG5C,IAAI,GAAG4C,KAAK,EAAE;AAClC","ignoreList":[]}
@@ -1,31 +1,22 @@
1
1
  "use strict";
2
2
 
3
- import React, { useEffect, useCallback } from 'react';
4
- import { View, TextInput, StyleSheet } from 'react-native';
3
+ import React, { useEffect, useCallback, useMemo, useRef } from 'react';
4
+ import { Animated, Easing, ScrollView, StyleSheet, Text, TextInput, View } from 'react-native';
5
5
  import { DEFAULT_THEME } from '../constants/defaultStyles';
6
- import { segmentsToPlainText } from '../utils/parser';
7
6
  import { useRichText } from '../hooks/useRichText';
8
- import { OverlayText } from './OverlayText';
7
+ import { segmentsToPlainText } from '../utils/parser';
8
+ import { serializeSegments } from '../utils/serializer';
9
9
  import { Toolbar } from './Toolbar';
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ const OUTPUT_PANEL_HEIGHT = 180;
12
+ const isJestRuntime = typeof globalThis.process?.env?.JEST_WORKER_ID === 'string';
10
13
 
11
14
  /**
12
15
  * RichTextInput — The main rich text editor component.
13
16
  *
14
- * Uses the Overlay Technique:
15
- * - A transparent `TextInput` on top captures user input and selection
16
- * - A styled `<Text>` layer behind it renders the formatted content
17
- * - Both share identical font metrics for pixel-perfect alignment
18
- *
19
- * @example
20
- * ```tsx
21
- * <RichTextInput
22
- * placeholder="Start typing..."
23
- * showToolbar
24
- * onChangeSegments={(segments) => console.log(segments)}
25
- * />
26
- * ```
17
+ * Uses a plain `TextInput` for editing and renders the serialized rich output
18
+ * below it as Markdown or HTML.
27
19
  */
28
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
29
20
  export const RichTextInput = ({
30
21
  initialSegments,
31
22
  onChangeSegments,
@@ -37,6 +28,9 @@ export const RichTextInput = ({
37
28
  toolbarPosition = 'top',
38
29
  toolbarItems,
39
30
  theme,
31
+ showOutputPreview = true,
32
+ outputFormat = 'markdown',
33
+ onChangeOutput,
40
34
  multiline = true,
41
35
  minHeight = 120,
42
36
  maxHeight,
@@ -46,6 +40,7 @@ export const RichTextInput = ({
46
40
  onReady
47
41
  }) => {
48
42
  const resolvedTheme = theme ?? DEFAULT_THEME;
43
+ const previewProgress = useRef(new Animated.Value(0)).current;
49
44
  const {
50
45
  state,
51
46
  actions
@@ -54,16 +49,27 @@ export const RichTextInput = ({
54
49
  onChangeSegments,
55
50
  onChangeText
56
51
  });
57
-
58
- // Expose actions via onReady callback
59
52
  useEffect(() => {
60
53
  onReady?.(actions);
61
- }, [onReady, actions]);
62
-
63
- // Build plain text for the TextInput value
54
+ }, [actions, onReady]);
64
55
  const plainText = segmentsToPlainText(state.segments);
65
-
66
- // Handle selection change from TextInput
56
+ const serializedOutput = useMemo(() => serializeSegments(state.segments, outputFormat), [outputFormat, state.segments]);
57
+ const shouldShowOutputPreview = showOutputPreview && plainText.length > 0;
58
+ useEffect(() => {
59
+ onChangeOutput?.(serializedOutput, outputFormat);
60
+ }, [onChangeOutput, outputFormat, serializedOutput]);
61
+ useEffect(() => {
62
+ if (isJestRuntime) {
63
+ previewProgress.setValue(shouldShowOutputPreview ? 1 : 0);
64
+ return;
65
+ }
66
+ Animated.timing(previewProgress, {
67
+ toValue: shouldShowOutputPreview ? 1 : 0,
68
+ duration: 180,
69
+ easing: Easing.out(Easing.cubic),
70
+ useNativeDriver: false
71
+ }).start();
72
+ }, [previewProgress, shouldShowOutputPreview]);
67
73
  const onSelectionChange = useCallback(e => {
68
74
  const {
69
75
  start,
@@ -74,21 +80,33 @@ export const RichTextInput = ({
74
80
  end
75
81
  });
76
82
  }, [actions]);
77
-
78
- // Container style
79
83
  const containerStyle = [resolvedTheme.containerStyle ?? DEFAULT_THEME.containerStyle];
80
-
81
- // Input area style
82
84
  const inputAreaStyle = [styles.inputArea, {
83
85
  minHeight
84
86
  }, maxHeight ? {
85
87
  maxHeight
86
88
  } : undefined];
87
-
88
- // Input style
89
- const inputStyle = [styles.textInput, resolvedTheme.baseTextStyle ?? DEFAULT_THEME.baseTextStyle, resolvedTheme.inputStyle ?? DEFAULT_THEME.inputStyle, textInputProps?.style, styles.hiddenInputText];
90
-
91
- // Toolbar component
89
+ const inputStyle = [styles.textInput, resolvedTheme.baseTextStyle ?? DEFAULT_THEME.baseTextStyle, resolvedTheme.inputStyle ?? DEFAULT_THEME.inputStyle, textInputProps?.style];
90
+ const outputAnimatedStyle = {
91
+ maxHeight: previewProgress.interpolate({
92
+ inputRange: [0, 1],
93
+ outputRange: [0, OUTPUT_PANEL_HEIGHT]
94
+ }),
95
+ opacity: previewProgress,
96
+ marginTop: previewProgress.interpolate({
97
+ inputRange: [0, 1],
98
+ outputRange: [0, 12]
99
+ }),
100
+ transform: [{
101
+ translateY: previewProgress.interpolate({
102
+ inputRange: [0, 1],
103
+ outputRange: [-8, 0]
104
+ })
105
+ }]
106
+ };
107
+ const outputContainerStyle = [resolvedTheme.outputContainerStyle ?? DEFAULT_THEME.outputContainerStyle];
108
+ const outputLabelStyle = [resolvedTheme.outputLabelStyle ?? DEFAULT_THEME.outputLabelStyle];
109
+ const outputTextStyle = [resolvedTheme.outputTextStyle ?? DEFAULT_THEME.outputTextStyle];
92
110
  const toolbarComponent = showToolbar ? /*#__PURE__*/_jsx(Toolbar, {
93
111
  actions: actions,
94
112
  state: state,
@@ -96,8 +114,6 @@ export const RichTextInput = ({
96
114
  theme: resolvedTheme,
97
115
  renderToolbar: renderToolbar
98
116
  }) : null;
99
-
100
- // Toolbar border
101
117
  const toolbarBorderStyle = toolbarPosition === 'top' ? {
102
118
  borderBottomWidth: 1,
103
119
  borderBottomColor: resolvedTheme.colors?.toolbarBorder ?? DEFAULT_THEME.colors?.toolbarBorder
@@ -112,11 +128,7 @@ export const RichTextInput = ({
112
128
  children: toolbarComponent
113
129
  }), /*#__PURE__*/_jsxs(View, {
114
130
  style: inputAreaStyle,
115
- children: [/*#__PURE__*/_jsx(OverlayText, {
116
- segments: state.segments,
117
- baseTextStyle: resolvedTheme.baseTextStyle,
118
- theme: resolvedTheme
119
- }), /*#__PURE__*/_jsx(TextInput, {
131
+ children: [/*#__PURE__*/_jsx(TextInput, {
120
132
  ...textInputProps,
121
133
  style: inputStyle,
122
134
  value: plainText,
@@ -128,10 +140,26 @@ export const RichTextInput = ({
128
140
  editable: editable,
129
141
  maxLength: maxLength,
130
142
  autoFocus: autoFocus,
131
- underlineColorAndroid: "transparent",
132
143
  selectionColor: resolvedTheme.colors?.cursor ?? DEFAULT_THEME.colors?.cursor,
133
144
  textAlignVertical: "top",
134
145
  scrollEnabled: typeof maxHeight === 'number'
146
+ }), showOutputPreview && /*#__PURE__*/_jsx(Animated.View, {
147
+ pointerEvents: shouldShowOutputPreview ? 'auto' : 'none',
148
+ style: [styles.outputAnimatedWrapper, outputAnimatedStyle],
149
+ children: /*#__PURE__*/_jsxs(View, {
150
+ style: outputContainerStyle,
151
+ children: [/*#__PURE__*/_jsx(Text, {
152
+ style: outputLabelStyle,
153
+ children: outputFormat === 'html' ? 'HTML output' : 'Markdown output'
154
+ }), /*#__PURE__*/_jsx(ScrollView, {
155
+ showsVerticalScrollIndicator: false,
156
+ children: /*#__PURE__*/_jsx(Text, {
157
+ selectable: true,
158
+ style: outputTextStyle,
159
+ children: serializedOutput
160
+ })
161
+ })]
162
+ })
135
163
  })]
136
164
  }), toolbarPosition === 'bottom' && toolbarComponent && /*#__PURE__*/_jsx(View, {
137
165
  style: toolbarBorderStyle,
@@ -145,14 +173,10 @@ const styles = StyleSheet.create({
145
173
  position: 'relative'
146
174
  },
147
175
  textInput: {
148
- position: 'relative',
149
- zIndex: 1
176
+ position: 'relative'
150
177
  },
151
- hiddenInputText: {
152
- // Keep the editable layer invisible while preserving the caret.
153
- color: 'transparent',
154
- backgroundColor: 'transparent',
155
- textShadowColor: 'transparent'
178
+ outputAnimatedWrapper: {
179
+ overflow: 'hidden'
156
180
  }
157
181
  });
158
182
  //# sourceMappingURL=RichTextInput.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useCallback","View","TextInput","StyleSheet","DEFAULT_THEME","segmentsToPlainText","useRichText","OverlayText","Toolbar","jsx","_jsx","jsxs","_jsxs","RichTextInput","initialSegments","onChangeSegments","onChangeText","placeholder","editable","maxLength","showToolbar","toolbarPosition","toolbarItems","theme","multiline","minHeight","maxHeight","autoFocus","textInputProps","renderToolbar","onReady","resolvedTheme","state","actions","plainText","segments","onSelectionChange","e","start","end","nativeEvent","selection","handleSelectionChange","containerStyle","inputAreaStyle","styles","inputArea","undefined","inputStyle","textInput","baseTextStyle","style","hiddenInputText","toolbarComponent","items","toolbarBorderStyle","borderBottomWidth","borderBottomColor","colors","toolbarBorder","borderTopWidth","borderTopColor","children","value","handleTextChange","placeholderTextColor","underlineColorAndroid","selectionColor","cursor","textAlignVertical","scrollEnabled","displayName","create","position","zIndex","color","backgroundColor","textShadowColor"],"sourceRoot":"../../../src","sources":["components/RichTextInput.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,WAAW,QAAQ,OAAO;AACrD,SACEC,IAAI,EACJC,SAAS,EACTC,UAAU,QAGL,cAAc;AAErB,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,mBAAmB,QAAQ,iBAAiB;AACrD,SAASC,WAAW,QAAQ,sBAAsB;AAClD,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,OAAO,QAAQ,WAAW;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAhBA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAiBA,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,SAAS,GAAG,IAAI;EAChBC,SAAS,GAAG,GAAG;EACfC,SAAS;EACTC,SAAS,GAAG,KAAK;EACjBC,cAAc;EACdC,aAAa;EACbC;AACF,CAAC,KAAK;EACJ,MAAMC,aAAa,GAAGR,KAAK,IAAInB,aAAa;EAE5C,MAAM;IAAE4B,KAAK;IAAEC;EAAQ,CAAC,GAAG3B,WAAW,CAAC;IACrCQ,eAAe;IACfC,gBAAgB;IAChBC;EACF,CAAC,CAAC;;EAEF;EACAjB,SAAS,CAAC,MAAM;IACd+B,OAAO,GAAGG,OAAO,CAAC;EACpB,CAAC,EAAE,CAACH,OAAO,EAAEG,OAAO,CAAC,CAAC;;EAEtB;EACA,MAAMC,SAAS,GAAG7B,mBAAmB,CAAC2B,KAAK,CAACG,QAAQ,CAAC;;EAErD;EACA,MAAMC,iBAAiB,GAAGpC,WAAW,CAClCqC,CAA0D,IAAK;IAC9D,MAAM;MAAEC,KAAK;MAAEC;IAAI,CAAC,GAAGF,CAAC,CAACG,WAAW,CAACC,SAAS;IAC9CR,OAAO,CAACS,qBAAqB,CAAC;MAAEJ,KAAK;MAAEC;IAAI,CAAC,CAAC;EAC/C,CAAC,EACD,CAACN,OAAO,CACV,CAAC;;EAED;EACA,MAAMU,cAAc,GAAG,CACrBZ,aAAa,CAACY,cAAc,IAAIvC,aAAa,CAACuC,cAAc,CAC7D;;EAED;EACA,MAAMC,cAAc,GAAG,CACrBC,MAAM,CAACC,SAAS,EAChB;IAAErB;EAAU,CAAC,EACbC,SAAS,GAAG;IAAEA;EAAU,CAAC,GAAGqB,SAAS,CACtC;;EAED;EACA,MAAMC,UAAU,GAAG,CACjBH,MAAM,CAACI,SAAS,EAChBlB,aAAa,CAACmB,aAAa,IAAI9C,aAAa,CAAC8C,aAAa,EAC1DnB,aAAa,CAACiB,UAAU,IAAI5C,aAAa,CAAC4C,UAAU,EACpDpB,cAAc,EAAEuB,KAAK,EACrBN,MAAM,CAACO,eAAe,CACvB;;EAED;EACA,MAAMC,gBAAgB,GAAGjC,WAAW,gBAClCV,IAAA,CAACF,OAAO;IACNyB,OAAO,EAAEA,OAAQ;IACjBD,KAAK,EAAEA,KAAM;IACbsB,KAAK,EAAEhC,YAAa;IACpBC,KAAK,EAAEQ,aAAc;IACrBF,aAAa,EAAEA;EAAc,CAC9B,CAAC,GACA,IAAI;;EAER;EACA,MAAM0B,kBAAkB,GACtBlC,eAAe,KAAK,KAAK,GACrB;IAAEmC,iBAAiB,EAAE,CAAC;IAAEC,iBAAiB,EAAE1B,aAAa,CAAC2B,MAAM,EAAEC,aAAa,IAAIvD,aAAa,CAACsD,MAAM,EAAEC;EAAc,CAAC,GACvH;IAAEC,cAAc,EAAE,CAAC;IAAEC,cAAc,EAAE9B,aAAa,CAAC2B,MAAM,EAAEC,aAAa,IAAIvD,aAAa,CAACsD,MAAM,EAAEC;EAAc,CAAC;EAEvH,oBACE/C,KAAA,CAACX,IAAI;IAACkD,KAAK,EAAER,cAAe;IAAAmB,QAAA,GAEzBzC,eAAe,KAAK,KAAK,IAAIgC,gBAAgB,iBAC5C3C,IAAA,CAACT,IAAI;MAACkD,KAAK,EAAEI,kBAAmB;MAAAO,QAAA,EAAET;IAAgB,CAAO,CAC1D,eAGDzC,KAAA,CAACX,IAAI;MAACkD,KAAK,EAAEP,cAAe;MAAAkB,QAAA,gBAE1BpD,IAAA,CAACH,WAAW;QACV4B,QAAQ,EAAEH,KAAK,CAACG,QAAS;QACzBe,aAAa,EAAEnB,aAAa,CAACmB,aAAc;QAC3C3B,KAAK,EAAEQ;MAAc,CACtB,CAAC,eAGFrB,IAAA,CAACR,SAAS;QAAA,GACJ0B,cAAc;QAClBuB,KAAK,EAAEH,UAAW;QAClBe,KAAK,EAAE7B,SAAU;QACjBlB,YAAY,EAAEiB,OAAO,CAAC+B,gBAAiB;QACvC5B,iBAAiB,EAAEA,iBAAkB;QACrCZ,SAAS,EAAEA,SAAU;QACrBP,WAAW,EAAEA,WAAY;QACzBgD,oBAAoB,EAClBlC,aAAa,CAAC2B,MAAM,EAAEzC,WAAW,IACjCb,aAAa,CAACsD,MAAM,EAAEzC,WACvB;QACDC,QAAQ,EAAEA,QAAS;QACnBC,SAAS,EAAEA,SAAU;QACrBQ,SAAS,EAAEA,SAAU;QACrBuC,qBAAqB,EAAC,aAAa;QACnCC,cAAc,EACZpC,aAAa,CAAC2B,MAAM,EAAEU,MAAM,IAAIhE,aAAa,CAACsD,MAAM,EAAEU,MACvD;QACDC,iBAAiB,EAAC,KAAK;QACvBC,aAAa,EAAE,OAAO5C,SAAS,KAAK;MAAS,CAC9C,CAAC;IAAA,CACE,CAAC,EAGNL,eAAe,KAAK,QAAQ,IAAIgC,gBAAgB,iBAC/C3C,IAAA,CAACT,IAAI;MAACkD,KAAK,EAAEI,kBAAmB;MAAAO,QAAA,EAAET;IAAgB,CAAO,CAC1D;EAAA,CACG,CAAC;AAEX,CAAC;AAEDxC,aAAa,CAAC0D,WAAW,GAAG,eAAe;AAE3C,MAAM1B,MAAM,GAAG1C,UAAU,CAACqE,MAAM,CAAC;EAC/B1B,SAAS,EAAE;IACT2B,QAAQ,EAAE;EACZ,CAAC;EACDxB,SAAS,EAAE;IACTwB,QAAQ,EAAE,UAAU;IACpBC,MAAM,EAAE;EACV,CAAC;EACDtB,eAAe,EAAE;IACf;IACAuB,KAAK,EAAE,aAAa;IACpBC,eAAe,EAAE,aAAa;IAC9BC,eAAe,EAAE;EACnB;AACF,CAAC,CAAC","ignoreList":[]}
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":[]}
@@ -10,6 +10,8 @@ export const DEFAULT_COLORS = {
10
10
  placeholder: '#9CA3AF',
11
11
  toolbarBackground: '#F9FAFB',
12
12
  toolbarBorder: '#E5E7EB',
13
+ outputBackground: '#F8FAFC',
14
+ outputLabel: '#475569',
13
15
  cursor: '#6366F1',
14
16
  activeButtonBg: '#EEF2FF',
15
17
  codeBackground: '#F3F4F6'
@@ -64,7 +66,7 @@ export const DEFAULT_THEME = {
64
66
  inputStyle: {
65
67
  fontSize: DEFAULT_BASE_TEXT_STYLE.fontSize,
66
68
  lineHeight: DEFAULT_BASE_TEXT_STYLE.lineHeight,
67
- color: 'transparent',
69
+ color: DEFAULT_COLORS.text,
68
70
  paddingHorizontal: 16,
69
71
  paddingVertical: 12,
70
72
  textAlignVertical: 'top'
@@ -83,6 +85,29 @@ export const DEFAULT_THEME = {
83
85
  lineHeight: DEFAULT_BASE_TEXT_STYLE.lineHeight,
84
86
  color: DEFAULT_COLORS.text
85
87
  },
88
+ outputContainerStyle: {
89
+ marginHorizontal: 12,
90
+ marginBottom: 12,
91
+ padding: 12,
92
+ borderRadius: 10,
93
+ borderWidth: 1,
94
+ borderColor: DEFAULT_COLORS.toolbarBorder,
95
+ backgroundColor: DEFAULT_COLORS.outputBackground
96
+ },
97
+ outputLabelStyle: {
98
+ marginBottom: 8,
99
+ fontSize: 12,
100
+ fontWeight: '700',
101
+ letterSpacing: 0.4,
102
+ color: DEFAULT_COLORS.outputLabel,
103
+ textTransform: 'uppercase'
104
+ },
105
+ outputTextStyle: {
106
+ fontSize: 14,
107
+ lineHeight: 20,
108
+ color: DEFAULT_COLORS.text,
109
+ fontFamily: 'monospace'
110
+ },
86
111
  toolbarStyle: {
87
112
  flexDirection: 'row',
88
113
  alignItems: 'center',
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_COLORS","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","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":[]}
@@ -40,9 +40,15 @@ export function useFormatting({
40
40
  }
41
41
  }, [segments, selection, activeStyles, onSegmentsChange, onActiveStylesChange]);
42
42
  const setHeading = useCallback(level => {
43
+ if (selection.start === selection.end) {
44
+ onActiveStylesChange({
45
+ ...activeStyles,
46
+ heading: level === 'none' ? undefined : level
47
+ });
48
+ }
43
49
  const newSegments = setHeadingOnLine(segments, selection, level);
44
50
  onSegmentsChange(newSegments);
45
- }, [segments, selection, onSegmentsChange]);
51
+ }, [activeStyles, onActiveStylesChange, onSegmentsChange, segments, selection]);
46
52
  const setColor = useCallback(color => {
47
53
  setStyleProperty('color', color);
48
54
  }, [setStyleProperty]);
@@ -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","setColor","color","setBackgroundColor","setFontSize","size","isFormatActive","currentSelectionStyle"],"sourceRoot":"../../../src","sources":["hooks/useFormatting.ts"],"mappings":"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","ignoreList":[]}
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":"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","ignoreList":[]}