react-native-enriched 0.2.1 → 0.4.0

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 (263) hide show
  1. package/README.md +21 -16
  2. package/android/build.gradle +77 -72
  3. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedTextInputViewManagerDelegate.java +21 -0
  4. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedTextInputViewManagerInterface.java +7 -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/android/generated/jni/react/renderer/components/ReactNativeEnrichedSpec/EventEmitters.cpp +276 -0
  8. package/android/generated/jni/react/renderer/components/ReactNativeEnrichedSpec/EventEmitters.h +239 -0
  9. package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/Props.cpp +10 -0
  10. package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/Props.h +251 -0
  11. package/android/gradle.properties +5 -5
  12. package/android/lint.gradle +70 -0
  13. package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputViewPackage.kt → ReactNativeEnrichedPackage.kt} +4 -5
  14. package/android/src/main/java/com/swmansion/enriched/{utils → common}/AsyncDrawable.kt +50 -15
  15. package/android/src/main/java/com/swmansion/enriched/common/CheckboxDrawable.kt +81 -0
  16. package/android/src/main/java/com/swmansion/enriched/common/EnrichedConstants.kt +11 -0
  17. package/android/src/main/java/com/swmansion/enriched/common/EnrichedStyle.kt +57 -0
  18. package/android/src/main/java/com/swmansion/enriched/{spans/utils → common}/ForceRedrawSpan.kt +3 -2
  19. package/android/src/main/java/com/swmansion/enriched/common/MentionStyle.kt +7 -0
  20. package/android/src/main/java/com/swmansion/enriched/{utils → common}/ResourceManager.kt +1 -1
  21. package/android/src/main/java/com/swmansion/enriched/{utils → common/parser}/EnrichedParser.java +228 -160
  22. package/android/src/main/java/com/swmansion/enriched/common/parser/EnrichedSpanFactory.kt +79 -0
  23. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedBlockQuoteSpan.kt +53 -0
  24. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedBoldSpan.kt +12 -0
  25. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedCheckboxListSpan.kt +91 -0
  26. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedCodeBlockSpan.kt +12 -14
  27. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH1Span.kt +20 -0
  28. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH2Span.kt +20 -0
  29. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH3Span.kt +20 -0
  30. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH4Span.kt +21 -0
  31. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH5Span.kt +20 -0
  32. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedH6Span.kt +20 -0
  33. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedImageSpan.kt +68 -51
  34. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedInlineCodeSpan.kt +24 -0
  35. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedItalicSpan.kt +12 -0
  36. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedLinkSpan.kt +26 -0
  37. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedMentionSpan.kt +35 -0
  38. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedOrderedListSpan.kt +21 -29
  39. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedStrikeThroughSpan.kt +11 -0
  40. package/android/src/main/java/com/swmansion/enriched/common/spans/EnrichedUnderlineSpan.kt +11 -0
  41. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/EnrichedUnorderedListSpan.kt +13 -17
  42. package/android/src/main/java/com/swmansion/enriched/common/spans/interfaces/EnrichedBlockSpan.kt +5 -0
  43. package/android/src/main/java/com/swmansion/enriched/common/spans/interfaces/EnrichedHeadingSpan.kt +3 -0
  44. package/android/src/main/java/com/swmansion/enriched/common/spans/interfaces/EnrichedInlineSpan.kt +3 -0
  45. package/android/src/main/java/com/swmansion/enriched/common/spans/interfaces/EnrichedParagraphSpan.kt +5 -0
  46. package/android/src/main/java/com/swmansion/enriched/common/spans/interfaces/EnrichedSpan.kt +3 -0
  47. package/android/src/main/java/com/swmansion/enriched/{spans → common/spans}/interfaces/EnrichedZeroWidthSpaceSpan.kt +2 -3
  48. package/android/src/main/java/com/swmansion/enriched/textinput/EnrichedTextInputConnectionWrapper.kt +140 -0
  49. package/android/src/main/java/com/swmansion/enriched/textinput/EnrichedTextInputSpannableFactory.kt +83 -0
  50. package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputView.kt → textinput/EnrichedTextInputView.kt} +322 -157
  51. package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputViewLayoutManager.kt → textinput/EnrichedTextInputViewLayoutManager.kt} +4 -2
  52. package/android/src/main/java/com/swmansion/enriched/{EnrichedTextInputViewManager.kt → textinput/EnrichedTextInputViewManager.kt} +182 -66
  53. package/android/src/main/java/com/swmansion/enriched/{MeasurementStore.kt → textinput/MeasurementStore.kt} +75 -25
  54. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/MentionHandler.kt +22 -12
  55. package/android/src/main/java/com/swmansion/enriched/textinput/events/OnChangeHtmlEvent.kt +27 -0
  56. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnChangeSelectionEvent.kt +11 -10
  57. package/android/src/main/java/com/swmansion/enriched/textinput/events/OnChangeStateEvent.kt +21 -0
  58. package/android/src/main/java/com/swmansion/enriched/textinput/events/OnChangeTextEvent.kt +30 -0
  59. package/android/src/main/java/com/swmansion/enriched/textinput/events/OnInputBlurEvent.kt +25 -0
  60. package/android/src/main/java/com/swmansion/enriched/textinput/events/OnInputFocusEvent.kt +25 -0
  61. package/android/src/main/java/com/swmansion/enriched/textinput/events/OnInputKeyPressEvent.kt +27 -0
  62. package/android/src/main/java/com/swmansion/enriched/textinput/events/OnLinkDetectedEvent.kt +32 -0
  63. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnMentionDetectedEvent.kt +11 -10
  64. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnMentionEvent.kt +10 -9
  65. package/android/src/main/java/com/swmansion/enriched/textinput/events/OnPasteImagesEvent.kt +47 -0
  66. package/android/src/main/java/com/swmansion/enriched/{events → textinput/events}/OnRequestHtmlResultEvent.kt +2 -3
  67. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputBlockQuoteSpan.kt +14 -0
  68. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputBoldSpan.kt +14 -0
  69. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputCheckboxListSpan.kt +15 -0
  70. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputCodeBlockSpan.kt +14 -0
  71. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH1Span.kt +14 -0
  72. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH2Span.kt +14 -0
  73. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH3Span.kt +14 -0
  74. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH4Span.kt +14 -0
  75. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH5Span.kt +14 -0
  76. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputH6Span.kt +14 -0
  77. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputImageSpan.kt +36 -0
  78. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputInlineCodeSpan.kt +14 -0
  79. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputItalicSpan.kt +14 -0
  80. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputLinkSpan.kt +15 -0
  81. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputMentionSpan.kt +18 -0
  82. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputOrderedListSpan.kt +21 -0
  83. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputStrikeThroughSpan.kt +14 -0
  84. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputUnderlineSpan.kt +14 -0
  85. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedInputUnorderedListSpan.kt +14 -0
  86. package/android/src/main/java/com/swmansion/enriched/textinput/spans/EnrichedSpans.kt +241 -0
  87. package/android/src/main/java/com/swmansion/enriched/textinput/spans/interfaces/EnrichedInputSpan.kt +10 -0
  88. package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/HtmlStyle.kt +129 -57
  89. package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/InlineStyles.kt +30 -13
  90. package/android/src/main/java/com/swmansion/enriched/textinput/styles/ListStyles.kt +263 -0
  91. package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/ParagraphStyles.kt +94 -34
  92. package/android/src/main/java/com/swmansion/enriched/{styles → textinput/styles}/ParametrizedStyles.kt +143 -67
  93. package/android/src/main/java/com/swmansion/enriched/textinput/utils/EnrichedEditableFactory.kt +17 -0
  94. package/android/src/main/java/com/swmansion/enriched/{utils → textinput/utils}/EnrichedSelection.kt +84 -54
  95. package/android/src/main/java/com/swmansion/enriched/textinput/utils/EnrichedSpanState.kt +304 -0
  96. package/android/src/main/java/com/swmansion/enriched/{utils/Utils.kt → textinput/utils/EnrichedSpannable.kt} +22 -31
  97. package/android/src/main/java/com/swmansion/enriched/textinput/utils/EnrichedSpannableStringBuilder.kt +16 -0
  98. package/android/src/main/java/com/swmansion/enriched/textinput/utils/RichContentReceiver.kt +127 -0
  99. package/android/src/main/java/com/swmansion/enriched/textinput/utils/Utils.kt +106 -0
  100. package/android/src/main/java/com/swmansion/enriched/{watchers → textinput/watchers}/EnrichedSpanWatcher.kt +56 -24
  101. package/android/src/main/java/com/swmansion/enriched/{watchers → textinput/watchers}/EnrichedTextWatcher.kt +37 -14
  102. package/android/src/main/new_arch/CMakeLists.txt +7 -1
  103. package/android/src/main/new_arch/ReactNativeEnrichedSpec.cpp +11 -0
  104. package/android/src/main/new_arch/ReactNativeEnrichedSpec.h +15 -0
  105. package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputMeasurementManager.h +1 -1
  106. package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputShadowNode.h +2 -2
  107. package/android/src/main/new_arch/react/renderer/components/ReactNativeEnrichedSpec/conversions.h +46 -0
  108. package/ios/EnrichedTextInputView.h +2 -1
  109. package/ios/EnrichedTextInputView.mm +603 -60
  110. package/ios/config/InputConfig.h +28 -0
  111. package/ios/config/InputConfig.mm +237 -8
  112. package/ios/extensions/ImageExtension.h +35 -0
  113. package/ios/extensions/ImageExtension.mm +156 -0
  114. package/ios/{utils → extensions}/LayoutManagerExtension.mm +115 -95
  115. package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ComponentDescriptors.cpp +1 -1
  116. package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ComponentDescriptors.h +1 -1
  117. package/ios/generated/ReactNativeEnrichedSpec/EventEmitters.cpp +276 -0
  118. package/ios/generated/ReactNativeEnrichedSpec/EventEmitters.h +239 -0
  119. package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/Props.cpp +10 -0
  120. package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/Props.h +251 -0
  121. package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/RCTComponentViewHelpers.h +95 -0
  122. package/ios/inputParser/InputParser.mm +218 -18
  123. package/ios/inputTextView/InputTextView.mm +118 -0
  124. package/ios/{attachments → interfaces}/ImageAttachment.h +1 -0
  125. package/ios/interfaces/ImageAttachment.mm +46 -0
  126. package/ios/interfaces/LinkRegexConfig.h +19 -0
  127. package/ios/interfaces/LinkRegexConfig.mm +37 -0
  128. package/ios/{utils → interfaces}/MentionStyleProps.mm +2 -2
  129. package/ios/{utils → interfaces}/StyleHeaders.h +22 -1
  130. package/ios/{utils → interfaces}/StyleTypeEnum.h +4 -0
  131. package/ios/internals/EnrichedTextInputViewState.cpp +6 -6
  132. package/ios/styles/BlockQuoteStyle.mm +5 -5
  133. package/ios/styles/BoldStyle.mm +21 -6
  134. package/ios/styles/CheckboxListStyle.mm +321 -0
  135. package/ios/styles/CodeBlockStyle.mm +5 -5
  136. package/ios/styles/H1Style.mm +3 -0
  137. package/ios/styles/H2Style.mm +3 -0
  138. package/ios/styles/H3Style.mm +3 -0
  139. package/ios/styles/H4Style.mm +20 -0
  140. package/ios/styles/H5Style.mm +20 -0
  141. package/ios/styles/H6Style.mm +20 -0
  142. package/ios/styles/HeadingStyleBase.mm +161 -72
  143. package/ios/styles/ImageStyle.mm +5 -5
  144. package/ios/styles/InlineCodeStyle.mm +30 -19
  145. package/ios/styles/ItalicStyle.mm +5 -5
  146. package/ios/styles/LinkStyle.mm +98 -40
  147. package/ios/styles/MentionStyle.mm +4 -4
  148. package/ios/styles/OrderedListStyle.mm +5 -5
  149. package/ios/styles/StrikethroughStyle.mm +5 -5
  150. package/ios/styles/UnderlineStyle.mm +5 -5
  151. package/ios/styles/UnorderedListStyle.mm +5 -5
  152. package/ios/utils/CheckboxHitTestUtils.h +10 -0
  153. package/ios/utils/CheckboxHitTestUtils.mm +123 -0
  154. package/ios/utils/ParagraphAttributesUtils.h +4 -0
  155. package/ios/utils/ParagraphAttributesUtils.mm +142 -45
  156. package/ios/utils/ParagraphsUtils.mm +4 -4
  157. package/ios/utils/TextBlockTapGestureRecognizer.h +17 -0
  158. package/ios/utils/TextBlockTapGestureRecognizer.mm +56 -0
  159. package/ios/utils/ZeroWidthSpaceUtils.mm +14 -3
  160. package/lib/module/EnrichedTextInput.js +57 -11
  161. package/lib/module/EnrichedTextInput.js.map +1 -1
  162. package/lib/module/{EnrichedTextInputNativeComponent.ts → spec/EnrichedTextInputNativeComponent.ts} +175 -18
  163. package/lib/module/types.js +4 -0
  164. package/lib/module/types.js.map +1 -0
  165. package/lib/module/{normalizeHtmlStyle.js → utils/normalizeHtmlStyle.js} +18 -0
  166. package/lib/module/utils/normalizeHtmlStyle.js.map +1 -0
  167. package/lib/module/utils/nullthrows.js +9 -0
  168. package/lib/module/utils/nullthrows.js.map +1 -0
  169. package/lib/module/utils/regexParser.js +46 -0
  170. package/lib/module/utils/regexParser.js.map +1 -0
  171. package/lib/typescript/src/EnrichedTextInput.d.ts +20 -51
  172. package/lib/typescript/src/EnrichedTextInput.d.ts.map +1 -1
  173. package/lib/typescript/src/index.d.ts +2 -1
  174. package/lib/typescript/src/index.d.ts.map +1 -1
  175. package/lib/typescript/src/{EnrichedTextInputNativeComponent.d.ts → spec/EnrichedTextInputNativeComponent.d.ts} +154 -18
  176. package/lib/typescript/src/spec/EnrichedTextInputNativeComponent.d.ts.map +1 -0
  177. package/lib/typescript/src/types.d.ts +58 -0
  178. package/lib/typescript/src/types.d.ts.map +1 -0
  179. package/lib/typescript/src/utils/normalizeHtmlStyle.d.ts +4 -0
  180. package/lib/typescript/src/utils/normalizeHtmlStyle.d.ts.map +1 -0
  181. package/lib/typescript/src/utils/nullthrows.d.ts +2 -0
  182. package/lib/typescript/src/utils/nullthrows.d.ts.map +1 -0
  183. package/lib/typescript/src/utils/regexParser.d.ts +3 -0
  184. package/lib/typescript/src/utils/regexParser.d.ts.map +1 -0
  185. package/package.json +13 -9
  186. package/src/EnrichedTextInput.tsx +88 -63
  187. package/src/index.tsx +5 -1
  188. package/src/{EnrichedTextInputNativeComponent.ts → spec/EnrichedTextInputNativeComponent.ts} +175 -18
  189. package/src/types.ts +59 -0
  190. package/src/{normalizeHtmlStyle.ts → utils/normalizeHtmlStyle.ts} +20 -5
  191. package/src/utils/nullthrows.ts +7 -0
  192. package/src/utils/regexParser.ts +56 -0
  193. package/android/generated/jni/react/renderer/components/RNEnrichedTextInputViewSpec/EventEmitters.cpp +0 -128
  194. package/android/generated/jni/react/renderer/components/RNEnrichedTextInputViewSpec/EventEmitters.h +0 -102
  195. package/android/src/main/java/com/swmansion/enriched/events/OnChangeHtmlEvent.kt +0 -28
  196. package/android/src/main/java/com/swmansion/enriched/events/OnChangeStateEvent.kt +0 -24
  197. package/android/src/main/java/com/swmansion/enriched/events/OnChangeTextEvent.kt +0 -30
  198. package/android/src/main/java/com/swmansion/enriched/events/OnInputBlurEvent.kt +0 -27
  199. package/android/src/main/java/com/swmansion/enriched/events/OnInputFocusEvent.kt +0 -27
  200. package/android/src/main/java/com/swmansion/enriched/events/OnLinkDetectedEvent.kt +0 -30
  201. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedBlockQuoteSpan.kt +0 -44
  202. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedBoldSpan.kt +0 -16
  203. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH1Span.kt +0 -23
  204. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH2Span.kt +0 -23
  205. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedH3Span.kt +0 -23
  206. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedInlineCodeSpan.kt +0 -27
  207. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedItalicSpan.kt +0 -15
  208. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedLinkSpan.kt +0 -30
  209. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedMentionSpan.kt +0 -42
  210. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedSpans.kt +0 -136
  211. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedStrikeThroughSpan.kt +0 -14
  212. package/android/src/main/java/com/swmansion/enriched/spans/EnrichedUnderlineSpan.kt +0 -14
  213. package/android/src/main/java/com/swmansion/enriched/spans/interfaces/EnrichedBlockSpan.kt +0 -4
  214. package/android/src/main/java/com/swmansion/enriched/spans/interfaces/EnrichedHeadingSpan.kt +0 -4
  215. package/android/src/main/java/com/swmansion/enriched/spans/interfaces/EnrichedInlineSpan.kt +0 -4
  216. package/android/src/main/java/com/swmansion/enriched/spans/interfaces/EnrichedParagraphSpan.kt +0 -4
  217. package/android/src/main/java/com/swmansion/enriched/spans/interfaces/EnrichedSpan.kt +0 -8
  218. package/android/src/main/java/com/swmansion/enriched/styles/ListStyles.kt +0 -172
  219. package/android/src/main/java/com/swmansion/enriched/utils/EnrichedSpanState.kt +0 -204
  220. package/android/src/main/new_arch/RNEnrichedTextInputViewSpec.cpp +0 -22
  221. package/android/src/main/new_arch/RNEnrichedTextInputViewSpec.h +0 -26
  222. package/android/src/main/new_arch/react/renderer/components/RNEnrichedTextInputViewSpec/conversions.h +0 -26
  223. package/ios/attachments/ImageAttachment.mm +0 -34
  224. package/ios/generated/RNEnrichedTextInputViewSpec/EventEmitters.cpp +0 -128
  225. package/ios/generated/RNEnrichedTextInputViewSpec/EventEmitters.h +0 -102
  226. package/lib/module/normalizeHtmlStyle.js.map +0 -1
  227. package/lib/typescript/src/EnrichedTextInputNativeComponent.d.ts.map +0 -1
  228. package/lib/typescript/src/normalizeHtmlStyle.d.ts +0 -4
  229. package/lib/typescript/src/normalizeHtmlStyle.d.ts.map +0 -1
  230. /package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ShadowNodes.cpp +0 -0
  231. /package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ShadowNodes.h +0 -0
  232. /package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/States.cpp +0 -0
  233. /package/android/generated/jni/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/States.h +0 -0
  234. /package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputComponentDescriptor.h +0 -0
  235. /package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputMeasurementManager.cpp +0 -0
  236. /package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputShadowNode.cpp +0 -0
  237. /package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputState.cpp +0 -0
  238. /package/android/src/main/new_arch/react/renderer/components/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/EnrichedTextInputState.h +0 -0
  239. /package/ios/{utils → extensions}/ColorExtension.h +0 -0
  240. /package/ios/{utils → extensions}/ColorExtension.mm +0 -0
  241. /package/ios/{utils → extensions}/FontExtension.h +0 -0
  242. /package/ios/{utils → extensions}/FontExtension.mm +0 -0
  243. /package/ios/{utils → extensions}/LayoutManagerExtension.h +0 -0
  244. /package/ios/{utils → extensions}/StringExtension.h +0 -0
  245. /package/ios/{utils → extensions}/StringExtension.mm +0 -0
  246. /package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ShadowNodes.cpp +0 -0
  247. /package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/ShadowNodes.h +0 -0
  248. /package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/States.cpp +0 -0
  249. /package/ios/generated/{RNEnrichedTextInputViewSpec → ReactNativeEnrichedSpec}/States.h +0 -0
  250. /package/ios/{utils → interfaces}/BaseStyleProtocol.h +0 -0
  251. /package/ios/{utils → interfaces}/ImageData.h +0 -0
  252. /package/ios/{utils → interfaces}/ImageData.mm +0 -0
  253. /package/ios/{utils → interfaces}/LinkData.h +0 -0
  254. /package/ios/{utils → interfaces}/LinkData.mm +0 -0
  255. /package/ios/{attachments → interfaces}/MediaAttachment.h +0 -0
  256. /package/ios/{attachments → interfaces}/MediaAttachment.mm +0 -0
  257. /package/ios/{utils → interfaces}/MentionParams.h +0 -0
  258. /package/ios/{utils → interfaces}/MentionParams.mm +0 -0
  259. /package/ios/{utils → interfaces}/MentionStyleProps.h +0 -0
  260. /package/ios/{utils → interfaces}/StylePair.h +0 -0
  261. /package/ios/{utils → interfaces}/StylePair.mm +0 -0
  262. /package/ios/{utils → interfaces}/TextDecorationLineEnum.h +0 -0
  263. /package/ios/{utils → interfaces}/TextDecorationLineEnum.mm +0 -0
