carbon-react 148.0.0 → 149.0.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 (269) hide show
  1. package/esm/__internal__/label/label.component.js +4 -1
  2. package/esm/components/note/note.component.d.ts +1 -2
  3. package/esm/components/note/note.component.js +6 -9
  4. package/esm/components/tabs/__internal__/tab-title/tab-title.style.js +2 -1
  5. package/esm/components/text-editor/__internal__/constants.d.ts +21 -0
  6. package/esm/components/text-editor/__internal__/constants.js +29 -0
  7. package/esm/components/text-editor/__internal__/helpers.d.ts +20 -0
  8. package/esm/components/text-editor/__internal__/helpers.js +84 -0
  9. package/esm/components/text-editor/__internal__/index.d.ts +2 -0
  10. package/esm/components/text-editor/__internal__/index.js +2 -0
  11. package/esm/components/text-editor/__internal__/plugins/AutoLinker/auto-link.component.d.ts +3 -0
  12. package/esm/components/text-editor/__internal__/plugins/AutoLinker/auto-link.component.js +28 -0
  13. package/esm/components/text-editor/__internal__/plugins/AutoLinker/index.d.ts +1 -0
  14. package/esm/components/text-editor/__internal__/plugins/AutoLinker/index.js +1 -0
  15. package/esm/components/text-editor/__internal__/plugins/CharacterCounter/__test__/character-counter.component.d.ts +10 -0
  16. package/esm/components/text-editor/__internal__/plugins/CharacterCounter/__test__/character-counter.component.js +33 -0
  17. package/esm/components/text-editor/__internal__/plugins/CharacterCounter/character-counter.component.d.ts +9 -0
  18. package/esm/components/text-editor/__internal__/plugins/CharacterCounter/character-counter.component.js +59 -0
  19. package/esm/components/text-editor/__internal__/plugins/CharacterCounter/character-counter.style.d.ts +3 -0
  20. package/esm/components/text-editor/__internal__/plugins/CharacterCounter/character-counter.style.js +17 -0
  21. package/esm/components/text-editor/__internal__/plugins/CharacterCounter/index.d.ts +1 -0
  22. package/esm/components/text-editor/__internal__/plugins/CharacterCounter/index.js +1 -0
  23. package/esm/components/text-editor/__internal__/plugins/ContentEditor/content-editor.component.d.ts +17 -0
  24. package/esm/components/text-editor/__internal__/plugins/ContentEditor/content-editor.component.js +40 -0
  25. package/esm/components/text-editor/__internal__/plugins/ContentEditor/content-editor.style.d.ts +6 -0
  26. package/esm/components/text-editor/__internal__/plugins/ContentEditor/content-editor.style.js +34 -0
  27. package/esm/components/text-editor/__internal__/plugins/ContentEditor/index.d.ts +1 -0
  28. package/esm/components/text-editor/__internal__/plugins/ContentEditor/index.js +1 -0
  29. package/esm/components/text-editor/__internal__/plugins/LinkMonitor/index.d.ts +1 -0
  30. package/esm/components/text-editor/__internal__/plugins/LinkMonitor/index.js +1 -0
  31. package/esm/components/text-editor/__internal__/plugins/LinkMonitor/link-monitor.plugin.d.ts +2 -0
  32. package/esm/components/text-editor/__internal__/plugins/LinkMonitor/link-monitor.plugin.js +62 -0
  33. package/esm/components/text-editor/__internal__/plugins/LinkPreviewer/index.d.ts +1 -0
  34. package/esm/components/text-editor/__internal__/plugins/LinkPreviewer/index.js +1 -0
  35. package/esm/components/text-editor/__internal__/plugins/LinkPreviewer/link-previewer.component.d.ts +11 -0
  36. package/esm/components/text-editor/__internal__/plugins/LinkPreviewer/link-previewer.component.js +19 -0
  37. package/esm/components/text-editor/__internal__/plugins/LinkPreviewer/link-previewer.style.d.ts +6 -0
  38. package/esm/components/text-editor/__internal__/plugins/LinkPreviewer/link-previewer.style.js +29 -0
  39. package/esm/components/text-editor/__internal__/plugins/OnChange/index.d.ts +1 -0
  40. package/esm/components/text-editor/__internal__/plugins/OnChange/index.js +1 -0
  41. package/esm/components/text-editor/__internal__/plugins/OnChange/on-change.plugin.d.ts +5 -0
  42. package/esm/components/text-editor/__internal__/plugins/OnChange/on-change.plugin.js +25 -0
  43. package/esm/components/text-editor/__internal__/plugins/Placeholder/index.d.ts +1 -0
  44. package/esm/components/text-editor/__internal__/plugins/Placeholder/index.js +1 -0
  45. package/esm/components/text-editor/__internal__/plugins/Placeholder/placeholder.component.d.ts +14 -0
  46. package/esm/components/text-editor/__internal__/plugins/Placeholder/placeholder.component.js +17 -0
  47. package/esm/components/text-editor/__internal__/plugins/Placeholder/placeholder.style.d.ts +2 -0
  48. package/esm/components/text-editor/__internal__/plugins/Placeholder/placeholder.style.js +8 -0
  49. package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/bold.component.d.ts +4 -0
  50. package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/bold.component.js +41 -0
  51. package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/common.d.ts +6 -0
  52. package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/common.js +1 -0
  53. package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/index.d.ts +4 -0
  54. package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/index.js +4 -0
  55. package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/italic.component.d.ts +4 -0
  56. package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/italic.component.js +41 -0
  57. package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/list.component.d.ts +5 -0
  58. package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/list.component.js +317 -0
  59. package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/save.component.d.ts +34 -0
  60. package/esm/components/text-editor/__internal__/plugins/Toolbar/buttons/save.component.js +29 -0
  61. package/esm/components/text-editor/__internal__/plugins/Toolbar/index.d.ts +1 -0
  62. package/esm/components/text-editor/__internal__/plugins/Toolbar/toolbar.component.d.ts +12 -0
  63. package/esm/components/text-editor/__internal__/plugins/Toolbar/toolbar.component.js +111 -0
  64. package/esm/components/text-editor/__internal__/plugins/Toolbar/toolbar.style.d.ts +11 -0
  65. package/esm/components/text-editor/__internal__/plugins/Toolbar/toolbar.style.js +57 -0
  66. package/esm/components/text-editor/__internal__/plugins/index.d.ts +9 -0
  67. package/esm/components/text-editor/__internal__/plugins/index.js +9 -0
  68. package/esm/components/text-editor/__internal__/plugins/useCursorAtEnd/index.d.ts +2 -0
  69. package/esm/components/text-editor/__internal__/plugins/useCursorAtEnd/index.js +71 -0
  70. package/esm/components/text-editor/__internal__/read-only-rte.component.d.ts +4 -0
  71. package/esm/components/text-editor/__internal__/read-only-rte.component.js +62 -0
  72. package/esm/components/text-editor/__internal__/style.css +7 -0
  73. package/esm/components/text-editor/__internal__/utils.d.ts +4 -0
  74. package/esm/components/text-editor/__internal__/utils.js +14 -0
  75. package/esm/components/text-editor/index.d.ts +2 -1
  76. package/esm/components/text-editor/index.js +2 -1
  77. package/esm/components/text-editor/text-editor.component.d.ts +32 -28
  78. package/esm/components/text-editor/text-editor.component.js +139 -478
  79. package/esm/components/text-editor/text-editor.context.d.ts +6 -0
  80. package/esm/components/text-editor/text-editor.context.js +4 -0
  81. package/esm/components/text-editor/text-editor.style.d.ts +18 -11
  82. package/esm/components/text-editor/text-editor.style.js +55 -52
  83. package/esm/locales/de-de.js +0 -14
  84. package/esm/locales/en-gb.js +18 -14
  85. package/esm/locales/es-es.js +0 -14
  86. package/esm/locales/fr-ca.js +0 -14
  87. package/esm/locales/fr-fr.js +0 -14
  88. package/esm/locales/locale.d.ts +14 -14
  89. package/lib/__internal__/label/label.component.js +3 -0
  90. package/lib/components/note/note.component.d.ts +1 -2
  91. package/lib/components/note/note.component.js +6 -9
  92. package/lib/components/tabs/__internal__/tab-title/tab-title.style.js +2 -1
  93. package/lib/components/text-editor/__internal__/constants.d.ts +21 -0
  94. package/lib/components/text-editor/__internal__/constants.js +33 -0
  95. package/lib/components/text-editor/__internal__/helpers.d.ts +20 -0
  96. package/lib/components/text-editor/__internal__/helpers.js +91 -0
  97. package/lib/components/text-editor/__internal__/index.d.ts +2 -0
  98. package/lib/components/text-editor/__internal__/index.js +26 -0
  99. package/lib/components/text-editor/__internal__/package.json +6 -0
  100. package/lib/components/text-editor/__internal__/plugins/AutoLinker/auto-link.component.d.ts +3 -0
  101. package/lib/components/text-editor/__internal__/plugins/AutoLinker/auto-link.component.js +36 -0
  102. package/lib/components/text-editor/__internal__/plugins/AutoLinker/index.d.ts +1 -0
  103. package/lib/components/text-editor/__internal__/{editor-link → plugins/AutoLinker}/index.js +2 -2
  104. package/lib/components/text-editor/__internal__/{toolbar/toolbar-button → plugins/AutoLinker}/package.json +1 -1
  105. package/lib/components/text-editor/__internal__/plugins/CharacterCounter/__test__/character-counter.component.d.ts +10 -0
  106. package/lib/components/text-editor/__internal__/plugins/CharacterCounter/__test__/character-counter.component.js +42 -0
  107. package/lib/components/text-editor/__internal__/plugins/CharacterCounter/character-counter.component.d.ts +9 -0
  108. package/lib/components/text-editor/__internal__/plugins/CharacterCounter/character-counter.component.js +68 -0
  109. package/lib/components/text-editor/__internal__/plugins/CharacterCounter/character-counter.style.d.ts +3 -0
  110. package/lib/components/text-editor/__internal__/plugins/CharacterCounter/character-counter.style.js +24 -0
  111. package/lib/components/text-editor/__internal__/plugins/CharacterCounter/index.d.ts +1 -0
  112. package/lib/components/text-editor/__internal__/plugins/CharacterCounter/index.js +13 -0
  113. package/lib/components/text-editor/__internal__/plugins/CharacterCounter/package.json +6 -0
  114. package/lib/components/text-editor/__internal__/plugins/ContentEditor/content-editor.component.d.ts +17 -0
  115. package/lib/components/text-editor/__internal__/plugins/ContentEditor/content-editor.component.js +48 -0
  116. package/lib/components/text-editor/__internal__/plugins/ContentEditor/content-editor.style.d.ts +6 -0
  117. package/lib/components/text-editor/__internal__/plugins/ContentEditor/content-editor.style.js +42 -0
  118. package/lib/components/text-editor/__internal__/plugins/ContentEditor/index.d.ts +1 -0
  119. package/lib/components/text-editor/__internal__/{toolbar/toolbar-button → plugins/ContentEditor}/index.js +2 -2
  120. package/lib/components/text-editor/__internal__/plugins/ContentEditor/package.json +6 -0
  121. package/lib/components/text-editor/__internal__/plugins/LinkMonitor/index.d.ts +1 -0
  122. package/lib/components/text-editor/__internal__/{label-wrapper → plugins/LinkMonitor}/index.js +2 -2
  123. package/lib/components/text-editor/__internal__/plugins/LinkMonitor/link-monitor.plugin.d.ts +2 -0
  124. package/lib/components/text-editor/__internal__/plugins/LinkMonitor/link-monitor.plugin.js +70 -0
  125. package/lib/components/text-editor/__internal__/plugins/LinkMonitor/package.json +6 -0
  126. package/lib/components/text-editor/__internal__/plugins/LinkPreviewer/index.d.ts +1 -0
  127. package/lib/components/text-editor/__internal__/plugins/LinkPreviewer/index.js +13 -0
  128. package/lib/components/text-editor/__internal__/plugins/LinkPreviewer/link-previewer.component.d.ts +11 -0
  129. package/lib/components/text-editor/__internal__/plugins/LinkPreviewer/link-previewer.component.js +28 -0
  130. package/lib/components/text-editor/__internal__/plugins/LinkPreviewer/link-previewer.style.d.ts +6 -0
  131. package/lib/components/text-editor/__internal__/{toolbar/toolbar-button/toolbar-button.style.js → plugins/LinkPreviewer/link-previewer.style.js} +21 -31
  132. package/lib/components/text-editor/__internal__/plugins/LinkPreviewer/package.json +6 -0
  133. package/lib/components/text-editor/__internal__/plugins/OnChange/index.d.ts +1 -0
  134. package/lib/components/text-editor/__internal__/plugins/OnChange/index.js +13 -0
  135. package/lib/components/text-editor/__internal__/plugins/OnChange/on-change.plugin.d.ts +5 -0
  136. package/lib/components/text-editor/__internal__/plugins/OnChange/on-change.plugin.js +32 -0
  137. package/lib/components/text-editor/__internal__/plugins/OnChange/package.json +6 -0
  138. package/lib/components/text-editor/__internal__/plugins/Placeholder/index.d.ts +1 -0
  139. package/lib/components/text-editor/__internal__/plugins/Placeholder/index.js +13 -0
  140. package/lib/components/text-editor/__internal__/plugins/Placeholder/package.json +6 -0
  141. package/lib/components/text-editor/__internal__/plugins/Placeholder/placeholder.component.d.ts +14 -0
  142. package/lib/components/text-editor/__internal__/plugins/Placeholder/placeholder.component.js +25 -0
  143. package/lib/components/text-editor/__internal__/plugins/Placeholder/placeholder.style.d.ts +2 -0
  144. package/lib/components/text-editor/__internal__/plugins/Placeholder/placeholder.style.js +15 -0
  145. package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/bold.component.d.ts +4 -0
  146. package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/bold.component.js +48 -0
  147. package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/common.d.ts +6 -0
  148. package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/common.js +5 -0
  149. package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/index.d.ts +4 -0
  150. package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/index.js +34 -0
  151. package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/italic.component.d.ts +4 -0
  152. package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/italic.component.js +47 -0
  153. package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/list.component.d.ts +5 -0
  154. package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/list.component.js +325 -0
  155. package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/package.json +6 -0
  156. package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/save.component.d.ts +34 -0
  157. package/lib/components/text-editor/__internal__/plugins/Toolbar/buttons/save.component.js +36 -0
  158. package/lib/components/text-editor/__internal__/plugins/Toolbar/index.d.ts +1 -0
  159. package/lib/components/text-editor/__internal__/plugins/Toolbar/package.json +6 -0
  160. package/lib/components/text-editor/__internal__/plugins/Toolbar/toolbar.component.d.ts +12 -0
  161. package/lib/components/text-editor/__internal__/plugins/Toolbar/toolbar.component.js +120 -0
  162. package/lib/components/text-editor/__internal__/plugins/Toolbar/toolbar.style.d.ts +11 -0
  163. package/lib/components/text-editor/__internal__/plugins/Toolbar/toolbar.style.js +65 -0
  164. package/lib/components/text-editor/__internal__/plugins/index.d.ts +9 -0
  165. package/lib/components/text-editor/__internal__/plugins/index.js +69 -0
  166. package/lib/components/text-editor/__internal__/{toolbar → plugins}/package.json +1 -1
  167. package/lib/components/text-editor/__internal__/plugins/useCursorAtEnd/index.d.ts +2 -0
  168. package/lib/components/text-editor/__internal__/plugins/useCursorAtEnd/index.js +78 -0
  169. package/lib/components/text-editor/__internal__/plugins/useCursorAtEnd/package.json +6 -0
  170. package/lib/components/text-editor/__internal__/read-only-rte.component.d.ts +4 -0
  171. package/lib/components/text-editor/__internal__/read-only-rte.component.js +72 -0
  172. package/lib/components/text-editor/__internal__/style.css +7 -0
  173. package/lib/components/text-editor/__internal__/utils.d.ts +4 -0
  174. package/lib/components/text-editor/__internal__/utils.js +21 -0
  175. package/lib/components/text-editor/index.d.ts +2 -1
  176. package/lib/components/text-editor/index.js +7 -7
  177. package/lib/components/text-editor/text-editor.component.d.ts +32 -28
  178. package/lib/components/text-editor/text-editor.component.js +141 -477
  179. package/lib/components/text-editor/text-editor.context.d.ts +6 -0
  180. package/lib/components/text-editor/{__internal__/editor.context.js → text-editor.context.js} +1 -0
  181. package/lib/components/text-editor/text-editor.style.d.ts +18 -11
  182. package/lib/components/text-editor/text-editor.style.js +57 -53
  183. package/lib/locales/de-de.js +0 -14
  184. package/lib/locales/en-gb.js +18 -14
  185. package/lib/locales/es-es.js +0 -14
  186. package/lib/locales/fr-ca.js +0 -14
  187. package/lib/locales/fr-fr.js +0 -14
  188. package/lib/locales/locale.d.ts +14 -14
  189. package/package.json +7 -4
  190. package/esm/components/text-editor/__internal__/decorators/index.d.ts +0 -3
  191. package/esm/components/text-editor/__internal__/decorators/index.js +0 -3
  192. package/esm/components/text-editor/__internal__/decorators/link-decorator.d.ts +0 -8
  193. package/esm/components/text-editor/__internal__/decorators/link-decorator.js +0 -37
  194. package/esm/components/text-editor/__internal__/editor-link/editor-link.component.d.ts +0 -9
  195. package/esm/components/text-editor/__internal__/editor-link/editor-link.component.js +0 -36
  196. package/esm/components/text-editor/__internal__/editor-link/editor-link.style.d.ts +0 -3
  197. package/esm/components/text-editor/__internal__/editor-link/editor-link.style.js +0 -13
  198. package/esm/components/text-editor/__internal__/editor-link/index.d.ts +0 -2
  199. package/esm/components/text-editor/__internal__/editor-link/index.js +0 -1
  200. package/esm/components/text-editor/__internal__/editor-validation-wrapper/editor-validation-wrapper.component.d.ts +0 -11
  201. package/esm/components/text-editor/__internal__/editor-validation-wrapper/editor-validation-wrapper.component.js +0 -18
  202. package/esm/components/text-editor/__internal__/editor-validation-wrapper/editor-validation-wrapper.style.d.ts +0 -2
  203. package/esm/components/text-editor/__internal__/editor-validation-wrapper/editor-validation-wrapper.style.js +0 -11
  204. package/esm/components/text-editor/__internal__/editor-validation-wrapper/index.d.ts +0 -2
  205. package/esm/components/text-editor/__internal__/editor-validation-wrapper/index.js +0 -1
  206. package/esm/components/text-editor/__internal__/editor.context.d.ts +0 -6
  207. package/esm/components/text-editor/__internal__/editor.context.js +0 -2
  208. package/esm/components/text-editor/__internal__/label-wrapper/index.d.ts +0 -2
  209. package/esm/components/text-editor/__internal__/label-wrapper/index.js +0 -1
  210. package/esm/components/text-editor/__internal__/label-wrapper/label-wrapper.component.d.ts +0 -12
  211. package/esm/components/text-editor/__internal__/label-wrapper/label-wrapper.component.js +0 -18
  212. package/esm/components/text-editor/__internal__/toolbar/index.d.ts +0 -2
  213. package/esm/components/text-editor/__internal__/toolbar/toolbar-button/index.d.ts +0 -2
  214. package/esm/components/text-editor/__internal__/toolbar/toolbar-button/index.js +0 -1
  215. package/esm/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.component.d.ts +0 -25
  216. package/esm/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.component.js +0 -50
  217. package/esm/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.style.d.ts +0 -6
  218. package/esm/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.style.js +0 -38
  219. package/esm/components/text-editor/__internal__/toolbar/toolbar.component.d.ts +0 -16
  220. package/esm/components/text-editor/__internal__/toolbar/toolbar.component.js +0 -158
  221. package/esm/components/text-editor/__internal__/toolbar/toolbar.style.d.ts +0 -4
  222. package/esm/components/text-editor/__internal__/toolbar/toolbar.style.js +0 -28
  223. package/esm/components/text-editor/__internal__/utils/index.d.ts +0 -1
  224. package/esm/components/text-editor/__internal__/utils/index.js +0 -1
  225. package/esm/components/text-editor/__internal__/utils/utils.d.ts +0 -29
  226. package/esm/components/text-editor/__internal__/utils/utils.js +0 -174
  227. package/esm/components/text-editor/types.d.ts +0 -6
  228. package/esm/components/text-editor/types.js +0 -4
  229. package/lib/components/text-editor/__internal__/decorators/index.d.ts +0 -3
  230. package/lib/components/text-editor/__internal__/decorators/index.js +0 -10
  231. package/lib/components/text-editor/__internal__/decorators/link-decorator.d.ts +0 -8
  232. package/lib/components/text-editor/__internal__/decorators/link-decorator.js +0 -44
  233. package/lib/components/text-editor/__internal__/decorators/package.json +0 -6
  234. package/lib/components/text-editor/__internal__/editor-link/editor-link.component.d.ts +0 -9
  235. package/lib/components/text-editor/__internal__/editor-link/editor-link.component.js +0 -45
  236. package/lib/components/text-editor/__internal__/editor-link/editor-link.style.d.ts +0 -3
  237. package/lib/components/text-editor/__internal__/editor-link/editor-link.style.js +0 -20
  238. package/lib/components/text-editor/__internal__/editor-link/index.d.ts +0 -2
  239. package/lib/components/text-editor/__internal__/editor-link/package.json +0 -6
  240. package/lib/components/text-editor/__internal__/editor-validation-wrapper/editor-validation-wrapper.component.d.ts +0 -11
  241. package/lib/components/text-editor/__internal__/editor-validation-wrapper/editor-validation-wrapper.component.js +0 -25
  242. package/lib/components/text-editor/__internal__/editor-validation-wrapper/editor-validation-wrapper.style.d.ts +0 -2
  243. package/lib/components/text-editor/__internal__/editor-validation-wrapper/editor-validation-wrapper.style.js +0 -18
  244. package/lib/components/text-editor/__internal__/editor-validation-wrapper/index.d.ts +0 -2
  245. package/lib/components/text-editor/__internal__/editor-validation-wrapper/index.js +0 -13
  246. package/lib/components/text-editor/__internal__/editor-validation-wrapper/package.json +0 -6
  247. package/lib/components/text-editor/__internal__/editor.context.d.ts +0 -6
  248. package/lib/components/text-editor/__internal__/label-wrapper/index.d.ts +0 -2
  249. package/lib/components/text-editor/__internal__/label-wrapper/label-wrapper.component.d.ts +0 -12
  250. package/lib/components/text-editor/__internal__/label-wrapper/label-wrapper.component.js +0 -25
  251. package/lib/components/text-editor/__internal__/label-wrapper/package.json +0 -6
  252. package/lib/components/text-editor/__internal__/toolbar/index.d.ts +0 -2
  253. package/lib/components/text-editor/__internal__/toolbar/toolbar-button/index.d.ts +0 -2
  254. package/lib/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.component.d.ts +0 -25
  255. package/lib/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.component.js +0 -56
  256. package/lib/components/text-editor/__internal__/toolbar/toolbar-button/toolbar-button.style.d.ts +0 -6
  257. package/lib/components/text-editor/__internal__/toolbar/toolbar.component.d.ts +0 -16
  258. package/lib/components/text-editor/__internal__/toolbar/toolbar.component.js +0 -167
  259. package/lib/components/text-editor/__internal__/toolbar/toolbar.style.d.ts +0 -4
  260. package/lib/components/text-editor/__internal__/toolbar/toolbar.style.js +0 -34
  261. package/lib/components/text-editor/__internal__/utils/index.d.ts +0 -1
  262. package/lib/components/text-editor/__internal__/utils/index.js +0 -90
  263. package/lib/components/text-editor/__internal__/utils/package.json +0 -6
  264. package/lib/components/text-editor/__internal__/utils/utils.d.ts +0 -29
  265. package/lib/components/text-editor/__internal__/utils/utils.js +0 -197
  266. package/lib/components/text-editor/types.d.ts +0 -6
  267. package/lib/components/text-editor/types.js +0 -10
  268. /package/esm/components/text-editor/__internal__/{toolbar → plugins/Toolbar}/index.js +0 -0
  269. /package/lib/components/text-editor/__internal__/{toolbar → plugins/Toolbar}/index.js +0 -0
