react-native-richify 1.0.4 → 1.0.6

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 (75) hide show
  1. package/README.md +383 -120
  2. package/lib/commonjs/components/RenderedOutput.js +168 -0
  3. package/lib/commonjs/components/RenderedOutput.js.map +1 -0
  4. package/lib/commonjs/components/RichTextInput.js +130 -15
  5. package/lib/commonjs/components/RichTextInput.js.map +1 -1
  6. package/lib/commonjs/components/Toolbar.js +41 -2
  7. package/lib/commonjs/components/Toolbar.js.map +1 -1
  8. package/lib/commonjs/constants/defaultStyles.js +51 -1
  9. package/lib/commonjs/constants/defaultStyles.js.map +1 -1
  10. package/lib/commonjs/hooks/useFormatting.js +44 -2
  11. package/lib/commonjs/hooks/useFormatting.js.map +1 -1
  12. package/lib/commonjs/hooks/useRichText.js +75 -6
  13. package/lib/commonjs/hooks/useRichText.js.map +1 -1
  14. package/lib/commonjs/utils/formatter.js +48 -9
  15. package/lib/commonjs/utils/formatter.js.map +1 -1
  16. package/lib/commonjs/utils/parser.js +1 -1
  17. package/lib/commonjs/utils/parser.js.map +1 -1
  18. package/lib/commonjs/utils/serializer.js +102 -6
  19. package/lib/commonjs/utils/serializer.js.map +1 -1
  20. package/lib/commonjs/utils/styleMapper.js +11 -0
  21. package/lib/commonjs/utils/styleMapper.js.map +1 -1
  22. package/lib/module/components/RenderedOutput.js +163 -0
  23. package/lib/module/components/RenderedOutput.js.map +1 -0
  24. package/lib/module/components/RichTextInput.js +131 -16
  25. package/lib/module/components/RichTextInput.js.map +1 -1
  26. package/lib/module/components/Toolbar.js +41 -2
  27. package/lib/module/components/Toolbar.js.map +1 -1
  28. package/lib/module/constants/defaultStyles.js +51 -1
  29. package/lib/module/constants/defaultStyles.js.map +1 -1
  30. package/lib/module/hooks/useFormatting.js +45 -3
  31. package/lib/module/hooks/useFormatting.js.map +1 -1
  32. package/lib/module/hooks/useRichText.js +75 -6
  33. package/lib/module/hooks/useRichText.js.map +1 -1
  34. package/lib/module/utils/formatter.js +46 -9
  35. package/lib/module/utils/formatter.js.map +1 -1
  36. package/lib/module/utils/parser.js +1 -1
  37. package/lib/module/utils/parser.js.map +1 -1
  38. package/lib/module/utils/serializer.js +102 -6
  39. package/lib/module/utils/serializer.js.map +1 -1
  40. package/lib/module/utils/styleMapper.js +11 -0
  41. package/lib/module/utils/styleMapper.js.map +1 -1
  42. package/lib/typescript/src/components/RenderedOutput.d.ts +9 -0
  43. package/lib/typescript/src/components/RenderedOutput.d.ts.map +1 -0
  44. package/lib/typescript/src/components/RichTextInput.d.ts.map +1 -1
  45. package/lib/typescript/src/components/Toolbar.d.ts.map +1 -1
  46. package/lib/typescript/src/constants/defaultStyles.d.ts +1 -0
  47. package/lib/typescript/src/constants/defaultStyles.d.ts.map +1 -1
  48. package/lib/typescript/src/hooks/useFormatting.d.ts +4 -1
  49. package/lib/typescript/src/hooks/useFormatting.d.ts.map +1 -1
  50. package/lib/typescript/src/hooks/useRichText.d.ts.map +1 -1
  51. package/lib/typescript/src/index.d.ts +1 -1
  52. package/lib/typescript/src/index.d.ts.map +1 -1
  53. package/lib/typescript/src/types/index.d.ts +94 -1
  54. package/lib/typescript/src/types/index.d.ts.map +1 -1
  55. package/lib/typescript/src/utils/formatter.d.ts +9 -1
  56. package/lib/typescript/src/utils/formatter.d.ts.map +1 -1
  57. package/lib/typescript/src/utils/parser.d.ts.map +1 -1
  58. package/lib/typescript/src/utils/serializer.d.ts.map +1 -1
  59. package/lib/typescript/src/utils/styleMapper.d.ts.map +1 -1
  60. package/package.json +1 -1
  61. package/src/components/RenderedOutput.tsx +231 -0
  62. package/src/components/RichTextInput.tsx +193 -19
  63. package/src/components/Toolbar.tsx +54 -2
  64. package/src/constants/defaultStyles.d.ts +2 -1
  65. package/src/constants/defaultStyles.ts +20 -0
  66. package/src/hooks/useFormatting.ts +101 -2
  67. package/src/hooks/useRichText.ts +101 -5
  68. package/src/index.d.ts +1 -1
  69. package/src/index.ts +4 -0
  70. package/src/types/index.d.ts +94 -1
  71. package/src/types/index.ts +104 -1
  72. package/src/utils/formatter.ts +60 -6
  73. package/src/utils/parser.ts +6 -1
  74. package/src/utils/serializer.ts +150 -8
  75. package/src/utils/styleMapper.ts +21 -0
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.RenderedOutput = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _defaultStyles = require("../constants/defaultStyles");
10
+ var _styleMapper = require("../utils/styleMapper");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
+ const RenderedOutput = exports.RenderedOutput = /*#__PURE__*/_react.default.memo(({
14
+ segments,
15
+ theme
16
+ }) => {
17
+ const resolvedTheme = theme ?? _defaultStyles.DEFAULT_THEME;
18
+ const lines = (0, _react.useMemo)(() => splitSegmentsByLine(segments), [segments]);
19
+ let orderedIndex = 0;
20
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
21
+ style: [styles.container, resolvedTheme.renderedOutputStyle ?? _defaultStyles.DEFAULT_THEME.renderedOutputStyle],
22
+ children: lines.map((line, lineIndex) => {
23
+ const listType = getLineStyle(line, 'listType');
24
+ const textAlign = getLineStyle(line, 'textAlign');
25
+ const marker = listType === 'bullet' ? '\u2022' : listType === 'ordered' ? `${orderedIndex + 1}.` : undefined;
26
+ orderedIndex = listType === 'ordered' ? orderedIndex + 1 : 0;
27
+ const textFragments = line.filter(fragment => !fragment.styles.imageSrc && fragment.text.length > 0);
28
+ const imageFragments = line.filter(fragment => !!fragment.styles.imageSrc);
29
+ const contentAlignStyle = textAlign === 'center' ? styles.alignCenter : textAlign === 'right' ? styles.alignRight : styles.alignLeft;
30
+ if (textFragments.length === 0 && imageFragments.length === 0) {
31
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
32
+ style: [styles.emptyLine, contentAlignStyle]
33
+ }, `line-${lineIndex}`);
34
+ }
35
+ const textNode = textFragments.length > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
36
+ style: [resolvedTheme.baseTextStyle ?? _defaultStyles.DEFAULT_THEME.baseTextStyle, textAlign ? {
37
+ textAlign
38
+ } : undefined],
39
+ children: textFragments.map((fragment, fragmentIndex) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
40
+ style: (0, _styleMapper.segmentToTextStyle)(fragment, resolvedTheme),
41
+ children: fragment.text
42
+ }, `text-${lineIndex}-${fragmentIndex}`))
43
+ }) : null;
44
+ const imageNodes = imageFragments.map((fragment, fragmentIndex) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
45
+ style: styles.imageBlock,
46
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Image, {
47
+ source: {
48
+ uri: fragment.styles.imageSrc
49
+ },
50
+ style: styles.image,
51
+ resizeMode: "contain"
52
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
53
+ style: [styles.imageCaption, resolvedTheme.baseTextStyle ?? _defaultStyles.DEFAULT_THEME.baseTextStyle, textAlign ? {
54
+ textAlign
55
+ } : undefined],
56
+ children: fragment.styles.imageAlt ?? extractImageAlt(fragment.text)
57
+ })]
58
+ }, `image-${lineIndex}-${fragmentIndex}`));
59
+ const content = /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
60
+ style: [styles.lineContent, contentAlignStyle],
61
+ children: [textNode, imageNodes]
62
+ });
63
+ if (!marker) {
64
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
65
+ style: styles.line,
66
+ children: content
67
+ }, `line-${lineIndex}`);
68
+ }
69
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
70
+ style: styles.listLine,
71
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
72
+ style: [styles.listMarker, resolvedTheme.baseTextStyle ?? _defaultStyles.DEFAULT_THEME.baseTextStyle],
73
+ children: marker
74
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
75
+ style: styles.listContent,
76
+ children: content
77
+ })]
78
+ }, `line-${lineIndex}`);
79
+ })
80
+ });
81
+ });
82
+ RenderedOutput.displayName = 'RenderedOutput';
83
+ function splitSegmentsByLine(segments) {
84
+ const lines = [[]];
85
+ for (const segment of segments) {
86
+ const parts = segment.text.split('\n');
87
+ parts.forEach((part, index) => {
88
+ if (part.length > 0 || segment.styles.imageSrc) {
89
+ lines[lines.length - 1]?.push({
90
+ text: part,
91
+ styles: {
92
+ ...segment.styles
93
+ }
94
+ });
95
+ }
96
+ if (index < parts.length - 1) {
97
+ lines.push([]);
98
+ }
99
+ });
100
+ }
101
+ return lines;
102
+ }
103
+ function getLineStyle(line, key) {
104
+ for (const fragment of line) {
105
+ const value = fragment.styles[key];
106
+ if (value !== undefined) {
107
+ return value;
108
+ }
109
+ }
110
+ return undefined;
111
+ }
112
+ function extractImageAlt(text) {
113
+ const normalized = text.replace(/^\[Image:\s*/i, '').replace(/^\[Image\]/i, '').replace(/\]$/, '').trim();
114
+ return normalized.length > 0 ? normalized : 'image';
115
+ }
116
+ const styles = _reactNative.StyleSheet.create({
117
+ container: {
118
+ gap: 10
119
+ },
120
+ line: {
121
+ width: '100%'
122
+ },
123
+ lineContent: {
124
+ width: '100%',
125
+ gap: 8
126
+ },
127
+ listLine: {
128
+ width: '100%',
129
+ flexDirection: 'row',
130
+ alignItems: 'flex-start',
131
+ gap: 8
132
+ },
133
+ listMarker: {
134
+ minWidth: 20,
135
+ paddingTop: 1
136
+ },
137
+ listContent: {
138
+ flex: 1
139
+ },
140
+ alignLeft: {
141
+ alignItems: 'flex-start'
142
+ },
143
+ alignCenter: {
144
+ alignItems: 'center'
145
+ },
146
+ alignRight: {
147
+ alignItems: 'flex-end'
148
+ },
149
+ emptyLine: {
150
+ minHeight: 20,
151
+ width: '100%'
152
+ },
153
+ imageBlock: {
154
+ width: '100%',
155
+ gap: 6
156
+ },
157
+ image: {
158
+ width: '100%',
159
+ height: 160,
160
+ borderRadius: 10,
161
+ backgroundColor: '#E5E7EB'
162
+ },
163
+ imageCaption: {
164
+ fontSize: 13,
165
+ opacity: 0.8
166
+ }
167
+ });
168
+ //# sourceMappingURL=RenderedOutput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_defaultStyles","_styleMapper","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","RenderedOutput","exports","React","memo","segments","theme","resolvedTheme","DEFAULT_THEME","lines","useMemo","splitSegmentsByLine","orderedIndex","jsx","View","style","styles","container","renderedOutputStyle","children","map","line","lineIndex","listType","getLineStyle","textAlign","marker","undefined","textFragments","filter","fragment","imageSrc","text","length","imageFragments","contentAlignStyle","alignCenter","alignRight","alignLeft","emptyLine","textNode","Text","baseTextStyle","fragmentIndex","segmentToTextStyle","imageNodes","jsxs","imageBlock","Image","source","uri","image","resizeMode","imageCaption","imageAlt","extractImageAlt","content","lineContent","listLine","listMarker","listContent","displayName","segment","parts","split","forEach","part","index","push","key","value","normalized","replace","trim","StyleSheet","create","gap","width","flexDirection","alignItems","minWidth","paddingTop","flex","minHeight","height","borderRadius","backgroundColor","fontSize","opacity"],"sourceRoot":"../../../src","sources":["components/RenderedOutput.tsx"],"mappings":"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","ignoreList":[]}
@@ -10,10 +10,11 @@ var _defaultStyles = require("../constants/defaultStyles");
10
10
  var _useRichText = require("../hooks/useRichText");
