react-native-richify 1.0.2 → 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.
- package/lib/commonjs/components/OverlayText.d.js.map +1 -1
- package/lib/commonjs/components/OverlayText.js +8 -2
- package/lib/commonjs/components/OverlayText.js.map +1 -1
- package/lib/commonjs/components/RichTextInput.d.js.map +1 -1
- package/lib/commonjs/components/RichTextInput.js +73 -45
- package/lib/commonjs/components/RichTextInput.js.map +1 -1
- package/lib/commonjs/components/Toolbar.d.js.map +1 -1
- package/lib/commonjs/components/Toolbar.js +4 -7
- package/lib/commonjs/components/Toolbar.js.map +1 -1
- package/lib/commonjs/components/ToolbarButton.d.js.map +1 -1
- package/lib/commonjs/components/ToolbarButton.js.map +1 -1
- package/lib/commonjs/constants/defaultStyles.d.js.map +1 -1
- package/lib/commonjs/constants/defaultStyles.js +26 -1
- package/lib/commonjs/constants/defaultStyles.js.map +1 -1
- package/lib/commonjs/context/RichTextContext.d.js.map +1 -1
- package/lib/commonjs/context/RichTextContext.js.map +1 -1
- package/lib/commonjs/hooks/useFormatting.d.js.map +1 -1
- package/lib/commonjs/hooks/useFormatting.js +7 -1
- package/lib/commonjs/hooks/useFormatting.js.map +1 -1
- package/lib/commonjs/hooks/useRichText.d.js.map +1 -1
- package/lib/commonjs/hooks/useRichText.js +62 -7
- package/lib/commonjs/hooks/useRichText.js.map +1 -1
- package/lib/commonjs/hooks/useSelection.d.js.map +1 -1
- package/lib/commonjs/hooks/useSelection.js.map +1 -1
- package/lib/commonjs/index.d.js +19 -0
- package/lib/commonjs/index.d.js.map +1 -1
- package/lib/commonjs/index.js +19 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/types/index.d.js.map +1 -1
- package/lib/commonjs/types/index.js.map +1 -1
- package/lib/commonjs/utils/formatter.d.js.map +1 -1
- package/lib/commonjs/utils/formatter.js +1 -4
- package/lib/commonjs/utils/formatter.js.map +1 -1
- package/lib/commonjs/utils/parser.d.js.map +1 -1
- package/lib/commonjs/utils/parser.js.map +1 -1
- package/lib/commonjs/utils/serializer.d.js +6 -0
- package/lib/commonjs/utils/serializer.d.js.map +1 -0
- package/lib/commonjs/utils/serializer.js +163 -0
- package/lib/commonjs/utils/serializer.js.map +1 -0
- package/lib/commonjs/utils/styleMapper.d.js.map +1 -1
- package/lib/commonjs/utils/styleMapper.js.map +1 -1
- package/lib/module/components/OverlayText.d.js.map +1 -1
- package/lib/module/components/OverlayText.js +8 -2
- package/lib/module/components/OverlayText.js.map +1 -1
- package/lib/module/components/RichTextInput.d.js.map +1 -1
- package/lib/module/components/RichTextInput.js +75 -48
- package/lib/module/components/RichTextInput.js.map +1 -1
- package/lib/module/components/Toolbar.d.js.map +1 -1
- package/lib/module/components/Toolbar.js +4 -7
- package/lib/module/components/Toolbar.js.map +1 -1
- package/lib/module/components/ToolbarButton.d.js.map +1 -1
- package/lib/module/components/ToolbarButton.js.map +1 -1
- package/lib/module/constants/defaultStyles.d.js.map +1 -1
- package/lib/module/constants/defaultStyles.js +26 -1
- package/lib/module/constants/defaultStyles.js.map +1 -1
- package/lib/module/context/RichTextContext.d.js.map +1 -1
- package/lib/module/context/RichTextContext.js.map +1 -1
- package/lib/module/hooks/useFormatting.d.js.map +1 -1
- package/lib/module/hooks/useFormatting.js +7 -1
- package/lib/module/hooks/useFormatting.js.map +1 -1
- package/lib/module/hooks/useRichText.d.js.map +1 -1
- package/lib/module/hooks/useRichText.js +62 -7
- package/lib/module/hooks/useRichText.js.map +1 -1
- package/lib/module/hooks/useSelection.d.js.map +1 -1
- package/lib/module/hooks/useSelection.js.map +1 -1
- package/lib/module/index.d.js +1 -0
- package/lib/module/index.d.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/types/index.d.js.map +1 -1
- package/lib/module/types/index.js.map +1 -1
- package/lib/module/utils/formatter.d.js.map +1 -1
- package/lib/module/utils/formatter.js +1 -4
- package/lib/module/utils/formatter.js.map +1 -1
- package/lib/module/utils/parser.d.js.map +1 -1
- package/lib/module/utils/parser.js.map +1 -1
- package/lib/module/utils/serializer.d.js +4 -0
- package/lib/module/utils/serializer.d.js.map +1 -0
- package/lib/module/utils/serializer.js +157 -0
- package/lib/module/utils/serializer.js.map +1 -0
- package/lib/module/utils/styleMapper.d.js.map +1 -1
- package/lib/module/utils/styleMapper.js.map +1 -1
- package/lib/typescript/src/components/OverlayText.d.ts.map +1 -1
- package/lib/typescript/src/components/RichTextInput.d.ts +2 -13
- package/lib/typescript/src/components/RichTextInput.d.ts.map +1 -1
- package/lib/typescript/src/constants/defaultStyles.d.ts +2 -0
- package/lib/typescript/src/constants/defaultStyles.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useFormatting.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRichText.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/types/index.d.ts +41 -11
- package/lib/typescript/src/types/index.d.ts.map +1 -1
- package/lib/typescript/src/utils/formatter.d.ts.map +1 -1
- package/lib/typescript/src/utils/serializer.d.ts +14 -0
- package/lib/typescript/src/utils/serializer.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/components/OverlayText.tsx +11 -3
- package/src/components/RichTextInput.d.ts +3 -14
- package/src/components/RichTextInput.tsx +111 -48
- package/src/components/Toolbar.d.ts +1 -1
- package/src/components/Toolbar.tsx +5 -5
- package/src/components/ToolbarButton.d.ts +1 -1
- package/src/constants/defaultStyles.d.ts +4 -2
- package/src/constants/defaultStyles.ts +26 -1
- package/src/hooks/useFormatting.ts +14 -1
- package/src/hooks/useRichText.ts +103 -10
- package/src/index.d.ts +2 -1
- package/src/index.ts +8 -0
- package/src/types/index.d.ts +41 -11
- package/src/types/index.ts +44 -11
- package/src/utils/formatter.ts +1 -5
- package/src/utils/serializer.d.ts +13 -0
- package/src/utils/serializer.ts +223 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","useCallback","useRef","EMPTY_FORMAT_STYLE","createSegment","segmentsToPlainText","reconcileTextChange","findPositionInSegments","useSelection","useFormatting","useRichText","options","initialSegments","onChangeSegments","onChangeText","segments","setSegments","length","activeStyles","setActiveStyles","selection","handleSelectionChange","segmentsRef","current","activeStylesRef","updateSegments","newSegments","formatting","onSegmentsChange","onActiveStylesChange","handleTextChange","newText","currentSegments","currentActiveStyles","onSelectionChange","newSelection","
|
|
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":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["hooks/useSelection.d.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","useCallback","useRef","useSelection","initialSelection","selection","setSelection","start","end","selectionRef","current","handleSelectionChange","newSelection","getSelection","hasSelection"],"sourceRoot":"
|
|
1
|
+
{"version":3,"names":["useState","useCallback","useRef","useSelection","initialSelection","selection","setSelection","start","end","selectionRef","current","handleSelectionChange","newSelection","getSelection","hasSelection"],"sourceRoot":"../../../src","sources":["hooks/useSelection.ts"],"mappings":";;AAAA,SAASA,QAAQ,EAAEC,WAAW,EAAEC,MAAM,QAAQ,OAAO;AAGrD;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAACC,gBAAiC,EAAE;EAC9D,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGN,QAAQ,CACxCI,gBAAgB,IAAI;IAAEG,KAAK,EAAE,CAAC;IAAEC,GAAG,EAAE;EAAE,CACzC,CAAC;;EAED;EACA,MAAMC,YAAY,GAAGP,MAAM,CAACG,SAAS,CAAC;EACtCI,YAAY,CAACC,OAAO,GAAGL,SAAS;EAEhC,MAAMM,qBAAqB,GAAGV,WAAW,CACtCW,YAA4B,IAAK;IAChCN,YAAY,CAACM,YAAY,CAAC;EAC5B,CAAC,EACD,EACF,CAAC;EAED,MAAMC,YAAY,GAAGZ,WAAW,CAAC,MAAsB;IACrD,OAAOQ,YAAY,CAACC,OAAO;EAC7B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMI,YAAY,GAAGb,WAAW,CAAC,MAAe;IAC9C,OAAOQ,YAAY,CAACC,OAAO,CAACH,KAAK,KAAKE,YAAY,CAACC,OAAO,CAACF,GAAG;EAChE,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IACLH,SAAS;IACTC,YAAY;IACZK,qBAAqB;IACrBE,YAAY;IACZC;EACF,CAAC;AACH","ignoreList":[]}
|
package/lib/module/index.d.js
CHANGED
|
@@ -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":"
|
|
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":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -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';
|
package/lib/module/index.js.map
CHANGED
|
@@ -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":"
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/index.d.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/index.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createSegment"],"sourceRoot":"
|
|
1
|
+
{"version":3,"names":["createSegment"],"sourceRoot":"../../../src","sources":["utils/formatter.d.ts"],"mappings":";;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAASA,aAAa,QAAQ,iBAAiB","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","
|
|
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":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["utils/parser.d.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EMPTY_FORMAT_STYLE","createSegment","text","styles","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":"
|
|
1
|
+
{"version":3,"names":["EMPTY_FORMAT_STYLE","createSegment","text","styles","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":[]}
|
|
@@ -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('&', '&').replaceAll('<', '<').replaceAll('>', '>').replaceAll('"', '"').replaceAll("'", ''');
|
|
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":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["utils/styleMapper.d.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DEFAULT_THEME","HEADING_FONT_SIZES","formatStyleToTextStyle","formatStyle","theme","resolvedTheme","style","bold","fontWeight","italic","fontStyle","underline","strikethrough","textDecorationLine","code","codeStyle","Object","assign","color","backgroundColor","fontSize","heading","lineHeight","segmentToTextStyle","segment","baseStyle","baseTextStyle","styles","segmentsToTextStyles","segments","map","seg"],"sourceRoot":"
|
|
1
|
+
{"version":3,"names":["DEFAULT_THEME","HEADING_FONT_SIZES","formatStyleToTextStyle","formatStyle","theme","resolvedTheme","style","bold","fontWeight","italic","fontStyle","underline","strikethrough","textDecorationLine","code","codeStyle","Object","assign","color","backgroundColor","fontSize","heading","lineHeight","segmentToTextStyle","segment","baseStyle","baseTextStyle","styles","segmentsToTextStyles","segments","map","seg"],"sourceRoot":"../../../src","sources":["utils/styleMapper.ts"],"mappings":";;AAEA,SAASA,aAAa,EAAEC,kBAAkB,QAAQ,4BAA4B;;AAE9E;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CACpCC,WAAwB,EACxBC,KAAqB,EACV;EACX,MAAMC,aAAa,GAAGD,KAAK,IAAIJ,aAAa;EAC5C,MAAMM,KAAgB,GAAG,CAAC,CAAC;;EAE3B;EACA,IAAIH,WAAW,CAACI,IAAI,EAAE;IACpBD,KAAK,CAACE,UAAU,GAAG,MAAM;EAC3B;;EAEA;EACA,IAAIL,WAAW,CAACM,MAAM,EAAE;IACtBH,KAAK,CAACI,SAAS,GAAG,QAAQ;EAC5B;;EAEA;EACA,IAAIP,WAAW,CAACQ,SAAS,IAAIR,WAAW,CAACS,aAAa,EAAE;IACtDN,KAAK,CAACO,kBAAkB,GAAG,wBAAwB;EACrD,CAAC,MAAM,IAAIV,WAAW,CAACQ,SAAS,EAAE;IAChCL,KAAK,CAACO,kBAAkB,GAAG,WAAW;EACxC,CAAC,MAAM,IAAIV,WAAW,CAACS,aAAa,EAAE;IACpCN,KAAK,CAACO,kBAAkB,GAAG,cAAc;EAC3C;;EAEA;EACA,IAAIV,WAAW,CAACW,IAAI,EAAE;IACpB,MAAMC,SAAS,GAAGV,aAAa,CAACU,SAAS,IAAIf,aAAa,CAACe,SAAS;IACpE,IAAIA,SAAS,EAAE;MACbC,MAAM,CAACC,MAAM,CAACX,KAAK,EAAES,SAAS,CAAC;IACjC;EACF;;EAEA;EACA,IAAIZ,WAAW,CAACe,KAAK,EAAE;IACrBZ,KAAK,CAACY,KAAK,GAAGf,WAAW,CAACe,KAAK;EACjC;;EAEA;EACA,IAAIf,WAAW,CAACgB,eAAe,EAAE;IAC/Bb,KAAK,CAACa,eAAe,GAAGhB,WAAW,CAACgB,eAAe;EACrD;;EAEA;EACA,IAAIhB,WAAW,CAACiB,QAAQ,EAAE;IACxBd,KAAK,CAACc,QAAQ,GAAGjB,WAAW,CAACiB,QAAQ;EACvC;;EAEA;EACA,IAAIjB,WAAW,CAACkB,OAAO,IAAIlB,WAAW,CAACkB,OAAO,KAAK,MAAM,EAAE;IACzDf,KAAK,CAACc,QAAQ,GAAGnB,kBAAkB,CAACE,WAAW,CAACkB,OAAO,CAAC;IACxDf,KAAK,CAACE,UAAU,GAAG,MAAM;IACzBF,KAAK,CAACgB,UAAU,GAAGrB,kBAAkB,CAACE,WAAW,CAACkB,OAAO,CAAC,GAAG,GAAG;EAClE;EAEA,OAAOf,KAAK;AACd;;AAEA;AACA;AACA;AACA,OAAO,SAASiB,kBAAkBA,CAChCC,OAAsB,EACtBpB,KAAqB,EACV;EACX,MAAMqB,SAAS,GAAGrB,KAAK,EAAEsB,aAAa,IAAI1B,aAAa,CAAC0B,aAAa,IAAI,CAAC,CAAC;EAC3E,MAAMvB,WAAW,GAAGD,sBAAsB,CAACsB,OAAO,CAACG,MAAM,EAAEvB,KAAK,CAAC;EAEjE,OAAO;IACL,GAAGqB,SAAS;IACZ,GAAGtB;EACL,CAAC;AACH;;AAEA;AACA;AACA;AACA,OAAO,SAASyB,oBAAoBA,CAClCC,QAAyB,EACzBzB,KAAqB,EACR;EACb,OAAOyB,QAAQ,CAACC,GAAG,CAAEC,GAAG,IAAKR,kBAAkB,CAACQ,GAAG,EAAE3B,KAAK,CAAC,CAAC;AAC9D","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverlayText.d.ts","sourceRoot":"","sources":["../../../../src/components/OverlayText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAIjD;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"OverlayText.d.ts","sourceRoot":"","sources":["../../../../src/components/OverlayText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAIjD;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAsClD,CAAC"}
|
|
@@ -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
|
|
7
|
-
*
|
|
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,
|
|
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
|
|
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;
|
|
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,
|
|
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, 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;
|
|
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
|
*/
|
|
@@ -75,6 +79,12 @@ export interface RichTextActions {
|
|
|
75
79
|
handleTextChange: (text: string) => void;
|
|
76
80
|
/** Handle selection change from TextInput. */
|
|
77
81
|
handleSelectionChange: (selection: SelectionRange) => void;
|
|
82
|
+
/** Check whether a format is active at the current cursor/selection. */
|
|
83
|
+
isFormatActive: (format: FormatType) => boolean;
|
|
84
|
+
/** Get the effective shared style at the current cursor/selection. */
|
|
85
|
+
getSelectionStyle: () => FormatStyle;
|
|
86
|
+
/** Serialize the current content as markdown or HTML. */
|
|
87
|
+
getOutput: (format?: OutputFormat) => string;
|
|
78
88
|
/** Get the full plain text content. */
|
|
79
89
|
getPlainText: () => string;
|
|
80
90
|
/** Export the segments as a serializable JSON array. */
|
|
@@ -99,10 +109,16 @@ export interface RichTextTheme {
|
|
|
99
109
|
containerStyle?: ViewStyle;
|
|
100
110
|
/** Style for the TextInput. */
|
|
101
111
|
inputStyle?: TextStyle;
|
|
102
|
-
/** Style for the overlay text container. */
|
|
112
|
+
/** Style for the legacy overlay text container. */
|
|
103
113
|
overlayContainerStyle?: ViewStyle;
|
|
104
114
|
/** Base text style applied to all segments before formatting. */
|
|
105
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;
|
|
106
122
|
/** Style for the toolbar container. */
|
|
107
123
|
toolbarStyle?: ViewStyle;
|
|
108
124
|
/** Style for toolbar buttons. */
|
|
@@ -150,11 +166,23 @@ export interface ToolbarItem {
|
|
|
150
166
|
/** Whether this item is currently active. */
|
|
151
167
|
active?: boolean;
|
|
152
168
|
/** Custom render function for the button. */
|
|
153
|
-
renderButton?: (props:
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
169
|
+
renderButton?: (props: ToolbarButtonRenderProps) => React.ReactElement | null;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Props passed to a custom toolbar button renderer.
|
|
173
|
+
*/
|
|
174
|
+
export interface ToolbarButtonRenderProps {
|
|
175
|
+
active: boolean;
|
|
176
|
+
onPress: () => void;
|
|
177
|
+
label: string;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Props passed to a custom toolbar renderer.
|
|
181
|
+
*/
|
|
182
|
+
export interface ToolbarRenderProps {
|
|
183
|
+
items: ToolbarItem[];
|
|
184
|
+
state: RichTextState;
|
|
185
|
+
actions: RichTextActions;
|
|
158
186
|
}
|
|
159
187
|
/**
|
|
160
188
|
* Props for the OverlayText component.
|
|
@@ -197,11 +225,7 @@ export interface ToolbarProps {
|
|
|
197
225
|
/** Whether to show the toolbar. */
|
|
198
226
|
visible?: boolean;
|
|
199
227
|
/** Custom render function for the entire toolbar. */
|
|
200
|
-
renderToolbar?: (props:
|
|
201
|
-
items: ToolbarItem[];
|
|
202
|
-
state: RichTextState;
|
|
203
|
-
actions: RichTextActions;
|
|
204
|
-
}) => React.ReactElement;
|
|
228
|
+
renderToolbar?: (props: ToolbarRenderProps) => React.ReactElement | null;
|
|
205
229
|
}
|
|
206
230
|
/**
|
|
207
231
|
* Props for the main RichTextInput component.
|
|
@@ -227,6 +251,12 @@ export interface RichTextInputProps {
|
|
|
227
251
|
toolbarItems?: ToolbarItem[];
|
|
228
252
|
/** Theme configuration. */
|
|
229
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;
|
|
230
260
|
/** Whether multiline input is enabled. */
|
|
231
261
|
multiline?: boolean;
|
|
232
262
|
/** Minimum height for the input area. */
|