@@ -0,0 +1,34 @@
1
+ import React from "react";
2
+ interface SaveObjectProps {
3
+ detail: number;
4
+ format: number;
5
+ mode: string;
6
+ style: string;
7
+ text: string;
8
+ type: string;
9
+ version: number;
10
+ }
11
+ interface SaveProps {
12
+ children: SaveObjectProps[];
13
+ }
14
+ export interface SaveCallbackProps {
15
+ htmlString?: string;
16
+ json?: {
17
+ root: {
18
+ children: SaveProps[];
19
+ direction: string;
20
+ format: string;
21
+ indent: number;
22
+ type: string;
23
+ version: string;
24
+ };
25
+ };
26
+ }
27
+ interface SaveButtonProps {
28
+ /** The namespace of the editor that this button belongs to */
29
+ namespace: string;
30
+ /** The callback to call when the save button is clicked */
31
+ onSave: (value: SaveCallbackProps) => void;
32
+ }
33
+ declare const SaveButton: ({ namespace, onSave }: SaveButtonProps) => React.JSX.Element;
34
+ export default SaveButton;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _helpers = require("../../../helpers");
11
+ var _button = _interopRequireDefault(require("../../../../../button"));
12
+ var _useLocale = _interopRequireDefault(require("../../../../../../hooks/__internal__/useLocale"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ // The `SaveButton` component is a button that saves the current state of the editor
15
+ const SaveButton = ({
16
+ namespace,
17
+ onSave
18
+ }) => {
19
+ // Get the editor instance
20
+ const [editor] = (0, _LexicalComposerContext.useLexicalComposerContext)();
21
+ // Get the locale to enable translations
22
+ const locale = (0, _useLocale.default)();
23
+ return /*#__PURE__*/_react.default.createElement(_button.default, {
24
+ "data-role": `${namespace}-save-button`,
25
+ buttonType: "primary",
26
+ "aria-label": locale.textEditor.saveButtonAria(),
27
+ onClick: () => {
28
+ const isEditable = editor.isEditable();
29
+ /* istanbul ignore if */
30
+ if (!isEditable) return;
31
+ const values = (0, _helpers.SerializeLexical)(editor);
32
+ onSave?.(values);
33
+ }
34
+ }, locale.textEditor.saveButton());
35
+ };
36
+ var _default = exports.default = SaveButton;
@@ -0,0 +1 @@
1
+ export { default } from "./toolbar.component";
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "../../../../../../esm/components/text-editor/__internal__/plugins/Toolbar/index.js",
4
+ "main": "./index.js",
5
+ "types": "./index.d.ts"
6
+ }
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ import { SaveCallbackProps } from "./buttons/save.component";
3
+ interface ToolbarProps {
4
+ /** The namespace of the editor that this toolbar belongs to */
5
+ namespace: string;
6
+ /** The callback to call when the cancel button is clicked */
7
+ onCancel?: () => void;
8
+ /** The callback to call when the save button is clicked */
9
+ onSave?: (value: SaveCallbackProps) => void;
10
+ }
11
+ declare const Toolbar: ({ namespace, onCancel, onSave }: ToolbarProps) => React.JSX.Element;
12
+ export default Toolbar;
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
8
+ var _utils = require("@lexical/utils");
9
+ var _lexical = require("lexical");
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
+ var _toolbar = require("./toolbar.style");
13
+ var _constants = require("../../constants");
14
+ var _button = _interopRequireDefault(require("../../../../button"));
15
+ var _useLocale = _interopRequireDefault(require("../../../../../hooks/__internal__/useLocale"));
16
+ var _buttons = require("./buttons");
17
+ var _save = _interopRequireDefault(require("./buttons/save.component"));
18
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
20
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
21
+ const Toolbar = ({
22
+ namespace,
23
+ onCancel,
24
+ onSave
25
+ }) => {
26
+ // Get the editor instance
27
+ const [editor] = (0, _LexicalComposerContext.useLexicalComposerContext)();
28
+ const toolbarRef = (0, _react.useRef)(null);
29
+
30
+ // Set the initial state of the formatting buttons
31
+ const [isBold, setIsBold] = (0, _react.useState)(false);
32
+ const [isItalic, setIsItalic] = (0, _react.useState)(false);
33
+ const [buttons, setButtons] = (0, _react.useState)([]);
34
+
35
+ // If the UI updates, re-fetch the formatting buttons
36
+ (0, _react.useLayoutEffect)(() => {
37
+ const formattingButtons = document.querySelectorAll(`[data-role="${namespace}-formatting-buttons"] button`);
38
+ setButtons(Array.from(formattingButtons));
39
+ }, [namespace]);
40
+
41
+ // Get the locale to enable translations
42
+ const locale = (0, _useLocale.default)();
43
+
44
+ // Update the toolbar based on the current selection
45
+ const updateToolbar = (0, _react.useCallback)(() => {
46
+ // Get the current selection
47
+ const selection = (0, _lexical.$getSelection)();
48
+ // If the selection is a range selection, update the formatting buttons
49
+ if ((0, _lexical.$isRangeSelection)(selection)) {
50
+ setIsBold(selection.hasFormat(_constants.TextEditorActionTypes.Bold));
51
+ setIsItalic(selection.hasFormat(_constants.TextEditorActionTypes.Italic));
52
+ }
53
+ }, []);
54
+
55
+ // Register an update listener to update the toolbar when the editor state changes
56
+ (0, _react.useEffect)(() => {
57
+ return (0, _utils.mergeRegister)(editor.registerUpdateListener(({
58
+ editorState
59
+ }) => {
60
+ editorState.read(() => {
61
+ const isEditable = editor.isEditable();
62
+ /* istanbul ignore else */
63
+ if (isEditable) updateToolbar();
64
+ });
65
+ }));
66
+ }, [updateToolbar, editor]);
67
+
68
+ // Register a keydown listener to enable keyboard navigation
69
+ (0, _react.useEffect)(() => {
70
+ const tbRef = toolbarRef.current;
71
+ const handleKeyDown = event => {
72
+ // Get the current index of the active button
73
+ const currentIndex = buttons.findIndex(button => button === document.activeElement);
74
+
75
+ // If the key pressed is the right arrow key, focus the next button
76
+ /* istanbul ignore next */
77
+ if (event.key === "ArrowRight") {
78
+ const nextIndex = (currentIndex + 1) % buttons.length;
79
+ buttons[nextIndex].focus();
80
+ // If the key pressed is the left arrow key, focus the previous button
81
+ } else if (event.key === "ArrowLeft") {
82
+ const prevIndex = (currentIndex - 1 + buttons.length) % buttons.length;
83
+ buttons[prevIndex].focus();
84
+ }
85
+ };
86
+ toolbarRef.current?.addEventListener("keydown", handleKeyDown);
87
+ return () => {
88
+ tbRef?.removeEventListener("keydown", handleKeyDown);
89
+ };
90
+ }, [buttons]);
91
+ return /*#__PURE__*/_react.default.createElement(_toolbar.StyledToolbar, {
92
+ role: "toolbar",
93
+ "aria-label": locale.textEditor.toolbarAriaLabel(),
94
+ "data-role": `${namespace}-toolbar`,
95
+ id: `${namespace}-toolbar`,
96
+ onFocus: e => e.stopPropagation(),
97
+ ref: toolbarRef
98
+ }, /*#__PURE__*/_react.default.createElement(_toolbar.FormattingButtons, {
99
+ "data-role": `${namespace}-formatting-buttons`
100
+ }, /*#__PURE__*/_react.default.createElement(_buttons.BoldButton, {
101
+ isActive: isBold,
102
+ namespace: namespace
103
+ }), /*#__PURE__*/_react.default.createElement(_buttons.ItalicButton, {
104
+ isActive: isItalic,
105
+ namespace: namespace
106
+ }), /*#__PURE__*/_react.default.createElement(_buttons.ListControls, {
107
+ namespace: namespace
108
+ })), /*#__PURE__*/_react.default.createElement(_toolbar.CommandButtons, {
109
+ "data-role": `${namespace}-command-buttons`
110
+ }, onCancel && /*#__PURE__*/_react.default.createElement(_button.default, {
111
+ buttonType: "tertiary",
112
+ "data-role": `${namespace}-cancel-button`,
113
+ "aria-label": locale.textEditor.cancelButtonAria(),
114
+ onClick: () => onCancel?.()
115
+ }, locale.textEditor.cancelButton()), onSave && /*#__PURE__*/_react.default.createElement(_save.default, {
116
+ namespace: namespace,
117
+ onSave: onSave
118
+ })));
119
+ };
120
+ var _default = exports.default = Toolbar;
@@ -0,0 +1,11 @@
1
+ /// <reference types="react" />
2
+ import { ButtonProps } from "../../../../button";
3
+ interface FormattingButtonProps extends ButtonProps {
4
+ tabIndex?: number;
5
+ isActive?: boolean;
6
+ }
7
+ declare const StyledToolbar: import("styled-components").StyledComponent<"div", any, {}, never>;
8
+ declare const FormattingButtons: import("styled-components").StyledComponent<"div", any, {}, never>;
9
+ declare const CommandButtons: import("styled-components").StyledComponent<"div", any, {}, never>;
10
+ declare const FormattingButton: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<ButtonProps & import("react").RefAttributes<HTMLButtonElement>>, any, FormattingButtonProps, never>;
11
+ export { StyledToolbar, FormattingButtons, CommandButtons, FormattingButton };
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.StyledToolbar = exports.FormattingButtons = exports.FormattingButton = exports.CommandButtons = void 0;
7
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
8
+ var _button = _interopRequireDefault(require("../../../../button"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
+ const StyledToolbar = exports.StyledToolbar = _styledComponents.default.div`
13
+ display: flex;
14
+ flex-direction: row;
15
+ gap: 8px;
16
+ background-color: var(--colorsUtilityMajor025);
17
+ outline: 1px solid var(--colorsUtilityMajor200);
18
+ padding: 12px;
19
+ border-radius: var(--borderRadius100);
20
+ border-top-left-radius: 0;
21
+ border-top-right-radius: 0;
22
+ justify-content: space-between;
23
+ align-items: center;
24
+ margin-left: 1px;
25
+ margin-right: 1px;
26
+ `;
27
+ const FormattingButtons = exports.FormattingButtons = _styledComponents.default.div`
28
+ display: flex;
29
+ flex-direction: row;
30
+ gap: 8px;
31
+ `;
32
+ const CommandButtons = exports.CommandButtons = _styledComponents.default.div`
33
+ display: flex;
34
+ flex-direction: row;
35
+ gap: 8px;
36
+ `;
37
+ const FormattingButton = exports.FormattingButton = (0, _styledComponents.default)(_button.default)`
38
+ display: inline-flex;
39
+ justify-content: center;
40
+ align-items: center;
41
+ padding: 6px;
42
+ border-radius: var(--borderRadius100);
43
+ border: medium;
44
+ cursor: pointer;
45
+
46
+ &:hover {
47
+ > span {
48
+ color: var(--colorsUtilityYang100) !important;
49
+ }
50
+ }
51
+
52
+ ${({
53
+ isActive
54
+ }) => (0, _styledComponents.css)`
55
+ background-color: ${isActive ? "var(--colorsActionMajor600)" : "transparent"};
56
+ `}
57
+
58
+ > span {
59
+ ${({
60
+ isActive
61
+ }) => (0, _styledComponents.css)`
62
+ color: ${isActive ? "var(--colorsUtilityYang100)" : "var(--colorsUtilityYin100) "} !important;
63
+ `}
64
+ }
65
+ `;
@@ -0,0 +1,9 @@
1
+ export { default as AutoLinkerPlugin } from "./AutoLinker";
2
+ export { default as CharacterCounterPlugin } from "./CharacterCounter";
3
+ export { default as ContentEditor } from "./ContentEditor";
4
+ export { default as LinkMonitorPlugin } from "./LinkMonitor";
5
+ export { default as LinkPreviewerPlugin } from "./LinkPreviewer";
6
+ export { default as OnChangePlugin } from "./OnChange";
7
+ export { default as Placeholder } from "./Placeholder";
8
+ export { default as ToolbarPlugin } from "./Toolbar";
9
+ export { default as useCursorAtEnd } from "./useCursorAtEnd";
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "AutoLinkerPlugin", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _AutoLinker.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "CharacterCounterPlugin", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _CharacterCounter.default;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "ContentEditor", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _ContentEditor.default;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "LinkMonitorPlugin", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _LinkMonitor.default;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "LinkPreviewerPlugin", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _LinkPreviewer.default;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "OnChangePlugin", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _OnChange.default;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "Placeholder", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _Placeholder.default;
46
+ }
47
+ });
48
+ Object.defineProperty(exports, "ToolbarPlugin", {
49
+ enumerable: true,
50
+ get: function () {
51
+ return _Toolbar.default;
52
+ }
53
+ });
54
+ Object.defineProperty(exports, "useCursorAtEnd", {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _useCursorAtEnd.default;
58
+ }
59
+ });
60
+ var _AutoLinker = _interopRequireDefault(require("./AutoLinker"));
61
+ var _CharacterCounter = _interopRequireDefault(require("./CharacterCounter"));
62
+ var _ContentEditor = _interopRequireDefault(require("./ContentEditor"));
63
+ var _LinkMonitor = _interopRequireDefault(require("./LinkMonitor"));
64
+ var _LinkPreviewer = _interopRequireDefault(require("./LinkPreviewer"));
65
+ var _OnChange = _interopRequireDefault(require("./OnChange"));
66
+ var _Placeholder = _interopRequireDefault(require("./Placeholder"));
67
+ var _Toolbar = _interopRequireDefault(require("./Toolbar"));
68
+ var _useCursorAtEnd = _interopRequireDefault(require("./useCursorAtEnd"));
69
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "sideEffects": false,
3
- "module": "../../../../../esm/components/text-editor/__internal__/toolbar/index.js",
3
+ "module": "../../../../../esm/components/text-editor/__internal__/plugins/index.js",
4
4
  "main": "./index.js",