@@ -0,0 +1,35 @@
1
+ package com.swmansion.enriched.common.spans
2
+
3
+ import android.text.TextPaint
4
+ import android.text.style.ClickableSpan
5
+ import android.view.View
6
+ import com.swmansion.enriched.common.EnrichedStyle
7
+ import com.swmansion.enriched.common.spans.interfaces.EnrichedInlineSpan
8
+
9
+ open class EnrichedMentionSpan(
10
+ private val text: String,
11
+ private val indicator: String,
12
+ private val attributes: Map<String, String>,
13
+ private val enrichedStyle: EnrichedStyle,
14
+ ) : ClickableSpan(),
15
+ EnrichedInlineSpan {
16
+ override fun onClick(view: View) {
17
+ // Do nothing. Mentions inside the input are not clickable.
18
+ // We are using `ClickableSpan` to allow the text to be styled as a clickable element.
19
+ }
20
+
21
+ override fun updateDrawState(textPaint: TextPaint) {
22
+ super.updateDrawState(textPaint)
23
+
24
+ val mentionsStyle = enrichedStyle.mentionsStyle[indicator] ?: return
25
+ textPaint.color = mentionsStyle.color
26
+ textPaint.bgColor = mentionsStyle.backgroundColor
27
+ textPaint.isUnderlineText = mentionsStyle.underline
28
+ }
29
+
30
+ fun getAttributes(): Map<String, String> = attributes
31
+
32
+ fun getText(): String = text
33
+
34
+ fun getIndicator(): String = indicator
35
+ }
@@ -1,18 +1,22 @@
1
- package com.swmansion.enriched.spans
1
+ package com.swmansion.enriched.common.spans
2
2
 
