@kaizen/components 1.33.0 → 1.34.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 (302) hide show
  1. package/dist/cjs/Input/Input/types.cjs +7 -0
  2. package/dist/cjs/Input/Input/types.cjs.map +1 -0
  3. package/dist/cjs/RichTextEditor/EditableRichTextContent/EditableRichTextContent.cjs +47 -0
  4. package/dist/cjs/RichTextEditor/EditableRichTextContent/EditableRichTextContent.cjs.map +1 -0
  5. package/dist/cjs/RichTextEditor/EditableRichTextContent/EditableRichTextContent.module.scss.cjs +8 -0
  6. package/dist/cjs/RichTextEditor/EditableRichTextContent/EditableRichTextContent.module.scss.cjs.map +1 -0
  7. package/dist/cjs/RichTextEditor/RichTextContent/RichTextContent.cjs +61 -0
  8. package/dist/cjs/RichTextEditor/RichTextContent/RichTextContent.cjs.map +1 -0
  9. package/dist/cjs/RichTextEditor/RichTextContent/RichTextContent.module.scss.cjs +7 -0
  10. package/dist/cjs/RichTextEditor/RichTextContent/RichTextContent.module.scss.cjs.map +1 -0
  11. package/dist/cjs/RichTextEditor/RichTextEditor/RichTextEditor.cjs +177 -0
  12. package/dist/cjs/RichTextEditor/RichTextEditor/RichTextEditor.cjs.map +1 -0
  13. package/dist/cjs/RichTextEditor/RichTextEditor/RichTextEditor.module.scss.cjs +32 -0
  14. package/dist/cjs/RichTextEditor/RichTextEditor/RichTextEditor.module.scss.cjs.map +1 -0
  15. package/dist/cjs/RichTextEditor/RichTextEditor/schema.cjs +88 -0
  16. package/dist/cjs/RichTextEditor/RichTextEditor/schema.cjs.map +1 -0
  17. package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.cjs +43 -0
  18. package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.cjs.map +1 -0
  19. package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.module.scss.cjs +14 -0
  20. package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.module.scss.cjs.map +1 -0
  21. package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.cjs +71 -0
  22. package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.cjs.map +1 -0
  23. package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.module.scss.cjs +7 -0
  24. package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.module.scss.cjs.map +1 -0
  25. package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.cjs +16 -0
  26. package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.cjs.map +1 -0
  27. package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.module.scss.cjs +7 -0
  28. package/dist/cjs/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.module.scss.cjs.map +1 -0
  29. package/dist/cjs/RichTextEditor/RichTextEditor/utils/controlmap.cjs +274 -0
  30. package/dist/cjs/RichTextEditor/RichTextEditor/utils/controlmap.cjs.map +1 -0
  31. package/dist/cjs/RichTextEditor/RichTextEditor/utils/inputrules.cjs +50 -0
  32. package/dist/cjs/RichTextEditor/RichTextEditor/utils/inputrules.cjs.map +1 -0
  33. package/dist/cjs/RichTextEditor/RichTextEditor/utils/keymap.cjs +108 -0
  34. package/dist/cjs/RichTextEditor/RichTextEditor/utils/keymap.cjs.map +1 -0
  35. package/dist/cjs/RichTextEditor/constants.cjs +5 -0
  36. package/dist/cjs/RichTextEditor/constants.cjs.map +1 -0
  37. package/dist/cjs/RichTextEditor/utils/commands/addMark.cjs +21 -0
  38. package/dist/cjs/RichTextEditor/utils/commands/addMark.cjs.map +1 -0
  39. package/dist/cjs/RichTextEditor/utils/commands/getMarkAttrs.cjs +26 -0
  40. package/dist/cjs/RichTextEditor/utils/commands/getMarkAttrs.cjs.map +1 -0
  41. package/dist/cjs/RichTextEditor/utils/commands/getMarkRange.cjs +44 -0
  42. package/dist/cjs/RichTextEditor/utils/commands/getMarkRange.cjs.map +1 -0
  43. package/dist/cjs/RichTextEditor/utils/commands/listIsActive.cjs +9 -0
  44. package/dist/cjs/RichTextEditor/utils/commands/listIsActive.cjs.map +1 -0
  45. package/dist/cjs/RichTextEditor/utils/commands/markContainsSelection.cjs +17 -0
  46. package/dist/cjs/RichTextEditor/utils/commands/markContainsSelection.cjs.map +1 -0
  47. package/dist/cjs/RichTextEditor/utils/commands/markIsActive.cjs +15 -0
  48. package/dist/cjs/RichTextEditor/utils/commands/markIsActive.cjs.map +1 -0
  49. package/dist/cjs/RichTextEditor/utils/commands/removeMark.cjs +40 -0
  50. package/dist/cjs/RichTextEditor/utils/commands/removeMark.cjs.map +1 -0
  51. package/dist/cjs/RichTextEditor/utils/commands/updateMark.cjs +38 -0
  52. package/dist/cjs/RichTextEditor/utils/commands/updateMark.cjs.map +1 -0
  53. package/dist/cjs/RichTextEditor/utils/commands/validateAndRemoveMarks.cjs +36 -0
  54. package/dist/cjs/RichTextEditor/utils/commands/validateAndRemoveMarks.cjs.map +1 -0
  55. package/dist/cjs/RichTextEditor/utils/core/createRichTextEditor.cjs +53 -0
  56. package/dist/cjs/RichTextEditor/utils/core/createRichTextEditor.cjs.map +1 -0
  57. package/dist/cjs/RichTextEditor/utils/core/hooks/useRichTextEditor.cjs +76 -0
  58. package/dist/cjs/RichTextEditor/utils/core/hooks/useRichTextEditor.cjs.map +1 -0
  59. package/dist/cjs/RichTextEditor/utils/core/inputrules.cjs +26 -0
  60. package/dist/cjs/RichTextEditor/utils/core/inputrules.cjs.map +1 -0
  61. package/dist/cjs/RichTextEditor/utils/core/state.cjs +41 -0
  62. package/dist/cjs/RichTextEditor/utils/core/state.cjs.map +1 -0
  63. package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/LinkManager.cjs +136 -0
  64. package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/LinkManager.cjs.map +1 -0
  65. package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/LinkEditor.cjs +62 -0
  66. package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/LinkEditor.cjs.map +1 -0
  67. package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/LinkModal.cjs +68 -0
  68. package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/LinkModal.cjs.map +1 -0
  69. package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.cjs +58 -0
  70. package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.cjs.map +1 -0
  71. package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.module.scss.cjs +11 -0
  72. package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.module.scss.cjs.map +1 -0
  73. package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/Positioner.cjs +43 -0
  74. package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/Positioner.cjs.map +1 -0
  75. package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/createReactTooltipWrapper.cjs +52 -0
  76. package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/createReactTooltipWrapper.cjs.map +1 -0
  77. package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/validation.cjs +16 -0
  78. package/dist/cjs/RichTextEditor/utils/plugins/LinkManager/validation.cjs.map +1 -0
  79. package/dist/cjs/RichTextEditor/utils/schema/marks.cjs +73 -0
  80. package/dist/cjs/RichTextEditor/utils/schema/marks.cjs.map +1 -0
  81. package/dist/cjs/RichTextEditor/utils/schema/nodes.cjs +35 -0
  82. package/dist/cjs/RichTextEditor/utils/schema/nodes.cjs.map +1 -0
  83. package/dist/cjs/TextField/TextField.cjs +3 -1
  84. package/dist/cjs/TextField/TextField.cjs.map +1 -1
  85. package/dist/cjs/dts/Input/Input/index.d.ts +1 -0
  86. package/dist/cjs/dts/RichTextEditor/EditableRichTextContent/EditableRichTextContent.d.ts +15 -0
  87. package/dist/cjs/dts/RichTextEditor/EditableRichTextContent/index.d.ts +1 -0
  88. package/dist/cjs/dts/RichTextEditor/RichTextContent/RichTextContent.d.ts +10 -0
  89. package/dist/cjs/dts/RichTextEditor/RichTextContent/index.d.ts +1 -0
  90. package/dist/cjs/dts/RichTextEditor/RichTextEditor/RichTextEditor.d.ts +43 -0
  91. package/dist/cjs/dts/RichTextEditor/RichTextEditor/index.d.ts +4 -0
  92. package/dist/cjs/dts/RichTextEditor/RichTextEditor/schema.d.ts +4 -0
  93. package/dist/cjs/dts/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.d.ts +17 -0
  94. package/dist/cjs/dts/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/index.d.ts +1 -0
  95. package/dist/cjs/dts/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/types.d.ts +2 -0
  96. package/dist/cjs/dts/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.d.ts +11 -0
  97. package/dist/cjs/dts/RichTextEditor/RichTextEditor/subcomponents/Toolbar/index.d.ts +1 -0
  98. package/dist/cjs/dts/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.d.ts +8 -0
  99. package/dist/cjs/dts/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/index.d.ts +1 -0
  100. package/dist/cjs/dts/RichTextEditor/RichTextEditor/utils/controlmap.d.ts +14 -0
  101. package/dist/cjs/dts/RichTextEditor/RichTextEditor/utils/inputrules.d.ts +2 -0
  102. package/dist/cjs/dts/RichTextEditor/RichTextEditor/utils/keymap.d.ts +6 -0
  103. package/dist/cjs/dts/RichTextEditor/constants.d.ts +2 -0
  104. package/dist/cjs/dts/RichTextEditor/index.d.ts +9 -0
  105. package/dist/cjs/dts/RichTextEditor/types.d.ts +12 -0
  106. package/dist/cjs/dts/RichTextEditor/utils/commands/addMark.d.ts +3 -0
  107. package/dist/cjs/dts/RichTextEditor/utils/commands/fixtures/helpers.d.ts +8 -0
  108. package/dist/cjs/dts/RichTextEditor/utils/commands/fixtures/test-state.d.ts +17 -0
  109. package/dist/cjs/dts/RichTextEditor/utils/commands/getMarkAttrs.d.ts +3 -0
  110. package/dist/cjs/dts/RichTextEditor/utils/commands/getMarkRange.d.ts +3 -0
  111. package/dist/cjs/dts/RichTextEditor/utils/commands/index.d.ts +9 -0
  112. package/dist/cjs/dts/RichTextEditor/utils/commands/listIsActive.d.ts +3 -0
  113. package/dist/cjs/dts/RichTextEditor/utils/commands/markContainsSelection.d.ts +4 -0
  114. package/dist/cjs/dts/RichTextEditor/utils/commands/markIsActive.d.ts +3 -0
  115. package/dist/cjs/dts/RichTextEditor/utils/commands/removeMark.d.ts +3 -0
  116. package/dist/cjs/dts/RichTextEditor/utils/commands/updateMark.d.ts +3 -0
  117. package/dist/cjs/dts/RichTextEditor/utils/commands/validateAndRemoveMarks.d.ts +12 -0
  118. package/dist/cjs/dts/RichTextEditor/utils/core/createRichTextEditor.d.ts +21 -0
  119. package/dist/cjs/dts/RichTextEditor/utils/core/fixtures/testState.d.ts +21 -0
  120. package/dist/cjs/dts/RichTextEditor/utils/core/hooks/useRichTextEditor.d.ts +23 -0
  121. package/dist/cjs/dts/RichTextEditor/utils/core/index.d.ts +5 -0
  122. package/dist/cjs/dts/RichTextEditor/utils/core/inputrules.d.ts +4 -0
  123. package/dist/cjs/dts/RichTextEditor/utils/core/state.d.ts +19 -0
  124. package/dist/cjs/dts/RichTextEditor/utils/core/types.d.ts +28 -0
  125. package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/LinkManager.d.ts +12 -0
  126. package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/LinkEditor.d.ts +19 -0
  127. package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/index.d.ts +1 -0
  128. package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/LinkModal.d.ts +13 -0
  129. package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/index.d.ts +1 -0
  130. package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.d.ts +12 -0
  131. package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/Positioner.d.ts +3 -0
  132. package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/index.d.ts +1 -0
  133. package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/components/index.d.ts +3 -0
  134. package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/createReactTooltipWrapper.d.ts +10 -0
  135. package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/index.d.ts +2 -0
  136. package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/types.d.ts +13 -0
  137. package/dist/cjs/dts/RichTextEditor/utils/plugins/LinkManager/validation.d.ts +6 -0
  138. package/dist/cjs/dts/RichTextEditor/utils/plugins/index.d.ts +1 -0
  139. package/dist/cjs/dts/RichTextEditor/utils/prosemirror/index.d.ts +7 -0
  140. package/dist/cjs/dts/RichTextEditor/utils/schema/index.d.ts +2 -0
  141. package/dist/cjs/dts/RichTextEditor/utils/schema/marks.d.ts +2 -0
  142. package/dist/cjs/dts/RichTextEditor/utils/schema/nodes.d.ts +2 -0
  143. package/dist/cjs/dts/TextField/TextField.d.ts +2 -2
  144. package/dist/cjs/dts/index.d.ts +1 -0
  145. package/dist/cjs/index.cjs +95 -0
  146. package/dist/cjs/index.cjs.map +1 -1
  147. package/dist/cjs/index.css +14 -7
  148. package/dist/esm/Input/Input/types.mjs +4 -0
  149. package/dist/esm/Input/Input/types.mjs.map +1 -0
  150. package/dist/esm/RichTextEditor/EditableRichTextContent/EditableRichTextContent.mjs +45 -0
  151. package/dist/esm/RichTextEditor/EditableRichTextContent/EditableRichTextContent.mjs.map +1 -0
  152. package/dist/esm/RichTextEditor/EditableRichTextContent/EditableRichTextContent.module.scss.mjs +6 -0
  153. package/dist/esm/RichTextEditor/EditableRichTextContent/EditableRichTextContent.module.scss.mjs.map +1 -0
  154. package/dist/esm/RichTextEditor/RichTextContent/RichTextContent.mjs +39 -0
  155. package/dist/esm/RichTextEditor/RichTextContent/RichTextContent.mjs.map +1 -0
  156. package/dist/esm/RichTextEditor/RichTextContent/RichTextContent.module.scss.mjs +5 -0
  157. package/dist/esm/RichTextEditor/RichTextContent/RichTextContent.module.scss.mjs.map +1 -0
  158. package/dist/esm/RichTextEditor/RichTextEditor/RichTextEditor.mjs +152 -0
  159. package/dist/esm/RichTextEditor/RichTextEditor/RichTextEditor.mjs.map +1 -0
  160. package/dist/esm/RichTextEditor/RichTextEditor/RichTextEditor.module.scss.mjs +30 -0
  161. package/dist/esm/RichTextEditor/RichTextEditor/RichTextEditor.module.scss.mjs.map +1 -0
  162. package/dist/esm/RichTextEditor/RichTextEditor/schema.mjs +66 -0
  163. package/dist/esm/RichTextEditor/RichTextEditor/schema.mjs.map +1 -0
  164. package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.mjs +41 -0
  165. package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.mjs.map +1 -0
  166. package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.module.scss.mjs +12 -0
  167. package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.module.scss.mjs.map +1 -0
  168. package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.mjs +69 -0
  169. package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.mjs.map +1 -0
  170. package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.module.scss.mjs +5 -0
  171. package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.module.scss.mjs.map +1 -0
  172. package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.mjs +14 -0
  173. package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.mjs.map +1 -0
  174. package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.module.scss.mjs +5 -0
  175. package/dist/esm/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.module.scss.mjs.map +1 -0
  176. package/dist/esm/RichTextEditor/RichTextEditor/utils/controlmap.mjs +252 -0
  177. package/dist/esm/RichTextEditor/RichTextEditor/utils/controlmap.mjs.map +1 -0
  178. package/dist/esm/RichTextEditor/RichTextEditor/utils/inputrules.mjs +29 -0
  179. package/dist/esm/RichTextEditor/RichTextEditor/utils/inputrules.mjs.map +1 -0
  180. package/dist/esm/RichTextEditor/RichTextEditor/utils/keymap.mjs +84 -0
  181. package/dist/esm/RichTextEditor/RichTextEditor/utils/keymap.mjs.map +1 -0
  182. package/dist/esm/RichTextEditor/constants.mjs +3 -0
  183. package/dist/esm/RichTextEditor/constants.mjs.map +1 -0
  184. package/dist/esm/RichTextEditor/utils/commands/addMark.mjs +19 -0
  185. package/dist/esm/RichTextEditor/utils/commands/addMark.mjs.map +1 -0
  186. package/dist/esm/RichTextEditor/utils/commands/getMarkAttrs.mjs +24 -0
  187. package/dist/esm/RichTextEditor/utils/commands/getMarkAttrs.mjs.map +1 -0
  188. package/dist/esm/RichTextEditor/utils/commands/getMarkRange.mjs +42 -0
  189. package/dist/esm/RichTextEditor/utils/commands/getMarkRange.mjs.map +1 -0
  190. package/dist/esm/RichTextEditor/utils/commands/listIsActive.mjs +7 -0
  191. package/dist/esm/RichTextEditor/utils/commands/listIsActive.mjs.map +1 -0
  192. package/dist/esm/RichTextEditor/utils/commands/markContainsSelection.mjs +15 -0
  193. package/dist/esm/RichTextEditor/utils/commands/markContainsSelection.mjs.map +1 -0
  194. package/dist/esm/RichTextEditor/utils/commands/markIsActive.mjs +13 -0
  195. package/dist/esm/RichTextEditor/utils/commands/markIsActive.mjs.map +1 -0
  196. package/dist/esm/RichTextEditor/utils/commands/removeMark.mjs +38 -0
  197. package/dist/esm/RichTextEditor/utils/commands/removeMark.mjs.map +1 -0
  198. package/dist/esm/RichTextEditor/utils/commands/updateMark.mjs +36 -0
  199. package/dist/esm/RichTextEditor/utils/commands/updateMark.mjs.map +1 -0
  200. package/dist/esm/RichTextEditor/utils/commands/validateAndRemoveMarks.mjs +34 -0
  201. package/dist/esm/RichTextEditor/utils/commands/validateAndRemoveMarks.mjs.map +1 -0
  202. package/dist/esm/RichTextEditor/utils/core/createRichTextEditor.mjs +51 -0
  203. package/dist/esm/RichTextEditor/utils/core/createRichTextEditor.mjs.map +1 -0
  204. package/dist/esm/RichTextEditor/utils/core/hooks/useRichTextEditor.mjs +74 -0
  205. package/dist/esm/RichTextEditor/utils/core/hooks/useRichTextEditor.mjs.map +1 -0
  206. package/dist/esm/RichTextEditor/utils/core/inputrules.mjs +23 -0
  207. package/dist/esm/RichTextEditor/utils/core/inputrules.mjs.map +1 -0
  208. package/dist/esm/RichTextEditor/utils/core/state.mjs +37 -0
  209. package/dist/esm/RichTextEditor/utils/core/state.mjs.map +1 -0
  210. package/dist/esm/RichTextEditor/utils/plugins/LinkManager/LinkManager.mjs +134 -0
  211. package/dist/esm/RichTextEditor/utils/plugins/LinkManager/LinkManager.mjs.map +1 -0
  212. package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/LinkEditor.mjs +60 -0
  213. package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/LinkEditor.mjs.map +1 -0
  214. package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/LinkModal.mjs +66 -0
  215. package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/LinkModal.mjs.map +1 -0
  216. package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.mjs +56 -0
  217. package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.mjs.map +1 -0
  218. package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.module.scss.mjs +9 -0
  219. package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.module.scss.mjs.map +1 -0
  220. package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/Positioner.mjs +41 -0
  221. package/dist/esm/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/Positioner.mjs.map +1 -0
  222. package/dist/esm/RichTextEditor/utils/plugins/LinkManager/createReactTooltipWrapper.mjs +50 -0
  223. package/dist/esm/RichTextEditor/utils/plugins/LinkManager/createReactTooltipWrapper.mjs.map +1 -0
  224. package/dist/esm/RichTextEditor/utils/plugins/LinkManager/validation.mjs +14 -0
  225. package/dist/esm/RichTextEditor/utils/plugins/LinkManager/validation.mjs.map +1 -0
  226. package/dist/esm/RichTextEditor/utils/schema/marks.mjs +71 -0
  227. package/dist/esm/RichTextEditor/utils/schema/marks.mjs.map +1 -0
  228. package/dist/esm/RichTextEditor/utils/schema/nodes.mjs +33 -0
  229. package/dist/esm/RichTextEditor/utils/schema/nodes.mjs.map +1 -0
  230. package/dist/esm/TextField/TextField.mjs +3 -1
  231. package/dist/esm/TextField/TextField.mjs.map +1 -1
  232. package/dist/esm/dts/Input/Input/index.d.ts +1 -0
  233. package/dist/esm/dts/RichTextEditor/EditableRichTextContent/EditableRichTextContent.d.ts +15 -0
  234. package/dist/esm/dts/RichTextEditor/EditableRichTextContent/index.d.ts +1 -0
  235. package/dist/esm/dts/RichTextEditor/RichTextContent/RichTextContent.d.ts +10 -0
  236. package/dist/esm/dts/RichTextEditor/RichTextContent/index.d.ts +1 -0
  237. package/dist/esm/dts/RichTextEditor/RichTextEditor/RichTextEditor.d.ts +43 -0
  238. package/dist/esm/dts/RichTextEditor/RichTextEditor/index.d.ts +4 -0
  239. package/dist/esm/dts/RichTextEditor/RichTextEditor/schema.d.ts +4 -0
  240. package/dist/esm/dts/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/ToggleIconButton.d.ts +17 -0
  241. package/dist/esm/dts/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/index.d.ts +1 -0
  242. package/dist/esm/dts/RichTextEditor/RichTextEditor/subcomponents/ToggleIconButton/types.d.ts +2 -0
  243. package/dist/esm/dts/RichTextEditor/RichTextEditor/subcomponents/Toolbar/Toolbar.d.ts +11 -0
  244. package/dist/esm/dts/RichTextEditor/RichTextEditor/subcomponents/Toolbar/index.d.ts +1 -0
  245. package/dist/esm/dts/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/ToolbarSection.d.ts +8 -0
  246. package/dist/esm/dts/RichTextEditor/RichTextEditor/subcomponents/ToolbarSection/index.d.ts +1 -0
  247. package/dist/esm/dts/RichTextEditor/RichTextEditor/utils/controlmap.d.ts +14 -0
  248. package/dist/esm/dts/RichTextEditor/RichTextEditor/utils/inputrules.d.ts +2 -0
  249. package/dist/esm/dts/RichTextEditor/RichTextEditor/utils/keymap.d.ts +6 -0
  250. package/dist/esm/dts/RichTextEditor/constants.d.ts +2 -0
  251. package/dist/esm/dts/RichTextEditor/index.d.ts +9 -0
  252. package/dist/esm/dts/RichTextEditor/types.d.ts +12 -0
  253. package/dist/esm/dts/RichTextEditor/utils/commands/addMark.d.ts +3 -0
  254. package/dist/esm/dts/RichTextEditor/utils/commands/fixtures/helpers.d.ts +8 -0
  255. package/dist/esm/dts/RichTextEditor/utils/commands/fixtures/test-state.d.ts +17 -0
  256. package/dist/esm/dts/RichTextEditor/utils/commands/getMarkAttrs.d.ts +3 -0
  257. package/dist/esm/dts/RichTextEditor/utils/commands/getMarkRange.d.ts +3 -0
  258. package/dist/esm/dts/RichTextEditor/utils/commands/index.d.ts +9 -0
  259. package/dist/esm/dts/RichTextEditor/utils/commands/listIsActive.d.ts +3 -0
  260. package/dist/esm/dts/RichTextEditor/utils/commands/markContainsSelection.d.ts +4 -0
  261. package/dist/esm/dts/RichTextEditor/utils/commands/markIsActive.d.ts +3 -0
  262. package/dist/esm/dts/RichTextEditor/utils/commands/removeMark.d.ts +3 -0
  263. package/dist/esm/dts/RichTextEditor/utils/commands/updateMark.d.ts +3 -0
  264. package/dist/esm/dts/RichTextEditor/utils/commands/validateAndRemoveMarks.d.ts +12 -0
  265. package/dist/esm/dts/RichTextEditor/utils/core/createRichTextEditor.d.ts +21 -0
  266. package/dist/esm/dts/RichTextEditor/utils/core/fixtures/testState.d.ts +21 -0
  267. package/dist/esm/dts/RichTextEditor/utils/core/hooks/useRichTextEditor.d.ts +23 -0
  268. package/dist/esm/dts/RichTextEditor/utils/core/index.d.ts +5 -0
  269. package/dist/esm/dts/RichTextEditor/utils/core/inputrules.d.ts +4 -0
  270. package/dist/esm/dts/RichTextEditor/utils/core/state.d.ts +19 -0
  271. package/dist/esm/dts/RichTextEditor/utils/core/types.d.ts +28 -0
  272. package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/LinkManager.d.ts +12 -0
  273. package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/LinkEditor.d.ts +19 -0
  274. package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/index.d.ts +1 -0
  275. package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/LinkModal.d.ts +13 -0
  276. package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/index.d.ts +1 -0
  277. package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.d.ts +12 -0
  278. package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/Positioner.d.ts +3 -0
  279. package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/index.d.ts +1 -0
  280. package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/components/index.d.ts +3 -0
  281. package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/createReactTooltipWrapper.d.ts +10 -0
  282. package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/index.d.ts +2 -0
  283. package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/types.d.ts +13 -0
  284. package/dist/esm/dts/RichTextEditor/utils/plugins/LinkManager/validation.d.ts +6 -0
  285. package/dist/esm/dts/RichTextEditor/utils/plugins/index.d.ts +1 -0
  286. package/dist/esm/dts/RichTextEditor/utils/prosemirror/index.d.ts +7 -0
  287. package/dist/esm/dts/RichTextEditor/utils/schema/index.d.ts +2 -0
  288. package/dist/esm/dts/RichTextEditor/utils/schema/marks.d.ts +2 -0
  289. package/dist/esm/dts/RichTextEditor/utils/schema/nodes.d.ts +2 -0
  290. package/dist/esm/dts/TextField/TextField.d.ts +2 -2
  291. package/dist/esm/dts/index.d.ts +1 -0
  292. package/dist/esm/index.css +11 -4
  293. package/dist/esm/index.mjs +40 -0
  294. package/dist/esm/index.mjs.map +1 -1
  295. package/dist/index.d.ts +304 -3
  296. package/dist/styles.css +1 -1
  297. package/locales/cy.json +1 -1
  298. package/locales/ht.json +1 -1
  299. package/locales/km-KH.json +1 -1
  300. package/locales/si-LK.json +1 -1
  301. package/locales/sk.json +1 -1
  302. package/package.json +15 -1
@@ -0,0 +1,38 @@
1
+ import { getMarkRange } from './getMarkRange.mjs';
2
+
3
+ /** Remove part or all of the Mark from the current selection */
4
+ var removeMark = function (type, options) {
5
+ if (options === void 0) {
6
+ options = {
7
+ toExtent: false
8
+ };
9
+ }
10
+ return function (state, dispatch) {
11
+ var tr = state.tr,
12
+ selection = state.selection,
13
+ doc = state.doc;
14
+ var from = selection.from,
15
+ to = selection.to;
16
+ var $from = selection.$from;
17
+ if (!dispatch) return false;
18
+ if (selection.empty) {
19
+ dispatch(tr.removeStoredMark(type));
20
+ } else {
21
+ if (options.range || options.toExtent) {
22
+ var range = options.range || getMarkRange($from, type);
23
+ if (range) {
24
+ from = range.from;
25
+ to = range.to;
26
+ }
27
+ }
28
+ var hasMark = doc.rangeHasMark(from, to, type);
29
+ if (hasMark) {
30
+ tr.removeMark(from, to, type);
31
+ }
32
+ dispatch(tr);
33
+ }
34
+ return true;
35
+ };
36
+ };
37
+ export { removeMark };
38
+ //# sourceMappingURL=removeMark.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeMark.mjs","sources":["../../../../../src/RichTextEditor/utils/commands/removeMark.ts"],"sourcesContent":["import { EditorState, Transaction } from \"prosemirror-state\"\nimport { CommandFactory } from \"../core/types\"\nimport { getMarkRange } from \"./getMarkRange\"\n\n/** Remove part or all of the Mark from the current selection */\nexport const removeMark: CommandFactory =\n (type, options = { toExtent: false }) =>\n (state: EditorState, dispatch?: (tx: Transaction) => void) => {\n const { tr, selection, doc } = state\n let { from, to } = selection\n const { $from } = selection\n\n if (!dispatch) return false\n if (selection.empty) {\n dispatch(tr.removeStoredMark(type))\n } else {\n if (options.range || options.toExtent) {\n const range = options.range || getMarkRange($from, type)\n if (range) {\n from = range.from\n to = range.to\n }\n }\n const hasMark = doc.rangeHasMark(from, to, type)\n if (hasMark) {\n tr.removeMark(from, to, type)\n }\n dispatch(tr)\n }\n\n return true\n }\n"],"names":["removeMark","type","options","toExtent","state","dispatch","tr","selection","doc","from","to","$from","empty","removeStoredMark","range","getMarkRange","hasMark","rangeHasMark"],"mappings":";;AAIA;AACa,IAAAA,UAAU,GACrB,SAAAA,CAACC,IAAI,EAAEC,OAA6B,EAAA;EAA7B,IAAAA,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAA,GAAA;MAAYC,QAAQ,EAAE;IAAK,CAAE;EAAA;EACpC,OAAA,UAACC,KAAkB,EAAEC,QAAoC,EAAA;IAC/C,IAAAC,EAAE,GAAqBF,KAAK,CAAAE,EAA1B;MAAEC,SAAS,GAAUH,KAAK,CAAAG,SAAf;MAAEC,GAAG,GAAKJ,KAAK,IAAV;IACpB,IAAAK,IAAI,GAASF,SAAS,CAAAE,IAAlB;MAAEC,EAAE,GAAKH,SAAS,CAAAG,EAAd;IACN,IAAAC,KAAK,GAAKJ,SAAS,CAAAI,KAAd;IAEb,IAAI,CAACN,QAAQ,EAAE,OAAO,KAAK;IAC3B,IAAIE,SAAS,CAACK,KAAK,EAAE;MACnBP,QAAQ,CAACC,EAAE,CAACO,gBAAgB,CAACZ,IAAI,CAAC,CAAC;IACpC,CAAA,MAAM;MACL,IAAIC,OAAO,CAACY,KAAK,IAAIZ,OAAO,CAACC,QAAQ,EAAE;QACrC,IAAMW,KAAK,GAAGZ,OAAO,CAACY,KAAK,IAAIC,YAAY,CAACJ,KAAK,EAAEV,IAAI,CAAC;QACxD,IAAIa,KAAK,EAAE;UACTL,IAAI,GAAGK,KAAK,CAACL,IAAI;UACjBC,EAAE,GAAGI,KAAK,CAACJ,EAAE;QACd;MACF;MACD,IAAMM,OAAO,GAAGR,GAAG,CAACS,YAAY,CAACR,IAAI,EAAEC,EAAE,EAAET,IAAI,CAAC;MAChD,IAAIe,OAAO,EAAE;QACXV,EAAE,CAACN,UAAU,CAACS,IAAI,EAAEC,EAAE,EAAET,IAAI,CAAC;MAC9B;MACDI,QAAQ,CAACC,EAAE,CAAC;IACb;IAED,OAAO,IAAI;GACZ;AAxBD,CAAA;"}
@@ -0,0 +1,36 @@
1
+ import { getMarkRange } from './getMarkRange.mjs';
2
+
3
+ /** Update Mark attributes, create nested Marks or split Marks of the same type */
4
+ var updateMark = function (type, attrs, options) {
5
+ if (options === void 0) {
6
+ options = {
7
+ toExtent: false
8
+ };
9
+ }
10
+ return function (state, dispatch) {
11
+ if (!dispatch) return false;
12
+ var tr = state.tr,
13
+ selection = state.selection,
14
+ doc = state.doc;
15
+ var from = selection.from,
16
+ to = selection.to;
17
+ var $from = selection.$from,
18
+ empty = selection.empty;
19
+ if (empty || options.toExtent) {
20
+ var range = getMarkRange($from, type);
21
+ if (range) {
22
+ from = range.from;
23
+ to = range.to;
24
+ }
25
+ }
26
+ var hasMark = doc.rangeHasMark(from, to, type);
27
+ if (hasMark) {
28
+ tr.removeMark(from, to, type);
29
+ }
30
+ tr.addMark(from, to, type.create(attrs));
31
+ dispatch(tr);
32
+ return true;
33
+ };
34
+ };
35
+ export { updateMark };
36
+ //# sourceMappingURL=updateMark.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateMark.mjs","sources":["../../../../../src/RichTextEditor/utils/commands/updateMark.ts"],"sourcesContent":["import { EditorState, Transaction } from \"prosemirror-state\"\nimport { CommandFactory } from \"../core/types\"\nimport { getMarkRange } from \"./getMarkRange\"\n\n/** Update Mark attributes, create nested Marks or split Marks of the same type */\nexport const updateMark: CommandFactory =\n (type, attrs, options = { toExtent: false }) =>\n (state: EditorState, dispatch?: (tx: Transaction) => void) => {\n if (!dispatch) return false\n\n const { tr, selection, doc } = state\n let { from, to } = selection\n const { $from, empty } = selection\n\n if (empty || options.toExtent) {\n const range = getMarkRange($from, type)\n if (range) {\n from = range.from\n to = range.to\n }\n }\n\n const hasMark = doc.rangeHasMark(from, to, type)\n\n if (hasMark) {\n tr.removeMark(from, to, type)\n }\n tr.addMark(from, to, type.create(attrs))\n dispatch(tr)\n\n return true\n }\n"],"names":["updateMark","type","attrs","options","toExtent","state","dispatch","tr","selection","doc","from","to","$from","empty","range","getMarkRange","hasMark","rangeHasMark","removeMark","addMark","create"],"mappings":";;AAIA;IACaA,UAAU,GACrB,SAAAA,CAACC,IAAI,EAAEC,KAAK,EAAEC,OAA6B,EAAA;EAA7B,IAAAA,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAA,GAAA;MAAYC,QAAQ,EAAE;IAAK,CAAE;EAAA;EAC3C,OAAA,UAACC,KAAkB,EAAEC,QAAoC,EAAA;IACvD,IAAI,CAACA,QAAQ,EAAE,OAAO,KAAK;IAEnB,IAAAC,EAAE,GAAqBF,KAAK,CAAAE,EAA1B;MAAEC,SAAS,GAAUH,KAAK,CAAAG,SAAf;MAAEC,GAAG,GAAKJ,KAAK,IAAV;IACpB,IAAAK,IAAI,GAASF,SAAS,CAAAE,IAAlB;MAAEC,EAAE,GAAKH,SAAS,CAAAG,EAAd;IACN,IAAAC,KAAK,GAAYJ,SAAS,CAAAI,KAArB;MAAEC,KAAK,GAAKL,SAAS,CAAAK,KAAd;IAEpB,IAAIA,KAAK,IAAIV,OAAO,CAACC,QAAQ,EAAE;MAC7B,IAAMU,KAAK,GAAGC,YAAY,CAACH,KAAK,EAAEX,IAAI,CAAC;MACvC,IAAIa,KAAK,EAAE;QACTJ,IAAI,GAAGI,KAAK,CAACJ,IAAI;QACjBC,EAAE,GAAGG,KAAK,CAACH,EAAE;MACd;IACF;IAED,IAAMK,OAAO,GAAGP,GAAG,CAACQ,YAAY,CAACP,IAAI,EAAEC,EAAE,EAAEV,IAAI,CAAC;IAEhD,IAAIe,OAAO,EAAE;MACXT,EAAE,CAACW,UAAU,CAACR,IAAI,EAAEC,EAAE,EAAEV,IAAI,CAAC;IAC9B;IACDM,EAAE,CAACY,OAAO,CAACT,IAAI,EAAEC,EAAE,EAAEV,IAAI,CAACmB,MAAM,CAAClB,KAAK,CAAC,CAAC;IACxCI,QAAQ,CAACC,EAAE,CAAC;IAEZ,OAAO,IAAI;GACZ;AAxBD,CAAA;"}
@@ -0,0 +1,34 @@
1
+ import { RemoveMarkStep } from 'prosemirror-transform';
2
+
3
+ // This is a variation on the removeMark transform in
4
+ // https://github.com/ProseMirror/prosemirror-transform/blob/master/src/mark.js#L44
5
+ /** This will walk the full doc and remove the Marks that fail the validator method */
6
+ var validateAndRemoveMarks = function (markType, validator) {
7
+ return function (state, dispatch) {
8
+ if (!dispatch) return false;
9
+ var from = 0;
10
+ var to = state.doc.content.size;
11
+ var tr = state.tr;
12
+ var matched = [];
13
+ var step = 0;
14
+ tr.doc.nodesBetween(from, to, function (node, pos) {
15
+ step++;
16
+ var foundMark = markType.isInSet(node.marks);
17
+ if (foundMark && !validator(foundMark.attrs)) {
18
+ matched.push({
19
+ style: foundMark,
20
+ from: Math.max(pos, from),
21
+ to: Math.min(pos + node.nodeSize, to),
22
+ step: step
23
+ });
24
+ }
25
+ });
26
+ matched.forEach(function (m) {
27
+ return tr.step(new RemoveMarkStep(m.from, m.to, m.style));
28
+ });
29
+ dispatch(tr);
30
+ return true;
31
+ };
32
+ };
33
+ export { validateAndRemoveMarks };
34
+ //# sourceMappingURL=validateAndRemoveMarks.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateAndRemoveMarks.mjs","sources":["../../../../../src/RichTextEditor/utils/commands/validateAndRemoveMarks.ts"],"sourcesContent":["import { Mark, MarkType } from \"prosemirror-model\"\nimport { EditorState, Transaction } from \"prosemirror-state\"\nimport { RemoveMarkStep } from \"prosemirror-transform\"\n\ntype KnownAttrs = {\n varibleHref?: string\n href?: string\n}\n\nexport type AttrsValidator = (\n attrs: KnownAttrs & { [key: string]: unknown }\n) => boolean | unknown\n\ntype MatchedMark = {\n style: Mark\n from: number\n to: number\n step: number\n}\n\n// This is a variation on the removeMark transform in\n// https://github.com/ProseMirror/prosemirror-transform/blob/master/src/mark.js#L44\n/** This will walk the full doc and remove the Marks that fail the validator method */\nexport const validateAndRemoveMarks =\n (markType: MarkType, validator: AttrsValidator) =>\n (state: EditorState, dispatch?: (tx: Transaction) => void) => {\n if (!dispatch) return false\n\n const from = 0\n const to = state.doc.content.size\n const { tr } = state\n\n const matched: MatchedMark[] = []\n\n let step = 0\n\n tr.doc.nodesBetween(from, to, (node, pos) => {\n step++\n\n const foundMark = markType.isInSet(node.marks)\n\n if (foundMark && !validator(foundMark.attrs)) {\n matched.push({\n style: foundMark,\n from: Math.max(pos, from),\n to: Math.min(pos + node.nodeSize, to),\n step,\n })\n }\n })\n\n matched.forEach(m => tr.step(new RemoveMarkStep(m.from, m.to, m.style)))\n dispatch(tr)\n return true\n }\n"],"names":["validateAndRemoveMarks","markType","validator","state","dispatch","from","to","doc","content","size","tr","matched","step","nodesBetween","node","pos","foundMark","isInSet","marks","attrs","push","style","Math","max","min","nodeSize","forEach","m","RemoveMarkStep"],"mappings":";;AAoBA;AACA;AACA;AACa,IAAAA,sBAAsB,GACjC,SAAAA,CAACC,QAAkB,EAAEC,SAAyB,EAAA;EAC9C,OAAA,UAACC,KAAkB,EAAEC,QAAoC,EAAA;IACvD,IAAI,CAACA,QAAQ,EAAE,OAAO,KAAK;IAE3B,IAAMC,IAAI,GAAG,CAAC;IACd,IAAMC,EAAE,GAAGH,KAAK,CAACI,GAAG,CAACC,OAAO,CAACC,IAAI;IACzB,IAAAC,EAAE,GAAKP,KAAK,CAAAO,EAAV;IAEV,IAAMC,OAAO,GAAkB,EAAE;IAEjC,IAAIC,IAAI,GAAG,CAAC;IAEZF,EAAE,CAACH,GAAG,CAACM,YAAY,CAACR,IAAI,EAAEC,EAAE,EAAE,UAACQ,IAAI,EAAEC,GAAG,EAAA;MACtCH,IAAI,EAAE;MAEN,IAAMI,SAAS,GAAGf,QAAQ,CAACgB,OAAO,CAACH,IAAI,CAACI,KAAK,CAAC;MAE9C,IAAIF,SAAS,IAAI,CAACd,SAAS,CAACc,SAAS,CAACG,KAAK,CAAC,EAAE;QAC5CR,OAAO,CAACS,IAAI,CAAC;UACXC,KAAK,EAAEL,SAAS;UAChBX,IAAI,EAAEiB,IAAI,CAACC,GAAG,CAACR,GAAG,EAAEV,IAAI,CAAC;UACzBC,EAAE,EAAEgB,IAAI,CAACE,GAAG,CAACT,GAAG,GAAGD,IAAI,CAACW,QAAQ,EAAEnB,EAAE,CAAC;UACrCM,IAAI,EAAAA;QACL,CAAA,CAAC;MACH;IACH,CAAC,CAAC;IAEFD,OAAO,CAACe,OAAO,CAAC,UAAAC,CAAC,EAAA;MAAI,OAAAjB,EAAE,CAACE,IAAI,CAAC,IAAIgB,cAAc,CAACD,CAAC,CAACtB,IAAI,EAAEsB,CAAC,CAACrB,EAAE,EAAEqB,CAAC,CAACN,KAAK,CAAC,CAAC;IAAlD,CAAkD,CAAC;IACxEjB,QAAQ,CAACM,EAAE,CAAC;IACZ,OAAO,IAAI;GACZ;AA7BD,CAAA;"}
@@ -0,0 +1,51 @@
1
+ import { Transaction } from 'prosemirror-state';
2
+ import { EditorView } from 'prosemirror-view';
3
+
4
+ /**
5
+ * createRichTextEditor
6
+ * Initialize a ProseMirror EditorView
7
+ */
8
+ var createRichTextEditor = function (_a) {
9
+ var initialEditorState = _a.initialEditorState,
10
+ node = _a.node,
11
+ _b = _a.onChange,
12
+ onChange = _b === void 0 ? function () {
13
+ return undefined;
14
+ } : _b,
15
+ attributes = _a.attributes,
16
+ _c = _a.isEditable,
17
+ isEditable = _c === void 0 ? function () {
18
+ return true;
19
+ } : _c;
20
+ // Handle transactions eminating from the EditorView instance
21
+ var dispatch = function (tx) {
22
+ var newEditorState = editorView && editorView.state.apply(tx);
23
+ if (newEditorState) {
24
+ onChange(newEditorState);
25
+ editorView && editorView.updateState(newEditorState);
26
+ }
27
+ };
28
+ // Allow the dispatcher to handle either a Command or a Transaction so we can
29
+ // change the state more ergonomically upstream
30
+ var dispatchCommandOrTransaction = function (commandOrTransaction) {
31
+ if (commandOrTransaction instanceof Transaction) {
32
+ dispatch(commandOrTransaction);
33
+ } else if (editorView) {
34
+ commandOrTransaction(editorView.state, dispatch);
35
+ }
36
+ };
37
+ var editorView = new EditorView(node, {
38
+ state: initialEditorState,
39
+ dispatchTransaction: dispatchCommandOrTransaction,
40
+ attributes: attributes,
41
+ editable: isEditable
42
+ });
43
+ return {
44
+ destroy: function () {
45
+ editorView && editorView.destroy();
46
+ },
47
+ dispatchTransaction: dispatchCommandOrTransaction
48
+ };
49
+ };
50
+ export { createRichTextEditor };
51
+ //# sourceMappingURL=createRichTextEditor.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createRichTextEditor.mjs","sources":["../../../../../src/RichTextEditor/utils/core/createRichTextEditor.ts"],"sourcesContent":["import { EditorState, Transaction } from \"prosemirror-state\"\nimport { EditorView as ProseMirrorEditorView } from \"prosemirror-view\"\nimport { CommandOrTransaction } from \"./types\"\n\ntype EditorAPI = {\n destroy: () => void\n dispatchTransaction: (maybeCommand: CommandOrTransaction) => void\n}\n\ntype EditorArgs = {\n initialEditorState: EditorState\n node: HTMLElement\n onChange: (editorState: EditorState) => void\n /*\n * Pass in HTML attributes into the parent RTE node\n */\n attributes?: {\n [name: string]: string\n }\n isEditable?: () => boolean\n}\n\n/**\n * createRichTextEditor\n * Initialize a ProseMirror EditorView\n */\nexport const createRichTextEditor = ({\n initialEditorState,\n node,\n onChange = () => undefined,\n attributes,\n isEditable = () => true,\n}: EditorArgs): EditorAPI => {\n // Handle transactions eminating from the EditorView instance\n const dispatch = (tx: Transaction): void => {\n const newEditorState = editorView && editorView.state.apply(tx)\n if (newEditorState) {\n onChange(newEditorState)\n editorView && editorView.updateState(newEditorState)\n }\n }\n\n // Allow the dispatcher to handle either a Command or a Transaction so we can\n // change the state more ergonomically upstream\n const dispatchCommandOrTransaction = (\n commandOrTransaction: CommandOrTransaction\n ): void => {\n if (commandOrTransaction instanceof Transaction) {\n dispatch(commandOrTransaction)\n } else if (editorView) {\n commandOrTransaction(editorView.state, dispatch)\n }\n }\n\n const editorView = new ProseMirrorEditorView(node, {\n state: initialEditorState,\n dispatchTransaction: dispatchCommandOrTransaction,\n attributes,\n editable: isEditable,\n })\n\n return {\n destroy: () => {\n editorView && editorView.destroy()\n },\n dispatchTransaction: dispatchCommandOrTransaction,\n }\n}\n"],"names":["createRichTextEditor","_a","initialEditorState","node","_b","onChange","undefined","attributes","_c","isEditable","dispatch","tx","newEditorState","editorView","state","apply","updateState","dispatchCommandOrTransaction","commandOrTransaction","Transaction","ProseMirrorEditorView","dispatchTransaction","editable","destroy"],"mappings":";;;AAsBA;;;AAGG;AACI,IAAMA,oBAAoB,GAAG,SAAAA,CAACC,EAMxB,EAAA;EALX,IAAAC,kBAAkB,GAAAD,EAAA,CAAAC,kBAAA;IAClBC,IAAI,GAAAF,EAAA,CAAAE,IAAA;IACJC,EAAA,GAAAH,EAAA,CAAAI,QAA0B;IAA1BA,QAAQ,GAAGD,EAAA,KAAA,KAAA,CAAA,GAAA,YAAA;MAAM,OAAAE,SAAS;IAAA,CAAA,GAAAF,EAAA;IAC1BG,UAAU,GAAAN,EAAA,CAAAM,UAAA;IACVC,EAAA,GAAAP,EAAA,CAAAQ,UAAuB;IAAvBA,UAAU,GAAGD,EAAA,KAAA,KAAA,CAAA,GAAA,YAAA;MAAM,OAAA,IAAI;IAAA,CAAA,GAAAA,EAAA;;EAGvB,IAAME,QAAQ,GAAG,SAAAA,CAACC,EAAe,EAAA;IAC/B,IAAMC,cAAc,GAAGC,UAAU,IAAIA,UAAU,CAACC,KAAK,CAACC,KAAK,CAACJ,EAAE,CAAC;IAC/D,IAAIC,cAAc,EAAE;MAClBP,QAAQ,CAACO,cAAc,CAAC;MACxBC,UAAU,IAAIA,UAAU,CAACG,WAAW,CAACJ,cAAc,CAAC;IACrD;EACH,CAAC;;;EAID,IAAMK,4BAA4B,GAAG,SAAAA,CACnCC,oBAA0C,EAAA;IAE1C,IAAIA,oBAAoB,YAAYC,WAAW,EAAE;MAC/CT,QAAQ,CAACQ,oBAAoB,CAAC;IAC/B,CAAA,MAAM,IAAIL,UAAU,EAAE;MACrBK,oBAAoB,CAACL,UAAU,CAACC,KAAK,EAAEJ,QAAQ,CAAC;IACjD;EACH,CAAC;EAED,IAAMG,UAAU,GAAG,IAAIO,UAAqB,CAACjB,IAAI,EAAE;IACjDW,KAAK,EAAEZ,kBAAkB;IACzBmB,mBAAmB,EAAEJ,4BAA4B;IACjDV,UAAU,EAAAA,UAAA;IACVe,QAAQ,EAAEb;EACX,CAAA,CAAC;EAEF,OAAO;IACLc,OAAO,EAAE,SAAAA,CAAA,EAAA;MACPV,UAAU,IAAIA,UAAU,CAACU,OAAO,EAAE;IACnC,CAAA;IACDF,mBAAmB,EAAEJ;GACtB;AACH,CAAA;"}
@@ -0,0 +1,74 @@
1
+ import { __assign } from 'tslib';
2
+ import { useState, useRef, useCallback, useEffect } from 'react';
3
+ import { createRichTextEditor } from '../createRichTextEditor.mjs';
4
+
5
+ /**
6
+ * useRichTextEditor
7
+ * React hook to initialize a ProseMirror editor, handle binding it to the DOM,
8
+ * and updating the state within React’s lifecycle.
9
+ *
10
+ * @param {initialEditorState} ProseMirror state
11
+ * @returns {Array}
12
+ */
13
+ var useRichTextEditor = function (initialEditorState,
14
+ /*
15
+ * Pass in HTML attributes into the parent RTE node
16
+ */
17
+ attributes, options) {
18
+ options = __assign({
19
+ editable: true
20
+ }, options);
21
+ var _a = useState(initialEditorState),
22
+ editorState = _a[0],
23
+ setEditorState = _a[1];
24
+ // Refs to hold the methods returned from ProseMirror’s initialization
25
+ var destroyEditorRef = useRef();
26
+ var dispatchTransactionRef = useRef(function () {
27
+ return undefined;
28
+ });
29
+ // Construct a consistent reference to call the dispatchTransactionRef without
30
+ // forcing the consumer to unwind it
31
+ var dispatchTransaction = useCallback(function (commandOrTransaction) {
32
+ dispatchTransactionRef.current(commandOrTransaction);
33
+ }, [dispatchTransactionRef]);
34
+ // Hold editableStatus as a ref so we can toggle its status
35
+ var editableStatusRef = useRef(options.editable);
36
+ var setEditableStatus = useCallback(function (status) {
37
+ editableStatusRef.current = status;
38
+ // Trigger an update within ProseMirror by issuing a noop transaction
39
+ dispatchTransaction(function (state, dispatch) {
40
+ if (!dispatch) return false;
41
+ dispatch(state.tr);
42
+ return true;
43
+ });
44
+ }, [editableStatusRef]);
45
+ var editorRef = useCallback(function (node) {
46
+ if (node !== null) {
47
+ var instance = createRichTextEditor({
48
+ node: node,
49
+ initialEditorState: editorState,
50
+ onChange: setEditorState,
51
+ isEditable: function () {
52
+ return editableStatusRef.current;
53
+ },
54
+ attributes: attributes
55
+ });
56
+ destroyEditorRef.current = instance.destroy;
57
+ dispatchTransactionRef.current = instance.dispatchTransaction;
58
+ }
59
+ },
60
+ // Including editorState in the dependencies here will cause an endless
61
+ // loop as the initialization changes its value
62
+ [setEditorState, editableStatusRef]);
63
+ // Tear down ProseMirror when the consuming component is unmounted
64
+ useEffect(function () {
65
+ return function () {
66
+ if (destroyEditorRef.current) {
67
+ destroyEditorRef.current();
68
+ }
69
+ };
70
+ }, [destroyEditorRef]);
71
+ return [editorRef, editorState, dispatchTransaction, setEditableStatus];
72
+ };
73
+ export { useRichTextEditor };
74
+ //# sourceMappingURL=useRichTextEditor.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRichTextEditor.mjs","sources":["../../../../../../src/RichTextEditor/utils/core/hooks/useRichTextEditor.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\"\nimport { EditorState } from \"prosemirror-state\"\nimport { createRichTextEditor } from \"../createRichTextEditor\"\nimport { CommandOrTransaction } from \"../types\"\n\ntype RTEOptions = {\n editable: boolean\n}\n\ntype SetEditableStatus = (status: boolean) => void\n\ntype UseRichTextEditorReturnValue = [\n React.RefCallback<HTMLElement>,\n EditorState,\n (commandOrTransaction: CommandOrTransaction) => void,\n SetEditableStatus,\n]\n\n/**\n * useRichTextEditor\n * React hook to initialize a ProseMirror editor, handle binding it to the DOM,\n * and updating the state within React’s lifecycle.\n *\n * @param {initialEditorState} ProseMirror state\n * @returns {Array}\n */\nexport const useRichTextEditor = (\n initialEditorState: EditorState,\n /*\n * Pass in HTML attributes into the parent RTE node\n */\n attributes?: Record<string, string>,\n options?: RTEOptions\n): UseRichTextEditorReturnValue => {\n options = {\n editable: true,\n ...options,\n }\n const [editorState, setEditorState] =\n useState<EditorState>(initialEditorState)\n // Refs to hold the methods returned from ProseMirror’s initialization\n const destroyEditorRef = useRef<() => void>()\n const dispatchTransactionRef = useRef<\n (commandOrTransaction: CommandOrTransaction) => void\n >(() => undefined)\n\n // Construct a consistent reference to call the dispatchTransactionRef without\n // forcing the consumer to unwind it\n const dispatchTransaction = useCallback(\n (commandOrTransaction: CommandOrTransaction) => {\n dispatchTransactionRef.current(commandOrTransaction)\n },\n [dispatchTransactionRef]\n )\n\n // Hold editableStatus as a ref so we can toggle its status\n const editableStatusRef = useRef<boolean>(options.editable)\n const setEditableStatus = useCallback<SetEditableStatus>(\n status => {\n editableStatusRef.current = status\n // Trigger an update within ProseMirror by issuing a noop transaction\n dispatchTransaction((state, dispatch) => {\n if (!dispatch) return false\n dispatch(state.tr)\n return true\n })\n },\n [editableStatusRef]\n )\n\n const editorRef = useCallback(\n (node: HTMLElement) => {\n if (node !== null) {\n const instance = createRichTextEditor({\n node,\n initialEditorState: editorState,\n onChange: setEditorState,\n isEditable: () => editableStatusRef.current,\n attributes,\n })\n destroyEditorRef.current = instance.destroy\n dispatchTransactionRef.current = instance.dispatchTransaction\n }\n },\n\n // Including editorState in the dependencies here will cause an endless\n // loop as the initialization changes its value\n [setEditorState, editableStatusRef]\n )\n\n // Tear down ProseMirror when the consuming component is unmounted\n useEffect(\n () => () => {\n if (destroyEditorRef.current) {\n destroyEditorRef.current()\n }\n },\n [destroyEditorRef]\n )\n\n return [editorRef, editorState, dispatchTransaction, setEditableStatus]\n}\n"],"names":["useRichTextEditor","initialEditorState","attributes","options","editable","_a","useState","editorState","setEditorState","destroyEditorRef","useRef","dispatchTransactionRef","undefined","dispatchTransaction","useCallback","commandOrTransaction","current","editableStatusRef","setEditableStatus","status","state","dispatch","tr","editorRef","node","instance","createRichTextEditor","onChange","isEditable","destroy","useEffect"],"mappings":";;;;AAkBA;;;;;;;AAOG;AACI,IAAMA,iBAAiB,GAAG,SAAAA,CAC/BC,kBAA+B;AAC/B;;AAEG;AACHC,UAAmC,EACnCC,OAAoB,EAAA;EAEpBA,OAAO;IACLC,QAAQ,EAAE;EACP,CAAA,EAAAD,OAAO,CACX;EACK,IAAAE,EAAA,GACJC,QAAQ,CAAcL,kBAAkB,CAAC;IADpCM,WAAW,GAAAF,EAAA,CAAA,CAAA,CAAA;IAAEG,cAAc,GAAAH,EAAA,CAAA,CAAA,CACS;;EAE3C,IAAMI,gBAAgB,GAAGC,MAAM,EAAc;EAC7C,IAAMC,sBAAsB,GAAGD,MAAM,CAEnC,YAAA;IAAM,OAAAE,SAAS;EAAA,CAAA,CAAC;;;EAIlB,IAAMC,mBAAmB,GAAGC,WAAW,CACrC,UAACC,oBAA0C,EAAA;IACzCJ,sBAAsB,CAACK,OAAO,CAACD,oBAAoB,CAAC;EACtD,CAAC,EACD,CAACJ,sBAAsB,CAAC,CACzB;;EAGD,IAAMM,iBAAiB,GAAGP,MAAM,CAAUP,OAAO,CAACC,QAAQ,CAAC;EAC3D,IAAMc,iBAAiB,GAAGJ,WAAW,CACnC,UAAAK,MAAM,EAAA;IACJF,iBAAiB,CAACD,OAAO,GAAGG,MAAM;;IAElCN,mBAAmB,CAAC,UAACO,KAAK,EAAEC,QAAQ,EAAA;MAClC,IAAI,CAACA,QAAQ,EAAE,OAAO,KAAK;MAC3BA,QAAQ,CAACD,KAAK,CAACE,EAAE,CAAC;MAClB,OAAO,IAAI;IACb,CAAC,CAAC;EACJ,CAAC,EACD,CAACL,iBAAiB,CAAC,CACpB;EAED,IAAMM,SAAS,GAAGT,WAAW,CAC3B,UAACU,IAAiB,EAAA;IAChB,IAAIA,IAAI,KAAK,IAAI,EAAE;MACjB,IAAMC,QAAQ,GAAGC,oBAAoB,CAAC;QACpCF,IAAI,EAAAA,IAAA;QACJvB,kBAAkB,EAAEM,WAAW;QAC/BoB,QAAQ,EAAEnB,cAAc;QACxBoB,UAAU,EAAE,SAAAA,CAAA,EAAM;UAAA,OAAAX,iBAAiB,CAACD,OAAO;QAAA,CAAA;QAC3Cd,UAAU,EAAAA;MACX,CAAA,CAAC;MACFO,gBAAgB,CAACO,OAAO,GAAGS,QAAQ,CAACI,OAAO;MAC3ClB,sBAAsB,CAACK,OAAO,GAAGS,QAAQ,CAACZ,mBAAmB;IAC9D;EACF,CAAA;;;EAID,CAACL,cAAc,EAAES,iBAAiB,CAAC,CACpC;;EAGDa,SAAS,CACP;IAAM,OAAA,YAAA;MACJ,IAAIrB,gBAAgB,CAACO,OAAO,EAAE;QAC5BP,gBAAgB,CAACO,OAAO,CAAA,CAAE;MAC3B;IACH,CAAC;EAAA,CAAA,EACD,CAACP,gBAAgB,CAAC,CACnB;EAED,OAAO,CAACc,SAAS,EAAEhB,WAAW,EAAEM,mBAAmB,EAAEK,iBAAiB,CAAC;AACzE,CAAA;"}
@@ -0,0 +1,23 @@
1
+ import { wrappingInputRule } from 'prosemirror-inputrules';
2
+
3
+ // Given a list node type, returns an input rule that turns a number
4
+ // followed by a dot at the start of a textblock into an ordered list.
5
+ // Copied from https://github.com/ProseMirror/prosemirror-example-setup/blob/master/src/inputrules.js
6
+ var orderedListRule = function (nodeType) {
7
+ return wrappingInputRule(/^(\d+)\.\s$/, nodeType, function (match) {
8
+ return {
9
+ order: +match[1]
10
+ };
11
+ }, function (match, node) {
12
+ return node.childCount + node.attrs.order == +match[1];
13
+ });
14
+ };
15
+ // Given a list node type, returns an input rule that turns a bullet
16
+ // (dash, plush, or asterisk) at the start of a textblock into a
17
+ // bullet list.
18
+ // Copied from https://github.com/ProseMirror/prosemirror-example-setup/blob/master/src/inputrules.js
19
+ var bulletListRule = function (nodeType) {
20
+ return wrappingInputRule(/^\s*([-+*])\s$/, nodeType);
21
+ };
22
+ export { bulletListRule, orderedListRule };
23
+ //# sourceMappingURL=inputrules.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputrules.mjs","sources":["../../../../../src/RichTextEditor/utils/core/inputrules.ts"],"sourcesContent":["import { InputRule, wrappingInputRule } from \"prosemirror-inputrules\"\nimport { NodeType } from \"prosemirror-model\"\n\n// Given a list node type, returns an input rule that turns a number\n// followed by a dot at the start of a textblock into an ordered list.\n// Copied from https://github.com/ProseMirror/prosemirror-example-setup/blob/master/src/inputrules.js\nexport const orderedListRule = (nodeType: NodeType): InputRule =>\n wrappingInputRule(\n /^(\\d+)\\.\\s$/,\n nodeType,\n match => ({ order: +match[1] }),\n (match, node) => node.childCount + node.attrs.order == +match[1]\n )\n\n// Given a list node type, returns an input rule that turns a bullet\n// (dash, plush, or asterisk) at the start of a textblock into a\n// bullet list.\n// Copied from https://github.com/ProseMirror/prosemirror-example-setup/blob/master/src/inputrules.js\nexport const bulletListRule = (nodeType: NodeType): InputRule =>\n wrappingInputRule(/^\\s*([-+*])\\s$/, nodeType)\n"],"names":["orderedListRule","nodeType","wrappingInputRule","match","order","node","childCount","attrs","bulletListRule"],"mappings":";;AAGA;AACA;AACA;AACO,IAAMA,eAAe,GAAG,SAAAA,CAACC,QAAkB,EAAA;EAChD,OAAAC,iBAAiB,CACf,aAAa,EACbD,QAAQ,EACR,UAAAE,KAAK,EAAI;IAAA,OAAC;MAAEC,KAAK,EAAE,CAACD,KAAK,CAAC,CAAC;IAAG,CAAA;EAAC,CAAA,EAC/B,UAACA,KAAK,EAAEE,IAAI,EAAA;IAAK,OAAAA,IAAI,CAACC,UAAU,GAAGD,IAAI,CAACE,KAAK,CAACH,KAAK,IAAI,CAACD,KAAK,CAAC,CAAC,CAAC;EAAA,CAAA,CACjE;AALD,CAKC;AAEH;AACA;AACA;AACA;AACO,IAAMK,cAAc,GAAG,SAAAA,CAACP,QAAkB,EAAA;EAC/C,OAAAC,iBAAiB,CAAC,gBAAgB,EAAED,QAAQ,CAAC;AAA7C,CAAA;"}
@@ -0,0 +1,37 @@
1
+ import { Node } from 'prosemirror-model';
2
+ import { EditorState } from 'prosemirror-state';
3
+
4
+ /**
5
+ * createEditorState
6
+ * Create a ProseMirror EditorState. Wrapper for EditorState.create to make the
7
+ * API obvious to consumers
8
+ */
9
+ var createEditorState = function (schema, doc, plugins) {
10
+ if (plugins === void 0) {
11
+ plugins = [];
12
+ }
13
+ return EditorState.create({
14
+ doc: doc,
15
+ schema: schema,
16
+ plugins: plugins
17
+ });
18
+ };
19
+ /**
20
+ * Create a ProseMirror doc node from the combination of a schema and the object
21
+ * representation of a document
22
+ */
23
+ var createDocNode = function (schema, docObject) {
24
+ return Node.fromJSON(schema, docObject);
25
+ };
26
+ /**
27
+ * Create a ProseMirror doc node from the combination of a schema and the doc’s
28
+ * content array (rather than the top-level doc node).
29
+ */
30
+ var createDocNodeFromContent = function (schema, docContent) {
31
+ return createDocNode(schema, {
32
+ type: "doc",
33
+ content: docContent
34
+ });
35
+ };
36
+ export { createDocNode, createDocNodeFromContent, createEditorState };
37
+ //# sourceMappingURL=state.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.mjs","sources":["../../../../../src/RichTextEditor/utils/core/state.ts"],"sourcesContent":["import { Node, Schema } from \"prosemirror-model\"\nimport { EditorState, Plugin } from \"prosemirror-state\"\nimport { Doc, DocContent } from \"./types\"\n\n/**\n * createEditorState\n * Create a ProseMirror EditorState. Wrapper for EditorState.create to make the\n * API obvious to consumers\n */\nexport const createEditorState = (\n schema: Schema,\n doc: Node | undefined,\n plugins: Plugin[] = []\n): EditorState => EditorState.create({ doc, schema, plugins })\n\n/**\n * Create a ProseMirror doc node from the combination of a schema and the object\n * representation of a document\n */\nexport const createDocNode = (schema: Schema, docObject: Doc): Node =>\n Node.fromJSON(schema, docObject)\n\n/**\n * Create a ProseMirror doc node from the combination of a schema and the doc’s\n * content array (rather than the top-level doc node).\n */\nexport const createDocNodeFromContent = (\n schema: Schema,\n docContent: DocContent\n): Node => createDocNode(schema, { type: \"doc\", content: docContent })\n"],"names":["createEditorState","schema","doc","plugins","EditorState","create","createDocNode","docObject","Node","fromJSON","createDocNodeFromContent","docContent","type","content"],"mappings":";;;AAIA;;;;AAIG;IACUA,iBAAiB,GAAG,SAAAA,CAC/BC,MAAc,EACdC,GAAqB,EACrBC,OAAsB,EAAA;EAAtB,IAAAA,OAAA,KAAA,KAAA,CAAA,EAAA;IAAAA,OAAsB,GAAA,EAAA;EAAA;EACN,OAAAC,WAAW,CAACC,MAAM,CAAC;IAAEH,GAAG,EAAAA,GAAA;IAAED,MAAM,EAAAA,MAAA;IAAEE,OAAO,EAAAA;EAAA,CAAE,CAAC;AAA5C,CAA4C;AAE9D;;;AAGG;AACU,IAAAG,aAAa,GAAG,SAAAA,CAACL,MAAc,EAAEM,SAAc,EAAA;EAC1D,OAAAC,IAAI,CAACC,QAAQ,CAACR,MAAM,EAAEM,SAAS,CAAC;AAAhC,CAAgC;AAElC;;;AAGG;AACU,IAAAG,wBAAwB,GAAG,SAAAA,CACtCT,MAAc,EACdU,UAAsB,EAAA;EACb,OAAAL,aAAa,CAACL,MAAM,EAAE;IAAEW,IAAI,EAAE,KAAK;IAAEC,OAAO,EAAEF;EAAY,CAAA,CAAC;AAA3D,CAAA;"}
@@ -0,0 +1,134 @@
1
+ import debounce from 'lodash.debounce';
2
+ import { Plugin } from 'prosemirror-state';
3
+ import { getMarkAttrs } from '../../commands/getMarkAttrs.mjs';
4
+ import { getMarkRange } from '../../commands/getMarkRange.mjs';
5
+ import 'prosemirror-utils';
6
+ import { markContainsSelection } from '../../commands/markContainsSelection.mjs';
7
+ import { markIsActive } from '../../commands/markIsActive.mjs';
8
+ import { removeMark } from '../../commands/removeMark.mjs';
9
+ import { updateMark } from '../../commands/updateMark.mjs';
10
+ import { validateAndRemoveMarks } from '../../commands/validateAndRemoveMarks.mjs';
11
+ import { LinkEditor } from './components/LinkEditor/LinkEditor.mjs';
12
+ import { createReactTooltipWrapper } from './createReactTooltipWrapper.mjs';
13
+ var LinkManager = /** @class */function () {
14
+ function LinkManager(view, markType, editorComponent, linkAttributeValidator) {
15
+ var _this = this;
16
+ this.editorComponent = editorComponent;
17
+ this.linkActive = function (state) {
18
+ return markIsActive(state, markType);
19
+ };
20
+ this.validateLinks = validateAndRemoveMarks(markType, linkAttributeValidator);
21
+ this.markType = markType;
22
+ this.tooltipTarget = null;
23
+ this.update(view, null);
24
+ this.onResize = debounce(function () {
25
+ _this.update(view, null);
26
+ }, 15);
27
+ }
28
+ LinkManager.prototype.update = function (view, lastState) {
29
+ var state = view.state;
30
+ // Don’t do anything if the document/TextSelection didn't change
31
+ if (lastState && lastState.doc.eq(state.doc) && lastState.selection.eq(state.selection)) {
32
+ return;
33
+ }
34
+ // Is the selection empty or not a link
35
+ //
36
+ // TODO: Also need to check if the selection is _only_ a link. If it covers
37
+ // more than a single mark then we don’t want to allow edited
38
+ if (state.selection.empty || !this.linkActive(state)) {
39
+ this.destroyElement(view);
40
+ return;
41
+ }
42
+ // If there is a selection and we dont have something in DOM
43
+ // then create element and inject
44
+ if (!this.tooltipTarget) {
45
+ this.createElement(view);
46
+ }
47
+ this.updateElement(view);
48
+ };
49
+ LinkManager.prototype.destroy = function () {
50
+ var _a;
51
+ (_a = this.tooltipTarget) === null || _a === void 0 ? void 0 : _a.destroy();
52
+ window.removeEventListener("resize", this.onResize);
53
+ };
54
+ LinkManager.prototype.createElement = function (view) {
55
+ if (!view.dom.parentElement) return;
56
+ this.tooltipTarget = createReactTooltipWrapper(view.dom.parentElement, this.editorComponent, this.getEditorProps(view));
57
+ window.addEventListener("resize", this.onResize);
58
+ };
59
+ LinkManager.prototype.updateElement = function (view) {
60
+ var _a;
61
+ (_a = this.tooltipTarget) === null || _a === void 0 ? void 0 : _a.update(this.getEditorProps(view));
62
+ };
63
+ LinkManager.prototype.destroyElement = function (view) {
64
+ var _a;
65
+ view.dispatch(this.validateLinks);
66
+ (_a = this.tooltipTarget) === null || _a === void 0 ? void 0 : _a.destroy();
67
+ this.tooltipTarget = null;
68
+ };
69
+ LinkManager.prototype.getEditorProps = function (view) {
70
+ var _this = this;
71
+ var selectionPosition = null;
72
+ var selection = view.state.selection;
73
+ var contained = markContainsSelection(view.state, this.markType);
74
+ var $from = selection.$from;
75
+ var range = getMarkRange($from, this.markType);
76
+ var start;
77
+ var end;
78
+ if (!contained && range) {
79
+ start = view.coordsAtPos(range.from);
80
+ end = view.coordsAtPos(range.to);
81
+ } else {
82
+ start = view.coordsAtPos(selection.from);
83
+ if (selection.to === view.state.doc.content.size) {
84
+ end = view.coordsAtPos(selection.to - 1);
85
+ } else {
86
+ end = view.coordsAtPos(selection.to);
87
+ }
88
+ }
89
+ selectionPosition = {
90
+ top: start.top,
91
+ left: start.left,
92
+ width: end.right - start.left,
93
+ height: start.top - start.bottom
94
+ };
95
+ return {
96
+ removeMark: function () {
97
+ view.dispatch(removeMark(_this.markType, {
98
+ toExtent: true
99
+ }));
100
+ },
101
+ updateAttrs: function (attrs) {
102
+ view.dispatch(updateMark(_this.markType, attrs, {
103
+ toExtent: true
104
+ }));
105
+ },
106
+ attrs: getMarkAttrs(view.state, this.markType),
107
+ selectionPosition: selectionPosition,
108
+ focusEditor: function () {
109
+ view.focus();
110
+ }
111
+ };
112
+ };
113
+ return LinkManager;
114
+ }();
115
+ var defaultLinkAttributeValidator = function (attrs) {
116
+ if (attrs == null) {
117
+ return false;
118
+ }
119
+ return attrs.href && attrs.href !== "";
120
+ };
121
+ var createLinkManager = function (_a) {
122
+ var markType = _a.markType,
123
+ _b = _a.editorComponent,
124
+ editorComponent = _b === void 0 ? LinkEditor : _b,
125
+ _c = _a.linkAttributeValidator,
126
+ linkAttributeValidator = _c === void 0 ? defaultLinkAttributeValidator : _c;
127
+ return new Plugin({
128
+ view: function (editorView) {
129
+ return new LinkManager(editorView, markType, editorComponent, linkAttributeValidator);
130
+ }
131
+ });
132
+ };
133
+ export { createLinkManager };
134
+ //# sourceMappingURL=LinkManager.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkManager.mjs","sources":["../../../../../../src/RichTextEditor/utils/plugins/LinkManager/LinkManager.tsx"],"sourcesContent":["import { ComponentType } from \"react\"\nimport debounce from \"lodash.debounce\"\nimport { MarkType } from \"prosemirror-model\"\nimport { Command, EditorState, Plugin } from \"prosemirror-state\"\nimport {\n AttrsValidator,\n getMarkAttrs,\n getMarkRange,\n markContainsSelection,\n markIsActive,\n removeMark,\n updateMark,\n validateAndRemoveMarks,\n} from \"../../commands\"\nimport {\n LinkEditor,\n LinkEditorAttrs,\n LinkEditorProps,\n} from \"./components/LinkEditor\"\nimport { createReactTooltipWrapper } from \"./createReactTooltipWrapper\"\nimport { CAEditorView, SelectionPosition } from \"./types\"\n\nclass LinkManager {\n editorComponent: ComponentType<LinkEditorProps>\n linkActive: (state: EditorState) => boolean\n validateLinks: Command\n markType: MarkType\n tooltipTarget: {\n destroy: () => void\n update: (props: LinkEditorProps) => void\n } | null\n onResize: () => void\n\n constructor(\n view: CAEditorView,\n markType: MarkType,\n editorComponent: ComponentType<LinkEditorProps>,\n linkAttributeValidator: AttrsValidator\n ) {\n this.editorComponent = editorComponent\n this.linkActive = state => markIsActive(state, markType)\n this.validateLinks = validateAndRemoveMarks(\n markType,\n linkAttributeValidator\n )\n this.markType = markType\n this.tooltipTarget = null\n this.update(view, null)\n\n this.onResize = debounce(() => {\n this.update(view, null)\n }, 15)\n }\n\n update(view: CAEditorView, lastState: EditorState | null): void {\n const { state } = view\n\n // Don’t do anything if the document/TextSelection didn't change\n if (\n lastState &&\n lastState.doc.eq(state.doc) &&\n lastState.selection.eq(state.selection)\n ) {\n return\n }\n\n // Is the selection empty or not a link\n //\n // TODO: Also need to check if the selection is _only_ a link. If it covers\n // more than a single mark then we don’t want to allow edited\n if (state.selection.empty || !this.linkActive(state)) {\n this.destroyElement(view)\n return\n }\n\n // If there is a selection and we dont have something in DOM\n // then create element and inject\n if (!this.tooltipTarget) {\n this.createElement(view)\n }\n this.updateElement(view)\n }\n\n destroy(): void {\n this.tooltipTarget?.destroy()\n window.removeEventListener(\"resize\", this.onResize)\n }\n\n createElement(view: CAEditorView): void {\n if (!view.dom.parentElement) return\n this.tooltipTarget = createReactTooltipWrapper(\n view.dom.parentElement,\n this.editorComponent,\n this.getEditorProps(view)\n )\n window.addEventListener(\"resize\", this.onResize)\n }\n\n updateElement(view: CAEditorView): void {\n this.tooltipTarget?.update(this.getEditorProps(view))\n }\n\n destroyElement(view: CAEditorView): void {\n view.dispatch(this.validateLinks)\n this.tooltipTarget?.destroy()\n this.tooltipTarget = null\n }\n\n getEditorProps(view: CAEditorView): LinkEditorProps {\n let selectionPosition: SelectionPosition | null = null\n const { selection } = view.state\n const contained = markContainsSelection(view.state, this.markType)\n const { $from } = selection\n const range = getMarkRange($from, this.markType)\n let start\n let end\n if (!contained && range) {\n start = view.coordsAtPos(range.from)\n end = view.coordsAtPos(range.to)\n } else {\n start = view.coordsAtPos(selection.from)\n if (selection.to === view.state.doc.content.size) {\n end = view.coordsAtPos(selection.to - 1)\n } else {\n end = view.coordsAtPos(selection.to)\n }\n }\n\n selectionPosition = {\n top: start.top,\n left: start.left,\n width: end.right - start.left,\n height: start.top - start.bottom,\n }\n\n return {\n removeMark: () => {\n view.dispatch(removeMark(this.markType, { toExtent: true }))\n },\n updateAttrs: (attrs: { [key: string]: unknown }) => {\n view.dispatch(updateMark(this.markType, attrs, { toExtent: true }))\n },\n attrs: getMarkAttrs(view.state, this.markType) as LinkEditorAttrs,\n selectionPosition,\n focusEditor: () => {\n view.focus()\n },\n }\n }\n}\n\ntype CreateLinkManagerArgs = {\n markType: MarkType\n linkAttributeValidator?: AttrsValidator\n editorComponent?: ComponentType<LinkEditorProps>\n}\n\nconst defaultLinkAttributeValidator: AttrsValidator = attrs => {\n if (attrs == null) {\n return false\n }\n return attrs.href && attrs.href !== \"\"\n}\n\nexport const createLinkManager = ({\n markType,\n editorComponent = LinkEditor,\n linkAttributeValidator = defaultLinkAttributeValidator,\n}: CreateLinkManagerArgs): Plugin =>\n new Plugin({\n view(editorView) {\n return new LinkManager(\n editorView,\n markType,\n editorComponent,\n linkAttributeValidator\n )\n },\n })\n"],"names":["LinkManager","view","markType","editorComponent","linkAttributeValidator","_this","linkActive","state","markIsActive","validateLinks","validateAndRemoveMarks","tooltipTarget","update","onResize","debounce","prototype","lastState","doc","eq","selection","empty","destroyElement","createElement","updateElement","destroy","_a","window","removeEventListener","dom","parentElement","createReactTooltipWrapper","getEditorProps","addEventListener","dispatch","selectionPosition","contained","markContainsSelection","$from","range","getMarkRange","start","end","coordsAtPos","from","to","content","size","top","left","width","right","height","bottom","removeMark","toExtent","updateAttrs","attrs","updateMark","getMarkAttrs","focusEditor","focus","defaultLinkAttributeValidator","href","createLinkManager","_b","LinkEditor","_c","Plugin","editorView"],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import React, { useState } from 'react';
2
+ import { LinkModal } from '../LinkModal/LinkModal.mjs';
3
+ import { LinkPopover } from '../LinkPopover/LinkPopover.mjs';
4
+ const LinkEditor = /*#__PURE__*/function () {
5
+ const LinkEditor = function (_a) {
6
+ var _b;
7
+ var attrs = _a.attrs,
8
+ removeMark = _a.removeMark,
9
+ updateAttrs = _a.updateAttrs,
10
+ selectionPosition = _a.selectionPosition,
11
+ focusEditor = _a.focusEditor;
12
+ var _c = useState(attrs.href != null),
13
+ isPopoverOpen = _c[0],
14
+ setIsPopoverOpen = _c[1];
15
+ var _d = useState(
16
+ // eslint-disable-next-line no-underscore-dangle
17
+ ((_b = attrs._metadata) === null || _b === void 0 ? void 0 : _b.added) === true),
18
+ modalOpen = _d[0],
19
+ setModalOpen = _d[1];
20
+ var _e = useState(attrs.href ? attrs.href : undefined),
21
+ href = _e[0],
22
+ setHref = _e[1];
23
+ return /*#__PURE__*/React.createElement(React.Fragment, null, isPopoverOpen && /*#__PURE__*/React.createElement(LinkPopover, {
24
+ href: href,
25
+ selectionPosition: selectionPosition,
26
+ onRemove: function () {
27
+ removeMark();
28
+ focusEditor();
29
+ },
30
+ onEdit: function () {
31
+ setIsPopoverOpen(false);
32
+ setModalOpen(true);
33
+ }
34
+ }), /*#__PURE__*/React.createElement(LinkModal, {
35
+ defaultHref: href,
36
+ isOpen: modalOpen,
37
+ onAfterLeave: focusEditor,
38
+ onSubmit: function (submittedHref) {
39
+ setHref(submittedHref);
40
+ updateAttrs({
41
+ href: submittedHref,
42
+ _metadata: null
43
+ });
44
+ setModalOpen(false);
45
+ },
46
+ onDismiss: function () {
47
+ setModalOpen(false);
48
+ if (href) {
49
+ setIsPopoverOpen(true);
50
+ } else {
51
+ removeMark();
52
+ }
53
+ }
54
+ }));
55
+ };
56
+ LinkEditor.displayName = "LinkEditor";
57
+ return LinkEditor;
58
+ }();
59
+ export { LinkEditor };
60
+ //# sourceMappingURL=LinkEditor.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkEditor.mjs","sources":["../../../../../../../../src/RichTextEditor/utils/plugins/LinkManager/components/LinkEditor/LinkEditor.tsx"],"sourcesContent":["import React, { useState } from \"react\"\nimport { SelectionPosition } from \"../../types\"\nimport { LinkModal } from \"../LinkModal\"\nimport { LinkPopover } from \"../LinkPopover\"\n\nexport type LinkEditorAttrs = {\n href: string | null\n _metadata: { [key: string]: unknown } | null\n}\n\nexport type LinkEditorProps = {\n removeMark: () => void\n updateAttrs: ({ href }: LinkEditorAttrs) => void\n attrs: LinkEditorAttrs\n selectionPosition: SelectionPosition\n focusEditor: () => void\n}\n\nexport const LinkEditor = ({\n attrs,\n removeMark,\n updateAttrs,\n selectionPosition,\n focusEditor,\n}: LinkEditorProps): JSX.Element => {\n const [isPopoverOpen, setIsPopoverOpen] = useState<boolean>(\n attrs.href != null\n )\n const [modalOpen, setModalOpen] = useState<boolean>(\n // eslint-disable-next-line no-underscore-dangle\n attrs._metadata?.added === true\n )\n\n const [href, setHref] = useState<string | undefined>(\n attrs.href ? attrs.href : undefined\n )\n\n return (\n <>\n {isPopoverOpen && (\n <LinkPopover\n href={href}\n selectionPosition={selectionPosition}\n onRemove={() => {\n removeMark()\n focusEditor()\n }}\n onEdit={() => {\n setIsPopoverOpen(false)\n setModalOpen(true)\n }}\n />\n )}\n <LinkModal\n defaultHref={href}\n isOpen={modalOpen}\n onAfterLeave={focusEditor}\n onSubmit={(submittedHref: string) => {\n setHref(submittedHref)\n updateAttrs({ href: submittedHref, _metadata: null })\n setModalOpen(false)\n }}\n onDismiss={() => {\n setModalOpen(false)\n if (href) {\n setIsPopoverOpen(true)\n } else {\n removeMark()\n }\n }}\n />\n </>\n )\n}\n\nLinkEditor.displayName = \"LinkEditor\"\n"],"names":["LinkEditor","_a","attrs","removeMark","updateAttrs","selectionPosition","focusEditor","_c","useState","href","isPopoverOpen","setIsPopoverOpen","_d","_b","_metadata","added","modalOpen","setModalOpen","_e","undefined","setHref","React","createElement","Fragment","LinkPopover","onRemove","onEdit","LinkModal","defaultHref","isOpen","onAfterLeave","onSubmit","submittedHref","onDismiss","displayName"],"mappings":";;;MAkBaA,UAAU;EAAA,MAAVA,UAAU,GAAG,SAAAA,CAACC,EAMT,EAAA;;IALhB,IAAAC,KAAK,GAAAD,EAAA,CAAAC,KAAA;MACLC,UAAU,GAAAF,EAAA,CAAAE,UAAA;MACVC,WAAW,GAAAH,EAAA,CAAAG,WAAA;MACXC,iBAAiB,GAAAJ,EAAA,CAAAI,iBAAA;MACjBC,WAAW,GAAAL,EAAA,CAAAK,WAAA;IAEL,IAAAC,EAAoC,GAAAC,QAAQ,CAChDN,KAAK,CAACO,IAAI,IAAI,IAAI,CACnB;MAFMC,aAAa,GAAAH,EAAA,CAAA,CAAA,CAAA;MAAEI,gBAAgB,QAErC;IACK,IAAAC,KAA4BJ,QAAQ;;MAExC,CAAA,CAAAK,EAAA,GAAAX,KAAK,CAACY,SAAS,0CAAEC,KAAK,MAAK,IAAI,CAChC;MAHMC,SAAS,GAAAJ,EAAA,CAAA,CAAA,CAAA;MAAEK,YAAY,QAG7B;IAEK,IAAAC,EAAA,GAAkBV,QAAQ,CAC9BN,KAAK,CAACO,IAAI,GAAGP,KAAK,CAACO,IAAI,GAAGU,SAAS,CACpC;MAFMV,IAAI,GAAAS,EAAA,CAAA,CAAA,CAAA;MAAEE,OAAO,GAAAF,EAAA,CAAA,CAAA,CAEnB;IAED,oBACEG,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EAAA,IAAA,EACGb,aAAa,iBACZW,KAAC,CAAAC,aAAA,CAAAE,WAAW;MACVf,IAAI,EAAEA,IAAI;MACVJ,iBAAiB,EAAEA,iBAAiB;MACpCoB,QAAQ,EAAE,SAAAA,CAAA,EAAA;QACRtB,UAAU,EAAE;QACZG,WAAW,EAAE;MACd,CAAA;MACDoB,MAAM,EAAE,SAAAA,CAAA,EAAA;QACNf,gBAAgB,CAAC,KAAK,CAAC;QACvBM,YAAY,CAAC,IAAI,CAAC;MACnB;IAAA,EAEJ,eACDI,KAAA,CAAAC,aAAA,CAACK,SAAS,EACR;MAAAC,WAAW,EAAEnB,IAAI;MACjBoB,MAAM,EAAEb,SAAS;MACjBc,YAAY,EAAExB,WAAW;MACzByB,QAAQ,EAAE,SAAAA,CAACC,aAAqB,EAAA;QAC9BZ,OAAO,CAACY,aAAa,CAAC;QACtB5B,WAAW,CAAC;UAAEK,IAAI,EAAEuB,aAAa;UAAElB,SAAS,EAAE;QAAM,CAAA,CAAC;QACrDG,YAAY,CAAC,KAAK,CAAC;MACpB,CAAA;MACDgB,SAAS,EAAE,SAAAA,CAAA,EAAA;QACThB,YAAY,CAAC,KAAK,CAAC;QACnB,IAAIR,IAAI,EAAE;UACRE,gBAAgB,CAAC,IAAI,CAAC;QACvB,CAAA,MAAM;UACLR,UAAU,EAAE;QACb;MACF;IAAA,CAAA,CACD,CACD;EAEP,CAAC;EAEDH,UAAU,CAACkC,WAAW,GAAG,YAAY;EAAA,OAzDxBlC,UAAU;AAAA;"}