react-native-enriched 0.3.0 → 0.4.1

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 (202) hide show
  1. package/README.md +6 -4
  2. package/android/build.gradle +3 -3
  3. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedTextInputViewManagerDelegate.java +3 -0
  4. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedTextInputViewManagerInterface.java +1 -0
  5. package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ComponentDescriptors.cpp +1 -1
  6. package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ComponentDescriptors.h +1 -1
  7. package/{ios/generated/RNEnrichedTextInputViewSpec → android/generated/jni/react/renderer/components/ReactNativeEnrichedSpec}/EventEmitters.cpp +31 -29
  8. package/{ios/generated/RNEnrichedTextInputViewSpec → android/generated/jni/react/renderer/components/ReactNativeEnrichedSpec}/EventEmitters.h +22 -25
  9. package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/Props.h +57 -0
  10. package/android/gradle.properties +5 -5
  11. package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputViewPackage.kt → ReactNativeEnrichedPackage.kt} +3 -2
  12. package/android/src/main/java/com/swmansion/enriched/{utils → common}/AsyncDrawable.kt +40 -8
  13. package/android/src/main/java/com/swmansion/enriched/common/CheckboxDrawable.kt +81 -0
  14. package/android/src/main/java/com/swmansion/enriched/{utils → common}/EnrichedConstants.kt +1 -1
  15. package/android/src/main/java/com/swmansion/enriched/common/EnrichedStyle.kt +57 -0
  16. package/android/src/main/java/com/swmansion/enriched/{spans/utils → common}/ForceRedrawSpan.kt +1 -1
  17. package/android/src/main/java/com/swmansion/enriched/common/MentionStyle.kt +7 -0
  18. package/android/src/main/java/com/swmansion/enriched/{utils → common}/ResourceManager.kt +1 -1
  19. package/android/src/main/java/com/swmansion/enriched/{utils → common/parser}/EnrichedParser.java +126 -99
  20. package/android/src/main/java/com/swmansion/enriched/common/parser/EnrichedSpanFactory.kt +79 -0
  21. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedBlockQuoteSpan.kt +9 -13
  22. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedBoldSpan.kt +12 -0
  23. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedCheckboxListSpan.kt +91 -0
  24. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedCodeBlockSpan.kt +8 -12
  25. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH1Span.kt +20 -0
  26. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH2Span.kt +20 -0
  27. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH3Span.kt +20 -0
  28. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH4Span.kt +21 -0
  29. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH5Span.kt +20 -0
  30. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH6Span.kt +20 -0
  31. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedImageSpan.kt +43 -38
  32. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedInlineCodeSpan.kt +7 -11
  33. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedItalicSpan.kt +12 -0
  34. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedLinkSpan.kt +7 -11
  35. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedMentionSpan.kt +6 -10
  36. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedOrderedListSpan.kt +12 -21
  37. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedStrikeThroughSpan.kt +11 -0
  38. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedUnderlineSpan.kt +11 -0
  39. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedUnorderedListSpan.kt +9 -13
  40. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/interfaces/EnrichedBlockSpan.kt +1 -1
  41. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/interfaces/EnrichedHeadingSpan.kt +1 -1
  42. package/android/src/main/java/com/swmansion/enriched/common/spans/interfaces/EnrichedInlineSpan.kt +3 -0
  43. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/interfaces/EnrichedParagraphSpan.kt +1 -1
  44. package/android/src/main/java/com/swmansion/enriched/common/spans/interfaces/EnrichedSpan.kt +3 -0
  45. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/interfaces/EnrichedZeroWidthSpaceSpan.kt +1 -1
  46. package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputConnectionWrapper.kt → textinput/EnrichedTextInputConnectionWrapper.kt} +2 -2
  47. package/android/src/main/java/com/swmansion/enriched/textinput/EnrichedTextInputSpannableFactory.kt +83 -0
  48. package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputView.kt → textinput/EnrichedTextInputView.kt} +87 -51
  49. package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputViewLayoutManager.kt → textinput/EnrichedTextInputViewLayoutManager.kt} +1 -1
  50. package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputViewManager.kt → textinput/EnrichedTextInputViewManager.kt} +24 -17
  51. package/android/src/main/java/com/swmansion/enriched/{MeasurementStore.kt → textinput/MeasurementStore.kt} +5 -4
  52. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/MentionHandler.kt +2 -2
  53. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnChangeHtmlEvent.kt +1 -1
  54. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnChangeSelectionEvent.kt +1 -1
  55. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnChangeStateEvent.kt +1 -1
  56. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnChangeTextEvent.kt +2 -2
  57. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnInputBlurEvent.kt +1 -1
  58. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnInputFocusEvent.kt +1 -1
  59. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnInputKeyPressEvent.kt +1 -1
  60. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnLinkDetectedEvent.kt +1 -1
  61. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnMentionDetectedEvent.kt +1 -1
  62. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnMentionEvent.kt +1 -1
  63. package/android/src/main/java/com/swmansion/enriched/textinput/events/OnPasteImagesEvent.kt +47 -0
  64. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnRequestHtmlResultEvent.kt +1 -1
  65. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputBlockQuoteSpan.kt +14 -0
  66. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputBoldSpan.kt +14 -0
  67. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputCheckboxListSpan.kt +15 -0
  68. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputCodeBlockSpan.kt +14 -0
  69. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH1Span.kt +14 -0
  70. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH2Span.kt +14 -0
  71. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH3Span.kt +14 -0
  72. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH4Span.kt +14 -0
  73. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH5Span.kt +14 -0
  74. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH6Span.kt +14 -0
  75. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputImageSpan.kt +36 -0
  76. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputInlineCodeSpan.kt +14 -0
  77. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputItalicSpan.kt +14 -0
  78. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputLinkSpan.kt +15 -0
  79. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputMentionSpan.kt +18 -0
  80. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputOrderedListSpan.kt +21 -0
  81. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputStrikeThroughSpan.kt +14 -0
  82. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputUnderlineSpan.kt +14 -0
  83. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputUnorderedListSpan.kt +14 -0
  84. package/android/src/main/java/com/swmansion/enriched/{spans → textinput/spans}/EnrichedSpans.kt +39 -30
  85. package/android/src/main/java/com/swmansion/enriched/textinput/spans/interfaces/EnrichedInputSpan.kt +10 -0
  86. package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/HtmlStyle.kt +58 -43
  87. package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/InlineStyles.kt +4 -4
  88. package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/ListStyles.kt +77 -26
  89. package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/ParagraphStyles.kt +30 -25
  90. package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/ParametrizedStyles.kt +19 -19
  91. package/android/src/main/java/com/swmansion/enriched/{utils → textinput/utils}/EnrichedEditableFactory.kt +2 -2
  92. package/android/src/main/java/com/swmansion/enriched/{utils → textinput/utils}/EnrichedSelection.kt +15 -14
  93. package/android/src/main/java/com/swmansion/enriched/{utils → textinput/utils}/EnrichedSpanState.kt +15 -50
  94. package/android/src/main/java/com/swmansion/enriched/{utils → textinput/utils}/EnrichedSpannable.kt +3 -3
  95. package/android/src/main/java/com/swmansion/enriched/{utils → textinput/utils}/EnrichedSpannableStringBuilder.kt +2 -1
  96. package/android/src/main/java/com/swmansion/enriched/textinput/utils/RichContentReceiver.kt +127 -0
  97. package/android/src/main/java/com/swmansion/enriched/textinput/utils/Utils.kt +106 -0
  98. package/android/src/main/java/com/swmansion/enriched/{watchers → textinput/watchers}/EnrichedSpanWatcher.kt +10 -10
  99. package/android/src/main/java/com/swmansion/enriched/{watchers → textinput/watchers}/EnrichedTextWatcher.kt +3 -3
  100. package/android/src/main/new_arch/CMakeLists.txt +1 -1
  101. package/android/src/main/new_arch/ReactNativeEnrichedSpec.cpp +11 -0
  102. package/android/src/main/new_arch/ReactNativeEnrichedSpec.h +15 -0
  103. package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputMeasurementManager.h +1 -1
  104. package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputShadowNode.h +2 -2
  105. package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/conversions.h +1 -1
  106. package/ios/EnrichedTextInputView.h +1 -0
  107. package/ios/EnrichedTextInputView.mm +274 -55
  108. package/ios/config/InputConfig.h +10 -0
  109. package/ios/config/InputConfig.mm +119 -0
  110. package/ios/extensions/ImageExtension.h +35 -0
  111. package/ios/extensions/ImageExtension.mm +156 -0
  112. package/ios/extensions/LayoutManagerExtension.mm +115 -95
  113. package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ComponentDescriptors.cpp +1 -1
  114. package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ComponentDescriptors.h +1 -1
  115. package/{android/generated/jni/react/renderer/components/RNEnrichedTextInputViewSpec → ios/generated/ReactNativeEnrichedSpec}/EventEmitters.cpp +31 -29
  116. package/{android/generated/jni/react/renderer/components/RNEnrichedTextInputViewSpec → ios/generated/ReactNativeEnrichedSpec}/EventEmitters.h +22 -25
  117. package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/Props.h +57 -0
  118. package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/RCTComponentViewHelpers.h +21 -0
  119. package/ios/inputParser/InputParser.mm +135 -8
  120. package/ios/inputTextView/InputTextView.mm +118 -0
  121. package/ios/interfaces/ImageAttachment.h +1 -0
  122. package/ios/interfaces/ImageAttachment.mm +43 -4
  123. package/ios/interfaces/StyleHeaders.h +13 -2
  124. package/ios/interfaces/StyleTypeEnum.h +1 -0
  125. package/ios/internals/EnrichedTextInputViewState.cpp +6 -6
  126. package/ios/styles/CheckboxListStyle.mm +321 -0
  127. package/ios/styles/H1Style.mm +3 -0
  128. package/ios/styles/H2Style.mm +3 -0
  129. package/ios/styles/H3Style.mm +3 -0
  130. package/ios/styles/H4Style.mm +3 -0
  131. package/ios/styles/H5Style.mm +3 -0
  132. package/ios/styles/H6Style.mm +3 -0
  133. package/ios/styles/HeadingStyleBase.mm +150 -78
  134. package/ios/utils/CheckboxHitTestUtils.h +10 -0
  135. package/ios/utils/CheckboxHitTestUtils.mm +123 -0
  136. package/ios/utils/ParagraphAttributesUtils.mm +83 -53
  137. package/ios/utils/TextBlockTapGestureRecognizer.h +17 -0
  138. package/ios/utils/TextBlockTapGestureRecognizer.mm +56 -0
  139. package/ios/utils/ZeroWidthSpaceUtils.mm +14 -3
  140. package/lib/module/EnrichedTextInput.js +36 -11
  141. package/lib/module/EnrichedTextInput.js.map +1 -1
  142. package/lib/module/{EnrichedTextInputNativeComponent.ts → spec/EnrichedTextInputNativeComponent.ts} +40 -9
  143. package/lib/module/types.js +4 -0
  144. package/lib/module/types.js.map +1 -0
  145. package/lib/module/utils/normalizeHtmlStyle.js +6 -0
  146. package/lib/module/utils/normalizeHtmlStyle.js.map +1 -1
  147. package/lib/module/utils/nullthrows.js +9 -0
  148. package/lib/module/utils/nullthrows.js.map +1 -0
  149. package/lib/typescript/src/EnrichedTextInput.d.ts +9 -49
  150. package/lib/typescript/src/EnrichedTextInput.d.ts.map +1 -1
  151. package/lib/typescript/src/index.d.ts +2 -1
  152. package/lib/typescript/src/index.d.ts.map +1 -1
  153. package/lib/typescript/src/{EnrichedTextInputNativeComponent.d.ts → spec/EnrichedTextInputNativeComponent.d.ts} +33 -8
  154. package/lib/typescript/src/spec/EnrichedTextInputNativeComponent.d.ts.map +1 -0
  155. package/lib/typescript/src/types.d.ts +58 -0
  156. package/lib/typescript/src/types.d.ts.map +1 -0
  157. package/lib/typescript/src/utils/normalizeHtmlStyle.d.ts +2 -2
  158. package/lib/typescript/src/utils/normalizeHtmlStyle.d.ts.map +1 -1
  159. package/lib/typescript/src/utils/nullthrows.d.ts +2 -0
  160. package/lib/typescript/src/utils/nullthrows.d.ts.map +1 -0
  161. package/lib/typescript/src/utils/regexParser.d.ts +1 -1
  162. package/lib/typescript/src/utils/regexParser.d.ts.map +1 -1
  163. package/package.json +4 -4
  164. package/src/EnrichedTextInput.tsx +49 -62
  165. package/src/index.tsx +3 -1
  166. package/src/{EnrichedTextInputNativeComponent.ts → spec/EnrichedTextInputNativeComponent.ts} +40 -9
  167. package/src/types.ts +59 -0
  168. package/src/utils/normalizeHtmlStyle.ts +8 -5
  169. package/src/utils/nullthrows.ts +7 -0
  170. package/src/utils/regexParser.ts +1 -1
  171. package/android/src/main/java/com/swmansion/enriched/events/OnChangeStateDeprecatedEvent.kt +0 -21
  172. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedBoldSpan.kt +0 -17
  173. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH1Span.kt +0 -24
  174. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH2Span.kt +0 -24
  175. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH3Span.kt +0 -24
  176. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH4Span.kt +0 -24
  177. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH5Span.kt +0 -24
  178. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH6Span.kt +0 -24
  179. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedItalicSpan.kt +0 -16
  180. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedStrikeThroughSpan.kt +0 -15
  181. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedUnderlineSpan.kt +0 -15
  182. package/android/src/main/java/com/swmansion/enriched/spans/interfaces/EnrichedInlineSpan.kt +0 -3
  183. package/android/src/main/java/com/swmansion/enriched/spans/interfaces/EnrichedSpan.kt +0 -9
  184. package/android/src/main/java/com/swmansion/enriched/utils/Utils.kt +0 -21
  185. package/android/src/main/new_arch/RNEnrichedTextInputViewSpec.cpp +0 -22
  186. package/android/src/main/new_arch/RNEnrichedTextInputViewSpec.h +0 -26
  187. package/lib/typescript/src/EnrichedTextInputNativeComponent.d.ts.map +0 -1
  188. /package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/Props.cpp +0 -0
  189. /package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ShadowNodes.cpp +0 -0
  190. /package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ShadowNodes.h +0 -0
  191. /package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/States.cpp +0 -0
  192. /package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/States.h +0 -0
  193. /package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputComponentDescriptor.h +0 -0
  194. /package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputMeasurementManager.cpp +0 -0
  195. /package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputShadowNode.cpp +0 -0
  196. /package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputState.cpp +0 -0
  197. /package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputState.h +0 -0
  198. /package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/Props.cpp +0 -0
  199. /package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ShadowNodes.cpp +0 -0
  200. /package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ShadowNodes.h +0 -0
  201. /package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/States.cpp +0 -0
  202. /package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/States.h +0 -0