5
5
  "types": "./index.d.ts"
6
6
  }
@@ -0,0 +1,2 @@
1
+ declare function useCursorAtEnd(): (e: React.FocusEvent) => void;
2
+ export default useCursorAtEnd;
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
8
+ var _react = require("react");
9
+ var _lexical = require("lexical");
10
+ /* istanbul ignore file */
11
+ // Ignore this file in coverage reports because it's a plugin and not part of the main logic.
12
+
13
+ const FOCUS_COMMAND = (0, _lexical.createCommand)("FOCUS_COMMAND");
14
+ // This hook sets the cursor at the end of the editor when it receives focus
15
+ // via keyboard, or at the relevant position when it receives focus via mouse
16
+ function useCursorAtEnd() {
17
+ const [editor] = (0, _LexicalComposerContext.useLexicalComposerContext)();
18
+ (0, _react.useEffect)(() => {
19
+ return editor.registerCommand(FOCUS_COMMAND, payload => {
20
+ editor.update(() => {
21
+ if (!payload.defaultToEnd) {
22
+ const currentSelection = (0, _lexical.$getSelection)();
23
+ if (currentSelection) {
24
+ (0, _lexical.$setSelection)(currentSelection);
25
+ return;
26
+ }
27
+ }
28
+ const root = (0, _lexical.$getRoot)();
29
+ const numberOfChildren = root.getChildrenSize();
30
+ const selection = (0, _lexical.$createRangeSelection)();
31
+ if (numberOfChildren === 1) {
32
+ const firstNode = root.getFirstChild();
33
+ if (firstNode) {
34
+ if (firstNode && firstNode.getType() === "paragraph") {
35
+ const firstNodeChildren = firstNode.getChildrenSize();
36
+ if (firstNode.getType() === "paragraph" && firstNodeChildren === 0) {
37
+ const emptyTextNode = (0, _lexical.$createTextNode)("");
38
+ firstNode.append(emptyTextNode);
39
+ selection.anchor.set(emptyTextNode.getKey(), 0, "text");
40
+ selection.focus.set(emptyTextNode.getKey(), 0, "text");
41
+ } else {
42
+ const lastNode = firstNode.getLastChild();
43
+ if (lastNode && lastNode.getType() === "text") {
44
+ const contentSize = lastNode.getTextContentSize();
45
+ const lastNodeKey = lastNode.getKey();
46
+ selection.anchor.set(lastNodeKey, contentSize, "text");
47
+ selection.focus.set(lastNodeKey, contentSize, "text");
48
+ }
49
+ }
50
+ (0, _lexical.$setSelection)(selection);
51
+ }
52
+ }
53
+ } else {
54
+ const allTextNodes = root.getAllTextNodes();
55
+ if (allTextNodes.length === 0) return;
56
+ const lastNode = allTextNodes[allTextNodes.length - 1];
57
+ if (lastNode) {
58
+ const offset = lastNode.getTextContentSize();
59
+ selection.anchor.set(lastNode.getKey(), offset, "text");
60
+ selection.focus.set(lastNode.getKey(), offset, "text");
61
+ (0, _lexical.$setSelection)(selection);
62
+ }
63
+ }
64
+ });
65
+ return true;
66
+ }, _lexical.COMMAND_PRIORITY_NORMAL);
67
+ }, [editor]);
68
+ const handleFocus = e => {
69
+ // Check if the focus was triggered by a mouse click
70
+ // relatedTarget is null for mouse clicks, but set for keyboard navigation
71
+ const defaultToEnd = e.relatedTarget !== null;
72
+ editor.dispatchCommand(FOCUS_COMMAND, {
73
+ defaultToEnd
74
+ });
75
+ };
76
+ return handleFocus;
77
+ }
78
+ var _default = exports.default = useCursorAtEnd;
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "../../../../../../esm/components/text-editor/__internal__/plugins/useCursorAtEnd/index.js",
4
+ "main": "./index.js",
5
+ "types": "./index.d.ts"
6
+ }
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { TextEditorProps } from "../text-editor.component";
3
+ declare const ReadOnlyEditor: ({ namespace, value, }: Partial<TextEditorProps>) => React.JSX.Element;
4
+ export default ReadOnlyEditor;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _LexicalComposer = require("@lexical/react/LexicalComposer");
8
+ var _LexicalContentEditable = require("@lexical/react/LexicalContentEditable");
9
+ var _LexicalErrorBoundary = require("@lexical/react/LexicalErrorBoundary");
10
+ var _LexicalRichTextPlugin = require("@lexical/react/LexicalRichTextPlugin");
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
13
+ var _utils = require("./utils");
14
+ var _constants = require("./constants");
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
+ /* eslint-disable no-console */
19
+
20
+ const wrapLinksInAnchors = value => {
21
+ const urlRegex = /((https?:\/\/)?[\w-]+(\.[\w-]+)+\.?(:\d+)?(\/\S*)?)/g;
22
+ return value.replace(urlRegex, "<a href='$1'>$1</a>");
23
+ };
24
+ const determineFormat = value => {
25
+ let isJson;
26
+ if (!value) {
27
+ return (0, _utils.createFromHTML)("<p><br></p>");
28
+ }
29
+ try {
30
+ const isValidJSON = JSON.parse(value);
31
+ /* istanbul ignore else */
32
+ if (isValidJSON) isJson = true;
33
+ } catch (e) {
34
+ isJson = false;
35
+ }
36
+ if (!isJson) {
37
+ const isHTML = /<[a-z][\s\S]*>/i.test(value);
38
+ if (isHTML) {
39
+ return (0, _utils.createFromHTML)(value);
40
+ }
41
+ const wrappedPlainText = `<p dir="ltr"><span data-lexical-text="true">${wrapLinksInAnchors(value)}</span></p>`;
42
+ return (0, _utils.createFromHTML)(wrappedPlainText);
43
+ }
44
+ return value;
45
+ };
46
+ const ReadOnlyEditor = ({
47
+ namespace = "carbon-rte-readonly",
48
+ value
49
+ }) => {
50
+ const initialConfig = (0, _react.useMemo)(() => {
51
+ return {
52
+ namespace,
53
+ nodes: _constants.markdownNodes,
54
+ onError: console.error,
55
+ theme: _constants.theme,
56
+ editorState: determineFormat(value),
57
+ editable: false
58
+ };
59
+ }, [namespace, value]);
60
+ return /*#__PURE__*/_react.default.createElement(_LexicalComposer.LexicalComposer, {
61
+ initialConfig: initialConfig
62
+ }, /*#__PURE__*/_react.default.createElement(_LexicalRichTextPlugin.RichTextPlugin, {
63
+ contentEditable: /*#__PURE__*/_react.default.createElement(_LexicalContentEditable.ContentEditable, {
64
+ "data-role": `${namespace}-content-editor`
65
+ /** The following are automatically added by Lexical but violate WCAG 4.1.2 Name, Role, Value and so have been overriden */,
66
+ "aria-autocomplete": undefined,
67
+ "aria-readonly": undefined
68
+ }),
69
+ ErrorBoundary: _LexicalErrorBoundary.LexicalErrorBoundary
70
+ }));
71
+ };
72
+ var _default = exports.default = ReadOnlyEditor;
@@ -0,0 +1,7 @@
1
+
2
+ .textBold {
3
+ font-weight: bold;
4
+ }
5
+ .textItalic {
6
+ font-style: italic;
7
+ }
@@ -0,0 +1,4 @@
1
+ declare const createFromHTML: (html: string) => string;
2
+ /** Creates and returns a string representation of an empty editor */
3
+ declare const createEmpty: () => string;
4
+ export { createEmpty, createFromHTML };
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createFromHTML = exports.createEmpty = void 0;
7
+ var _helpers = require("./helpers");
8
+ const createFromHTML = html => {
9
+ // DeserializeHTML is tested as part of the helper tests
10
+ /* istanbul ignore next */
11
+ return (0, _helpers.DeserializeHTML)(html);
12
+ };
13
+
14
+ /** Creates and returns a string representation of an empty editor */
15
+ exports.createFromHTML = createFromHTML;
16
+ const createEmpty = () => {
17
+ // Create a default empty state
18
+ const value = '{"root":{"children":[{"children":[],"direction":null,"format":"","indent":0,"type":"paragraph","version":1}],"direction":null,"format":"","indent":0,"type":"root","version":1}}';
19
+ return value;
20
+ };
21
+ exports.createEmpty = createEmpty;
@@ -1,2 +1,3 @@
1
- export { default, TextEditorState as EditorState, TextEditorContentState as ContentState, } from "./text-editor.component";
1
+ export { default } from "./text-editor.component";
2
+ export { createEmpty, createFromHTML } from "./__internal__";
2
3
  export type { TextEditorProps } from "./text-editor.component";
@@ -3,16 +3,16 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "ContentState", {
6
+ Object.defineProperty(exports, "createEmpty", {
7
7
  enumerable: true,
8
8
  get: function () {
9
- return _textEditor.TextEditorContentState;
9
+ return _internal__.createEmpty;
10
10
  }
11
11
  });
12
- Object.defineProperty(exports, "EditorState", {
12
+ Object.defineProperty(exports, "createFromHTML", {
13
13
  enumerable: true,
14
14
  get: function () {
15
- return _textEditor.TextEditorState;
15
+ return _internal__.createFromHTML;
16
16
  }
17
17
  });
18
18
  Object.defineProperty(exports, "default", {
@@ -21,6 +21,6 @@ Object.defineProperty(exports, "default", {
21
21
  return _textEditor.default;
22
22
  }
23
23
  });
24
- var _textEditor = _interopRequireWildcard(require("./text-editor.component"));
25
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
26
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
24
+ var _textEditor = _interopRequireDefault(require("./text-editor.component"));
25
+ var _internal__ = require("./__internal__");
26
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }