react-native-richify 1.0.3 → 1.0.5

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 (90) hide show
  1. package/lib/commonjs/components/RenderedOutput.js +168 -0
  2. package/lib/commonjs/components/RenderedOutput.js.map +1 -0
  3. package/lib/commonjs/components/RichTextInput.js +196 -52
  4. package/lib/commonjs/components/RichTextInput.js.map +1 -1
  5. package/lib/commonjs/components/Toolbar.js +41 -2
  6. package/lib/commonjs/components/Toolbar.js.map +1 -1
  7. package/lib/commonjs/constants/defaultStyles.js +81 -2
  8. package/lib/commonjs/constants/defaultStyles.js.map +1 -1
  9. package/lib/commonjs/hooks/useFormatting.js +46 -2
  10. package/lib/commonjs/hooks/useFormatting.js.map +1 -1
  11. package/lib/commonjs/hooks/useRichText.js +130 -12
  12. package/lib/commonjs/hooks/useRichText.js.map +1 -1
  13. package/lib/commonjs/index.d.js +19 -0
  14. package/lib/commonjs/index.d.js.map +1 -1
  15. package/lib/commonjs/index.js +19 -0
  16. package/lib/commonjs/index.js.map +1 -1
  17. package/lib/commonjs/utils/formatter.js +48 -12
  18. package/lib/commonjs/utils/formatter.js.map +1 -1
  19. package/lib/commonjs/utils/parser.js +1 -1
  20. package/lib/commonjs/utils/parser.js.map +1 -1
  21. package/lib/commonjs/utils/serializer.d.js +6 -0
  22. package/lib/commonjs/utils/serializer.d.js.map +1 -0
  23. package/lib/commonjs/utils/serializer.js +259 -0
  24. package/lib/commonjs/utils/serializer.js.map +1 -0
  25. package/lib/commonjs/utils/styleMapper.js +11 -0
  26. package/lib/commonjs/utils/styleMapper.js.map +1 -1
  27. package/lib/module/components/RenderedOutput.js +163 -0
  28. package/lib/module/components/RenderedOutput.js.map +1 -0
  29. package/lib/module/components/RichTextInput.js +198 -55
  30. package/lib/module/components/RichTextInput.js.map +1 -1
  31. package/lib/module/components/Toolbar.js +41 -2
  32. package/lib/module/components/Toolbar.js.map +1 -1
  33. package/lib/module/constants/defaultStyles.js +81 -2
  34. package/lib/module/constants/defaultStyles.js.map +1 -1
  35. package/lib/module/hooks/useFormatting.js +47 -3
  36. package/lib/module/hooks/useFormatting.js.map +1 -1
  37. package/lib/module/hooks/useRichText.js +130 -12
  38. package/lib/module/hooks/useRichText.js.map +1 -1
  39. package/lib/module/index.d.js +1 -0
  40. package/lib/module/index.d.js.map +1 -1
  41. package/lib/module/index.js +1 -0
  42. package/lib/module/index.js.map +1 -1
  43. package/lib/module/utils/formatter.js +46 -12
  44. package/lib/module/utils/formatter.js.map +1 -1
  45. package/lib/module/utils/parser.js +1 -1
  46. package/lib/module/utils/parser.js.map +1 -1
  47. package/lib/module/utils/serializer.d.js +4 -0
  48. package/lib/module/utils/serializer.d.js.map +1 -0
  49. package/lib/module/utils/serializer.js +253 -0
  50. package/lib/module/utils/serializer.js.map +1 -0
  51. package/lib/module/utils/styleMapper.js +11 -0
  52. package/lib/module/utils/styleMapper.js.map +1 -1
  53. package/lib/typescript/src/components/RenderedOutput.d.ts +9 -0
  54. package/lib/typescript/src/components/RenderedOutput.d.ts.map +1 -0
  55. package/lib/typescript/src/components/RichTextInput.d.ts +2 -13
  56. package/lib/typescript/src/components/RichTextInput.d.ts.map +1 -1
  57. package/lib/typescript/src/components/Toolbar.d.ts.map +1 -1
  58. package/lib/typescript/src/constants/defaultStyles.d.ts +3 -0
  59. package/lib/typescript/src/constants/defaultStyles.d.ts.map +1 -1
  60. package/lib/typescript/src/hooks/useFormatting.d.ts +4 -1
  61. package/lib/typescript/src/hooks/useFormatting.d.ts.map +1 -1
  62. package/lib/typescript/src/hooks/useRichText.d.ts.map +1 -1
  63. package/lib/typescript/src/index.d.ts +2 -1
  64. package/lib/typescript/src/index.d.ts.map +1 -1
  65. package/lib/typescript/src/types/index.d.ts +112 -1
  66. package/lib/typescript/src/types/index.d.ts.map +1 -1
  67. package/lib/typescript/src/utils/formatter.d.ts +9 -1
  68. package/lib/typescript/src/utils/formatter.d.ts.map +1 -1
  69. package/lib/typescript/src/utils/parser.d.ts.map +1 -1
  70. package/lib/typescript/src/utils/serializer.d.ts +14 -0
  71. package/lib/typescript/src/utils/serializer.d.ts.map +1 -0
  72. package/lib/typescript/src/utils/styleMapper.d.ts.map +1 -1
  73. package/package.json +1 -1
  74. package/src/components/RenderedOutput.tsx +231 -0
  75. package/src/components/RichTextInput.d.ts +3 -14
  76. package/src/components/RichTextInput.tsx +291 -56
  77. package/src/components/Toolbar.tsx +54 -2
  78. package/src/constants/defaultStyles.d.ts +3 -0
  79. package/src/constants/defaultStyles.ts +47 -1
  80. package/src/hooks/useFormatting.ts +89 -2
  81. package/src/hooks/useRichText.ts +193 -11
  82. package/src/index.d.ts +2 -1
  83. package/src/index.ts +10 -0
  84. package/src/types/index.d.ts +112 -1
  85. package/src/types/index.ts +123 -1
  86. package/src/utils/formatter.ts +60 -10
  87. package/src/utils/parser.ts +6 -1
  88. package/src/utils/serializer.d.ts +13 -0
  89. package/src/utils/serializer.ts +365 -0
  90. package/src/utils/styleMapper.ts +21 -0