@@ -105,6 +105,11 @@ export interface OnChangeStateEvent {
105
105
  isConflicting: boolean;
106
106
  isBlocking: boolean;
107
107
  };
108
+ checkboxList: {
109
+ isActive: boolean;
110
+ isConflicting: boolean;
111
+ isBlocking: boolean;
112
+ };
108
113
  }
109
114
  export interface OnChangeStateDeprecatedEvent {
110
115
  isBold: boolean;
@@ -122,6 +127,7 @@ export interface OnChangeStateDeprecatedEvent {
122
127
  isBlockQuote: boolean;
123
128
  isOrderedList: boolean;
124
129
  isUnorderedList: boolean;
130
+ isCheckboxList: boolean;
125
131
  isLink: boolean;
126
132
  isImage: boolean;
127
133
  isMention: boolean;
@@ -155,14 +161,26 @@ export interface OnRequestHtmlResultEvent {
155
161
  requestId: Int32;
156
162
  html: UnsafeMixed;
157
163
  }
158
- export interface MentionStyleProperties {
159
- color?: ColorValue;
160
- backgroundColor?: ColorValue;
161
- textDecorationLine?: 'underline' | 'none';
162
- }
163
164
  export interface OnKeyPressEvent {
164
165
  key: string;
165
166
  }
167
+ interface TargetedEvent {
168
+ target: Int32;
169
+ }
170
+ export interface PastedImage {
171
+ uri: string;
172
+ type: string;
173
+ width: Float;
174
+ height: Float;
175
+ }
176
+ export interface OnPasteImagesEvent {
177
+ images: {
178
+ uri: string;
179
+ type: string;
180
+ width: Float;
181
+ height: Float;
182
+ }[];
183
+ }
166
184
  type Heading = {
167
185
  fontSize?: Float;
168
186
  bold?: boolean;
@@ -206,6 +224,12 @@ export interface HtmlStyleInternal {
206
224
  marginLeft?: Float;
207
225
  gapWidth?: Float;
208
226
  };
227
+ ulCheckbox?: {
228
+ gapWidth?: Float;
229
+ boxSize?: Float;
230
+ marginLeft?: Float;
231
+ boxColor?: ColorValue;
232
+ };
209
233
  }
210
234
  export interface NativeProps extends ViewProps {
211
235
  autoFocus?: boolean;
@@ -220,18 +244,18 @@ export interface NativeProps extends ViewProps {
220
244
  htmlStyle?: HtmlStyleInternal;
221
245
  scrollEnabled?: boolean;
222
246
  linkRegex?: LinkNativeRegex;
223
- onInputFocus?: DirectEventHandler<null>;
224
- onInputBlur?: DirectEventHandler<null>;
247
+ onInputFocus?: DirectEventHandler<TargetedEvent>;
248
+ onInputBlur?: DirectEventHandler<TargetedEvent>;
225
249
  onChangeText?: DirectEventHandler<OnChangeTextEvent>;
226
250
  onChangeHtml?: DirectEventHandler<OnChangeHtmlEvent>;
227
251
  onChangeState?: DirectEventHandler<OnChangeStateEvent>;
228
- onChangeStateDeprecated?: DirectEventHandler<OnChangeStateDeprecatedEvent>;
229
252
  onLinkDetected?: DirectEventHandler<OnLinkDetected>;
230
253
  onMentionDetected?: DirectEventHandler<OnMentionDetectedInternal>;
231
254
  onMention?: DirectEventHandler<OnMentionEvent>;
232
255
  onChangeSelection?: DirectEventHandler<OnChangeSelectionEvent>;
233
256
  onRequestHtmlResult?: DirectEventHandler<OnRequestHtmlResultEvent>;
234
257
  onInputKeyPress?: DirectEventHandler<OnKeyPressEvent>;
258
+ onPasteImages?: DirectEventHandler<OnPasteImagesEvent>;
235
259
  color?: ColorValue;
236
260
  fontSize?: Float;
237
261
  fontFamily?: string;
@@ -262,6 +286,7 @@ interface NativeCommands {
262
286
  toggleBlockQuote: (viewRef: React.ElementRef<ComponentType>) => void;
263
287
  toggleOrderedList: (viewRef: React.ElementRef<ComponentType>) => void;
264
288
  toggleUnorderedList: (viewRef: React.ElementRef<ComponentType>) => void;
289
+ toggleCheckboxList: (viewRef: React.ElementRef<ComponentType>, checked: boolean) => void;
265
290
  addLink: (viewRef: React.ElementRef<ComponentType>, start: Int32, end: Int32, text: string, url: string) => void;
266
291
  addImage: (viewRef: React.ElementRef<ComponentType>, uri: string, width: Float, height: Float) => void;
267
292
  startMention: (viewRef: React.ElementRef<ComponentType>, indicator: string) => void;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnrichedTextInputNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/spec/EnrichedTextInputNativeComponent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,kBAAkB,EAClB,KAAK,EACL,KAAK,EACL,WAAW,EACZ,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAEhB,UAAU,EAAE,OAAO,CAAC;IAEpB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE;QACJ,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,MAAM,EAAE;QACN,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,SAAS,EAAE;QACT,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,aAAa,EAAE;QACb,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,UAAU,EAAE;QACV,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,EAAE,EAAE;QACF,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,EAAE,EAAE;QACF,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,EAAE,EAAE;QACF,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,EAAE,EAAE;QACF,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,EAAE,EAAE;QACF,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,EAAE,EAAE;QACF,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,SAAS,EAAE;QACT,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,UAAU,EAAE;QACV,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,WAAW,EAAE;QACX,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,aAAa,EAAE;QACb,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,IAAI,EAAE;QACJ,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,KAAK,EAAE;QACL,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,OAAO,EAAE;QACP,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,YAAY,EAAE;QACZ,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;QACvB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,KAAK,CAAC;CACZ;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,KAAK,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,KAAK,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,UAAU,aAAa;IACrB,MAAM,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,KAAK,CAAC;QACb,MAAM,EAAE,KAAK,CAAC;KACf,EAAE,CAAC;CACL;AAED,KAAK,OAAO,GAAG;IACb,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,UAAU,CAAC,EAAE;QACX,WAAW,CAAC,EAAE,UAAU,CAAC;QACzB,WAAW,CAAC,EAAE,KAAK,CAAC;QACpB,QAAQ,CAAC,EAAE,KAAK,CAAC;QACjB,KAAK,CAAC,EAAE,UAAU,CAAC;KACpB,CAAC;IACF,SAAS,CAAC,EAAE;QACV,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,YAAY,CAAC,EAAE,KAAK,CAAC;QACrB,eAAe,CAAC,EAAE,UAAU,CAAC;KAC9B,CAAC;IACF,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,eAAe,CAAC,EAAE,UAAU,CAAC;KAC9B,CAAC;IACF,CAAC,CAAC,EAAE;QACF,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B,CAAC;IAGF,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,EAAE,CAAC,EAAE;QACH,QAAQ,CAAC,EAAE,KAAK,CAAC;QACjB,UAAU,CAAC,EAAE,KAAK,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,UAAU,CAAC;KAC1B,CAAC;IACF,EAAE,CAAC,EAAE;QACH,WAAW,CAAC,EAAE,UAAU,CAAC;QACzB,UAAU,CAAC,EAAE,KAAK,CAAC;QACnB,UAAU,CAAC,EAAE,KAAK,CAAC;QACnB,QAAQ,CAAC,EAAE,KAAK,CAAC;KAClB,CAAC;IACF,UAAU,CAAC,EAAE;QACX,QAAQ,CAAC,EAAE,KAAK,CAAC;QACjB,OAAO,CAAC,EAAE,KAAK,CAAC;QAChB,UAAU,CAAC,EAAE,KAAK,CAAC;QACnB,QAAQ,CAAC,EAAE,UAAU,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,WAAY,SAAQ,SAAS;IAE5C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,UAAU,CAAC;IAClC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,eAAe,CAAC;IAG5B,YAAY,CAAC,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACjD,WAAW,CAAC,EAAE,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAChD,YAAY,CAAC,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;IACrD,YAAY,CAAC,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;IACrD,aAAa,CAAC,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IACvD,cAAc,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACpD,iBAAiB,CAAC,EAAE,kBAAkB,CAAC,yBAAyB,CAAC,CAAC;IAClE,SAAS,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAC/C,iBAAiB,CAAC,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;IAC/D,mBAAmB,CAAC,EAAE,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;IACnE,eAAe,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IACtD,aAAa,CAAC,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IAIvD,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,iBAAiB,EAAE,OAAO,CAAC;IAE3B,iBAAiB,EAAE,OAAO,CAAC;IAG3B,oCAAoC,EAAE,OAAO,CAAC;CAC/C;AAED,KAAK,aAAa,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;AAEhD,UAAU,cAAc;IAEtB,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC1D,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACzD,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3E,YAAY,EAAE,CACZ,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,EACxC,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,KAAK,KACP,IAAI,CAAC;IAGV,UAAU,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC/D,YAAY,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACjE,eAAe,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACpE,mBAAmB,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACxE,gBAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACrE,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC7D,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC7D,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC7D,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC7D,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC7D,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IAC7D,eAAe,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACpE,gBAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACrE,iBAAiB,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACtE,mBAAmB,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACxE,kBAAkB,EAAE,CAClB,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,EACxC,OAAO,EAAE,OAAO,KACb,IAAI,CAAC;IACV,OAAO,EAAE,CACP,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,EACxC,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,KAAK,EACV,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,KACR,IAAI,CAAC;IACV,QAAQ,EAAE,CACR,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,EACxC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,KAAK,KACV,IAAI,CAAC;IACV,YAAY,EAAE,CACZ,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,EACxC,SAAS,EAAE,MAAM,KACd,IAAI,CAAC;IACV,UAAU,EAAE,CACV,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,EACxC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,KACZ,IAAI,CAAC;IACV,WAAW,EAAE,CACX,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,EACxC,SAAS,EAAE,KAAK,KACb,IAAI,CAAC;CACX;AAED,eAAO,MAAM,QAAQ,EAAE,cA+BrB,CAAC;wBAIG,aAAa,CAAC,WAAW,CAAC;AAFhC,wBAEiC"}
@@ -0,0 +1,58 @@
1
+ import type { ColorValue, TextStyle } from 'react-native';
2
+ interface HeadingStyle {
3
+ fontSize?: number;
4
+ bold?: boolean;
5
+ }
6
+ export interface MentionStyleProperties {
7
+ color?: ColorValue;
8
+ backgroundColor?: ColorValue;
9
+ textDecorationLine?: 'underline' | 'none';
10
+ }
11
+ export interface HtmlStyle {
12
+ h1?: HeadingStyle;
13
+ h2?: HeadingStyle;
14
+ h3?: HeadingStyle;
15
+ h4?: HeadingStyle;
16
+ h5?: HeadingStyle;
17
+ h6?: HeadingStyle;
18
+ blockquote?: {
19
+ borderColor?: ColorValue;
20
+ borderWidth?: number;
21
+ gapWidth?: number;
22
+ color?: ColorValue;
23
+ };
24
+ codeblock?: {
25
+ color?: ColorValue;
26
+ borderRadius?: number;
27
+ backgroundColor?: ColorValue;
28
+ };
29
+ code?: {
30
+ color?: ColorValue;
31
+ backgroundColor?: ColorValue;
32
+ };
33
+ a?: {
34
+ color?: ColorValue;
35
+ textDecorationLine?: 'underline' | 'none';
36
+ };
37
+ mention?: Record<string, MentionStyleProperties> | MentionStyleProperties;
38
+ ol?: {
39
+ gapWidth?: number;
40
+ marginLeft?: number;
41
+ markerFontWeight?: TextStyle['fontWeight'];
42
+ markerColor?: ColorValue;
43
+ };
44
+ ul?: {
45
+ bulletColor?: ColorValue;
46
+ bulletSize?: number;
47
+ marginLeft?: number;
48
+ gapWidth?: number;
49
+ };
50
+ ulCheckbox?: {
51
+ boxSize?: number;
52
+ gapWidth?: number;
53
+ marginLeft?: number;
54
+ boxColor?: ColorValue;
55
+ };
56
+ }
57
+ export {};
58
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE1D,UAAU,YAAY;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,kBAAkB,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;CAC3C;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,UAAU,CAAC,EAAE;QACX,WAAW,CAAC,EAAE,UAAU,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,UAAU,CAAC;KACpB,CAAC;IACF,SAAS,CAAC,EAAE;QACV,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,UAAU,CAAC;KAC9B,CAAC;IACF,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,eAAe,CAAC,EAAE,UAAU,CAAC;KAC9B,CAAC;IACF,CAAC,CAAC,EAAE;QACF,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,kBAAkB,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;KAC3C,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAAG,sBAAsB,CAAC;IAC1E,EAAE,CAAC,EAAE;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,gBAAgB,CAAC,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;QAC3C,WAAW,CAAC,EAAE,UAAU,CAAC;KAC1B,CAAC;IACF,EAAE,CAAC,EAAE;QACH,WAAW,CAAC,EAAE,UAAU,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,UAAU,CAAC;KACvB,CAAC;CACH"}
@@ -1,4 +1,4 @@
1
- import type { HtmlStyle } from '../EnrichedTextInput';
2
- import type { HtmlStyleInternal } from '../EnrichedTextInputNativeComponent';
1
+ import type { HtmlStyleInternal } from '../spec/EnrichedTextInputNativeComponent';
2
+ import type { HtmlStyle } from '../types';
3
3
  export declare const normalizeHtmlStyle: (style: HtmlStyle, mentionIndicators: string[]) => HtmlStyleInternal;
4
4
  //# sourceMappingURL=normalizeHtmlStyle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"normalizeHtmlStyle.d.ts","sourceRoot":"","sources":["../../../../src/utils/normalizeHtmlStyle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAEV,iBAAiB,EAClB,MAAM,qCAAqC,CAAC;AAuL7C,eAAO,MAAM,kBAAkB,GAC7B,OAAO,SAAS,EAChB,mBAAmB,MAAM,EAAE,KAC1B,iBAIF,CAAC"}
1
+ {"version":3,"file":"normalizeHtmlStyle.d.ts","sourceRoot":"","sources":["../../../../src/utils/normalizeHtmlStyle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,KAAK,EAAE,SAAS,EAA0B,MAAM,UAAU,CAAC;AA6LlE,eAAO,MAAM,kBAAkB,GAC7B,OAAO,SAAS,EAChB,mBAAmB,MAAM,EAAE,KAC1B,iBAIF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const nullthrows: <T>(value: T | null | undefined) => T;
2
+ //# sourceMappingURL=nullthrows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nullthrows.d.ts","sourceRoot":"","sources":["../../../../src/utils/nullthrows.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,GAAI,CAAC,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,KAAG,CAM3D,CAAC"}
@@ -1,3 +1,3 @@
1
- import type { LinkNativeRegex } from '../EnrichedTextInputNativeComponent';
1
+ import type { LinkNativeRegex } from '../spec/EnrichedTextInputNativeComponent';
2
2
  export declare const toNativeRegexConfig: (regex: RegExp | undefined | null) => LinkNativeRegex;
3
3
  //# sourceMappingURL=regexParser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"regexParser.d.ts","sourceRoot":"","sources":["../../../../src/utils/regexParser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAkB3E,eAAO,MAAM,mBAAmB,GAC9B,OAAO,MAAM,GAAG,SAAS,GAAG,IAAI,KAC/B,eAmCF,CAAC"}
1
+ {"version":3,"file":"regexParser.d.ts","sourceRoot":"","sources":["../../../../src/utils/regexParser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAkBhF,eAAO,MAAM,mBAAmB,GAC9B,OAAO,MAAM,GAAG,SAAS,GAAG,IAAI,KAC/B,eAmCF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-enriched",
3
- "version": "0.3.0",
3
+ "version": "0.4.1",
4
4
  "description": "Rich Text Editor component for React Native",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/module/index.js",
@@ -90,7 +90,7 @@
90
90
  "prettier": "^3.0.3",
91
91
  "react": "19.1.0",
92
92
  "react-native": "0.81.0",
93
- "react-native-builder-bob": "^0.40.6",
93
+ "react-native-builder-bob": "^0.40.18",
94
94
  "release-it": "^17.10.0",
95
95
  "turbo": "^1.10.7",
96
96
  "typescript": "^5.8.3"
@@ -162,9 +162,9 @@
162
162
  ]
163
163
  },
164
164
  "codegenConfig": {
165
- "name": "RNEnrichedTextInputViewSpec",
165
+ "name": "ReactNativeEnrichedSpec",
166
166
  "type": "components",
167
- "jsSrcsDir": "src",
167
+ "jsSrcsDir": "src/spec",
168
168
  "outputDir": {
169
169
  "ios": "ios/generated",
170
170
  "android": "android/generated"
@@ -18,10 +18,10 @@ import EnrichedTextInputNativeComponent, {
18
18
  type OnMentionDetected,
19
19
  type OnMentionDetectedInternal,
20
20
  type OnRequestHtmlResultEvent,
21
- type MentionStyleProperties,
22
21
  type OnChangeStateDeprecatedEvent,
23
22
  type OnKeyPressEvent,
24
- } from './EnrichedTextInputNativeComponent';
23
+ type OnPasteImagesEvent,
24
+ } from './spec/EnrichedTextInputNativeComponent';
25
25
  import type {
26
26
  ColorValue,
27
27
  HostInstance,
@@ -30,12 +30,18 @@ import type {
30
30
  MeasureOnSuccessCallback,
31
31
  NativeMethods,
32
32
  NativeSyntheticEvent,
33
+ TargetedEvent,
33
34
  TextStyle,
34
35
  ViewProps,
35
36
  ViewStyle,
36
37
  } from 'react-native';
37
38
  import { normalizeHtmlStyle } from './utils/normalizeHtmlStyle';
38
39
  import { toNativeRegexConfig } from './utils/regexParser';
40
+ import { nullthrows } from './utils/nullthrows';
41
+ import type { HtmlStyle } from './types';
42
+
43
+ export type FocusEvent = NativeSyntheticEvent<TargetedEvent>;
44
+ export type BlurEvent = NativeSyntheticEvent<TargetedEvent>;
39
45
 
40
46
  export interface EnrichedTextInputInstance extends NativeMethods {
41
47
  // General commands
@@ -61,6 +67,7 @@ export interface EnrichedTextInputInstance extends NativeMethods {
61
67
  toggleBlockQuote: () => void;
62
68
  toggleOrderedList: () => void;
63
69
  toggleUnorderedList: () => void;
70
+ toggleCheckboxList: (checked: boolean) => void;
64
71
  setLink: (start: number, end: number, text: string, url: string) => void;
65
72
  setImage: (src: string, width: number, height: number) => void;
66
73
  startMention: (indicator: string) => void;
@@ -76,52 +83,6 @@ export interface OnChangeMentionEvent {
76
83
  text: string;
77
84
  }
78
85
 
79
- type HeadingStyle = {
80
- fontSize?: number;
81
- bold?: boolean;
82
- };
83
-
84
- export interface HtmlStyle {
85
- h1?: HeadingStyle;
86
- h2?: HeadingStyle;
87
- h3?: HeadingStyle;
88
- h4?: HeadingStyle;
89
- h5?: HeadingStyle;
90
- h6?: HeadingStyle;
91
- blockquote?: {
92
- borderColor?: ColorValue;
93
- borderWidth?: number;
94
- gapWidth?: number;
95
- color?: ColorValue;
96
- };
97
- codeblock?: {
98
- color?: ColorValue;
99
- borderRadius?: number;
100
- backgroundColor?: ColorValue;
101
- };
102
- code?: {
103
- color?: ColorValue;
104
- backgroundColor?: ColorValue;
105
- };
106
- a?: {
107
- color?: ColorValue;
108
- textDecorationLine?: 'underline' | 'none';
109
- };
110
- mention?: Record<string, MentionStyleProperties> | MentionStyleProperties;
111
- ol?: {
112
- gapWidth?: number;
113
- marginLeft?: number;
114
- markerFontWeight?: TextStyle['fontWeight'];
115
- markerColor?: ColorValue;
116
- };
117
- ul?: {
118
- bulletColor?: ColorValue;
119
- bulletSize?: number;
120
- marginLeft?: number;
121
- gapWidth?: number;
122
- };
123
- }
124
-
125
86
  export interface EnrichedTextInputProps extends Omit<ViewProps, 'children'> {
126
87
  ref?: RefObject<EnrichedTextInputInstance | null>;
127
88
  autoFocus?: boolean;
@@ -137,8 +98,8 @@ export interface EnrichedTextInputProps extends Omit<ViewProps, 'children'> {
137
98
  style?: ViewStyle | TextStyle;
138
99
  scrollEnabled?: boolean;
139
100
  linkRegex?: RegExp | null;
140
- onFocus?: () => void;
141
- onBlur?: () => void;
101
+ onFocus?: (e: FocusEvent) => void;
102
+ onBlur?: (e: BlurEvent) => void;
142
103
  onChangeText?: (e: NativeSyntheticEvent<OnChangeTextEvent>) => void;
143
104
  onChangeHtml?: (e: NativeSyntheticEvent<OnChangeHtmlEvent>) => void;
144
105
  onChangeState?: (e: NativeSyntheticEvent<OnChangeStateEvent>) => void;
@@ -155,6 +116,7 @@ export interface EnrichedTextInputProps extends Omit<ViewProps, 'children'> {
155
116
  onEndMention?: (indicator: string) => void;
156
117
  onChangeSelection?: (e: NativeSyntheticEvent<OnChangeSelectionEvent>) => void;
157
118
  onKeyPress?: (e: NativeSyntheticEvent<OnKeyPressEvent>) => void;
119
+ onPasteImages?: (e: NativeSyntheticEvent<OnPasteImagesEvent>) => void;
158
120
  /**
159
121
  * If true, Android will use experimental synchronous events.
160
122
  * This will prevent from input flickering when updating component size.
@@ -165,15 +127,7 @@ export interface EnrichedTextInputProps extends Omit<ViewProps, 'children'> {
165
127
  androidExperimentalSynchronousEvents?: boolean;
166
128
  }
167
129
 
168
- const nullthrows = <T,>(value: T | null | undefined): T => {
169
- if (value == null) {
170
- throw new Error('Unexpected null or undefined value');
171
- }
172
-
173
- return value;
174
- };
175
-
176
- const warnAboutMissconfiguredMentions = (indicator: string) => {
130
+ const warnMentionIndicators = (indicator: string) => {
177
131
  console.warn(
178
132
  `Looks like you are trying to set a "${indicator}" but it's not in the mentionIndicators prop`
179
133
  );
@@ -324,6 +278,9 @@ export const EnrichedTextInput = ({
324
278
  toggleUnorderedList: () => {
325
279
  Commands.toggleUnorderedList(nullthrows(nativeRef.current));
326
280
  },
281
+ toggleCheckboxList: (checked: boolean) => {
282
+ Commands.toggleCheckboxList(nullthrows(nativeRef.current), checked);
283
+ },
327
284
  setLink: (start: number, end: number, text: string, url: string) => {
328
285
  Commands.addLink(nullthrows(nativeRef.current), start, end, text, url);
329
286
  },
@@ -347,7 +304,7 @@ export const EnrichedTextInput = ({
347
304
  },
348
305
  startMention: (indicator: string) => {
349
306
  if (!mentionIndicators?.includes(indicator)) {
350
- warnAboutMissconfiguredMentions(indicator);
307
+ warnMentionIndicators(indicator);
351
308
  }
352
309
 
353
310
  Commands.startMention(nullthrows(nativeRef.current), indicator);
@@ -401,6 +358,37 @@ export const EnrichedTextInput = ({
401
358
  pendingHtmlRequests.current.delete(requestId);
402
359
  };
403
360
 
361
+ const onChangeStateWithDeprecated = (
362
+ e: NativeSyntheticEvent<OnChangeStateEvent>
363
+ ) => {
364
+ onChangeState?.(e);
365
+ // TODO: remove in 0.5.0 release
366
+ onChangeStateDeprecated?.({
367
+ ...e,
368
+ nativeEvent: {
369
+ isBold: e.nativeEvent.bold.isActive,
370
+ isItalic: e.nativeEvent.italic.isActive,
371
+ isUnderline: e.nativeEvent.underline.isActive,
372
+ isStrikeThrough: e.nativeEvent.strikeThrough.isActive,
373
+ isInlineCode: e.nativeEvent.inlineCode.isActive,
374
+ isH1: e.nativeEvent.h1.isActive,
375
+ isH2: e.nativeEvent.h2.isActive,
376
+ isH3: e.nativeEvent.h3.isActive,
377
+ isH4: e.nativeEvent.h4.isActive,
378
+ isH5: e.nativeEvent.h5.isActive,
379
+ isH6: e.nativeEvent.h6.isActive,
380
+ isCodeBlock: e.nativeEvent.codeBlock.isActive,
381
+ isBlockQuote: e.nativeEvent.blockQuote.isActive,
382
+ isOrderedList: e.nativeEvent.orderedList.isActive,
383
+ isUnorderedList: e.nativeEvent.unorderedList.isActive,
384
+ isCheckboxList: e.nativeEvent.checkboxList.isActive,
385
+ isLink: e.nativeEvent.link.isActive,
386
+ isImage: e.nativeEvent.image.isActive,
387
+ isMention: e.nativeEvent.mention.isActive,
388
+ },
389
+ });
390
+ };
391
+
404
392
  return (
405
393
  <EnrichedTextInputNativeComponent
406
394
  ref={nativeRef}
@@ -422,8 +410,7 @@ export const EnrichedTextInput = ({
422
410
  onChangeHtml={onChangeHtml}
423
411
  isOnChangeHtmlSet={onChangeHtml !== undefined}
424
412
  isOnChangeTextSet={onChangeText !== undefined}
425
- onChangeState={onChangeState}
426
- onChangeStateDeprecated={onChangeStateDeprecated}
413
+ onChangeState={onChangeStateWithDeprecated}
427
414
  onLinkDetected={handleLinkDetected}
428
415
  onMentionDetected={handleMentionDetected}
429
416
  onMention={handleMentionEvent}
package/src/index.tsx CHANGED
@@ -8,4 +8,6 @@ export type {
8
8
  OnMentionDetected,
9
9
  OnChangeSelectionEvent,
10
10
  OnKeyPressEvent,
11
- } from './EnrichedTextInputNativeComponent';
11
+ OnPasteImagesEvent,
12
+ } from './spec/EnrichedTextInputNativeComponent';
13
+ export type { HtmlStyle, MentionStyleProperties } from './types';
@@ -117,6 +117,11 @@ export interface OnChangeStateEvent {
117
117
  isConflicting: boolean;
118
118
  isBlocking: boolean;
119
119
  };
120
+ checkboxList: {
121
+ isActive: boolean;
122
+ isConflicting: boolean;
123
+ isBlocking: boolean;
124
+ };
120
125
  }
121
126
 
122
127
  export interface OnChangeStateDeprecatedEvent {
@@ -135,6 +140,7 @@ export interface OnChangeStateDeprecatedEvent {
135
140
  isBlockQuote: boolean;
136
141
  isOrderedList: boolean;
137
142
  isUnorderedList: boolean;
143
+ isCheckboxList: boolean;
138
144
  isLink: boolean;
139
145
  isImage: boolean;
140
146
  isMention: boolean;
@@ -175,16 +181,30 @@ export interface OnRequestHtmlResultEvent {
175
181
  html: UnsafeMixed;
176
182
  }
177
183
 
178
- export interface MentionStyleProperties {
179
- color?: ColorValue;
180
- backgroundColor?: ColorValue;
181
- textDecorationLine?: 'underline' | 'none';
182
- }
183
-
184
184
  export interface OnKeyPressEvent {
185
185
  key: string;
186
186
  }
187
187
 
188
+ interface TargetedEvent {
189
+ target: Int32;
190
+ }
191
+
192
+ export interface PastedImage {
193
+ uri: string;
194
+ type: string;
195
+ width: Float;
196
+ height: Float;
197
+ }
198
+
199
+ export interface OnPasteImagesEvent {
200
+ images: {
201
+ uri: string;
202
+ type: string;
203
+ width: Float;
204
+ height: Float;
205
+ }[];
206
+ }
207
+
188
208
  type Heading = {
189
209
  fontSize?: Float;
190
210
  bold?: boolean;
@@ -231,6 +251,12 @@ export interface HtmlStyleInternal {
231
251
  marginLeft?: Float;
232
252
  gapWidth?: Float;
233
253
  };
254
+ ulCheckbox?: {
255
+ gapWidth?: Float;
256
+ boxSize?: Float;
257
+ marginLeft?: Float;
258
+ boxColor?: ColorValue;
259
+ };
234
260
  }
235
261
 
236
262
  export interface NativeProps extends ViewProps {
@@ -249,18 +275,18 @@ export interface NativeProps extends ViewProps {
249
275
  linkRegex?: LinkNativeRegex;
250
276
 
251
277
  // event callbacks
252
- onInputFocus?: DirectEventHandler<null>;
253
- onInputBlur?: DirectEventHandler<null>;
278
+ onInputFocus?: DirectEventHandler<TargetedEvent>;
279
+ onInputBlur?: DirectEventHandler<TargetedEvent>;
254
280
  onChangeText?: DirectEventHandler<OnChangeTextEvent>;
255
281
  onChangeHtml?: DirectEventHandler<OnChangeHtmlEvent>;
256
282
  onChangeState?: DirectEventHandler<OnChangeStateEvent>;
257
- onChangeStateDeprecated?: DirectEventHandler<OnChangeStateDeprecatedEvent>;
258
283
  onLinkDetected?: DirectEventHandler<OnLinkDetected>;
259
284
  onMentionDetected?: DirectEventHandler<OnMentionDetectedInternal>;
260
285
  onMention?: DirectEventHandler<OnMentionEvent>;
261
286
  onChangeSelection?: DirectEventHandler<OnChangeSelectionEvent>;
262
287
  onRequestHtmlResult?: DirectEventHandler<OnRequestHtmlResultEvent>;
263
288
  onInputKeyPress?: DirectEventHandler<OnKeyPressEvent>;
289
+ onPasteImages?: DirectEventHandler<OnPasteImagesEvent>;
264
290
 
265
291
  // Style related props - used for generating proper setters in component's manager
266
292
  // These should not be passed as regular props
@@ -308,6 +334,10 @@ interface NativeCommands {
308
334
  toggleBlockQuote: (viewRef: React.ElementRef<ComponentType>) => void;
309
335
  toggleOrderedList: (viewRef: React.ElementRef<ComponentType>) => void;
310
336
  toggleUnorderedList: (viewRef: React.ElementRef<ComponentType>) => void;
337
+ toggleCheckboxList: (
338
+ viewRef: React.ElementRef<ComponentType>,
339
+ checked: boolean
340
+ ) => void;
311
341
  addLink: (
312
342
  viewRef: React.ElementRef<ComponentType>,
313
343
  start: Int32,
@@ -361,6 +391,7 @@ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
361
391
  'toggleBlockQuote',
362
392
  'toggleOrderedList',
363
393
  'toggleUnorderedList',
394
+ 'toggleCheckboxList',
364
395
  'addLink',
365
396
  'addImage',
366
397
  'startMention',
package/src/types.ts ADDED
@@ -0,0 +1,59 @@
1
+ import type { ColorValue, TextStyle } from 'react-native';
2
+
3
+ interface HeadingStyle {
4
+ fontSize?: number;
5
+ bold?: boolean;
6
+ }
7
+
8
+ export interface MentionStyleProperties {
9
+ color?: ColorValue;
10
+ backgroundColor?: ColorValue;
11
+ textDecorationLine?: 'underline' | 'none';
12
+ }
13
+
14
+ export interface HtmlStyle {
15
+ h1?: HeadingStyle;
16
+ h2?: HeadingStyle;
17
+ h3?: HeadingStyle;
18
+ h4?: HeadingStyle;
19
+ h5?: HeadingStyle;
20
+ h6?: HeadingStyle;
21
+ blockquote?: {
22
+ borderColor?: ColorValue;
23
+ borderWidth?: number;
24
+ gapWidth?: number;
25
+ color?: ColorValue;
26
+ };
27
+ codeblock?: {
28
+ color?: ColorValue;
29
+ borderRadius?: number;
30
+ backgroundColor?: ColorValue;
31
+ };
32
+ code?: {
33
+ color?: ColorValue;
34
+ backgroundColor?: ColorValue;
35
+ };
36
+ a?: {
37
+ color?: ColorValue;
38
+ textDecorationLine?: 'underline' | 'none';
39
+ };
40
+ mention?: Record<string, MentionStyleProperties> | MentionStyleProperties;
41
+ ol?: {
42
+ gapWidth?: number;
43
+ marginLeft?: number;
44
+ markerFontWeight?: TextStyle['fontWeight'];
45
+ markerColor?: ColorValue;
46
+ };
47
+ ul?: {
48
+ bulletColor?: ColorValue;
49
+ bulletSize?: number;
50
+ marginLeft?: number;
51
+ gapWidth?: number;
52
+ };
53
+ ulCheckbox?: {
54
+ boxSize?: number;
55
+ gapWidth?: number;
56
+ marginLeft?: number;
57
+ boxColor?: ColorValue;
58
+ };
59
+ }
@@ -1,9 +1,6 @@
1
- import type { HtmlStyle } from '../EnrichedTextInput';
2
1
  import { type ColorValue, processColor } from 'react-native';
3
- import type {
4
- MentionStyleProperties,
5
- HtmlStyleInternal,
6
- } from '../EnrichedTextInputNativeComponent';
2
+ import type { HtmlStyleInternal } from '../spec/EnrichedTextInputNativeComponent';
3
+ import type { HtmlStyle, MentionStyleProperties } from '../types';
7
4
 
8
5
  const defaultStyle: Required<HtmlStyle> = {
9
6
  h1: {
@@ -66,6 +63,12 @@ const defaultStyle: Required<HtmlStyle> = {
66
63
  marginLeft: 16,
67
64
  gapWidth: 16,
68
65
  },
66
+ ulCheckbox: {
67
+ boxSize: 24,
68
+ gapWidth: 16,
69
+ marginLeft: 16,
70
+ boxColor: 'blue',
71
+ },
69
72
  };
70
73
 
71
74
  const isMentionStyleRecord = (
@@ -0,0 +1,7 @@
1
+ export const nullthrows = <T>(value: T | null | undefined): T => {
2
+ if (value == null) {
3
+ throw new Error('Unexpected null or undefined value');
4
+ }
5
+
6
+ return value;
7
+ };
@@ -1,4 +1,4 @@
1
- import type { LinkNativeRegex } from '../EnrichedTextInputNativeComponent';
1
+ import type { LinkNativeRegex } from '../spec/EnrichedTextInputNativeComponent';
2
2
 
3
3
  const DISABLED_REGEX: LinkNativeRegex = {
4
4
  pattern: '',
@@ -1,21 +0,0 @@
1
- package com.swmansion.enriched.events
2
-
3
- import com.facebook.react.bridge.WritableMap
4
- import com.facebook.react.uimanager.events.Event
5
-
6
- class OnChangeStateDeprecatedEvent(
7
- surfaceId: Int,
8
- viewId: Int,
9
- private val state: WritableMap,
10
- private val experimentalSynchronousEvents: Boolean,
11
- ) : Event<OnChangeStateDeprecatedEvent>(surfaceId, viewId) {
12
- override fun getEventName(): String = EVENT_NAME
13
-
14
- override fun getEventData(): WritableMap = state
15
-
16
- override fun experimental_isSynchronous(): Boolean = experimentalSynchronousEvents
17
-
18
- companion object {
19
- const val EVENT_NAME: String = "onChangeStateDeprecated"
20
- }
21
- }