3
3
  import android.graphics.Canvas
4
4
  import android.graphics.Paint
5
5
  import android.graphics.Typeface
6
+ import android.os.Build
6
7
  import android.text.Layout
7
8
  import android.text.TextPaint
8
9
  import android.text.style.LeadingMarginSpan
9
10
  import android.text.style.MetricAffectingSpan
10
- import com.swmansion.enriched.spans.interfaces.EnrichedParagraphSpan
11
- import com.swmansion.enriched.styles.HtmlStyle
12
-
13
- class EnrichedOrderedListSpan(private var index: Int, private val htmlStyle: HtmlStyle) : MetricAffectingSpan(), LeadingMarginSpan, EnrichedParagraphSpan {
14
- override val dependsOnHtmlStyle: Boolean = true
11
+ import com.swmansion.enriched.common.EnrichedStyle
12
+ import com.swmansion.enriched.common.spans.interfaces.EnrichedParagraphSpan
15
13
 
14
+ open class EnrichedOrderedListSpan(
15
+ var index: Int,
16
+ private val enrichedStyle: EnrichedStyle,
17
+ ) : MetricAffectingSpan(),
18
+ LeadingMarginSpan,
19
+ EnrichedParagraphSpan {
16
20
  override fun updateMeasureState(p0: TextPaint) {
17
21
  // Do nothing, but inform layout that this span affects text metrics
18
22
  }
@@ -21,9 +25,7 @@ class EnrichedOrderedListSpan(private var index: Int, private val htmlStyle: Htm
21
25
  // Do nothing, but inform layout that this span affects text metrics
22
26
  }
23
27
 
24
- override fun getLeadingMargin(first: Boolean): Int {
25
- return htmlStyle.olMarginLeft + htmlStyle.olGapWidth
26
- }
28
+ override fun getLeadingMargin(first: Boolean): Int = enrichedStyle.olMarginLeft + enrichedStyle.olGapWidth
27
29
 
28
30
  override fun drawLeadingMargin(
29
31
  canvas: Canvas,
@@ -37,20 +39,20 @@ class EnrichedOrderedListSpan(private var index: Int, private val htmlStyle: Htm
37
39
  start: Int,
38
40
  end: Int,
39
41
  first: Boolean,
40
- layout: Layout?
42
+ layout: Layout?,
41
43
  ) {
42
44
  if (first) {
43
45
  val text = "$index."
44
46
  val width = paint.measureText(text)
45
47
 
46
48
  val yPosition = baseline.toFloat()
47
- val xPosition = (htmlStyle.olMarginLeft + x - width / 2) * dir
49
+ val xPosition = (enrichedStyle.olMarginLeft + x - width / 2) * dir
48
50
 
49
51
  val originalColor = paint.color
50
52
  val originalTypeface = paint.typeface
51
53
 
52
- paint.color = htmlStyle.olMarkerColor ?: originalColor
53
- paint.typeface = getTypeface(htmlStyle.olMarkerFontWeight, originalTypeface)
54
+ paint.color = enrichedStyle.olMarkerColor ?: originalColor
55
+ paint.typeface = getTypeface(enrichedStyle.olMarkerFontWeight, originalTypeface)
54
56
  canvas.drawText(text, xPosition, yPosition, paint)
55
57
 
56
58
  paint.color = originalColor
@@ -58,10 +60,13 @@ class EnrichedOrderedListSpan(private var index: Int, private val htmlStyle: Htm
58
60
  }
59
61
  }
60
62
 
61
- private fun getTypeface(fontWeight: Int?, originalTypeface: Typeface): Typeface {
62
- return if (fontWeight == null) {
63
+ private fun getTypeface(
64
+ fontWeight: Int?,
65
+ originalTypeface: Typeface,
66
+ ): Typeface =
67
+ if (fontWeight == null) {
63
68
  originalTypeface
64
- } else if (android.os.Build.VERSION.SDK_INT >= 28) {
69
+ } else if (Build.VERSION.SDK_INT >= 28) {
65
70
  Typeface.create(originalTypeface, fontWeight, false)
66
71
  } else {
67
72
  // Fallback for API < 28: only bold/normal supported
@@ -71,17 +76,4 @@ class EnrichedOrderedListSpan(private var index: Int, private val htmlStyle: Htm
71
76
  Typeface.create(originalTypeface, Typeface.NORMAL)
72
77
  }
73
78
  }
74
- }
75
-
76
- fun getIndex(): Int {
77
- return index
78
- }
79
-
80
- fun setIndex(i: Int) {
81
- index = i
82
- }
83
-
84
- override fun rebuildWithStyle(htmlStyle: HtmlStyle): EnrichedOrderedListSpan {
85
- return EnrichedOrderedListSpan(index, htmlStyle)
86
- }
87
79
  }
@@ -0,0 +1,11 @@
1
+ package com.swmansion.enriched.common.spans
2
+
3
+ import android.text.style.StrikethroughSpan
4
+ import com.swmansion.enriched.common.EnrichedStyle
5
+ import com.swmansion.enriched.common.spans.interfaces.EnrichedInlineSpan
6
+
7
+ @Suppress("UNUSED_PARAMETER")
8
+ open class EnrichedStrikeThroughSpan(
9
+ private val enrichedStyle: EnrichedStyle,
10
+ ) : StrikethroughSpan(),
11
+ EnrichedInlineSpan
@@ -0,0 +1,11 @@
1
+ package com.swmansion.enriched.common.spans
2
+
3
+ import android.text.style.UnderlineSpan
4
+ import com.swmansion.enriched.common.EnrichedStyle
5
+ import com.swmansion.enriched.common.spans.interfaces.EnrichedInlineSpan
6
+
7
+ @Suppress("UNUSED_PARAMETER")
8
+ open class EnrichedUnderlineSpan(
9
+ private val enrichedStyle: EnrichedStyle,
10
+ ) : UnderlineSpan(),
11
+ EnrichedInlineSpan
@@ -1,4 +1,4 @@
1
- package com.swmansion.enriched.spans
1
+ package com.swmansion.enriched.common.spans
2
2
 
3
3
  import android.graphics.Canvas
4
4
  import android.graphics.Paint
@@ -7,13 +7,15 @@ import android.text.Spanned
7
7
  import android.text.TextPaint
8
8
  import android.text.style.LeadingMarginSpan
9
9
  import android.text.style.MetricAffectingSpan
10
- import com.swmansion.enriched.spans.interfaces.EnrichedParagraphSpan
11
- import com.swmansion.enriched.styles.HtmlStyle
10
+ import com.swmansion.enriched.common.EnrichedStyle
11
+ import com.swmansion.enriched.common.spans.interfaces.EnrichedParagraphSpan
12
12
 
13
13
  // https://android.googlesource.com/platform/frameworks/base/+/refs/heads/main/core/java/android/text/style/BulletSpan.java
14
- class EnrichedUnorderedListSpan(private val htmlStyle: HtmlStyle) : MetricAffectingSpan(), LeadingMarginSpan, EnrichedParagraphSpan {
15
- override val dependsOnHtmlStyle: Boolean = true
16
-
14
+ open class EnrichedUnorderedListSpan(
15
+ private val enrichedStyle: EnrichedStyle,
16
+ ) : MetricAffectingSpan(),
17
+ LeadingMarginSpan,
18
+ EnrichedParagraphSpan {
17
19
  override fun updateMeasureState(p0: TextPaint) {
18
20
  // Do nothing, but inform layout that this span affects text metrics
19
21
  }
@@ -22,9 +24,7 @@ class EnrichedUnorderedListSpan(private val htmlStyle: HtmlStyle) : MetricAffect
22
24
  // Do nothing, but inform layout that this span affects text metrics
23
25
  }
24
26
 
25
- override fun getLeadingMargin(p0: Boolean): Int {
26
- return htmlStyle.ulBulletSize + htmlStyle.ulGapWidth + htmlStyle.ulMarginLeft
27
- }
27
+ override fun getLeadingMargin(p0: Boolean): Int = enrichedStyle.ulBulletSize + enrichedStyle.ulGapWidth + enrichedStyle.ulMarginLeft
28
28
 
29
29
  override fun drawLeadingMargin(
30
30
  canvas: Canvas,
@@ -38,19 +38,19 @@ class EnrichedUnorderedListSpan(private val htmlStyle: HtmlStyle) : MetricAffect
38
38
  start: Int,
39
39
  end: Int,
40
40
  first: Boolean,
41
- layout: Layout?
41
+ layout: Layout?,
42
42
  ) {
43
43
  val spannedText = text as Spanned
44
44
 
45
45
  if (spannedText.getSpanStart(this) == start) {
46
46
  val style = paint.style
47
47
  val oldColor = paint.color
48
- paint.color = htmlStyle.ulBulletColor
48
+ paint.color = enrichedStyle.ulBulletColor
49
49
  paint.style = Paint.Style.FILL
50
50
 
51
- val bulletRadius = htmlStyle.ulBulletSize / 2f
51
+ val bulletRadius = enrichedStyle.ulBulletSize / 2f
52
52
  val yPosition = (top + bottom) / 2f
53
- val xPosition = x + dir * bulletRadius + htmlStyle.ulMarginLeft
53
+ val xPosition = x + dir * bulletRadius + enrichedStyle.ulMarginLeft
54
54
 
55
55
  canvas.drawCircle(xPosition, yPosition, bulletRadius, paint)
56
56
 
@@ -58,8 +58,4 @@ class EnrichedUnorderedListSpan(private val htmlStyle: HtmlStyle) : MetricAffect
58
58
  paint.style = style
59
59
  }
60
60
  }
61
-
62
- override fun rebuildWithStyle(htmlStyle: HtmlStyle): EnrichedUnorderedListSpan {
63
- return EnrichedUnorderedListSpan(htmlStyle)
64
- }
65
61
  }
@@ -0,0 +1,5 @@
1
+ package com.swmansion.enriched.common.spans.interfaces
2
+
3
+ interface EnrichedBlockSpan :
4
+ EnrichedSpan,
5
+ EnrichedZeroWidthSpaceSpan
@@ -0,0 +1,3 @@
1
+ package com.swmansion.enriched.common.spans.interfaces
2
+
3
+ interface EnrichedHeadingSpan : EnrichedParagraphSpan
@@ -0,0 +1,3 @@
1
+ package com.swmansion.enriched.common.spans.interfaces
2
+
3
+ interface EnrichedInlineSpan : EnrichedSpan
@@ -0,0 +1,5 @@
1
+ package com.swmansion.enriched.common.spans.interfaces
2
+
3
+ interface EnrichedParagraphSpan :
4
+ EnrichedSpan,
5
+ EnrichedZeroWidthSpaceSpan
@@ -0,0 +1,3 @@
1
+ package com.swmansion.enriched.common.spans.interfaces
2
+
3
+ interface EnrichedSpan
@@ -1,5 +1,4 @@
1
- package com.swmansion.enriched.spans.interfaces
1
+ package com.swmansion.enriched.common.spans.interfaces
2
2
 
3
3
  // Spans that are prefixed with zero-width space (\u200B) to ensure that they are visible even when empty.
4
- interface EnrichedZeroWidthSpaceSpan {
5
- }
4
+ interface EnrichedZeroWidthSpaceSpan
@@ -0,0 +1,140 @@
1
+ package com.swmansion.enriched.textinput
2
+
3
+ import android.view.KeyEvent
4
+ import android.view.inputmethod.InputConnection
5
+ import android.view.inputmethod.InputConnectionWrapper
6
+ import com.facebook.react.bridge.ReactContext
7
+ import com.facebook.react.uimanager.UIManagerHelper
8
+ import com.swmansion.enriched.textinput.events.OnInputKeyPressEvent
9
+
10
+ // This class is based on the implementation from Facebook React Native to provide 'onKeyPress' API on android.
11
+ // Original source:
12
+ // https://github.com/facebook/react-native/blob/v0.83.1/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditTextInputConnectionWrapper.kt
13
+ class EnrichedTextInputConnectionWrapper(
14
+ target: InputConnection,
15
+ private val reactContext: ReactContext,
16
+ private val editText: EnrichedTextInputView,
17
+ private val experimentalSynchronousEvents: Boolean,
18
+ ) : InputConnectionWrapper(target, false) {
19
+ private var isBatchEdit = false
20
+ private var key: String? = null
21
+
22
+ override fun beginBatchEdit(): Boolean {
23
+ isBatchEdit = true
24
+ return super.beginBatchEdit()
25
+ }
26
+
27
+ override fun endBatchEdit(): Boolean {
28
+ isBatchEdit = false
29
+ key?.let { k ->
30
+ dispatchKeyEvent(k)
31
+ key = null
32
+ }
33
+ return super.endBatchEdit()
34
+ }
35
+
36
+ override fun setComposingText(
37
+ text: CharSequence,
38
+ newCursorPosition: Int,
39
+ ): Boolean {
40
+ val previousSelectionStart = editText.selectionStart
41
+ val previousSelectionEnd = editText.selectionEnd
42
+
43
+ val consumed = super.setComposingText(text, newCursorPosition)
44
+
45
+ val currentSelectionStart = editText.selectionStart
46
+ val noPreviousSelection = previousSelectionStart == previousSelectionEnd
47
+ val cursorDidNotMove = currentSelectionStart == previousSelectionStart
48
+ val cursorMovedBackwardsOrAtBeginningOfInput =
49
+ currentSelectionStart < previousSelectionStart || currentSelectionStart <= 0
50
+
51
+ val inputKey =
52
+ if (
53
+ cursorMovedBackwardsOrAtBeginningOfInput || (!noPreviousSelection && cursorDidNotMove)
54
+ ) {
55
+ BACKSPACE_KEY_VALUE
56
+ } else {
57
+ editText.text?.get(currentSelectionStart - 1).toString()
58
+ }
59
+
60
+ dispatchKeyEventOrEnqueue(inputKey)
61
+ return consumed
62
+ }
63
+
64
+ override fun commitText(
65
+ text: CharSequence,
66
+ newCursorPosition: Int,
67
+ ): Boolean {
68
+ var inputKey = text.toString()
69
+ // Assume not a keyPress if length > 1 (or 2 if unicode)
70
+ if (inputKey.length <= 2) {
71
+ if (inputKey.isEmpty()) {
72
+ inputKey = BACKSPACE_KEY_VALUE
73
+ }
74
+ dispatchKeyEventOrEnqueue(inputKey)
75
+ }
76
+ return super.commitText(text, newCursorPosition)
77
+ }
78
+
79
+ override fun deleteSurroundingText(
80
+ beforeLength: Int,
81
+ afterLength: Int,
82
+ ): Boolean {
83
+ dispatchKeyEvent(BACKSPACE_KEY_VALUE)
84
+ return super.deleteSurroundingText(beforeLength, afterLength)
85
+ }
86
+
87
+ // Called by SwiftKey when cursor at beginning of input when there is a delete
88
+ // or when enter is pressed anywhere in the text. Whereas stock Android Keyboard calls
89
+ // [InputConnection.deleteSurroundingText] & [InputConnection.commitText]
90
+ // in each case, respectively.
91
+ override fun sendKeyEvent(event: KeyEvent): Boolean {
92
+ if (event.action == KeyEvent.ACTION_DOWN) {
93
+ val isNumberKey = event.unicodeChar in 48..57
94
+ when (event.keyCode) {
95
+ KeyEvent.KEYCODE_DEL -> {
96
+ dispatchKeyEvent(BACKSPACE_KEY_VALUE)
97
+ }
98
+
99
+ KeyEvent.KEYCODE_ENTER -> {
100
+ dispatchKeyEvent(ENTER_KEY_VALUE)
101
+ }
102
+
103
+ else -> {
104
+ if (isNumberKey) {
105
+ dispatchKeyEvent(event.number.toString())
106
+ }
107
+ }
108
+ }
109
+ }
110
+ return super.sendKeyEvent(event)
111
+ }
112
+
113
+ private fun dispatchKeyEventOrEnqueue(inputKey: String) {
114
+ if (isBatchEdit) {
115
+ key = inputKey
116
+ } else {
117
+ dispatchKeyEvent(inputKey)
118
+ }
119
+ }
120
+
121
+ private fun dispatchKeyEvent(inputKey: String) {
122
+ val resolvedKey = if (inputKey == NEWLINE_RAW_VALUE) ENTER_KEY_VALUE else inputKey
123
+ val surfaceId = UIManagerHelper.getSurfaceId(editText)
124
+ val eventDispatcher = UIManagerHelper.getEventDispatcherForReactTag(reactContext, editText.id)
125
+ eventDispatcher?.dispatchEvent(
126
+ OnInputKeyPressEvent(
127
+ surfaceId = surfaceId,
128
+ viewId = editText.id,
129
+ key = resolvedKey,
130
+ experimentalSynchronousEvents = experimentalSynchronousEvents,
131
+ ),
132
+ )
133
+ }
134
+
135
+ companion object {
136
+ const val NEWLINE_RAW_VALUE: String = "\n"
137
+ const val BACKSPACE_KEY_VALUE: String = "Backspace"
138
+ const val ENTER_KEY_VALUE: String = "Enter"
139
+ }
140
+ }
@@ -0,0 +1,83 @@
1
+ package com.swmansion.enriched.textinput
2
+
3
+ import com.swmansion.enriched.common.parser.EnrichedSpanFactory
4
+ import com.swmansion.enriched.common.spans.EnrichedCheckboxListSpan
5
+ import com.swmansion.enriched.common.spans.EnrichedImageSpan
6
+ import com.swmansion.enriched.textinput.spans.EnrichedInputBlockQuoteSpan
7
+ import com.swmansion.enriched.textinput.spans.EnrichedInputBoldSpan
8
+ import com.swmansion.enriched.textinput.spans.EnrichedInputCheckboxListSpan
9
+ import com.swmansion.enriched.textinput.spans.EnrichedInputCodeBlockSpan
10
+ import com.swmansion.enriched.textinput.spans.EnrichedInputH1Span
11
+ import com.swmansion.enriched.textinput.spans.EnrichedInputH2Span
12
+ import com.swmansion.enriched.textinput.spans.EnrichedInputH3Span
13
+ import com.swmansion.enriched.textinput.spans.EnrichedInputH4Span
14
+ import com.swmansion.enriched.textinput.spans.EnrichedInputH5Span
15
+ import com.swmansion.enriched.textinput.spans.EnrichedInputH6Span
16
+ import com.swmansion.enriched.textinput.spans.EnrichedInputImageSpan
17
+ import com.swmansion.enriched.textinput.spans.EnrichedInputInlineCodeSpan
18
+ import com.swmansion.enriched.textinput.spans.EnrichedInputItalicSpan
19
+ import com.swmansion.enriched.textinput.spans.EnrichedInputLinkSpan
20
+ import com.swmansion.enriched.textinput.spans.EnrichedInputMentionSpan
21
+ import com.swmansion.enriched.textinput.spans.EnrichedInputOrderedListSpan
22
+ import com.swmansion.enriched.textinput.spans.EnrichedInputStrikeThroughSpan
23
+ import com.swmansion.enriched.textinput.spans.EnrichedInputUnderlineSpan
24
+ import com.swmansion.enriched.textinput.spans.EnrichedInputUnorderedListSpan
25
+ import com.swmansion.enriched.textinput.styles.HtmlStyle
26
+
27
+ class EnrichedTextInputSpannableFactory : EnrichedSpanFactory<HtmlStyle> {
28
+ override fun createBoldSpan(style: HtmlStyle) = EnrichedInputBoldSpan(style)
29
+
30
+ override fun createItalicSpan(style: HtmlStyle) = EnrichedInputItalicSpan(style)
31
+
32
+ override fun createUnderlineSpan(style: HtmlStyle) = EnrichedInputUnderlineSpan(style)
33
+
34
+ override fun createStrikeThroughSpan(style: HtmlStyle) = EnrichedInputStrikeThroughSpan(style)
35
+
36
+ override fun createInlineCodeSpan(style: HtmlStyle) = EnrichedInputInlineCodeSpan(style)
37
+
38
+ override fun createLinkSpan(
39
+ url: String,
40
+ style: HtmlStyle,
41
+ ) = EnrichedInputLinkSpan(url, style)
42
+
43
+ override fun createMentionSpan(
44
+ text: String,
45
+ indicator: String,
46
+ attributes: Map<String, String>,
47
+ style: HtmlStyle,
48
+ ) = EnrichedInputMentionSpan(text, indicator, attributes, style)
49
+
50
+ override fun createImageSpan(
51
+ source: String,
52
+ width: Int,
53
+ height: Int,
54
+ ): EnrichedImageSpan = EnrichedInputImageSpan.createEnrichedImageSpan(source, width, height)
55
+
56
+ override fun createH1Span(style: HtmlStyle) = EnrichedInputH1Span(style)
57
+
58
+ override fun createH2Span(style: HtmlStyle) = EnrichedInputH2Span(style)
59
+
60
+ override fun createH3Span(style: HtmlStyle) = EnrichedInputH3Span(style)
61
+
62
+ override fun createH4Span(style: HtmlStyle) = EnrichedInputH4Span(style)
63
+
64
+ override fun createH5Span(style: HtmlStyle) = EnrichedInputH5Span(style)
65
+
66
+ override fun createH6Span(style: HtmlStyle) = EnrichedInputH6Span(style)
67
+
68
+ override fun createOrderedListSpan(
69
+ index: Int,
70
+ style: HtmlStyle,
71
+ ) = EnrichedInputOrderedListSpan(index, style)
72
+
73
+ override fun createUnorderedListSpan(style: HtmlStyle) = EnrichedInputUnorderedListSpan(style)
74
+
75
+ override fun createCheckboxListSpan(
76
+ isChecked: Boolean,
77
+ style: HtmlStyle,
78
+ ) = EnrichedInputCheckboxListSpan(isChecked, style)
79
+
80
+ override fun createBlockQuoteSpan(style: HtmlStyle) = EnrichedInputBlockQuoteSpan(style)
81
+
82
+ override fun createCodeBlockSpan(style: HtmlStyle) = EnrichedInputCodeBlockSpan(style)
83
+ }