11
11
  var _parser = require("../utils/parser");
12
12
  var _serializer = require("../utils/serializer");
13
+ var _RenderedOutput = require("./RenderedOutput");
13
14
  var _Toolbar = require("./Toolbar");
14
15
  var _jsxRuntime = require("react/jsx-runtime");
15
16
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
16
- const OUTPUT_PANEL_HEIGHT = 180;
17
+ const DEFAULT_OUTPUT_PANEL_MAX_HEIGHT = 180;
17
18
  const isJestRuntime = typeof globalThis.process?.env?.JEST_WORKER_ID === 'string';
18
19
 
19
20
  /**
@@ -34,8 +35,16 @@ const RichTextInput = ({
34
35
  toolbarItems,
35
36
  theme,
36
37
  showOutputPreview = true,
37
- outputFormat = 'markdown',
38
+ outputFormat,
39
+ defaultOutputFormat = 'markdown',
40
+ outputPreviewMode,
41
+ defaultOutputPreviewMode = 'literal',
42
+ maxOutputHeight = DEFAULT_OUTPUT_PANEL_MAX_HEIGHT,
38
43
  onChangeOutput,
44
+ onChangeOutputFormat,
45
+ onChangeOutputPreviewMode,
46
+ onRequestLink,
47
+ onRequestImage,
39
48
  multiline = true,
40
49
  minHeight = 120,
41
50
  maxHeight,
@@ -46,6 +55,9 @@ const RichTextInput = ({
46
55
  }) => {
47
56
  const resolvedTheme = theme ?? _defaultStyles.DEFAULT_THEME;
48
57
  const previewProgress = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
58
+ const [internalOutputFormat, setInternalOutputFormat] = (0, _react.useState)(defaultOutputFormat);
59
+ const [internalOutputPreviewMode, setInternalOutputPreviewMode] = (0, _react.useState)(defaultOutputPreviewMode);
60
+ const [contentHeight, setContentHeight] = (0, _react.useState)(minHeight);
49
61
  const {
50
62
  state,
51
63
  actions
@@ -58,11 +70,21 @@ const RichTextInput = ({
58
70
  onReady?.(actions);
59
71
  }, [actions, onReady]);
60
72
  const plainText = (0, _parser.segmentsToPlainText)(state.segments);
61
- const serializedOutput = (0, _react.useMemo)(() => (0, _serializer.serializeSegments)(state.segments, outputFormat), [outputFormat, state.segments]);
73
+ const resolvedOutputFormat = outputFormat ?? internalOutputFormat;
74
+ const resolvedOutputPreviewMode = outputPreviewMode ?? internalOutputPreviewMode;
75
+ const inputHeight = Math.max(minHeight, typeof maxHeight === 'number' ? Math.min(contentHeight, maxHeight) : contentHeight);
76
+ const shouldScrollInput = typeof maxHeight === 'number' && contentHeight > maxHeight;
77
+ const serializedOutput = (0, _react.useMemo)(() => (0, _serializer.serializeSegments)(state.segments, resolvedOutputFormat), [resolvedOutputFormat, state.segments]);
62
78
  const shouldShowOutputPreview = showOutputPreview && plainText.length > 0;
79
+ const normalizedSelection = (0, _react.useMemo)(() => ({
80
+ start: Math.min(state.selection.start, state.selection.end),
81
+ end: Math.max(state.selection.start, state.selection.end)
82
+ }), [state.selection.end, state.selection.start]);
83
+ const selectedText = (0, _react.useMemo)(() => plainText.slice(normalizedSelection.start, normalizedSelection.end), [normalizedSelection.end, normalizedSelection.start, plainText]);
84
+ const selectionStyle = (0, _react.useMemo)(() => actions.getSelectionStyle(), [actions, state.activeStyles, state.segments, state.selection]);
63
85
  (0, _react.useEffect)(() => {
64
- onChangeOutput?.(serializedOutput, outputFormat);
65
- }, [onChangeOutput, outputFormat, serializedOutput]);
86
+ onChangeOutput?.(serializedOutput, resolvedOutputFormat);
87
+ }, [onChangeOutput, resolvedOutputFormat, serializedOutput]);
66
88
  (0, _react.useEffect)(() => {
67
89
  if (isJestRuntime) {
68
90
  previewProgress.setValue(shouldShowOutputPreview ? 1 : 0);
@@ -85,17 +107,70 @@ const RichTextInput = ({
85
107
  end
86
108
  });
87
109
  }, [actions]);
110
+ const onContentSizeChange = (0, _react.useCallback)(e => {
111
+ setContentHeight(Math.ceil(e.nativeEvent.contentSize.height));
112
+ textInputProps?.onContentSizeChange?.(e);
113
+ }, [textInputProps]);
114
+ const handleOutputFormatChange = (0, _react.useCallback)(format => {
115
+ if (outputFormat === undefined) {
116
+ setInternalOutputFormat(format);
117
+ }
118
+ onChangeOutputFormat?.(format);
119
+ }, [onChangeOutputFormat, outputFormat]);
120
+ const handleOutputPreviewModeChange = (0, _react.useCallback)(mode => {
121
+ if (outputPreviewMode === undefined) {
122
+ setInternalOutputPreviewMode(mode);
123
+ }
124
+ onChangeOutputPreviewMode?.(mode);
125
+ }, [onChangeOutputPreviewMode, outputPreviewMode]);
126
+ const handleRequestLink = (0, _react.useCallback)(() => {
127
+ if (onRequestLink) {
128
+ onRequestLink({
129
+ selectedText,
130
+ currentUrl: selectionStyle.link,
131
+ applyLink: actions.setLink
132
+ });
133
+ return;
134
+ }
135
+ if (selectionStyle.link) {
136
+ actions.setLink(undefined);
137
+ return;
138
+ }
139
+ const detectedUrl = detectLinkTarget(selectedText);
140
+ if (detectedUrl) {
141
+ actions.setLink(detectedUrl);
142
+ }
143
+ }, [actions, onRequestLink, selectedText, selectionStyle.link]);
144
+ const handleRequestImage = (0, _react.useCallback)(() => {
145
+ if (onRequestImage) {
146
+ onRequestImage({
147
+ insertImage: actions.insertImage
148
+ });
149
+ return;
150
+ }
151
+ const detectedSource = detectImageSource(selectedText);
152
+ if (detectedSource) {
153
+ actions.insertImage(detectedSource, {
154
+ alt: selectedText.trim() || undefined
155
+ });
156
+ }
157
+ }, [actions, onRequestImage, selectedText]);
158
+ const outputLabel = (0, _react.useMemo)(() => {
159
+ const formatLabel = resolvedOutputFormat === 'html' ? 'HTML' : 'Markdown';
160
+ if (resolvedOutputPreviewMode === 'rendered') {
161
+ return `${formatLabel} preview`;
162
+ }
163
+ return `${formatLabel} output`;
164
+ }, [resolvedOutputFormat, resolvedOutputPreviewMode]);
88
165
  const containerStyle = [resolvedTheme.containerStyle ?? _defaultStyles.DEFAULT_THEME.containerStyle];
89
- const inputAreaStyle = [styles.inputArea, {
90
- minHeight
91
- }, maxHeight ? {
92
- maxHeight
93
- } : undefined];
94
- const inputStyle = [styles.textInput, resolvedTheme.baseTextStyle ?? _defaultStyles.DEFAULT_THEME.baseTextStyle, resolvedTheme.inputStyle ?? _defaultStyles.DEFAULT_THEME.inputStyle, textInputProps?.style];
166
+ const inputAreaStyle = [styles.inputArea];
167
+ const inputStyle = [styles.textInput, resolvedTheme.baseTextStyle ?? _defaultStyles.DEFAULT_THEME.baseTextStyle, resolvedTheme.inputStyle ?? _defaultStyles.DEFAULT_THEME.inputStyle, {
168
+ height: inputHeight
169
+ }, textInputProps?.style];
95
170
  const outputAnimatedStyle = {
96
171
  maxHeight: previewProgress.interpolate({
97
172
  inputRange: [0, 1],
98
- outputRange: [0, OUTPUT_PANEL_HEIGHT]
173
+ outputRange: [0, maxOutputHeight + 72]
99
174
  }),
100
175
  opacity: previewProgress,
101
176
  marginTop: previewProgress.interpolate({
@@ -117,6 +192,12 @@ const RichTextInput = ({
117
192
  state: state,
118
193
  items: toolbarItems,
119
194
  theme: resolvedTheme,
195
+ outputFormat: resolvedOutputFormat,
196
+ outputPreviewMode: resolvedOutputPreviewMode,
197
+ onOutputFormatChange: handleOutputFormatChange,
198
+ onOutputPreviewModeChange: handleOutputPreviewModeChange,
199
+ onRequestLink: handleRequestLink,
200
+ onRequestImage: handleRequestImage,
120
201
  renderToolbar: renderToolbar
121
202
  }) : null;
122
203
  const toolbarBorderStyle = toolbarPosition === 'top' ? {
@@ -139,6 +220,7 @@ const RichTextInput = ({
139
220
  value: plainText,
140
221
  onChangeText: actions.handleTextChange,
141
222
  onSelectionChange: onSelectionChange,
223
+ onContentSizeChange: onContentSizeChange,
142
224
  multiline: multiline,
143
225
  placeholder: placeholder,
144
226
  placeholderTextColor: resolvedTheme.colors?.placeholder ?? _defaultStyles.DEFAULT_THEME.colors?.placeholder,
@@ -147,7 +229,7 @@ const RichTextInput = ({
147
229
  autoFocus: autoFocus,
148
230
  selectionColor: resolvedTheme.colors?.cursor ?? _defaultStyles.DEFAULT_THEME.colors?.cursor,
149
231
  textAlignVertical: "top",
150
- scrollEnabled: typeof maxHeight === 'number'
232
+ scrollEnabled: shouldScrollInput
151
233
  }), showOutputPreview && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
152
234
  pointerEvents: shouldShowOutputPreview ? 'auto' : 'none',
153
235
  style: [styles.outputAnimatedWrapper, outputAnimatedStyle],
@@ -155,10 +237,16 @@ const RichTextInput = ({
155
237
  style: outputContainerStyle,
156
238
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
157
239
  style: outputLabelStyle,
158
- children: outputFormat === 'html' ? 'HTML output' : 'Markdown output'
240
+ children: outputLabel
159
241
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
242
+ style: {
243
+ maxHeight: maxOutputHeight
244
+ },
160
245
  showsVerticalScrollIndicator: false,
161
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
246
+ children: resolvedOutputPreviewMode === 'rendered' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_RenderedOutput.RenderedOutput, {
247
+ segments: state.segments,
248
+ theme: resolvedTheme
249
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
162
250
  selectable: true,
163
251
  style: outputTextStyle,
164
252
  children: serializedOutput
@@ -185,4 +273,31 @@ const styles = _reactNative.StyleSheet.create({
185
273
  overflow: 'hidden'
186
274
  }
187
275
  });
276
+ function detectLinkTarget(value) {
277
+ const trimmed = value.trim();
278
+ if (trimmed.length === 0) {
279
+ return undefined;
280
+ }
281
+ if (/^https?:\/\//i.test(trimmed) || /^mailto:/i.test(trimmed)) {
282
+ return trimmed;
283
+ }
284
+ if (/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(trimmed)) {
285
+ return `mailto:${trimmed}`;
286
+ }
287
+ if (/^[^\s]+\.[^\s]+$/.test(trimmed)) {
288
+ return `https://${trimmed}`;
289
+ }
290
+ return undefined;
291
+ }
292
+ function detectImageSource(value) {
293
+ const normalized = detectLinkTarget(value);
294
+ if (!normalized) {
295
+ return undefined;
296
+ }
297
+ const candidate = normalized.replace(/^mailto:/i, '');
298
+ if (/\.(png|jpe?g|gif|webp|svg)(\?.*)?$/i.test(candidate)) {
299
+ return normalized;
300
+ }
301
+ return undefined;
302
+ }
188
303
  //# sourceMappingURL=RichTextInput.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_defaultStyles","_useRichText","_parser","_serializer","_Toolbar","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","OUTPUT_PANEL_HEIGHT","isJestRuntime","globalThis","process","env","JEST_WORKER_ID","RichTextInput","initialSegments","onChangeSegments","onChangeText","placeholder","editable","maxLength","showToolbar","toolbarPosition","toolbarItems","theme","showOutputPreview","outputFormat","onChangeOutput","multiline","minHeight","maxHeight","autoFocus","textInputProps","renderToolbar","onReady","resolvedTheme","DEFAULT_THEME","previewProgress","useRef","Animated","Value","current","state","actions","useRichText","useEffect","plainText","segmentsToPlainText","segments","serializedOutput","useMemo","serializeSegments","shouldShowOutputPreview","length","setValue","timing","toValue","duration","easing","Easing","out","cubic","useNativeDriver","start","onSelectionChange","useCallback","end","nativeEvent","selection","handleSelectionChange","containerStyle","inputAreaStyle","styles","inputArea","undefined","inputStyle","textInput","baseTextStyle","style","outputAnimatedStyle","interpolate","inputRange","outputRange","opacity","marginTop","transform","translateY","outputContainerStyle","outputLabelStyle","outputTextStyle","toolbarComponent","jsx","Toolbar","items","toolbarBorderStyle","borderBottomWidth","borderBottomColor","colors","toolbarBorder","borderTopWidth","borderTopColor","jsxs","View","children","TextInput","value","handleTextChange","placeholderTextColor","selectionColor","cursor","textAlignVertical","scrollEnabled","pointerEvents","outputAnimatedWrapper","Text","ScrollView","showsVerticalScrollIndicator","selectable","exports","displayName","StyleSheet","create","position","overflow"],"sourceRoot":"../../../src","sources":["components/RichTextInput.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_defaultStyles","_useRichText","_parser","_serializer","_RenderedOutput","_Toolbar","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DEFAULT_OUTPUT_PANEL_MAX_HEIGHT","isJestRuntime","globalThis","process","env","JEST_WORKER_ID","RichTextInput","initialSegments","onChangeSegments","onChangeText","placeholder","editable","maxLength","showToolbar","toolbarPosition","toolbarItems","theme","showOutputPreview","outputFormat","defaultOutputFormat","outputPreviewMode","defaultOutputPreviewMode","maxOutputHeight","onChangeOutput","onChangeOutputFormat","onChangeOutputPreviewMode","onRequestLink","onRequestImage","multiline","minHeight","maxHeight","autoFocus","textInputProps","renderToolbar","onReady","resolvedTheme","DEFAULT_THEME","previewProgress","useRef","Animated","Value","current","internalOutputFormat","setInternalOutputFormat","useState","internalOutputPreviewMode","setInternalOutputPreviewMode","contentHeight","setContentHeight","state","actions","useRichText","useEffect","plainText","segmentsToPlainText","segments","resolvedOutputFormat","resolvedOutputPreviewMode","inputHeight","Math","max","min","shouldScrollInput","serializedOutput","useMemo","serializeSegments","shouldShowOutputPreview","length","normalizedSelection","start","selection","end","selectedText","slice","selectionStyle","getSelectionStyle","activeStyles","setValue","timing","toValue","duration","easing","Easing","out","cubic","useNativeDriver","onSelectionChange","useCallback","nativeEvent","handleSelectionChange","onContentSizeChange","ceil","contentSize","height","handleOutputFormatChange","format","undefined","handleOutputPreviewModeChange","mode","handleRequestLink","currentUrl","link","applyLink","setLink","detectedUrl","detectLinkTarget","handleRequestImage","insertImage","detectedSource","detectImageSource","alt","trim","outputLabel","formatLabel","containerStyle","inputAreaStyle","styles","inputArea","inputStyle","textInput","baseTextStyle","style","outputAnimatedStyle","interpolate","inputRange","outputRange","opacity","marginTop","transform","translateY","outputContainerStyle","outputLabelStyle","outputTextStyle","toolbarComponent","jsx","Toolbar","items","onOutputFormatChange","onOutputPreviewModeChange","toolbarBorderStyle","borderBottomWidth","borderBottomColor","colors","toolbarBorder","borderTopWidth","borderTopColor","jsxs","View","children","TextInput","value","handleTextChange","placeholderTextColor","selectionColor","cursor","textAlignVertical","scrollEnabled","pointerEvents","outputAnimatedWrapper","Text","ScrollView","showsVerticalScrollIndicator","RenderedOutput","selectable","exports","displayName","StyleSheet","create","position","overflow","trimmed","test","normalized","candidate","replace"],"sourceRoot":"../../../src","sources":["components/RichTextInput.tsx"],"mappings":"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","ignoreList":[]}
@@ -25,6 +25,12 @@ const Toolbar = exports.Toolbar = /*#__PURE__*/_react.default.memo(({
25
25
  items,
26
26
  theme,
27
27
  visible = true,
28
+ outputFormat = 'markdown',
29
+ outputPreviewMode = 'literal',
30
+ onOutputFormatChange,
31
+ onOutputPreviewModeChange,
32
+ onRequestLink,
33
+ onRequestImage,
28
34
  renderToolbar
29
35
  }) => {
30
36
  const resolvedTheme = theme ?? _defaultStyles.DEFAULT_THEME;
@@ -41,19 +47,40 @@ const Toolbar = exports.Toolbar = /*#__PURE__*/_react.default.memo(({
41
47
  if (item.heading) {
42
48
  isActive = selectionStyle.heading === item.heading;
43
49
  }
50
+ if (item.listType) {
51
+ isActive = selectionStyle.listType === item.listType;
52
+ }
53
+ if (item.textAlign) {
54
+ isActive = selectionStyle.textAlign === item.textAlign;
55
+ }
56
+ if (item.outputFormat) {
57
+ isActive = outputFormat === item.outputFormat;
58
+ }
59
+ if (item.outputPreviewMode) {
60
+ isActive = outputPreviewMode === item.outputPreviewMode;
61
+ }
62
+ if (item.actionType === 'link') {
63
+ isActive = !!selectionStyle.link;
64
+ }
44
65
  return {
45
66
  ...item,
46
67
  active: item.active ?? isActive
47
68
  };
48
69
  });
49
- }, [actions, toolbarItems]);
70
+ }, [actions, outputFormat, outputPreviewMode, toolbarItems]);
50
71
 
