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
@@ -1,14 +1,15 @@
1
1
  "use strict";
2
2
 
3
- import React, { useEffect, useCallback, useMemo, useRef } from 'react';
3
+ import React, { useEffect, useCallback, useMemo, useRef, useState } from 'react';
4
4
  import { Animated, Easing, ScrollView, StyleSheet, Text, TextInput, View } from 'react-native';
5
5
  import { DEFAULT_THEME } from '../constants/defaultStyles';
6
6
  import { useRichText } from '../hooks/useRichText';
7
7
  import { segmentsToPlainText } from '../utils/parser';
8
8
  import { serializeSegments } from '../utils/serializer';
9
+ import { RenderedOutput } from './RenderedOutput';
9
10
  import { Toolbar } from './Toolbar';
10
11
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
- const OUTPUT_PANEL_HEIGHT = 180;
12
+ const DEFAULT_OUTPUT_PANEL_MAX_HEIGHT = 180;
12
13
  const isJestRuntime = typeof globalThis.process?.env?.JEST_WORKER_ID === 'string';
13
14
 
14
15
  /**
@@ -29,8 +30,16 @@ export const RichTextInput = ({
29
30
  toolbarItems,
30
31
  theme,
31
32
  showOutputPreview = true,
32
- outputFormat = 'markdown',
33
+ outputFormat,
34
+ defaultOutputFormat = 'markdown',
35
+ outputPreviewMode,
36
+ defaultOutputPreviewMode = 'literal',
37
+ maxOutputHeight = DEFAULT_OUTPUT_PANEL_MAX_HEIGHT,
33
38
  onChangeOutput,
39
+ onChangeOutputFormat,
40
+ onChangeOutputPreviewMode,
41
+ onRequestLink,
42
+ onRequestImage,
34
43
  multiline = true,
35
44
  minHeight = 120,
36
45
  maxHeight,
@@ -41,6 +50,9 @@ export const RichTextInput = ({
41
50
  }) => {
42
51
  const resolvedTheme = theme ?? DEFAULT_THEME;
43
52
  const previewProgress = useRef(new Animated.Value(0)).current;
53
+ const [internalOutputFormat, setInternalOutputFormat] = useState(defaultOutputFormat);
54
+ const [internalOutputPreviewMode, setInternalOutputPreviewMode] = useState(defaultOutputPreviewMode);
55
+ const [contentHeight, setContentHeight] = useState(minHeight);
44
56
  const {
45
57
  state,
46
58
  actions
@@ -53,11 +65,21 @@ export const RichTextInput = ({
53
65
  onReady?.(actions);
54
66
  }, [actions, onReady]);
55
67
  const plainText = segmentsToPlainText(state.segments);
56
- const serializedOutput = useMemo(() => serializeSegments(state.segments, outputFormat), [outputFormat, state.segments]);
68
+ const resolvedOutputFormat = outputFormat ?? internalOutputFormat;
69
+ const resolvedOutputPreviewMode = outputPreviewMode ?? internalOutputPreviewMode;
70
+ const inputHeight = Math.max(minHeight, typeof maxHeight === 'number' ? Math.min(contentHeight, maxHeight) : contentHeight);
71
+ const shouldScrollInput = typeof maxHeight === 'number' && contentHeight > maxHeight;
72
+ const serializedOutput = useMemo(() => serializeSegments(state.segments, resolvedOutputFormat), [resolvedOutputFormat, state.segments]);
57
73
  const shouldShowOutputPreview = showOutputPreview && plainText.length > 0;
74
+ const normalizedSelection = useMemo(() => ({
75
+ start: Math.min(state.selection.start, state.selection.end),
76
+ end: Math.max(state.selection.start, state.selection.end)
77
+ }), [state.selection.end, state.selection.start]);
78
+ const selectedText = useMemo(() => plainText.slice(normalizedSelection.start, normalizedSelection.end), [normalizedSelection.end, normalizedSelection.start, plainText]);
79
+ const selectionStyle = useMemo(() => actions.getSelectionStyle(), [actions, state.activeStyles, state.segments, state.selection]);
58
80
  useEffect(() => {
59
- onChangeOutput?.(serializedOutput, outputFormat);
60
- }, [onChangeOutput, outputFormat, serializedOutput]);
81
+ onChangeOutput?.(serializedOutput, resolvedOutputFormat);
82
+ }, [onChangeOutput, resolvedOutputFormat, serializedOutput]);
61
83
  useEffect(() => {
62
84
  if (isJestRuntime) {
63
85
  previewProgress.setValue(shouldShowOutputPreview ? 1 : 0);
@@ -80,17 +102,70 @@ export const RichTextInput = ({
80
102
  end
81
103
  });
82
104
  }, [actions]);
105
+ const onContentSizeChange = useCallback(e => {
106
+ setContentHeight(Math.ceil(e.nativeEvent.contentSize.height));
107
+ textInputProps?.onContentSizeChange?.(e);
108
+ }, [textInputProps]);
109
+ const handleOutputFormatChange = useCallback(format => {
110
+ if (outputFormat === undefined) {
111
+ setInternalOutputFormat(format);
112
+ }
113
+ onChangeOutputFormat?.(format);
114
+ }, [onChangeOutputFormat, outputFormat]);
115
+ const handleOutputPreviewModeChange = useCallback(mode => {
116
+ if (outputPreviewMode === undefined) {
117
+ setInternalOutputPreviewMode(mode);
118
+ }
119
+ onChangeOutputPreviewMode?.(mode);
120
+ }, [onChangeOutputPreviewMode, outputPreviewMode]);
121
+ const handleRequestLink = useCallback(() => {
122
+ if (onRequestLink) {
123
+ onRequestLink({
124
+ selectedText,
125
+ currentUrl: selectionStyle.link,
126
+ applyLink: actions.setLink
127
+ });
128
+ return;
129
+ }
130
+ if (selectionStyle.link) {
131
+ actions.setLink(undefined);
132
+ return;
133
+ }
134
+ const detectedUrl = detectLinkTarget(selectedText);
135
+ if (detectedUrl) {
136
+ actions.setLink(detectedUrl);
137
+ }
138
+ }, [actions, onRequestLink, selectedText, selectionStyle.link]);
139
+ const handleRequestImage = useCallback(() => {
140
+ if (onRequestImage) {
141
+ onRequestImage({
142
+ insertImage: actions.insertImage
143
+ });
144
+ return;
145
+ }
146
+ const detectedSource = detectImageSource(selectedText);
147
+ if (detectedSource) {
148
+ actions.insertImage(detectedSource, {
149
+ alt: selectedText.trim() || undefined
150
+ });
151
+ }
152
+ }, [actions, onRequestImage, selectedText]);
153
+ const outputLabel = useMemo(() => {
154
+ const formatLabel = resolvedOutputFormat === 'html' ? 'HTML' : 'Markdown';
155
+ if (resolvedOutputPreviewMode === 'rendered') {
156
+ return `${formatLabel} preview`;
157
+ }
158
+ return `${formatLabel} output`;
159
+ }, [resolvedOutputFormat, resolvedOutputPreviewMode]);
83
160
  const containerStyle = [resolvedTheme.containerStyle ?? DEFAULT_THEME.containerStyle];
84
- const inputAreaStyle = [styles.inputArea, {
85
- minHeight
86
- }, maxHeight ? {
87
- maxHeight
88
- } : undefined];
89
- const inputStyle = [styles.textInput, resolvedTheme.baseTextStyle ?? DEFAULT_THEME.baseTextStyle, resolvedTheme.inputStyle ?? DEFAULT_THEME.inputStyle, textInputProps?.style];
161
+ const inputAreaStyle = [styles.inputArea];
162
+ const inputStyle = [styles.textInput, resolvedTheme.baseTextStyle ?? DEFAULT_THEME.baseTextStyle, resolvedTheme.inputStyle ?? DEFAULT_THEME.inputStyle, {
163
+ height: inputHeight
164
+ }, textInputProps?.style];
90
165
  const outputAnimatedStyle = {
91
166
  maxHeight: previewProgress.interpolate({
92
167
  inputRange: [0, 1],
93
- outputRange: [0, OUTPUT_PANEL_HEIGHT]
168
+ outputRange: [0, maxOutputHeight + 72]
94
169
  }),
95
170
  opacity: previewProgress,
96
171
  marginTop: previewProgress.interpolate({
@@ -112,6 +187,12 @@ export const RichTextInput = ({
112
187
  state: state,
113
188
  items: toolbarItems,
114
189
  theme: resolvedTheme,
190
+ outputFormat: resolvedOutputFormat,
191
+ outputPreviewMode: resolvedOutputPreviewMode,
192
+ onOutputFormatChange: handleOutputFormatChange,
193
+ onOutputPreviewModeChange: handleOutputPreviewModeChange,
194
+ onRequestLink: handleRequestLink,
195
+ onRequestImage: handleRequestImage,
115
196
  renderToolbar: renderToolbar
116
197
  }) : null;
117
198
  const toolbarBorderStyle = toolbarPosition === 'top' ? {
@@ -134,6 +215,7 @@ export const RichTextInput = ({
134
215
  value: plainText,
135
216
  onChangeText: actions.handleTextChange,
136
217
  onSelectionChange: onSelectionChange,
218
+ onContentSizeChange: onContentSizeChange,
137
219
  multiline: multiline,
138
220
  placeholder: placeholder,
139
221
  placeholderTextColor: resolvedTheme.colors?.placeholder ?? DEFAULT_THEME.colors?.placeholder,
@@ -142,7 +224,7 @@ export const RichTextInput = ({
142
224
  autoFocus: autoFocus,
143
225
  selectionColor: resolvedTheme.colors?.cursor ?? DEFAULT_THEME.colors?.cursor,
144
226
  textAlignVertical: "top",
145
- scrollEnabled: typeof maxHeight === 'number'
227
+ scrollEnabled: shouldScrollInput
146
228
  }), showOutputPreview && /*#__PURE__*/_jsx(Animated.View, {
147
229
  pointerEvents: shouldShowOutputPreview ? 'auto' : 'none',
148
230
  style: [styles.outputAnimatedWrapper, outputAnimatedStyle],
@@ -150,10 +232,16 @@ export const RichTextInput = ({
150
232
  style: outputContainerStyle,
151
233
  children: [/*#__PURE__*/_jsx(Text, {
152
234
  style: outputLabelStyle,
153
- children: outputFormat === 'html' ? 'HTML output' : 'Markdown output'
235
+ children: outputLabel
154
236
  }), /*#__PURE__*/_jsx(ScrollView, {
237
+ style: {
238
+ maxHeight: maxOutputHeight
239
+ },
155
240
  showsVerticalScrollIndicator: false,
156
- children: /*#__PURE__*/_jsx(Text, {
241
+ children: resolvedOutputPreviewMode === 'rendered' ? /*#__PURE__*/_jsx(RenderedOutput, {
242
+ segments: state.segments,
243
+ theme: resolvedTheme
244
+ }) : /*#__PURE__*/_jsx(Text, {
157
245
  selectable: true,
158
246
  style: outputTextStyle,
159
247
  children: serializedOutput
@@ -179,4 +267,31 @@ const styles = StyleSheet.create({
179
267
  overflow: 'hidden'
180
268
  }
181
269
  });
270
+ function detectLinkTarget(value) {
271
+ const trimmed = value.trim();
272
+ if (trimmed.length === 0) {
273
+ return undefined;
274
+ }
275
+ if (/^https?:\/\//i.test(trimmed) || /^mailto:/i.test(trimmed)) {
276
+ return trimmed;
277
+ }
278
+ if (/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(trimmed)) {
279
+ return `mailto:${trimmed}`;
280
+ }
281
+ if (/^[^\s]+\.[^\s]+$/.test(trimmed)) {
282
+ return `https://${trimmed}`;
283
+ }
284
+ return undefined;
285
+ }
286
+ function detectImageSource(value) {
287
+ const normalized = detectLinkTarget(value);
288
+ if (!normalized) {
289
+ return undefined;
290
+ }
291
+ const candidate = normalized.replace(/^mailto:/i, '');
292
+ if (/\.(png|jpe?g|gif|webp|svg)(\?.*)?$/i.test(candidate)) {
293
+ return normalized;
294
+ }
295
+ return undefined;
296
+ }
182
297
  //# sourceMappingURL=RichTextInput.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useCallback","useMemo","useRef","Animated","Easing","ScrollView","StyleSheet","Text","TextInput","View","DEFAULT_THEME","useRichText","segmentsToPlainText","serializeSegments","Toolbar","jsx","_jsx","jsxs","_jsxs","OUTPUT_PANEL_HEIGHT","isJestRuntime","globalThis","process","env","JEST_WORKER_ID","RichTextInput","initialSegments","onChangeSegments","onChangeText","placeholder","editable","maxLength","showToolbar","toolbarPosition","toolbarItems","theme","showOutputPreview","outputFormat","onChangeOutput","multiline","minHeight","maxHeight","autoFocus","textInputProps","renderToolbar","onReady","resolvedTheme","previewProgress","Value","current","state","actions","plainText","segments","serializedOutput","shouldShowOutputPreview","length","setValue","timing","toValue","duration","easing","out","cubic","useNativeDriver","start","onSelectionChange","e","end","nativeEvent","selection","handleSelectionChange","containerStyle","inputAreaStyle","styles","inputArea","undefined","inputStyle","textInput","baseTextStyle","style","outputAnimatedStyle","interpolate","inputRange","outputRange","opacity","marginTop","transform","translateY","outputContainerStyle","outputLabelStyle","outputTextStyle","toolbarComponent","items","toolbarBorderStyle","borderBottomWidth","borderBottomColor","colors","toolbarBorder","borderTopWidth","borderTopColor","children","value","handleTextChange","placeholderTextColor","selectionColor","cursor","textAlignVertical","scrollEnabled","pointerEvents","outputAnimatedWrapper","showsVerticalScrollIndicator","selectable","displayName","create","position","overflow"],"sourceRoot":"../../../src","sources":["components/RichTextInput.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useCallback","useMemo","useRef","useState","Animated","Easing","ScrollView","StyleSheet","Text","TextInput","View","DEFAULT_THEME","useRichText","segmentsToPlainText","serializeSegments","RenderedOutput","Toolbar","jsx","_jsx","jsxs","_jsxs","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","previewProgress","Value","current","internalOutputFormat","setInternalOutputFormat","internalOutputPreviewMode","setInternalOutputPreviewMode","contentHeight","setContentHeight","state","actions","plainText","segments","resolvedOutputFormat","resolvedOutputPreviewMode","inputHeight","Math","max","min","shouldScrollInput","serializedOutput","shouldShowOutputPreview","length","normalizedSelection","start","selection","end","selectedText","slice","selectionStyle","getSelectionStyle","activeStyles","setValue","timing","toValue","duration","easing","out","cubic","useNativeDriver","onSelectionChange","e","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","items","onOutputFormatChange","onOutputPreviewModeChange","toolbarBorderStyle","borderBottomWidth","borderBottomColor","colors","toolbarBorder","borderTopWidth","borderTopColor","children","value","handleTextChange","placeholderTextColor","selectionColor","cursor","textAlignVertical","scrollEnabled","pointerEvents","outputAnimatedWrapper","showsVerticalScrollIndicator","selectable","displayName","create","position","overflow","trimmed","test","normalized","candidate","replace"],"sourceRoot":"../../../src","sources":["components/RichTextInput.tsx"],"mappings":"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","ignoreList":[]}
@@ -21,6 +21,12 @@ export const Toolbar = /*#__PURE__*/React.memo(({
21
21
  items,
22
22
  theme,
23
23
  visible = true,
24
+ outputFormat = 'markdown',
25
+ outputPreviewMode = 'literal',
26
+ onOutputFormatChange,
27
+ onOutputPreviewModeChange,
28
+ onRequestLink,
29
+ onRequestImage,
24
30
  renderToolbar
25
31
  }) => {
26
32
  const resolvedTheme = theme ?? DEFAULT_THEME;
@@ -37,19 +43,40 @@ export const Toolbar = /*#__PURE__*/React.memo(({
37
43
  if (item.heading) {
38
44
  isActive = selectionStyle.heading === item.heading;
39
45
  }
46
+ if (item.listType) {
47
+ isActive = selectionStyle.listType === item.listType;
48
+ }
49
+ if (item.textAlign) {
50
+ isActive = selectionStyle.textAlign === item.textAlign;
51
+ }
52
+ if (item.outputFormat) {
53
+ isActive = outputFormat === item.outputFormat;
54
+ }
55
+ if (item.outputPreviewMode) {
56
+ isActive = outputPreviewMode === item.outputPreviewMode;
57
+ }
58
+ if (item.actionType === 'link') {
59
+ isActive = !!selectionStyle.link;
60
+ }
40
61
  return {
41
62
  ...item,
42
63
  active: item.active ?? isActive
43
64
  };
44
65
  });
45
- }, [actions, toolbarItems]);
66
+ }, [actions, outputFormat, outputPreviewMode, toolbarItems]);
46
67
 
47
68
  // Custom render
48
69
  if (renderToolbar) {
49
70
  return renderToolbar({
50
71
  items: enrichedItems,
51
72
  state,
52
- actions
73
+ actions,
74
+ outputFormat,
75
+ outputPreviewMode,
76
+ onOutputFormatChange: onOutputFormatChange ?? (() => undefined),
77
+ onOutputPreviewModeChange: onOutputPreviewModeChange ?? (() => undefined),
78
+ onRequestLink,
79
+ onRequestImage
53
80
  });
54
81
  }
55
82
  if (!visible) {
@@ -75,6 +102,18 @@ export const Toolbar = /*#__PURE__*/React.memo(({
75
102
  actions.toggleFormat(item.format);
76
103
  } else if (item.heading) {
77
104
  actions.setHeading(item.heading);
105
+ } else if (item.listType) {
106
+ actions.setListType(item.listType);
107
+ } else if (item.textAlign) {
108
+ actions.setTextAlign(item.textAlign);
109
+ } else if (item.outputFormat) {
110
+ onOutputFormatChange?.(item.outputFormat);
111
+ } else if (item.outputPreviewMode) {
112
+ onOutputPreviewModeChange?.(item.outputPreviewMode);
113
+ } else if (item.actionType === 'link') {
114
+ onRequestLink?.();
115
+ } else if (item.actionType === 'image') {
116
+ onRequestImage?.();
78
117
  }
79
118
  }
80
119
  }, item.id))
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","View","ScrollView","StyleSheet","DEFAULT_THEME","DEFAULT_TOOLBAR_ITEMS","ToolbarButton","jsx","_jsx","Toolbar","memo","actions","state","items","theme","visible","renderToolbar","resolvedTheme","toolbarItems","enrichedItems","selectionStyle","getSelectionStyle","map","item","isActive","format","isFormatActive","heading","active","toolbarStyle","style","children","horizontal","showsHorizontalScrollIndicator","keyboardShouldPersistTaps","contentContainerStyle","styles","scrollContent","label","renderButton","onPress","toggleFormat","setHeading","id","displayName","create","flexDirection","alignItems","gap"],"sourceRoot":"../../../src","sources":["components/Toolbar.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","View","ScrollView","StyleSheet","DEFAULT_THEME","DEFAULT_TOOLBAR_ITEMS","ToolbarButton","jsx","_jsx","Toolbar","memo","actions","state","items","theme","visible","outputFormat","outputPreviewMode","onOutputFormatChange","onOutputPreviewModeChange","onRequestLink","onRequestImage","renderToolbar","resolvedTheme","toolbarItems","enrichedItems","selectionStyle","getSelectionStyle","map","item","isActive","format","isFormatActive","heading","listType","textAlign","actionType","link","active","undefined","toolbarStyle","style","children","horizontal","showsHorizontalScrollIndicator","keyboardShouldPersistTaps","contentContainerStyle","styles","scrollContent","label","renderButton","onPress","toggleFormat","setHeading","setListType","setTextAlign","id","displayName","create","flexDirection","alignItems","gap"],"sourceRoot":"../../../src","sources":["components/Toolbar.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,IAAI,EAAEC,UAAU,EAAEC,UAAU,QAAQ,cAAc;AAE3D,SAASC,aAAa,EAAEC,qBAAqB,QAAQ,4BAA4B;AACjF,SAASC,aAAa,QAAQ,iBAAiB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARA,SAAAC,GAAA,IAAAC,IAAA;AASA,OAAO,MAAMC,OAA+B,gBAAGV,KAAK,CAACW,IAAI,CACvD,CAAC;EACCC,OAAO;EACPC,KAAK;EACLC,KAAK;EACLC,KAAK;EACLC,OAAO,GAAG,IAAI;EACdC,YAAY,GAAG,UAAU;EACzBC,iBAAiB,GAAG,SAAS;EAC7BC,oBAAoB;EACpBC,yBAAyB;EACzBC,aAAa;EACbC,cAAc;EACdC;AACF,CAAC,KAAK;EACJ,MAAMC,aAAa,GAAGT,KAAK,IAAIV,aAAa;EAC5C,MAAMoB,YAAY,GAAGX,KAAK,IAAIR,qBAAqB;;EAEnD;EACA,MAAMoB,aAA4B,GAAGzB,OAAO,CAAC,MAAM;IACjD,MAAM0B,cAAc,GAAGf,OAAO,CAACgB,iBAAiB,CAAC,CAAC;IAElD,OAAOH,YAAY,CAACI,GAAG,CAAEC,IAAI,IAAK;MAChC,IAAIC,QAAQ,GAAG,KAAK;MAEpB,IAAID,IAAI,CAACE,MAAM,EAAE;QACfD,QAAQ,GAAGnB,OAAO,CAACqB,cAAc,CAACH,IAAI,CAACE,MAAM,CAAC;MAChD;MAEA,IAAIF,IAAI,CAACI,OAAO,EAAE;QAChBH,QAAQ,GAAGJ,cAAc,CAACO,OAAO,KAAKJ,IAAI,CAACI,OAAO;MACpD;MAEA,IAAIJ,IAAI,CAACK,QAAQ,EAAE;QACjBJ,QAAQ,GAAGJ,cAAc,CAACQ,QAAQ,KAAKL,IAAI,CAACK,QAAQ;MACtD;MAEA,IAAIL,IAAI,CAACM,SAAS,EAAE;QAClBL,QAAQ,GAAGJ,cAAc,CAACS,SAAS,KAAKN,IAAI,CAACM,SAAS;MACxD;MAEA,IAAIN,IAAI,CAACb,YAAY,EAAE;QACrBc,QAAQ,GAAGd,YAAY,KAAKa,IAAI,CAACb,YAAY;MAC/C;MAEA,IAAIa,IAAI,CAACZ,iBAAiB,EAAE;QAC1Ba,QAAQ,GAAGb,iBAAiB,KAAKY,IAAI,CAACZ,iBAAiB;MACzD;MAEA,IAAIY,IAAI,CAACO,UAAU,KAAK,MAAM,EAAE;QAC9BN,QAAQ,GAAG,CAAC,CAACJ,cAAc,CAACW,IAAI;MAClC;MAEA,OAAO;QACL,GAAGR,IAAI;QACPS,MAAM,EAAET,IAAI,CAACS,MAAM,IAAIR;MACzB,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,EAAE,CAACnB,OAAO,EAAEK,YAAY,EAAEC,iBAAiB,EAAEO,YAAY,CAAC,CAAC;;EAE5D;EACA,IAAIF,aAAa,EAAE;IACjB,OAAOA,aAAa,CAAC;MACnBT,KAAK,EAAEY,aAAa;MACpBb,KAAK;MACLD,OAAO;MACPK,YAAY;MACZC,iBAAiB;MACjBC,oBAAoB,EAAEA,oBAAoB,KAAK,MAAMqB,SAAS,CAAC;MAC/DpB,yBAAyB,EACvBA,yBAAyB,KAAK,MAAMoB,SAAS,CAAC;MAChDnB,aAAa;MACbC;IACF,CAAC,CAAC;EACJ;EAEA,IAAI,CAACN,OAAO,EAAE;IACZ,OAAO,IAAI;EACb;EAEA,MAAMyB,YAAY,GAAG,CACnBjB,aAAa,CAACiB,YAAY,IAAIpC,aAAa,CAACoC,YAAY,CACzD;EAED,oBACEhC,IAAA,CAACP,IAAI;IAACwC,KAAK,EAAED,YAAa;IAAAE,QAAA,eACxBlC,IAAA,CAACN,UAAU;MACTyC,UAAU;MACVC,8BAA8B,EAAE,KAAM;MACtCC,yBAAyB,EAAC,QAAQ;MAClCC,qBAAqB,EAAEC,MAAM,CAACC,aAAc;MAAAN,QAAA,EAE3CjB,aAAa,CAACG,GAAG,CAAEC,IAAI,iBACtBrB,IAAA,CAACF,aAAa;QAEZ2C,KAAK,EAAEpB,IAAI,CAACoB,KAAM;QAClBX,MAAM,EAAE,CAAC,CAACT,IAAI,CAACS,MAAO;QACtBxB,KAAK,EAAES,aAAc;QACrB2B,YAAY,EAAErB,IAAI,CAACqB,YAAa;QAChCC,OAAO,EAAEA,CAAA,KAAM;UACb,IAAItB,IAAI,CAACsB,OAAO,EAAE;YAChBtB,IAAI,CAACsB,OAAO,CAAC,CAAC;UAChB,CAAC,MAAM,IAAItB,IAAI,CAACE,MAAM,EAAE;YACtBpB,OAAO,CAACyC,YAAY,CAACvB,IAAI,CAACE,MAAM,CAAC;UACnC,CAAC,MAAM,IAAIF,IAAI,CAACI,OAAO,EAAE;YACvBtB,OAAO,CAAC0C,UAAU,CAACxB,IAAI,CAACI,OAAO,CAAC;UAClC,CAAC,MAAM,IAAIJ,IAAI,CAACK,QAAQ,EAAE;YACxBvB,OAAO,CAAC2C,WAAW,CAACzB,IAAI,CAACK,QAAQ,CAAC;UACpC,CAAC,MAAM,IAAIL,IAAI,CAACM,SAAS,EAAE;YACzBxB,OAAO,CAAC4C,YAAY,CAAC1B,IAAI,CAACM,SAAS,CAAC;UACtC,CAAC,MAAM,IAAIN,IAAI,CAACb,YAAY,EAAE;YAC5BE,oBAAoB,GAAGW,IAAI,CAACb,YAAY,CAAC;UAC3C,CAAC,MAAM,IAAIa,IAAI,CAACZ,iBAAiB,EAAE;YACjCE,yBAAyB,GAAGU,IAAI,CAACZ,iBAAiB,CAAC;UACrD,CAAC,MAAM,IAAIY,IAAI,CAACO,UAAU,KAAK,MAAM,EAAE;YACrChB,aAAa,GAAG,CAAC;UACnB,CAAC,MAAM,IAAIS,IAAI,CAACO,UAAU,KAAK,OAAO,EAAE;YACtCf,cAAc,GAAG,CAAC;UACpB;QACF;MAAE,GAzBGQ,IAAI,CAAC2B,EA0BX,CACF;IAAC,CACQ;EAAC,CACT,CAAC;AAEX,CACF,CAAC;AAED/C,OAAO,CAACgD,WAAW,GAAG,SAAS;AAE/B,MAAMV,MAAM,GAAG5C,UAAU,CAACuD,MAAM,CAAC;EAC/BV,aAAa,EAAE;IACbW,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,GAAG,EAAE;EACP;AACF,CAAC,CAAC","ignoreList":[]}
@@ -12,6 +12,7 @@ export const DEFAULT_COLORS = {
12
12
  toolbarBorder: '#E5E7EB',
13
13
  outputBackground: '#F8FAFC',
14
14
  outputLabel: '#475569',
15
+ link: '#2563EB',
15
16
  cursor: '#6366F1',
16
17
  activeButtonBg: '#EEF2FF',
17
18
  codeBackground: '#F3F4F6'
@@ -49,7 +50,12 @@ export const EMPTY_FORMAT_STYLE = {
49
50
  color: undefined,
50
51
  backgroundColor: undefined,
51
52
  fontSize: undefined,
52
- heading: undefined
53
+ heading: undefined,
54
+ listType: undefined,
55
+ textAlign: undefined,
56
+ link: undefined,
57
+ imageSrc: undefined,
58
+ imageAlt: undefined
53
59
  };
54
60
 
55
61
  /**
@@ -108,6 +114,9 @@ export const DEFAULT_THEME = {
108
114
  color: DEFAULT_COLORS.text,
109
115
  fontFamily: 'monospace'
110
116
  },
117
+ renderedOutputStyle: {
118
+ gap: 10
119
+ },
111
120
  toolbarStyle: {
112
121
  flexDirection: 'row',
113
122
  alignItems: 'center',
@@ -150,6 +159,7 @@ export const DEFAULT_THEME = {
150
159
  placeholder: DEFAULT_COLORS.placeholder,
151
160
  toolbarBackground: DEFAULT_COLORS.toolbarBackground,
152
161
  toolbarBorder: DEFAULT_COLORS.toolbarBorder,
162
+ link: DEFAULT_COLORS.link,
153
163
  cursor: DEFAULT_COLORS.cursor
154
164
  }
155
165
  };
@@ -189,5 +199,45 @@ export const DEFAULT_TOOLBAR_ITEMS = [{
189
199
  id: 'h3',
190
200
  label: 'H3',
191
201
  heading: 'h3'
202
+ }, {
203
+ id: 'bullet',
204
+ label: '\u2022\u2261',
205
+ listType: 'bullet'
206
+ }, {
207
+ id: 'ordered',
208
+ label: '1\u2261',
209
+ listType: 'ordered'
210
+ }, {
211
+ id: 'link',
212
+ label: '\ud83d\udd17',
213
+ actionType: 'link'
214
+ }, {
215
+ id: 'align-left',
216
+ label: '\u21e4',
217
+ textAlign: 'left'
218
+ }, {
219
+ id: 'align-center',
220
+ label: '\u2194',
221
+ textAlign: 'center'
222
+ }, {
223
+ id: 'align-right',
224
+ label: '\u21e5',
225
+ textAlign: 'right'
226
+ }, {
227
+ id: 'format-markdown',
228
+ label: 'MD',
229
+ outputFormat: 'markdown'
230
+ }, {
231
+ id: 'format-html',
232
+ label: 'HTML',
233
+ outputFormat: 'html'
234
+ }, {
235
+ id: 'preview-literal',
236
+ label: 'Raw',
237
+ outputPreviewMode: 'literal'
238
+ }, {
239
+ id: 'preview-rendered',
240
+ label: 'View',
241
+ outputPreviewMode: 'rendered'
192
242
  }];
193
243
  //# sourceMappingURL=defaultStyles.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_COLORS","primary","background","text","placeholder","toolbarBackground","toolbarBorder","outputBackground","outputLabel","cursor","activeButtonBg","codeBackground","HEADING_FONT_SIZES","h1","h2","h3","none","DEFAULT_BASE_TEXT_STYLE","fontSize","lineHeight","color","fontFamily","undefined","EMPTY_FORMAT_STYLE","bold","italic","underline","strikethrough","code","backgroundColor","heading","DEFAULT_THEME","containerStyle","borderWidth","borderColor","borderRadius","overflow","inputStyle","paddingHorizontal","paddingVertical","textAlignVertical","overlayContainerStyle","position","top","left","right","bottom","baseTextStyle","outputContainerStyle","marginHorizontal","marginBottom","padding","outputLabelStyle","fontWeight","letterSpacing","textTransform","outputTextStyle","toolbarStyle","flexDirection","alignItems","gap","toolbarButtonStyle","minWidth","justifyContent","toolbarButtonActiveStyle","toolbarButtonTextStyle","toolbarButtonActiveTextStyle","codeStyle","colors","DEFAULT_TOOLBAR_ITEMS","id","label","format"],"sourceRoot":"../../../src","sources":["constants/defaultStyles.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["DEFAULT_COLORS","primary","background","text","placeholder","toolbarBackground","toolbarBorder","outputBackground","outputLabel","link","cursor","activeButtonBg","codeBackground","HEADING_FONT_SIZES","h1","h2","h3","none","DEFAULT_BASE_TEXT_STYLE","fontSize","lineHeight","color","fontFamily","undefined","EMPTY_FORMAT_STYLE","bold","italic","underline","strikethrough","code","backgroundColor","heading","listType","textAlign","imageSrc","imageAlt","DEFAULT_THEME","containerStyle","borderWidth","borderColor","borderRadius","overflow","inputStyle","paddingHorizontal","paddingVertical","textAlignVertical","overlayContainerStyle","position","top","left","right","bottom","baseTextStyle","outputContainerStyle","marginHorizontal","marginBottom","padding","outputLabelStyle","fontWeight","letterSpacing","textTransform","outputTextStyle","renderedOutputStyle","gap","toolbarStyle","flexDirection","alignItems","toolbarButtonStyle","minWidth","justifyContent","toolbarButtonActiveStyle","toolbarButtonTextStyle","toolbarButtonActiveTextStyle","codeStyle","colors","DEFAULT_TOOLBAR_ITEMS","id","label","format","actionType","outputFormat","outputPreviewMode"],"sourceRoot":"../../../src","sources":["constants/defaultStyles.ts"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { useCallback } from 'react';
4
- import { toggleFormatOnSelection, setStyleOnSelection, setHeadingOnLine, isFormatActiveInSelection, getSelectionStyle } from '../utils/formatter';
4
+ import { toggleFormatOnSelection, setStyleOnSelection, setHeadingOnLine, setListTypeOnLine, setTextAlignOnLine, isFormatActiveInSelection, getSelectionStyle } from '../utils/formatter';
5
5
  /**
6
6
  * Hook that provides formatting commands for the rich text editor.
7
7
  *
@@ -40,15 +40,54 @@ export function useFormatting({
40
40
  }
41
41
  }, [segments, selection, activeStyles, onSegmentsChange, onActiveStylesChange]);
42
42
  const setHeading = useCallback(level => {
43
+ const currentHeading = selection.start === selection.end ? getSelectionStyle(segments, selection).heading ?? activeStyles.heading : getSelectionStyle(segments, selection).heading;
44
+ const nextHeading = currentHeading === level ? 'none' : level;
43
45
  if (selection.start === selection.end) {
44
46
  onActiveStylesChange({
45
47
  ...activeStyles,
46
- heading: level === 'none' ? undefined : level
48
+ heading: nextHeading === 'none' ? undefined : nextHeading,
49
+ listType: nextHeading === 'none' ? activeStyles.listType : undefined
47
50
  });
48
51
  }
49
- const newSegments = setHeadingOnLine(segments, selection, level);
52
+ const newSegments = setHeadingOnLine(segments, selection, nextHeading);
50
53
  onSegmentsChange(newSegments);
51
54
  }, [activeStyles, onActiveStylesChange, onSegmentsChange, segments, selection]);
55
+ const setListType = useCallback(listType => {
56
+ const currentListType = selection.start === selection.end ? getSelectionStyle(segments, selection).listType ?? activeStyles.listType : getSelectionStyle(segments, selection).listType;
57
+ const nextListType = currentListType === listType ? 'none' : listType;
58
+ if (selection.start === selection.end) {
59
+ onActiveStylesChange({
60
+ ...activeStyles,
61
+ listType: nextListType === 'none' ? undefined : nextListType,
62
+ heading: nextListType === 'none' ? activeStyles.heading : undefined
63
+ });
64
+ }
65
+ const newSegments = setListTypeOnLine(segments, selection, nextListType);
66
+ onSegmentsChange(newSegments);
67
+ }, [activeStyles, onActiveStylesChange, onSegmentsChange, segments, selection]);
68
+ const setTextAlign = useCallback(textAlign => {
69
+ const currentTextAlign = selection.start === selection.end ? getSelectionStyle(segments, selection).textAlign ?? activeStyles.textAlign : getSelectionStyle(segments, selection).textAlign;
70
+ const nextTextAlign = currentTextAlign === textAlign ? undefined : textAlign;
71
+ if (selection.start === selection.end) {
72
+ onActiveStylesChange({
73
+ ...activeStyles,
74
+ textAlign: nextTextAlign
75
+ });
76
+ }
77
+ const newSegments = setTextAlignOnLine(segments, selection, nextTextAlign);
78
+ onSegmentsChange(newSegments);
79
+ }, [activeStyles, onActiveStylesChange, onSegmentsChange, segments, selection]);
80
+ const setLink = useCallback(url => {
81
+ if (selection.start === selection.end) {
82
+ onActiveStylesChange({
83
+ ...activeStyles,
84
+ link: url
85
+ });
86
+ } else {
87
+ const newSegments = setStyleOnSelection(segments, selection, 'link', url);
88
+ onSegmentsChange(newSegments);
89
+ }
90
+ }, [segments, selection, activeStyles, onSegmentsChange, onActiveStylesChange]);
52
91
  const setColor = useCallback(color => {
53
92
  setStyleProperty('color', color);
54
93
  }, [setStyleProperty]);
@@ -74,6 +113,9 @@ export function useFormatting({
74
113
  toggleFormat,
75
114
  setStyleProperty,
76
115
  setHeading,
116
+ setListType,
117
+ setTextAlign,
118
+ setLink,
77
119
  setColor,
78
120
  setBackgroundColor,
79
121
  setFontSize,
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","toggleFormatOnSelection","setStyleOnSelection","setHeadingOnLine","isFormatActiveInSelection","getSelectionStyle","useFormatting","segments","selection","activeStyles","onSegmentsChange","onActiveStylesChange","toggleFormat","format","start","end","newSegments","setStyleProperty","key","value","setHeading","level","heading","undefined","setColor","color","setBackgroundColor","setFontSize","size","isFormatActive","currentSelectionStyle"],"sourceRoot":"../../../src","sources":["hooks/useFormatting.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","toggleFormatOnSelection","setStyleOnSelection","setHeadingOnLine","setListTypeOnLine","setTextAlignOnLine","isFormatActiveInSelection","getSelectionStyle","useFormatting","segments","selection","activeStyles","onSegmentsChange","onActiveStylesChange","toggleFormat","format","start","end","newSegments","setStyleProperty","key","value","setHeading","level","currentHeading","heading","nextHeading","undefined","listType","setListType","currentListType","nextListType","setTextAlign","textAlign","currentTextAlign","nextTextAlign","setLink","url","link","setColor","color","setBackgroundColor","setFontSize","size","isFormatActive","currentSelectionStyle"],"sourceRoot":"../../../src","sources":["hooks/useFormatting.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AAUnC,SACEC,uBAAuB,EACvBC,mBAAmB,EACnBC,gBAAgB,EAChBC,iBAAiB,EACjBC,kBAAkB,EAClBC,yBAAyB,EACzBC,iBAAiB,QACZ,oBAAoB;AAU3B;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAAC;EAC5BC,QAAQ;EACRC,SAAS;EACTC,YAAY;EACZC,gBAAgB;EAChBC;AACoB,CAAC,EAAE;EACvB,MAAMC,YAAY,GAAGd,WAAW,CAC7Be,MAAkB,IAAK;IACtB,IAAIL,SAAS,CAACM,KAAK,KAAKN,SAAS,CAACO,GAAG,EAAE;MACrC;MACAJ,oBAAoB,CAAC;QACnB,GAAGF,YAAY;QACf,CAACI,MAAM,GAAG,CAACJ,YAAY,CAACI,MAAM;MAChC,CAAC,CAAC;IACJ,CAAC,MAAM;MACL;MACA,MAAMG,WAAW,GAAGjB,uBAAuB,CACzCQ,QAAQ,EACRC,SAAS,EACTK,MACF,CAAC;MACDH,gBAAgB,CAACM,WAAW,CAAC;IAC/B;EACF,CAAC,EACD,CAACT,QAAQ,EAAEC,SAAS,EAAEC,YAAY,EAAEC,gBAAgB,EAAEC,oBAAoB,CAC5E,CAAC;EAED,MAAMM,gBAAgB,GAAGnB,WAAW,CAClC,CAA8BoB,GAAM,EAAEC,KAAqB,KAAK;IAC9D,IAAIX,SAAS,CAACM,KAAK,KAAKN,SAAS,CAACO,GAAG,EAAE;MACrCJ,oBAAoB,CAAC;QACnB,GAAGF,YAAY;QACf,CAACS,GAAG,GAAGC;MACT,CAAC,CAAC;IACJ,CAAC,MAAM;MACL,MAAMH,WAAW,GAAGhB,mBAAmB,CACrCO,QAAQ,EACRC,SAAS,EACTU,GAAG,EACHC,KACF,CAAC;MACDT,gBAAgB,CAACM,WAAW,CAAC;IAC/B;EACF,CAAC,EACD,CAACT,QAAQ,EAAEC,SAAS,EAAEC,YAAY,EAAEC,gBAAgB,EAAEC,oBAAoB,CAC5E,CAAC;EAED,MAAMS,UAAU,GAAGtB,WAAW,CAC3BuB,KAAmB,IAAK;IACvB,MAAMC,cAAc,GAClBd,SAAS,CAACM,KAAK,KAAKN,SAAS,CAACO,GAAG,GAC7BV,iBAAiB,CAACE,QAAQ,EAAEC,SAAS,CAAC,CAACe,OAAO,IAAId,YAAY,CAACc,OAAO,GACtElB,iBAAiB,CAACE,QAAQ,EAAEC,SAAS,CAAC,CAACe,OAAO;IACpD,MAAMC,WAAyB,GAC7BF,cAAc,KAAKD,KAAK,GAAG,MAAM,GAAGA,KAAK;IAE3C,IAAIb,SAAS,CAACM,KAAK,KAAKN,SAAS,CAACO,GAAG,EAAE;MACrCJ,oBAAoB,CAAC;QACnB,GAAGF,YAAY;QACfc,OAAO,EAAEC,WAAW,KAAK,MAAM,GAAGC,SAAS,GAAGD,WAAW;QACzDE,QAAQ,EACNF,WAAW,KAAK,MAAM,GAAGf,YAAY,CAACiB,QAAQ,GAAGD;MACrD,CAAC,CAAC;IACJ;IAEA,MAAMT,WAAW,GAAGf,gBAAgB,CAACM,QAAQ,EAAEC,SAAS,EAAEgB,WAAW,CAAC;IACtEd,gBAAgB,CAACM,WAAW,CAAC;EAC/B,CAAC,EACD,CACEP,YAAY,EACZE,oBAAoB,EACpBD,gBAAgB,EAChBH,QAAQ,EACRC,SAAS,CAEb,CAAC;EAED,MAAMmB,WAAW,GAAG7B,WAAW,CAC5B4B,QAAkB,IAAK;IACtB,MAAME,eAAe,GACnBpB,SAAS,CAACM,KAAK,KAAKN,SAAS,CAACO,GAAG,GAC7BV,iBAAiB,CAACE,QAAQ,EAAEC,SAAS,CAAC,CAACkB,QAAQ,IAC/CjB,YAAY,CAACiB,QAAQ,GACrBrB,iBAAiB,CAACE,QAAQ,EAAEC,SAAS,CAAC,CAACkB,QAAQ;IACrD,MAAMG,YAAsB,GAC1BD,eAAe,KAAKF,QAAQ,GAAG,MAAM,GAAGA,QAAQ;IAElD,IAAIlB,SAAS,CAACM,KAAK,KAAKN,SAAS,CAACO,GAAG,EAAE;MACrCJ,oBAAoB,CAAC;QACnB,GAAGF,YAAY;QACfiB,QAAQ,EAAEG,YAAY,KAAK,MAAM,GAAGJ,SAAS,GAAGI,YAAY;QAC5DN,OAAO,EACLM,YAAY,KAAK,MAAM,GAAGpB,YAAY,CAACc,OAAO,GAAGE;MACrD,CAAC,CAAC;IACJ;IAEA,MAAMT,WAAW,GAAGd,iBAAiB,CACnCK,QAAQ,EACRC,SAAS,EACTqB,YACF,CAAC;IACDnB,gBAAgB,CAACM,WAAW,CAAC;EAC/B,CAAC,EACD,CACEP,YAAY,EACZE,oBAAoB,EACpBD,gBAAgB,EAChBH,QAAQ,EACRC,SAAS,CAEb,CAAC;EAED,MAAMsB,YAAY,GAAGhC,WAAW,CAC7BiC,SAAoB,IAAK;IACxB,MAAMC,gBAAgB,GACpBxB,SAAS,CAACM,KAAK,KAAKN,SAAS,CAACO,GAAG,GAC7BV,iBAAiB,CAACE,QAAQ,EAAEC,SAAS,CAAC,CAACuB,SAAS,IAChDtB,YAAY,CAACsB,SAAS,GACtB1B,iBAAiB,CAACE,QAAQ,EAAEC,SAAS,CAAC,CAACuB,SAAS;IACtD,MAAME,aAAa,GACjBD,gBAAgB,KAAKD,SAAS,GAAGN,SAAS,GAAGM,SAAS;IAExD,IAAIvB,SAAS,CAACM,KAAK,KAAKN,SAAS,CAACO,GAAG,EAAE;MACrCJ,oBAAoB,CAAC;QACnB,GAAGF,YAAY;QACfsB,SAAS,EAAEE;MACb,CAAC,CAAC;IACJ;IAEA,MAAMjB,WAAW,GAAGb,kBAAkB,CACpCI,QAAQ,EACRC,SAAS,EACTyB,aACF,CAAC;IACDvB,gBAAgB,CAACM,WAAW,CAAC;EAC/B,CAAC,EACD,CACEP,YAAY,EACZE,oBAAoB,EACpBD,gBAAgB,EAChBH,QAAQ,EACRC,SAAS,CAEb,CAAC;EAED,MAAM0B,OAAO,GAAGpC,WAAW,CACxBqC,GAAY,IAAK;IAChB,IAAI3B,SAAS,CAACM,KAAK,KAAKN,SAAS,CAACO,GAAG,EAAE;MACrCJ,oBAAoB,CAAC;QACnB,GAAGF,YAAY;QACf2B,IAAI,EAAED;MACR,CAAC,CAAC;IACJ,CAAC,MAAM;MACL,MAAMnB,WAAW,GAAGhB,mBAAmB,CAACO,QAAQ,EAAEC,SAAS,EAAE,MAAM,EAAE2B,GAAG,CAAC;MACzEzB,gBAAgB,CAACM,WAAW,CAAC;IAC/B;EACF,CAAC,EACD,CAACT,QAAQ,EAAEC,SAAS,EAAEC,YAAY,EAAEC,gBAAgB,EAAEC,oBAAoB,CAC5E,CAAC;EAED,MAAM0B,QAAQ,GAAGvC,WAAW,CACzBwC,KAAa,IAAK;IACjBrB,gBAAgB,CAAC,OAAO,EAAEqB,KAAK,CAAC;EAClC,CAAC,EACD,CAACrB,gBAAgB,CACnB,CAAC;EAED,MAAMsB,kBAAkB,GAAGzC,WAAW,CACnCwC,KAAa,IAAK;IACjBrB,gBAAgB,CAAC,iBAAiB,EAAEqB,KAAK,CAAC;EAC5C,CAAC,EACD,CAACrB,gBAAgB,CACnB,CAAC;EAED,MAAMuB,WAAW,GAAG1C,WAAW,CAC5B2C,IAAY,IAAK;IAChBxB,gBAAgB,CAAC,UAAU,EAAEwB,IAAI,CAAC;EACpC,CAAC,EACD,CAACxB,gBAAgB,CACnB,CAAC;EAED,MAAMyB,cAAc,GAAG5C,WAAW,CAC/Be,MAAkB,IAAc;IAC/B,IAAIL,SAAS,CAACM,KAAK,KAAKN,SAAS,CAACO,GAAG,EAAE;MACrC,OAAO,CAAC,CAACN,YAAY,CAACI,MAAM,CAAC;IAC/B;IACA,OAAOT,yBAAyB,CAACG,QAAQ,EAAEC,SAAS,EAAEK,MAAM,CAAC;EAC/D,CAAC,EACD,CAACN,QAAQ,EAAEC,SAAS,EAAEC,YAAY,CACpC,CAAC;EAED,MAAMkC,qBAAqB,GAAG7C,WAAW,CAAC,MAAmB;IAC3D,IAAIU,SAAS,CAACM,KAAK,KAAKN,SAAS,CAACO,GAAG,EAAE;MACrC,OAAON,YAAY;IACrB;IACA,OAAOJ,iBAAiB,CAACE,QAAQ,EAAEC,SAAS,CAAC;EAC/C,CAAC,EAAE,CAACD,QAAQ,EAAEC,SAAS,EAAEC,YAAY,CAAC,CAAC;EAEvC,OAAO;IACLG,YAAY;IACZK,gBAAgB;IAChBG,UAAU;IACVO,WAAW;IACXG,YAAY;IACZI,OAAO;IACPG,QAAQ;IACRE,kBAAkB;IAClBC,WAAW;IACXE,cAAc;IACdC;EACF,CAAC;AACH","ignoreList":[]}