@@ -12,10 +12,11 @@ Object.defineProperty(exports, "createSegment", {
12
12
  exports.getSelectionStyle = getSelectionStyle;
13
13
  exports.isFormatActiveInSelection = isFormatActiveInSelection;
14
14
  exports.setHeadingOnLine = setHeadingOnLine;
15
+ exports.setListTypeOnLine = setListTypeOnLine;
15
16
  exports.setStyleOnSelection = setStyleOnSelection;
17
+ exports.setTextAlignOnLine = setTextAlignOnLine;
16
18
  exports.toggleFormatOnSelection = toggleFormatOnSelection;
17
19
  var _parser = require("../utils/parser");
18
- var _defaultStyles = require("../constants/defaultStyles");
19
20
  /**
20
21
  * Toggle an inline format (bold, italic, etc.) on the selected range.
21
22
  *
@@ -64,17 +65,29 @@ function setStyleOnSelection(segments, selection, key, value) {
64
65
  * Apply a heading level to the line containing the cursor/selection.
65
66
  */
66
67
  function setHeadingOnLine(segments, selection, level) {
67
- const plainText = (0, _parser.segmentsToPlainText)(segments);
68
- const {
69
- lineStart,
70
- lineEnd
71
- } = getLineRange(plainText, selection.start);
72
- const headingStyle = {
73
- heading: level,
74
- fontSize: _defaultStyles.HEADING_FONT_SIZES[level],
75
- bold: level !== 'none' ? true : undefined
76
- };
77
- return applyStyleToRange(segments, lineStart, lineEnd, headingStyle);
68
+ return setLineStyleOnSelection(segments, selection, {
69
+ heading: level === 'none' ? undefined : level,
70
+ listType: level === 'none' ? undefined : undefined
71
+ });
72
+ }
73
+
74
+ /**
75
+ * Apply a list type to the lines containing the cursor/selection.
76
+ */
77
+ function setListTypeOnLine(segments, selection, listType) {
78
+ return setLineStyleOnSelection(segments, selection, {
79
+ listType: listType === 'none' ? undefined : listType,
80
+ heading: listType === 'none' ? undefined : undefined
81
+ });
82
+ }
83
+
84
+ /**
85
+ * Apply text alignment to the lines containing the cursor/selection.
86
+ */
87
+ function setTextAlignOnLine(segments, selection, textAlign) {
88
+ return setLineStyleOnSelection(segments, selection, {
89
+ textAlign
90
+ });
78
91
  }
79
92
 
80
93
  /**
@@ -127,6 +140,11 @@ function getSelectionStyle(segments, selection) {
127
140
  if (result.backgroundColor !== s.backgroundColor) result.backgroundColor = undefined;
128
141
  if (result.fontSize !== s.fontSize) result.fontSize = undefined;
129
142
  if (result.heading !== s.heading) result.heading = undefined;
143
+ if (result.listType !== s.listType) result.listType = undefined;
144
+ if (result.textAlign !== s.textAlign) result.textAlign = undefined;
145
+ if (result.link !== s.link) result.link = undefined;
146
+ if (result.imageSrc !== s.imageSrc) result.imageSrc = undefined;
147
+ if (result.imageAlt !== s.imageAlt) result.imageAlt = undefined;
130
148
  }
131
149
  return result;
132
150
  }
@@ -206,6 +224,14 @@ function applyStyleToRange(segments, start, end, styleDelta) {
206
224
  }
207
225
  return (0, _parser.mergeAdjacentSegments)(result);
208
226
  }
227
+ function setLineStyleOnSelection(segments, selection, styleDelta) {
228
+ const plainText = (0, _parser.segmentsToPlainText)(segments);
229
+ const {
230
+ lineStart,
231
+ lineEnd
232
+ } = getSelectionLineRange(plainText, selection);
233
+ return applyStyleToRange(segments, lineStart, lineEnd, styleDelta);
234
+ }
209
235
 
210
236
  /**
211
237
  * Get the line start and end positions for the line containing the given position.
@@ -224,6 +250,16 @@ function getLineRange(text, position) {
224
250
  lineEnd
225
251
  };
226
252
  }
253
+ function getSelectionLineRange(text, selection) {
254
+ const normalized = normalizeSelection(selection);
255
+ const lineStart = getLineRange(text, normalized.start).lineStart;
256
+ const effectiveEnd = normalized.end > normalized.start ? normalized.end - 1 : normalized.end;
257
+ const lineEnd = getLineRange(text, effectiveEnd).lineEnd;
258
+ return {
259
+ lineStart,
260
+ lineEnd
261
+ };
262
+ }
227
263
 
228
264
  // Re-export for convenience
229
265
  //# sourceMappingURL=formatter.js.map
@@ -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":";;;;;;;;;;;;;;;;AAOA,IAAAA,OAAA,GAAAC,OAAA;AAOA,IAAAC,cAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,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;IACdQ,QAAQ,EAAEC,iCAAkB,CAACT,KAAK,CAAC;IACnCU,IAAI,EAAEV,KAAK,KAAK,MAAM,GAAG,IAAI,GAAGW;EAClC,CAAC;EAED,OAAOhB,iBAAiB,CAACZ,QAAQ,EAAEoB,SAAS,EAAEC,OAAO,EAAEE,YAAY,CAAC;AACtE;;AAEA;AACA;AACA;AACO,SAASM,yBAAyBA,CACvC7B,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,MAAM6B,QAAQ,GAAGvB,sBAAsB,CAACP,QAAQ,EAAEG,KAAK,EAAEC,GAAG,CAAC;EAC7D,OAAO0B,QAAQ,CAACC,MAAM,GAAG,CAAC,IAAID,QAAQ,CAACrB,KAAK,CAAEC,CAAC,IAAK,CAAC,CAACA,CAAC,CAACC,MAAM,CAACT,MAAM,CAAC,CAAC;AACzE;;AAEA;AACA;AACA;AACA;AACO,SAAS8B,iBAAiBA,CAC/BhC,QAAyB,EACzBC,SAAyB,EACZ;EACb,IAAIA,SAAS,CAACE,KAAK,KAAKF,SAAS,CAACG,GAAG,EAAE;IACrC;IACA,MAAM6B,GAAG,GAAG,IAAAC,8BAAsB,EAAClC,QAAQ,EAAEC,SAAS,CAACE,KAAK,CAAC;IAC7D,IAAIH,QAAQ,CAAC+B,MAAM,GAAG,CAAC,EAAE;MACvB,OAAO;QAAE,GAAG/B,QAAQ,CAACiC,GAAG,CAACE,YAAY,CAAC,CAACxB;MAAO,CAAC;IACjD;IACA,OAAO,CAAC,CAAC;EACX;EAEA,MAAM;IAAER,KAAK;IAAEC;EAAI,CAAC,GAAGC,kBAAkB,CAACJ,SAAS,CAAC;EACpD,MAAM6B,QAAQ,GAAGvB,sBAAsB,CAACP,QAAQ,EAAEG,KAAK,EAAEC,GAAG,CAAC;EAE7D,IAAI0B,QAAQ,CAACC,MAAM,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;EAEpC,MAAMK,MAAmB,GAAG;IAAE,GAAGN,QAAQ,CAAC,CAAC,CAAC,CAACnB;EAAO,CAAC;EAErD,KAAK,IAAI0B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,QAAQ,CAACC,MAAM,EAAEM,CAAC,EAAE,EAAE;IACxC,MAAM3B,CAAC,GAAGoB,QAAQ,CAACO,CAAC,CAAC,CAAC1B,MAAM;IAC5B,IAAIyB,MAAM,CAACT,IAAI,KAAKC,SAAS,IAAIQ,MAAM,CAACT,IAAI,KAAK,CAAC,CAACjB,CAAC,CAACiB,IAAI,EACvDS,MAAM,CAACT,IAAI,GAAGC,SAAS;IACzB,IAAIQ,MAAM,CAACE,MAAM,KAAKV,SAAS,IAAIQ,MAAM,CAACE,MAAM,KAAK,CAAC,CAAC5B,CAAC,CAAC4B,MAAM,EAC7DF,MAAM,CAACE,MAAM,GAAGV,SAAS;IAC3B,IAAIQ,MAAM,CAACG,SAAS,KAAKX,SAAS,IAAIQ,MAAM,CAACG,SAAS,KAAK,CAAC,CAAC7B,CAAC,CAAC6B,SAAS,EACtEH,MAAM,CAACG,SAAS,GAAGX,SAAS;IAC9B,IACEQ,MAAM,CAACI,aAAa,KAAKZ,SAAS,IAClCQ,MAAM,CAACI,aAAa,KAAK,CAAC,CAAC9B,CAAC,CAAC8B,aAAa,EAE1CJ,MAAM,CAACI,aAAa,GAAGZ,SAAS;IAClC,IAAIQ,MAAM,CAACK,IAAI,KAAKb,SAAS,IAAIQ,MAAM,CAACK,IAAI,KAAK,CAAC,CAAC/B,CAAC,CAAC+B,IAAI,EACvDL,MAAM,CAACK,IAAI,GAAGb,SAAS;IACzB,IAAIQ,MAAM,CAACM,KAAK,KAAKhC,CAAC,CAACgC,KAAK,EAAEN,MAAM,CAACM,KAAK,GAAGd,SAAS;IACtD,IAAIQ,MAAM,CAACO,eAAe,KAAKjC,CAAC,CAACiC,eAAe,EAC9CP,MAAM,CAACO,eAAe,GAAGf,SAAS;IACpC,IAAIQ,MAAM,CAACX,QAAQ,KAAKf,CAAC,CAACe,QAAQ,EAAEW,MAAM,CAACX,QAAQ,GAAGG,SAAS;IAC/D,IAAIQ,MAAM,CAACZ,OAAO,KAAKd,CAAC,CAACc,OAAO,EAAEY,MAAM,CAACZ,OAAO,GAAGI,SAAS;EAC9D;EAEA,OAAOQ,MAAM;AACf;;AAEA;;AAEA;AACA;AACA;AACA,SAAS/B,kBAAkBA,CAACJ,SAAyB,EAAkB;EACrE,OAAO;IACLE,KAAK,EAAEyC,IAAI,CAACC,GAAG,CAAC5C,SAAS,CAACE,KAAK,EAAEF,SAAS,CAACG,GAAG,CAAC;IAC/CA,GAAG,EAAEwC,IAAI,CAACE,GAAG,CAAC7C,SAAS,CAACE,KAAK,EAAEF,SAAS,CAACG,GAAG;EAC9C,CAAC;AACH;;AAEA;AACA;AACA;AACA,SAASG,sBAAsBA,CAC7BP,QAAyB,EACzBG,KAAa,EACbC,GAAW,EACM;EACjB,MAAMgC,MAAuB,GAAG,EAAE;EAClC,IAAIH,GAAG,GAAG,CAAC;EAEX,KAAK,MAAMc,GAAG,IAAI/C,QAAQ,EAAE;IAC1B,MAAMgD,QAAQ,GAAGf,GAAG;IACpB,MAAMgB,MAAM,GAAGhB,GAAG,GAAGc,GAAG,CAACG,IAAI,CAACnB,MAAM;IAEpC,IAAIkB,MAAM,IAAI9C,KAAK,EAAE;MACnB8B,GAAG,GAAGgB,MAAM;MACZ;IACF;IACA,IAAID,QAAQ,IAAI5C,GAAG,EAAE;MACnB;IACF;;IAEA;IACA,MAAM+C,YAAY,GAAGP,IAAI,CAACE,GAAG,CAACE,QAAQ,EAAE7C,KAAK,CAAC;IAC9C,MAAMiD,UAAU,GAAGR,IAAI,CAACC,GAAG,CAACI,MAAM,EAAE7C,GAAG,CAAC;IACxCgC,MAAM,CAACiB,IAAI,CACT,IAAAC,qBAAa,EACXP,GAAG,CAACG,IAAI,CAACK,KAAK,CAACJ,YAAY,GAAGH,QAAQ,EAAEI,UAAU,GAAGJ,QAAQ,CAAC,EAC9DD,GAAG,CAACpC,MACN,CACF,CAAC;IAEDsB,GAAG,GAAGgB,MAAM;EACd;EAEA,OAAOb,MAAM;AACf;;AAEA;AACA;AACA;AACA;AACA,SAASxB,iBAAiBA,CACxBZ,QAAyB,EACzBG,KAAa,EACbC,GAAW,EACXoD,UAAgC,EACf;EACjB,MAAMpB,MAAuB,GAAG,EAAE;EAClC,IAAIH,GAAG,GAAG,CAAC;EAEX,KAAK,MAAMc,GAAG,IAAI/C,QAAQ,EAAE;IAC1B,MAAMgD,QAAQ,GAAGf,GAAG;IACpB,MAAMgB,MAAM,GAAGhB,GAAG,GAAGc,GAAG,CAACG,IAAI,CAACnB,MAAM;IAEpC,IAAIkB,MAAM,IAAI9C,KAAK,IAAI6C,QAAQ,IAAI5C,GAAG,EAAE;MACtC;MACAgC,MAAM,CAACiB,IAAI,CAAC,IAAAC,qBAAa,EAACP,GAAG,CAACG,IAAI,EAAEH,GAAG,CAACpC,MAAM,CAAC,CAAC;IAClD,CAAC,MAAM;MACL;MACA,IAAIqC,QAAQ,GAAG7C,KAAK,EAAE;QACpB;QACAiC,MAAM,CAACiB,IAAI,CACT,IAAAC,qBAAa,EAACP,GAAG,CAACG,IAAI,CAACK,KAAK,CAAC,CAAC,EAAEpD,KAAK,GAAG6C,QAAQ,CAAC,EAAED,GAAG,CAACpC,MAAM,CAC/D,CAAC;MACH;;MAEA;MACA,MAAMwC,YAAY,GAAGP,IAAI,CAACE,GAAG,CAACE,QAAQ,EAAE7C,KAAK,CAAC;MAC9C,MAAMiD,UAAU,GAAGR,IAAI,CAACC,GAAG,CAACI,MAAM,EAAE7C,GAAG,CAAC;MACxC,MAAMqD,SAAS,GAAG;QAAE,GAAGV,GAAG,CAACpC,MAAM;QAAE,GAAG6C;MAAW,CAAC;MAClDpB,MAAM,CAACiB,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,GAAG7C,GAAG,EAAE;QAChB;QACAgC,MAAM,CAACiB,IAAI,CACT,IAAAC,qBAAa,EAACP,GAAG,CAACG,IAAI,CAACK,KAAK,CAACnD,GAAG,GAAG4C,QAAQ,CAAC,EAAED,GAAG,CAACpC,MAAM,CAC1D,CAAC;MACH;IACF;IAEAsB,GAAG,GAAGgB,MAAM;EACd;EAEA,OAAO,IAAAS,6BAAqB,EAACtB,MAAM,CAAC;AACtC;;AAEA;AACA;AACA;AACA,SAASd,YAAYA,CACnB4B,IAAY,EACZS,QAAgB,EACwB;EACxC,IAAIvC,SAAS,GAAGuC,QAAQ;EACxB,OAAOvC,SAAS,GAAG,CAAC,IAAI8B,IAAI,CAAC9B,SAAS,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;IACpDA,SAAS,EAAE;EACb;EAEA,IAAIC,OAAO,GAAGsC,QAAQ;EACtB,OAAOtC,OAAO,GAAG6B,IAAI,CAACnB,MAAM,IAAImB,IAAI,CAAC7B,OAAO,CAAC,KAAK,IAAI,EAAE;IACtDA,OAAO,EAAE;EACX;EAEA,OAAO;IAAED,SAAS;IAAEC;EAAQ,CAAC;AAC/B;;AAEA","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","setLineStyleOnSelection","heading","undefined","listType","setListTypeOnLine","setTextAlignOnLine","textAlign","isFormatActiveInSelection","selected","length","getSelectionStyle","pos","findPositionInSegments","segmentIndex","result","i","bold","italic","underline","strikethrough","code","color","backgroundColor","fontSize","link","imageSrc","imageAlt","Math","min","max","seg","segStart","segEnd","text","overlapStart","overlapEnd","push","createSegment","slice","styleDelta","newStyles","mergeAdjacentSegments","plainText","segmentsToPlainText","lineStart","lineEnd","getSelectionLineRange","getLineRange","position","normalized","effectiveEnd"],"sourceRoot":"../../../src","sources":["utils/formatter.ts"],"mappings":"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","ignoreList":[]}
@@ -79,7 +79,7 @@ function splitSegment(segment, offset) {
79
79
  * Checks if two FormatStyle objects are deeply equal.
80
80
  */
81
81
  function areStylesEqual(a, b) {
82
- return !!a.bold === !!b.bold && !!a.italic === !!b.italic && !!a.underline === !!b.underline && !!a.strikethrough === !!b.strikethrough && !!a.code === !!b.code && (a.color ?? undefined) === (b.color ?? undefined) && (a.backgroundColor ?? undefined) === (b.backgroundColor ?? undefined) && (a.fontSize ?? undefined) === (b.fontSize ?? undefined) && (a.heading ?? undefined) === (b.heading ?? undefined);
82
+ return !!a.bold === !!b.bold && !!a.italic === !!b.italic && !!a.underline === !!b.underline && !!a.strikethrough === !!b.strikethrough && !!a.code === !!b.code && (a.color ?? undefined) === (b.color ?? undefined) && (a.backgroundColor ?? undefined) === (b.backgroundColor ?? undefined) && (a.fontSize ?? undefined) === (b.fontSize ?? undefined) && (a.heading ?? undefined) === (b.heading ?? undefined) && (a.listType ?? undefined) === (b.listType ?? undefined) && (a.textAlign ?? undefined) === (b.textAlign ?? undefined) && (a.link ?? undefined) === (b.link ?? undefined) && (a.imageSrc ?? undefined) === (b.imageSrc ?? undefined) && (a.imageAlt ?? undefined) === (b.imageAlt ?? undefined);
83
83
  }
84
84
 
85
85
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["_defaultStyles","require","createSegment","text","styles","EMPTY_FORMAT_STYLE","getTotalLength","segments","reduce","sum","seg","length","segmentsToPlainText","map","s","join","findPositionInSegments","globalPosition","remaining","i","segLen","segmentIndex","offsetInSegment","lastIndex","Math","max","splitSegment","segment","offset","before","slice","after","areStylesEqual","a","b","bold","italic","underline","strikethrough","code","color","undefined","backgroundColor","fontSize","heading","mergeAdjacentSegments","result","last","newSeg","push","reconcileTextChange","oldSegments","newText","activeStyles","oldText","prefixLen","minLen","min","suffixLen","deleteStart","deleteEnd","insertedText","pos","phase","insertedNewSegment","segStart","segEnd"],"sourceRoot":"../../../src","sources":["utils/parser.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_defaultStyles","require","createSegment","text","styles","EMPTY_FORMAT_STYLE","getTotalLength","segments","reduce","sum","seg","length","segmentsToPlainText","map","s","join","findPositionInSegments","globalPosition","remaining","i","segLen","segmentIndex","offsetInSegment","lastIndex","Math","max","splitSegment","segment","offset","before","slice","after","areStylesEqual","a","b","bold","italic","underline","strikethrough","code","color","undefined","backgroundColor","fontSize","heading","listType","textAlign","link","imageSrc","imageAlt","mergeAdjacentSegments","result","last","newSeg","push","reconcileTextChange","oldSegments","newText","activeStyles","oldText","prefixLen","minLen","min","suffixLen","deleteStart","deleteEnd","insertedText","pos","phase","insertedNewSegment","segStart","segEnd"],"sourceRoot":"../../../src","sources":["utils/parser.ts"],"mappings":"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","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,259 @@
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
+ const blocks = [];
15
+ for (let index = 0; index < lines.length;) {
16
+ const line = lines[index];
17
+ const listType = getLineListType(line);
18
+ if (listType && listType !== 'none') {
19
+ const listLines = [];
20
+ while (index < lines.length && getLineListType(lines[index]) === listType) {
21
+ listLines.push(lines[index]);
22
+ index++;
23
+ }
24
+ blocks.push(serializeListBlock(listLines, format, listType));
25
+ continue;
26
+ }
27
+ blocks.push(serializeBlockLine(line, format));
28
+ index++;
29
+ }
30
+ return blocks.join('\n');
31
+ }
32
+
33
+ /**
34
+ * Convenience wrapper for Markdown output.
35
+ */
36
+ function segmentsToMarkdown(segments) {
37
+ return serializeSegments(segments, 'markdown');
38
+ }
39
+
40
+ /**
41
+ * Convenience wrapper for HTML output.
42
+ */
43
+ function segmentsToHTML(segments) {
44
+ return serializeSegments(segments, 'html');
45
+ }
46
+ function splitSegmentsByLine(segments) {
47
+ const lines = [[]];
48
+ for (const segment of segments) {
49
+ const parts = segment.text.split('\n');
50
+ parts.forEach((part, index) => {
51
+ if (part.length > 0 || segment.styles.imageSrc) {
52
+ lines[lines.length - 1]?.push({
53
+ text: part,
54
+ styles: {
55
+ ...segment.styles
56
+ }
57
+ });
58
+ }
59
+ if (index < parts.length - 1) {
60
+ lines.push([]);
61
+ }
62
+ });
63
+ }
64
+ return lines;
65
+ }
66
+ function serializeListBlock(lines, format, listType) {
67
+ if (format === 'html' || lines.some(line => !!getLineTextAlign(line))) {
68
+ const tag = listType === 'ordered' ? 'ol' : 'ul';
69
+ const items = lines.map(line => serializeHtmlListItem(line)).join('');
70
+ return `<${tag}>${items}</${tag}>`;
71
+ }
72
+ return lines.map((line, index) => {
73
+ const marker = listType === 'ordered' ? `${index + 1}.` : '-';
74
+ const content = serializeLineContent(line, format);
75
+ return content.length > 0 ? `${marker} ${content}` : marker;
76
+ }).join('\n');
77
+ }
78
+ function serializeHtmlListItem(line) {
79
+ const content = serializeLineContent(line, 'html');
80
+ const styleAttribute = buildBlockStyle(getLineTextAlign(line));
81
+ return `<li${styleAttribute ? ` style="${styleAttribute}"` : ''}>${content}</li>`;
82
+ }
83
+ function serializeBlockLine(line, format) {
84
+ const heading = getLineHeading(line);
85
+ const textAlign = getLineTextAlign(line);
86
+ const content = serializeLineContent(line, format, heading);
87
+ if (format === 'html') {
88
+ const blockTag = heading ?? 'p';
89
+ const styleAttribute = buildBlockStyle(textAlign);
90
+ return `<${blockTag}${styleAttribute ? ` style="${styleAttribute}"` : ''}>${content}</${blockTag}>`;
91
+ }
92
+ if (textAlign) {
93
+ return serializeAlignedMarkdownLine(content, heading, textAlign);
94
+ }
95
+ const headingPrefix = getHeadingPrefix(heading);
96
+ if (!headingPrefix) {
97
+ return content;
98
+ }
99
+ return content.length > 0 ? `${headingPrefix} ${content}` : headingPrefix;
100
+ }
101
+ function serializeAlignedMarkdownLine(content, heading, textAlign) {
102
+ const blockTag = heading ?? 'p';
103
+ const styleAttribute = buildBlockStyle(textAlign);
104
+ return `<${blockTag} style="${styleAttribute}">${content}</${blockTag}>`;
105
+ }
106
+ function serializeLineContent(line, format, lineHeading) {
107
+ return line.map(fragment => serializeFragment(fragment, format, lineHeading)).join('');
108
+ }
109
+ function serializeFragment(fragment, format, lineHeading) {
110
+ if (fragment.styles.imageSrc) {
111
+ return serializeImageFragment(fragment, format);
112
+ }
113
+ const normalizedStyles = {
114
+ ...fragment.styles,
115
+ heading: undefined,
116
+ listType: undefined,
117
+ textAlign: undefined,
118
+ imageSrc: undefined,
119
+ imageAlt: undefined,
120
+ bold: lineHeading && lineHeading !== 'none' ? false : fragment.styles.bold
121
+ };
122
+ return format === 'html' ? serializeHtmlFragment(fragment.text, normalizedStyles) : serializeMarkdownFragment(fragment.text, normalizedStyles);
123
+ }
124
+ function serializeImageFragment(fragment, format) {
125
+ const source = fragment.styles.imageSrc ?? '';
126
+ const altText = fragment.styles.imageAlt ?? extractImageAlt(fragment.text);
127
+ if (format === 'html') {
128
+ return `<img src="${escapeHtml(source)}" alt="${escapeHtml(altText)}" />`;
129
+ }
130
+ return `![${escapeMarkdown(altText)}](${escapeMarkdownUrl(source)})`;
131
+ }
132
+ function serializeHtmlFragment(text, styles) {
133
+ let result = escapeHtml(text);
134
+ if (styles.code) {
135
+ result = `<code>${result}</code>`;
136
+ }
137
+ if (styles.bold) {
138
+ result = `<strong>${result}</strong>`;
139
+ }
140
+ if (styles.italic) {
141
+ result = `<em>${result}</em>`;
142
+ }
143
+ if (styles.underline) {
144
+ result = `<u>${result}</u>`;
145
+ }
146
+ if (styles.strikethrough) {
147
+ result = `<s>${result}</s>`;
148
+ }
149
+ const styleAttribute = buildInlineStyle(styles);
150
+ if (styleAttribute) {
151
+ result = `<span style="${styleAttribute}">${result}</span>`;
152
+ }
153
+ if (styles.link) {
154
+ result = `<a href="${escapeHtml(styles.link)}">${result}</a>`;
155
+ }
156
+ return result;
157
+ }
158
+ function serializeMarkdownFragment(text, styles) {
159
+ let result = escapeMarkdown(text);
160
+ if (styles.code) {
161
+ result = wrapInlineCode(text);
162
+ }
163
+ if (styles.bold) {
164
+ result = `**${result}**`;
165
+ }
166
+ if (styles.italic) {
167
+ result = `*${result}*`;
168
+ }
169
+ if (styles.strikethrough) {
170
+ result = `~~${result}~~`;
171
+ }
172
+ if (styles.underline) {
173
+ result = `<u>${result}</u>`;
174
+ }
175
+ const styleAttribute = buildInlineStyle(styles);
176
+ if (styleAttribute) {
177
+ result = `<span style="${styleAttribute}">${result}</span>`;
178
+ }
179
+ if (styles.link) {
180
+ result = `[${result}](${escapeMarkdownUrl(styles.link)})`;
181
+ }
182
+ return result;
183
+ }
184
+ function buildInlineStyle(styles) {
185
+ const cssRules = [];
186
+ if (styles.color) {
187
+ cssRules.push(`color: ${styles.color}`);
188
+ }
189
+ if (styles.backgroundColor) {
190
+ cssRules.push(`background-color: ${styles.backgroundColor}`);
191
+ }
192
+ if (styles.fontSize) {
193
+ cssRules.push(`font-size: ${styles.fontSize}px`);
194
+ }
195
+ return cssRules.join('; ');
196
+ }
197
+ function buildBlockStyle(textAlign) {
198
+ const cssRules = [];
199
+ if (textAlign) {
200
+ cssRules.push(`text-align: ${textAlign}`);
201
+ }
202
+ return cssRules.join('; ');
203
+ }
204
+ function getLineHeading(line) {
205
+ for (const fragment of line) {
206
+ if (fragment.styles.heading && fragment.styles.heading !== 'none') {
207
+ return fragment.styles.heading;
208
+ }
209
+ }
210
+ return undefined;
211
+ }
212
+ function getLineListType(line) {
213
+ for (const fragment of line) {
214
+ if (fragment.styles.listType && fragment.styles.listType !== 'none') {
215
+ return fragment.styles.listType;
216
+ }
217
+ }
218
+ return undefined;
219
+ }
220
+ function getLineTextAlign(line) {
221
+ for (const fragment of line) {
222
+ if (fragment.styles.textAlign) {
223
+ return fragment.styles.textAlign;
224
+ }
225
+ }
226
+ return undefined;
227
+ }
228
+ function getHeadingPrefix(heading) {
229
+ switch (heading) {
230
+ case 'h1':
231
+ return '#';
232
+ case 'h2':
233
+ return '##';
234
+ case 'h3':
235
+ return '###';
236
+ default:
237
+ return undefined;
238
+ }
239
+ }
240
+ function extractImageAlt(text) {
241
+ const normalized = text.replace(/^\[Image:\s*/i, '').replace(/^\[Image\]/i, '').replace(/\]$/, '').trim();
242
+ return normalized.length > 0 ? normalized : 'image';
243
+ }
244
+ function escapeHtml(text) {
245
+ return text.replaceAll('&', '&amp;').replaceAll('<', '&lt;').replaceAll('>', '&gt;').replaceAll('"', '&quot;').replaceAll("'", '&#39;');
246
+ }
247
+ function escapeMarkdown(text) {
248
+ return text.replace(/([\\`*_~[\]])/g, '\\$1');
249
+ }
250
+ function escapeMarkdownUrl(url) {
251
+ return url.replaceAll(' ', '%20').replaceAll(')', '%29');
252
+ }
253
+ function wrapInlineCode(text) {
254
+ const matches = text.match(/`+/g);
255
+ const longestBacktickRun = matches?.reduce((max, match) => Math.max(max, match.length), 0) ?? 0;
256
+ const fence = '`'.repeat(longestBacktickRun + 1);
257
+ return `${fence}${text}${fence}`;
258
+ }
259
+ //# sourceMappingURL=serializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["serializeSegments","segments","format","lines","splitSegmentsByLine","blocks","index","length","line","listType","getLineListType","listLines","push","serializeListBlock","serializeBlockLine","join","segmentsToMarkdown","segmentsToHTML","segment","parts","text","split","forEach","part","styles","imageSrc","some","getLineTextAlign","tag","items","map","serializeHtmlListItem","marker","content","serializeLineContent","styleAttribute","buildBlockStyle","heading","getLineHeading","textAlign","blockTag","serializeAlignedMarkdownLine","headingPrefix","getHeadingPrefix","lineHeading","fragment","serializeFragment","serializeImageFragment","normalizedStyles","undefined","imageAlt","bold","serializeHtmlFragment","serializeMarkdownFragment","source","altText","extractImageAlt","escapeHtml","escapeMarkdown","escapeMarkdownUrl","result","code","italic","underline","strikethrough","buildInlineStyle","link","wrapInlineCode","cssRules","color","backgroundColor","fontSize","normalized","replace","trim","replaceAll","url","matches","match","longestBacktickRun","reduce","max","Math","fence","repeat"],"sourceRoot":"../../../src","sources":["utils/serializer.ts"],"mappings":"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","ignoreList":[]}
@@ -56,6 +56,9 @@ function formatStyleToTextStyle(formatStyle, theme) {
56
56
  if (formatStyle.fontSize) {
57
57
  style.fontSize = formatStyle.fontSize;
58
58
  }
59
+ if (formatStyle.textAlign) {
60
+ style.textAlign = formatStyle.textAlign;
61
+ }
59
62
 
60
63
  // Heading — overrides font size and weight
61
64
  if (formatStyle.heading && formatStyle.heading !== 'none') {
@@ -63,6 +66,14 @@ function formatStyleToTextStyle(formatStyle, theme) {
63
66
  style.fontWeight = 'bold';
64
67
  style.lineHeight = _defaultStyles.HEADING_FONT_SIZES[formatStyle.heading] * 1.3;
65
68
  }
69
+ if (formatStyle.link) {
70
+ style.color = style.color ?? resolvedTheme.colors?.link ?? _defaultStyles.DEFAULT_THEME.colors?.link ?? _defaultStyles.DEFAULT_THEME.colors?.primary;
71
+ if (style.textDecorationLine === 'line-through') {
72
+ style.textDecorationLine = 'underline line-through';
73
+ } else if (!style.textDecorationLine || style.textDecorationLine === 'none') {
74
+ style.textDecorationLine = 'underline';
75
+ }
76
+ }
66
77
  return style;
67
78
  }
68
79
 
@@ -1 +1 @@
1
- {"version":3,"names":["_defaultStyles","require","formatStyleToTextStyle","formatStyle","theme","resolvedTheme","DEFAULT_THEME","style","bold","fontWeight","italic","fontStyle","underline","strikethrough","textDecorationLine","code","codeStyle","Object","assign","color","backgroundColor","fontSize","heading","HEADING_FONT_SIZES","lineHeight","segmentToTextStyle","segment","baseStyle","baseTextStyle","styles","segmentsToTextStyles","segments","map","seg"],"sourceRoot":"../../../src","sources":["utils/styleMapper.ts"],"mappings":";;;;;;;;AAEA,IAAAA,cAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACO,SAASC,sBAAsBA,CACpCC,WAAwB,EACxBC,KAAqB,EACV;EACX,MAAMC,aAAa,GAAGD,KAAK,IAAIE,4BAAa;EAC5C,MAAMC,KAAgB,GAAG,CAAC,CAAC;;EAE3B;EACA,IAAIJ,WAAW,CAACK,IAAI,EAAE;IACpBD,KAAK,CAACE,UAAU,GAAG,MAAM;EAC3B;;EAEA;EACA,IAAIN,WAAW,CAACO,MAAM,EAAE;IACtBH,KAAK,CAACI,SAAS,GAAG,QAAQ;EAC5B;;EAEA;EACA,IAAIR,WAAW,CAACS,SAAS,IAAIT,WAAW,CAACU,aAAa,EAAE;IACtDN,KAAK,CAACO,kBAAkB,GAAG,wBAAwB;EACrD,CAAC,MAAM,IAAIX,WAAW,CAACS,SAAS,EAAE;IAChCL,KAAK,CAACO,kBAAkB,GAAG,WAAW;EACxC,CAAC,MAAM,IAAIX,WAAW,CAACU,aAAa,EAAE;IACpCN,KAAK,CAACO,kBAAkB,GAAG,cAAc;EAC3C;;EAEA;EACA,IAAIX,WAAW,CAACY,IAAI,EAAE;IACpB,MAAMC,SAAS,GAAGX,aAAa,CAACW,SAAS,IAAIV,4BAAa,CAACU,SAAS;IACpE,IAAIA,SAAS,EAAE;MACbC,MAAM,CAACC,MAAM,CAACX,KAAK,EAAES,SAAS,CAAC;IACjC;EACF;;EAEA;EACA,IAAIb,WAAW,CAACgB,KAAK,EAAE;IACrBZ,KAAK,CAACY,KAAK,GAAGhB,WAAW,CAACgB,KAAK;EACjC;;EAEA;EACA,IAAIhB,WAAW,CAACiB,eAAe,EAAE;IAC/Bb,KAAK,CAACa,eAAe,GAAGjB,WAAW,CAACiB,eAAe;EACrD;;EAEA;EACA,IAAIjB,WAAW,CAACkB,QAAQ,EAAE;IACxBd,KAAK,CAACc,QAAQ,GAAGlB,WAAW,CAACkB,QAAQ;EACvC;;EAEA;EACA,IAAIlB,WAAW,CAACmB,OAAO,IAAInB,WAAW,CAACmB,OAAO,KAAK,MAAM,EAAE;IACzDf,KAAK,CAACc,QAAQ,GAAGE,iCAAkB,CAACpB,WAAW,CAACmB,OAAO,CAAC;IACxDf,KAAK,CAACE,UAAU,GAAG,MAAM;IACzBF,KAAK,CAACiB,UAAU,GAAGD,iCAAkB,CAACpB,WAAW,CAACmB,OAAO,CAAC,GAAG,GAAG;EAClE;EAEA,OAAOf,KAAK;AACd;;AAEA;AACA;AACA;AACO,SAASkB,kBAAkBA,CAChCC,OAAsB,EACtBtB,KAAqB,EACV;EACX,MAAMuB,SAAS,GAAGvB,KAAK,EAAEwB,aAAa,IAAItB,4BAAa,CAACsB,aAAa,IAAI,CAAC,CAAC;EAC3E,MAAMzB,WAAW,GAAGD,sBAAsB,CAACwB,OAAO,CAACG,MAAM,EAAEzB,KAAK,CAAC;EAEjE,OAAO;IACL,GAAGuB,SAAS;IACZ,GAAGxB;EACL,CAAC;AACH;;AAEA;AACA;AACA;AACO,SAAS2B,oBAAoBA,CAClCC,QAAyB,EACzB3B,KAAqB,EACR;EACb,OAAO2B,QAAQ,CAACC,GAAG,CAAEC,GAAG,IAAKR,kBAAkB,CAACQ,GAAG,EAAE7B,KAAK,CAAC,CAAC;AAC9D","ignoreList":[]}
1
+ {"version":3,"names":["_defaultStyles","require","formatStyleToTextStyle","formatStyle","theme","resolvedTheme","DEFAULT_THEME","style","bold","fontWeight","italic","fontStyle","underline","strikethrough","textDecorationLine","code","codeStyle","Object","assign","color","backgroundColor","fontSize","textAlign","heading","HEADING_FONT_SIZES","lineHeight","link","colors","primary","segmentToTextStyle","segment","baseStyle","baseTextStyle","styles","segmentsToTextStyles","segments","map","seg"],"sourceRoot":"../../../src","sources":["utils/styleMapper.ts"],"mappings":"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","ignoreList":[]}