51
72
  // Custom render
52
73
  if (renderToolbar) {
53
74
  return renderToolbar({
54
75
  items: enrichedItems,
55
76
  state,
56
- actions
77
+ actions,
78
+ outputFormat,
79
+ outputPreviewMode,
80
+ onOutputFormatChange: onOutputFormatChange ?? (() => undefined),
81
+ onOutputPreviewModeChange: onOutputPreviewModeChange ?? (() => undefined),
82
+ onRequestLink,
83
+ onRequestImage
57
84
  });
58
85
  }
59
86
  if (!visible) {
@@ -79,6 +106,18 @@ const Toolbar = exports.Toolbar = /*#__PURE__*/_react.default.memo(({
79
106
  actions.toggleFormat(item.format);
80
107
  } else if (item.heading) {
81
108
  actions.setHeading(item.heading);
109
+ } else if (item.listType) {
110
+ actions.setListType(item.listType);
111
+ } else if (item.textAlign) {
112
+ actions.setTextAlign(item.textAlign);
113
+ } else if (item.outputFormat) {
114
+ onOutputFormatChange?.(item.outputFormat);
115
+ } else if (item.outputPreviewMode) {
116
+ onOutputPreviewModeChange?.(item.outputPreviewMode);
117
+ } else if (item.actionType === 'link') {
118
+ onRequestLink?.();
119
+ } else if (item.actionType === 'image') {
120
+ onRequestImage?.();
82
121
  }
83
122
  }
84
123
  }, item.id))
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_defaultStyles","_ToolbarButton","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Toolbar","exports","React","memo","actions","state","items","theme","visible","renderToolbar","resolvedTheme","DEFAULT_THEME","toolbarItems","DEFAULT_TOOLBAR_ITEMS","enrichedItems","useMemo","selectionStyle","getSelectionStyle","map","item","isActive","format","isFormatActive","heading","active","toolbarStyle","jsx","View","style","children","ScrollView","horizontal","showsHorizontalScrollIndicator","keyboardShouldPersistTaps","contentContainerStyle","styles","scrollContent","ToolbarButton","label","renderButton","onPress","toggleFormat","setHeading","id","displayName","StyleSheet","create","flexDirection","alignItems","gap"],"sourceRoot":"../../../src","sources":["components/Toolbar.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_defaultStyles","_ToolbarButton","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Toolbar","exports","React","memo","actions","state","items","theme","visible","outputFormat","outputPreviewMode","onOutputFormatChange","onOutputPreviewModeChange","onRequestLink","onRequestImage","renderToolbar","resolvedTheme","DEFAULT_THEME","toolbarItems","DEFAULT_TOOLBAR_ITEMS","enrichedItems","useMemo","selectionStyle","getSelectionStyle","map","item","isActive","format","isFormatActive","heading","listType","textAlign","actionType","link","active","undefined","toolbarStyle","jsx","View","style","children","ScrollView","horizontal","showsHorizontalScrollIndicator","keyboardShouldPersistTaps","contentContainerStyle","styles","scrollContent","ToolbarButton","label","renderButton","onPress","toggleFormat","setHeading","setListType","setTextAlign","id","displayName","StyleSheet","create","flexDirection","alignItems","gap"],"sourceRoot":"../../../src","sources":["components/Toolbar.tsx"],"mappings":"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","ignoreList":[]}
@@ -16,6 +16,7 @@ const DEFAULT_COLORS = exports.DEFAULT_COLORS = {
16
16
  toolbarBorder: '#E5E7EB',
17
17
  outputBackground: '#F8FAFC',
18
18
  outputLabel: '#475569',
19
+ link: '#2563EB',
19
20
  cursor: '#6366F1',
20
21
  activeButtonBg: '#EEF2FF',
21
22
  codeBackground: '#F3F4F6'
@@ -53,7 +54,12 @@ const EMPTY_FORMAT_STYLE = exports.EMPTY_FORMAT_STYLE = {
53
54
  color: undefined,
54
55
  backgroundColor: undefined,
55
56
  fontSize: undefined,
56
- heading: undefined
57
+ heading: undefined,
58
+ listType: undefined,
59
+ textAlign: undefined,
60
+ link: undefined,
61
+ imageSrc: undefined,
62
+ imageAlt: undefined
57
63
  };
58
64
 
59
65
  /**
@@ -112,6 +118,9 @@ const DEFAULT_THEME = exports.DEFAULT_THEME = {
112
118
  color: DEFAULT_COLORS.text,
113
119
  fontFamily: 'monospace'
114
120
  },
121
+ renderedOutputStyle: {
122
+ gap: 10
123
+ },
115
124
  toolbarStyle: {
116
125
  flexDirection: 'row',
117
126
  alignItems: 'center',
@@ -154,6 +163,7 @@ const DEFAULT_THEME = exports.DEFAULT_THEME = {
154
163
  placeholder: DEFAULT_COLORS.placeholder,
155
164
  toolbarBackground: DEFAULT_COLORS.toolbarBackground,
156
165
  toolbarBorder: DEFAULT_COLORS.toolbarBorder,
166
+ link: DEFAULT_COLORS.link,
157
167
  cursor: DEFAULT_COLORS.cursor
158
168
  }
159
169
  };
@@ -193,5 +203,45 @@ const DEFAULT_TOOLBAR_ITEMS = exports.DEFAULT_TOOLBAR_ITEMS = [{
193
203
  id: 'h3',
194
204
  label: 'H3',
195
205
  heading: 'h3'
206
+ }, {
207
+ id: 'bullet',
208
+ label: '\u2022\u2261',
209
+ listType: 'bullet'
210
+ }, {
211
+ id: 'ordered',
212
+ label: '1\u2261',
213
+ listType: 'ordered'
214
+ }, {
215
+ id: 'link',
216
+ label: '\ud83d\udd17',
217
+ actionType: 'link'
218
+ }, {
219
+ id: 'align-left',
220
+ label: '\u21e4',
221
+ textAlign: 'left'
222
+ }, {
223
+ id: 'align-center',
224
+ label: '\u2194',
225
+ textAlign: 'center'
226
+ }, {
227
+ id: 'align-right',
228
+ label: '\u21e5',
229
+ textAlign: 'right'
230
+ }, {
231
+ id: 'format-markdown',
232
+ label: 'MD',
233
+ outputFormat: 'markdown'
234
+ }, {
235
+ id: 'format-html',
236
+ label: 'HTML',
237
+ outputFormat: 'html'
238
+ }, {
239
+ id: 'preview-literal',
240
+ label: 'Raw',
241
+ outputPreviewMode: 'literal'
242
+ }, {
243
+ id: 'preview-rendered',
244
+ label: 'View',
245
+ outputPreviewMode: 'rendered'
196
246
  }];
197
247
  //# sourceMappingURL=defaultStyles.js.map