@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,136 @@
1
+ 'use strict';
2
+
3
+ var debounce = require('lodash.debounce');
4
+ var ProseMirrorState = require('prosemirror-state');
5
+ var getMarkAttrs = require('../../commands/getMarkAttrs.cjs');
6
+ var getMarkRange = require('../../commands/getMarkRange.cjs');
7
+ require('prosemirror-utils');
8
+ var markContainsSelection = require('../../commands/markContainsSelection.cjs');
9
+ var markIsActive = require('../../commands/markIsActive.cjs');
10
+ var removeMark = require('../../commands/removeMark.cjs');
11
+ var updateMark = require('../../commands/updateMark.cjs');
12
+ var validateAndRemoveMarks = require('../../commands/validateAndRemoveMarks.cjs');
13
+ var LinkEditor = require('./components/LinkEditor/LinkEditor.cjs');
14
+ var createReactTooltipWrapper = require('./createReactTooltipWrapper.cjs');
15
+ var LinkManager = /** @class */function () {
16
+ function LinkManager(view, markType, editorComponent, linkAttributeValidator) {
17
+ var _this = this;
18
+ this.editorComponent = editorComponent;
19
+ this.linkActive = function (state) {
20
+ return markIsActive.markIsActive(state, markType);
21
+ };
22
+ this.validateLinks = validateAndRemoveMarks.validateAndRemoveMarks(markType, linkAttributeValidator);
23
+ this.markType = markType;
24
+ this.tooltipTarget = null;
25
+ this.update(view, null);
26
+ this.onResize = debounce(function () {
27
+ _this.update(view, null);
28
+ }, 15);
29
+ }
30
+ LinkManager.prototype.update = function (view, lastState) {
31
+ var state = view.state;
32
+ // Don’t do anything if the document/TextSelection didn't change
33
+ if (lastState && lastState.doc.eq(state.doc) && lastState.selection.eq(state.selection)) {
34
+ return;
35
+ }
36
+ // Is the selection empty or not a link
37
+ //
38
+ // TODO: Also need to check if the selection is _only_ a link. If it covers
39
+ // more than a single mark then we don’t want to allow edited
40
+ if (state.selection.empty || !this.linkActive(state)) {
41
+ this.destroyElement(view);
42
+ return;
43
+ }
44
+ // If there is a selection and we dont have something in DOM
45
+ // then create element and inject
46
+ if (!this.tooltipTarget) {
47
+ this.createElement(view);
48
+ }
49
+ this.updateElement(view);
50
+ };
51
+ LinkManager.prototype.destroy = function () {
52
+ var _a;
53
+ (_a = this.tooltipTarget) === null || _a === void 0 ? void 0 : _a.destroy();
54
+ window.removeEventListener("resize", this.onResize);
55
+ };
56
+ LinkManager.prototype.createElement = function (view) {
57
+ if (!view.dom.parentElement) return;
58
+ this.tooltipTarget = createReactTooltipWrapper.createReactTooltipWrapper(view.dom.parentElement, this.editorComponent, this.getEditorProps(view));
59
+ window.addEventListener("resize", this.onResize);
60
+ };
61
+ LinkManager.prototype.updateElement = function (view) {
62
+ var _a;
63
+ (_a = this.tooltipTarget) === null || _a === void 0 ? void 0 : _a.update(this.getEditorProps(view));
64
+ };
65
+ LinkManager.prototype.destroyElement = function (view) {
66
+ var _a;
67
+ view.dispatch(this.validateLinks);
68
+ (_a = this.tooltipTarget) === null || _a === void 0 ? void 0 : _a.destroy();
69
+ this.tooltipTarget = null;
70
+ };
71
+ LinkManager.prototype.getEditorProps = function (view) {
72
+ var _this = this;
73
+ var selectionPosition = null;
74
+ var selection = view.state.selection;
75
+ var contained = markContainsSelection.markContainsSelection(view.state, this.markType);
76
+ var $from = selection.$from;
77
+ var range = getMarkRange.getMarkRange($from, this.markType);
78
+ var start;
79
+ var end;
80
+ if (!contained && range) {
81
+ start = view.coordsAtPos(range.from);
82
+ end = view.coordsAtPos(range.to);
83
+ } else {
84
+ start = view.coordsAtPos(selection.from);
85
+ if (selection.to === view.state.doc.content.size) {
86
+ end = view.coordsAtPos(selection.to - 1);
87
+ } else {
88
+ end = view.coordsAtPos(selection.to);
89
+ }
90
+ }
91
+ selectionPosition = {
92
+ top: start.top,
93
+ left: start.left,
94
+ width: end.right - start.left,
95
+ height: start.top - start.bottom
96
+ };
97
+ return {
98
+ removeMark: function () {
99
+ view.dispatch(removeMark.removeMark(_this.markType, {
100
+ toExtent: true
101
+ }));
102
+ },
103
+ updateAttrs: function (attrs) {
104
+ view.dispatch(updateMark.updateMark(_this.markType, attrs, {
105
+ toExtent: true
106
+ }));
107
+ },
108
+ attrs: getMarkAttrs.getMarkAttrs(view.state, this.markType),
109
+ selectionPosition: selectionPosition,
110
+ focusEditor: function () {
111
+ view.focus();
112
+ }
113
+ };
114
+ };
115
+ return LinkManager;
116
+ }();
117
+ var defaultLinkAttributeValidator = function (attrs) {
118
+ if (attrs == null) {
119
+ return false;
120
+ }
121
+ return attrs.href && attrs.href !== "";
122
+ };
123
+ var createLinkManager = function (_a) {
124
+ var markType = _a.markType,
125
+ _b = _a.editorComponent,
126
+ editorComponent = _b === void 0 ? LinkEditor.LinkEditor : _b,
127
+ _c = _a.linkAttributeValidator,
128
+ linkAttributeValidator = _c === void 0 ? defaultLinkAttributeValidator : _c;
129
+ return new ProseMirrorState.Plugin({
130
+ view: function (editorView) {
131
+ return new LinkManager(editorView, markType, editorComponent, linkAttributeValidator);
132
+ }
133
+ });
134
+ };
135
+ exports.createLinkManager = createLinkManager;
136
+ //# sourceMappingURL=LinkManager.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkManager.cjs","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,62 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var LinkModal = require('../LinkModal/LinkModal.cjs');
5
+ var LinkPopover = require('../LinkPopover/LinkPopover.cjs');
6
+ const LinkEditor = /*#__PURE__*/function () {
7
+ const LinkEditor = function (_a) {
8
+ var _b;
9
+ var attrs = _a.attrs,
10
+ removeMark = _a.removeMark,
11
+ updateAttrs = _a.updateAttrs,
12
+ selectionPosition = _a.selectionPosition,
13
+ focusEditor = _a.focusEditor;
14
+ var _c = React.useState(attrs.href != null),
15
+ isPopoverOpen = _c[0],
16
+ setIsPopoverOpen = _c[1];
17
+ var _d = React.useState(
18
+ // eslint-disable-next-line no-underscore-dangle
19
+ ((_b = attrs._metadata) === null || _b === void 0 ? void 0 : _b.added) === true),
20
+ modalOpen = _d[0],
21
+ setModalOpen = _d[1];
22
+ var _e = React.useState(attrs.href ? attrs.href : undefined),
23
+ href = _e[0],
24
+ setHref = _e[1];
25
+ return React.createElement(React.Fragment, null, isPopoverOpen && React.createElement(LinkPopover.LinkPopover, {
26
+ href: href,
27
+ selectionPosition: selectionPosition,
28
+ onRemove: function () {
29
+ removeMark();
30
+ focusEditor();
31
+ },
32
+ onEdit: function () {
33
+ setIsPopoverOpen(false);
34
+ setModalOpen(true);
35
+ }
36
+ }), React.createElement(LinkModal.LinkModal, {
37
+ defaultHref: href,
38
+ isOpen: modalOpen,
39
+ onAfterLeave: focusEditor,
40
+ onSubmit: function (submittedHref) {
41
+ setHref(submittedHref);
42
+ updateAttrs({
43
+ href: submittedHref,
44
+ _metadata: null
45
+ });
46
+ setModalOpen(false);
47
+ },
48
+ onDismiss: function () {
49
+ setModalOpen(false);
50
+ if (href) {
51
+ setIsPopoverOpen(true);
52
+ } else {
53
+ removeMark();
54
+ }
55
+ }
56
+ }));
57
+ };
58
+ LinkEditor.displayName = "LinkEditor";
59
+ return LinkEditor;
60
+ }();
61
+ exports.LinkEditor = LinkEditor;
62
+ //# sourceMappingURL=LinkEditor.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkEditor.cjs","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,KAAQ,CAAAA,QAAA,CAChDN,KAAK,CAACO,IAAI,IAAI,IAAI,CACnB;MAFMC,aAAa,GAAAH,EAAA,CAAA,CAAA,CAAA;MAAEI,gBAAgB,QAErC;IACK,IAAAC,KAA4BJ,KAAQ,CAAAA,QAAA;;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,KAAAA,CAAAA,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,OACEG,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EAAA,IAAA,EACGb,aAAa,IACZW,KAAC,CAAAC,aAAA,CAAAE,uBAAW;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,mBAAS,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;"}
@@ -0,0 +1,68 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ require('../../../../../../Modal/ConfirmationModal/ConfirmationModal.cjs');
5
+ require('../../../../../../Modal/ContextModal/ContextModal.cjs');
6
+ require('../../../../../../Modal/GenericModal/GenericModal.cjs');
7
+ require('../../../../../../Modal/GenericModal/context/ModalContext.cjs');
8
+ require('../../../../../../Modal/GenericModal/subcomponents/ModalAccessibleDescription/ModalAccessibleDescription.cjs');
9
+ require('../../../../../../Modal/GenericModal/subcomponents/ModalFooter/ModalFooter.cjs');
10
+ require('../../../../../../Modal/GenericModal/subcomponents/ModalHeader/ModalHeader.cjs');
11
+ require('../../../../../../Modal/GenericModal/subcomponents/ModalAccessibleLabel/ModalAccessibleLabel.cjs');
12
+ require('../../../../../../Modal/GenericModal/subcomponents/ModalBody/ModalBody.cjs');
13
+ var InputEditModal = require('../../../../../../Modal/InputEditModal/InputEditModal.cjs');
14
+ var TextField = require('../../../../../../TextField/TextField.cjs');
15
+ var validation = require('../../validation.cjs');
16
+ const LinkModal = /*#__PURE__*/function () {
17
+ const LinkModal = function (_a) {
18
+ var onSubmit = _a.onSubmit,
19
+ onDismiss = _a.onDismiss,
20
+ onAfterLeave = _a.onAfterLeave,
21
+ isOpen = _a.isOpen,
22
+ defaultHref = _a.defaultHref;
23
+ var _b = React.useState(defaultHref || ""),
24
+ href = _b[0],
25
+ setHref = _b[1];
26
+ var _c = React.useState({
27
+ status: "default"
28
+ }),
29
+ validationStatus = _c[0],
30
+ setValidationStatus = _c[1];
31
+ var inputRef = React.useRef(null);
32
+ var handleSubmit = function () {
33
+ var _a;
34
+ var validation$1 = validation.validateLink(href);
35
+ if (validation$1.status !== "success") {
36
+ (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
37
+ setValidationStatus(validation$1);
38
+ return;
39
+ }
40
+ onSubmit(href);
41
+ };
42
+ return React.createElement(InputEditModal.InputEditModal, {
43
+ submitLabel: defaultHref ? "Save" : "Add",
44
+ mood: "positive",
45
+ isOpen: isOpen,
46
+ title: defaultHref ? "Edit link" : "Add link",
47
+ onSubmit: handleSubmit,
48
+ onDismiss: onDismiss,
49
+ onAfterLeave: onAfterLeave
50
+ }, React.createElement(TextField.TextField, {
51
+ id: "href",
52
+ type: "text",
53
+ defaultValue: href !== null && href !== void 0 ? href : "",
54
+ labelText: "Link URL",
55
+ inputRef: inputRef,
56
+ validationMessage: validationStatus.message,
57
+ status: validationStatus.status,
58
+ onChange: function (e) {
59
+ setHref(e.target.value);
60
+ },
61
+ inline: true
62
+ }));
63
+ };
64
+ LinkModal.displayName = "LinkModal";
65
+ return LinkModal;
66
+ }();
67
+ exports.LinkModal = LinkModal;
68
+ //# sourceMappingURL=LinkModal.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkModal.cjs","sources":["../../../../../../../../src/RichTextEditor/utils/plugins/LinkManager/components/LinkModal/LinkModal.tsx"],"sourcesContent":["import React, { useRef, useState } from \"react\"\nimport { InputEditModal } from \"~components/Modal\"\nimport { TextField } from \"~components/TextField\"\nimport { ValidationResponse, validateLink } from \"../../validation\"\n\ntype LinkModalProps = {\n onSubmit: (href: string) => void\n onDismiss: () => void\n onAfterLeave: () => void\n isOpen: boolean\n defaultHref?: string\n}\n\nexport const LinkModal = ({\n onSubmit,\n onDismiss,\n onAfterLeave,\n isOpen,\n defaultHref,\n}: LinkModalProps): JSX.Element => {\n const [href, setHref] = useState<string>(defaultHref || \"\")\n const [validationStatus, setValidationStatus] = useState<ValidationResponse>({\n status: \"default\",\n })\n const inputRef = useRef<HTMLInputElement>(null)\n\n const handleSubmit = (): void => {\n const validation = validateLink(href)\n if (validation.status !== \"success\") {\n inputRef.current?.focus()\n setValidationStatus(validation)\n return\n }\n\n onSubmit(href)\n }\n\n return (\n <InputEditModal\n submitLabel={defaultHref ? \"Save\" : \"Add\"}\n mood=\"positive\"\n isOpen={isOpen}\n title={defaultHref ? \"Edit link\" : \"Add link\"}\n onSubmit={handleSubmit}\n onDismiss={onDismiss}\n onAfterLeave={onAfterLeave}\n >\n <TextField\n id=\"href\"\n type=\"text\"\n defaultValue={href ?? \"\"}\n labelText=\"Link URL\"\n inputRef={inputRef}\n validationMessage={validationStatus.message}\n status={validationStatus.status}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) => {\n setHref(e.target.value)\n }}\n inline\n />\n </InputEditModal>\n )\n}\n\nLinkModal.displayName = \"LinkModal\"\n"],"names":["LinkModal","_a","onSubmit","onDismiss","onAfterLeave","isOpen","defaultHref","_b","useState","href","setHref","_c","status","validationStatus","setValidationStatus","inputRef","useRef","handleSubmit","validation","validateLink","current","focus","React","InputEditModal","submitLabel","mood","title","createElement","TextField","id","type","defaultValue","labelText","validationMessage","message","onChange","e","target","value","inline","displayName"],"mappings":";;;;;;;;;;;;;;;MAaaA,SAAS;EAAA,MAATA,SAAS,GAAG,SAAAA,CAACC,EAMT,EAAA;IALf,IAAAC,QAAQ,GAAAD,EAAA,CAAAC,QAAA;MACRC,SAAS,GAAAF,EAAA,CAAAE,SAAA;MACTC,YAAY,GAAAH,EAAA,CAAAG,YAAA;MACZC,MAAM,GAAAJ,EAAA,CAAAI,MAAA;MACNC,WAAW,GAAAL,EAAA,CAAAK,WAAA;IAEL,IAAAC,EAAkB,GAAAC,KAAAA,CAAAA,QAAQ,CAASF,WAAW,IAAI,EAAE,CAAC;MAApDG,IAAI,GAAAF,EAAA,CAAA,CAAA,CAAA;MAAEG,OAAO,QAAuC;IACrD,IAAAC,EAAA,GAA0CH,KAAAA,CAAAA,QAAQ,CAAqB;QAC3EI,MAAM,EAAE;MACT,CAAA,CAAC;MAFKC,gBAAgB,GAAAF,EAAA,CAAA,CAAA,CAAA;MAAEG,mBAAmB,QAE1C;IACF,IAAMC,QAAQ,GAAGC,YAAM,CAAmB,IAAI,CAAC;IAE/C,IAAMC,YAAY,GAAG,SAAAA,CAAA,EAAA;;MACnB,IAAMC,YAAU,GAAGC,uBAAY,CAACV,IAAI,CAAC;MACrC,IAAIS,YAAU,CAACN,MAAM,KAAK,SAAS,EAAE;QACnC,CAAAX,EAAA,GAAAc,QAAQ,CAACK,OAAO,MAAE,IAAA,IAAAnB,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,EAAA,CAAAoB,KAAK,CAAA,CAAE;QACzBP,mBAAmB,CAACI,YAAU,CAAC;QAC/B;MACD;MAEDhB,QAAQ,CAACO,IAAI,CAAC;IAChB,CAAC;IAED,OACEa,oBAACC,cAAAA,CAAAA,cAAc,EAAA;MACbC,WAAW,EAAElB,WAAW,GAAG,MAAM,GAAG,KAAK;MACzCmB,IAAI,EAAC,UAAU;MACfpB,MAAM,EAAEA,MAAM;MACdqB,KAAK,EAAEpB,WAAW,GAAG,WAAW,GAAG,UAAU;MAC7CJ,QAAQ,EAAEe,YAAY;MACtBd,SAAS,EAAEA,SAAS;MACpBC,YAAY,EAAEA;IAAY,CAAA,EAE1BkB,KAAA,CAAAK,aAAA,CAACC,SAAAA,CAAAA,SAAS,EACR;MAAAC,EAAE,EAAC,MAAM;MACTC,IAAI,EAAC,MAAM;MACXC,YAAY,EAAEtB,IAAI,KAAJ,IAAA,IAAAA,IAAI,cAAJA,IAAI,GAAI,EAAE;MACxBuB,SAAS,EAAC,UAAU;MACpBjB,QAAQ,EAAEA,QAAQ;MAClBkB,iBAAiB,EAAEpB,gBAAgB,CAACqB,OAAO;MAC3CtB,MAAM,EAAEC,gBAAgB,CAACD,MAAM;MAC/BuB,QAAQ,EAAE,SAAAA,CAACC,CAAsC,EAAA;QAC/C1B,OAAO,CAAC0B,CAAC,CAACC,MAAM,CAACC,KAAK,CAAC;MACzB,CAAC;MACDC,MAAM,EACN;IAAA,CAAA,CAAA,CACa;EAErB,CAAC;EAEDvC,SAAS,CAACwC,WAAW,GAAG,WAAW;EAAA,OAnDtBxC,SAAS;AAAA;"}
@@ -0,0 +1,58 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var React = require('react');
5
+ require('uuid');
6
+ require('../../../../../../Icon/subcomponents/SVG/SVG.cjs');
7
+ var EditIcon = require('../../../../../../Icon/EditIcon.cjs');
8
+ var ExternalLinkIcon = require('../../../../../../Icon/ExternalLinkIcon.cjs');
9
+ var RemoveLinkIcon = require('../../../../../../Icon/RemoveLinkIcon.cjs');
10
+ var Popover = require('../../../../../../Popover/Popover.cjs');
11
+ var Text = require('../../../../../../Text/Text.cjs');
12
+ var Positioner = require('./Positioner.cjs');
13
+ var LinkPopover_module = require('./LinkPopover.module.scss.cjs');
14
+ const LinkPopover = /*#__PURE__*/function () {
15
+ const LinkPopover = function (_a) {
16
+ var href = _a.href,
17
+ onRemove = _a.onRemove,
18
+ onEdit = _a.onEdit,
19
+ selectionPosition = _a.selectionPosition;
20
+ var _b = Popover.usePopover(),
21
+ ElementRef = _b[0],
22
+ Popover$1 = _b[1];
23
+ return React.createElement(React.Fragment, null, React.createElement(Positioner.Positioner, tslib.__assign({
24
+ ref: ElementRef
25
+ }, selectionPosition)), React.createElement(Popover$1, {
26
+ size: "large"
27
+ }, React.createElement("div", {
28
+ className: LinkPopover_module.popoverContent
29
+ }, React.createElement(ExternalLinkIcon.ExternalLinkIcon, {
30
+ role: "presentation"
31
+ }), React.createElement("div", {
32
+ className: LinkPopover_module.popoverLinkContainer
33
+ }, React.createElement(Text.Text, {
34
+ variant: "body",
35
+ tag: "div",
36
+ classNameOverride: LinkPopover_module.paragraphFlex
37
+ }, React.createElement("a", {
38
+ className: LinkPopover_module.popoverLink,
39
+ href: href != null ? href : undefined,
40
+ target: "_blank",
41
+ rel: "noopener noreferrer"
42
+ }, href))), React.createElement("div", {
43
+ className: LinkPopover_module.popoverActions
44
+ }, React.createElement(EditIcon.EditIcon, {
45
+ role: "img",
46
+ onClick: onEdit,
47
+ "aria-label": "Edit link"
48
+ })), React.createElement(RemoveLinkIcon.RemoveLinkIcon, {
49
+ role: "img",
50
+ onClick: onRemove,
51
+ "aria-label": "Remove link"
52
+ }))));
53
+ };
54
+ LinkPopover.displayName = "LinkPopover";
55
+ return LinkPopover;
56
+ }();
57
+ exports.LinkPopover = LinkPopover;
58
+ //# sourceMappingURL=LinkPopover.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkPopover.cjs","sources":["../../../../../../../../src/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/LinkPopover.tsx"],"sourcesContent":["import React from \"react\"\nimport { EditIcon, ExternalLinkIcon, RemoveLinkIcon } from \"~components/Icon\"\nimport { usePopover } from \"~components/Popover\"\nimport { Text } from \"~components/Text\"\nimport { SelectionPosition } from \"../../types\"\nimport { Positioner } from \"./Positioner\"\nimport styles from \"./LinkPopover.module.scss\"\n\nexport type LinkPopoverProps = {\n href?: string\n onRemove: () => void\n onEdit: () => void\n selectionPosition: SelectionPosition\n}\n\nexport const LinkPopover = ({\n href,\n onRemove,\n onEdit,\n selectionPosition,\n}: LinkPopoverProps): JSX.Element => {\n const [ElementRef, Popover] = usePopover()\n\n return (\n <>\n <Positioner ref={ElementRef} {...selectionPosition} />\n <Popover size=\"large\">\n <div className={styles.popoverContent}>\n <ExternalLinkIcon role=\"presentation\" />\n <div className={styles.popoverLinkContainer}>\n <Text\n variant=\"body\"\n tag=\"div\"\n classNameOverride={styles.paragraphFlex}\n >\n <a\n className={styles.popoverLink}\n href={href != null ? href : undefined}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {href}\n </a>\n </Text>\n </div>\n <div className={styles.popoverActions}>\n <EditIcon role=\"img\" onClick={onEdit} aria-label=\"Edit link\" />\n </div>\n <RemoveLinkIcon\n role=\"img\"\n onClick={onRemove}\n aria-label=\"Remove link\"\n />\n </div>\n </Popover>\n </>\n )\n}\n\nLinkPopover.displayName = \"LinkPopover\"\n"],"names":["LinkPopover","_a","href","onRemove","onEdit","selectionPosition","_b","usePopover","ElementRef","Popover","React","createElement","Fragment","Positioner","__assign","ref","size","className","styles","popoverContent","ExternalLinkIcon","role","popoverLinkContainer","Text","variant","tag","classNameOverride","paragraphFlex","popoverLink","undefined","target","rel","popoverActions","EditIcon","onClick","RemoveLinkIcon","displayName"],"mappings":";;;;;;;;;;;;;MAeaA,WAAW;EAAA,MAAXA,WAAW,GAAG,SAAAA,CAACC,EAKT,EAAA;QAJjBC,IAAI,GAAAD,EAAA,CAAAC,IAAA;MACJC,QAAQ,GAAAF,EAAA,CAAAE,QAAA;MACRC,MAAM,GAAAH,EAAA,CAAAG,MAAA;MACNC,iBAAiB,GAAAJ,EAAA,CAAAI,iBAAA;IAEX,IAAAC,EAAA,GAAwBC,kBAAU,CAAE,CAAA;MAAnCC,UAAU,GAAAF,EAAA,CAAA,CAAA,CAAA;MAAEG,SAAO,GAAAH,EAAA,CAAA,CAAA,CAAgB;IAE1C,OACEI,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EAAA,IAAA,EACEF,KAAA,CAAAC,aAAA,CAACE,UAAAA,CAAAA,UAAU,EAACC,KAAA,CAAAA,QAAA,CAAA;MAAAC,GAAG,EAAEP;IAAU,CAAA,EAAMH,iBAAiB,CAAI,CAAA,EACtDK,KAAA,CAAAC,aAAA,CAACF,SAAO,EAAA;MAACO,IAAI,EAAC;IAAO,CAAA,EACnBN,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;MAAKM,SAAS,EAAEC,kBAAM,CAACC;IAAc,CAAA,EACnCT,KAAA,CAAAC,aAAA,CAACS,gBAAAA,CAAAA,gBAAgB,EAAA;MAACC,IAAI,EAAC;IAAc,CAAG,CAAA,EACxCX,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;MAAKM,SAAS,EAAEC,kBAAM,CAACI;IAAoB,CAAA,EACzCZ,KAAA,CAAAC,aAAA,CAACY,SAAI,EAAA;MACHC,OAAO,EAAC,MAAM;MACdC,GAAG,EAAC,KAAK;MACTC,iBAAiB,EAAER,kBAAM,CAACS;IAAa,CAAA,EAEvCjB,KAAA,CAAAC,aAAA,CAAA,GAAA,EAAA;MACEM,SAAS,EAAEC,kBAAM,CAACU,WAAW;MAC7B1B,IAAI,EAAEA,IAAI,IAAI,IAAI,GAAGA,IAAI,GAAG2B,SAAS;MACrCC,MAAM,EAAC,QAAQ;MACfC,GAAG,EAAC;IAAqB,CAAA,EAExB7B,IAAI,CACH,CACC,CACH,EACNQ,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;MAAKM,SAAS,EAAEC,kBAAM,CAACc;IAAc,CAAA,EACnCtB,KAAA,CAAAC,aAAA,CAACsB,iBAAQ,EAAA;MAACZ,IAAI,EAAC,KAAK;MAACa,OAAO,EAAE9B,MAAM;MAAA,YAAA,EAAa;IAAW,CAAA,CAAG,CAC3D,EACNM,KAAA,CAAAC,aAAA,CAACwB,6BAAc,EACb;MAAAd,IAAI,EAAC,KAAK;MACVa,OAAO,EAAE/B,QAAQ;MAAA,YAAA,EACN;KACX,CAAA,CACE,CACE,CACT;EAEP,CAAC;EAEDH,WAAW,CAACoC,WAAW,GAAG,aAAa;EAAA,OA5C1BpC,WAAW;AAAA;"}
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ var styles = {
4
+ "popoverContent": "LinkPopover-module_popoverContent__qGPyp",
5
+ "popoverLinkContainer": "LinkPopover-module_popoverLinkContainer__6H0PQ",
6
+ "popoverLink": "LinkPopover-module_popoverLink__p1BTG",
7
+ "paragraphFlex": "LinkPopover-module_paragraphFlex__PKECm",
8
+ "popoverActions": "LinkPopover-module_popoverActions__QuW1-"
9
+ };
10
+ module.exports = styles;
11
+ //# sourceMappingURL=LinkPopover.module.scss.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinkPopover.module.scss.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
@@ -0,0 +1,43 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var ReactDOM = require('react-dom');
5
+ var debounce = require('lodash.debounce');
6
+ const Positioner = /*#__PURE__*/function () {
7
+ const Positioner = React.forwardRef(function (_a, ref) {
8
+ var top = _a.top,
9
+ left = _a.left,
10
+ height = _a.height,
11
+ width = _a.width;
12
+ var _b = React.useState([window.scrollX, window.scrollY]),
13
+ windowScroll = _b[0],
14
+ setWindowScroll = _b[1];
15
+ var onResize = React.useRef(debounce(function () {
16
+ return setWindowScroll([window.scrollX, window.scrollY]);
17
+ }, 15));
18
+ React.useEffect(function () {
19
+ var resizeCurrent = onResize.current;
20
+ window.addEventListener("resize", resizeCurrent);
21
+ return function () {
22
+ window.removeEventListener("resize", resizeCurrent);
23
+ };
24
+ }, [setWindowScroll, onResize]);
25
+ var x = windowScroll[0],
26
+ y = windowScroll[1];
27
+ return ReactDOM.createPortal(React.createElement("div", {
28
+ ref: ref,
29
+ style: {
30
+ height: "".concat(height, "px"),
31
+ left: "".concat(left + x, "px"),
32
+ pointerEvents: "none",
33
+ position: "absolute",
34
+ top: "".concat(top + y, "px"),
35
+ width: "".concat(width, "px")
36
+ }
37
+ }), document.body);
38
+ });
39
+ Positioner.displayName = "Positioner";
40
+ return Positioner;
41
+ }();
42
+ exports.Positioner = Positioner;
43
+ //# sourceMappingURL=Positioner.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Positioner.cjs","sources":["../../../../../../../../src/RichTextEditor/utils/plugins/LinkManager/components/LinkPopover/Positioner.tsx"],"sourcesContent":["import React, { forwardRef, useEffect, useRef, useState } from \"react\"\nimport { createPortal } from \"react-dom\"\nimport debounce from \"lodash.debounce\"\nimport { SelectionPosition } from \"../../types\"\n\nexport const Positioner = forwardRef(\n (\n { top, left, height, width }: SelectionPosition,\n ref: React.Ref<HTMLElement>\n ) => {\n const [windowScroll, setWindowScroll] = useState<[number, number]>([\n window.scrollX,\n window.scrollY,\n ])\n\n const onResize = useRef(\n debounce(() => setWindowScroll([window.scrollX, window.scrollY]), 15)\n )\n\n useEffect(() => {\n const resizeCurrent = onResize.current\n window.addEventListener(\"resize\", resizeCurrent)\n return () => {\n window.removeEventListener(\"resize\", resizeCurrent)\n }\n }, [setWindowScroll, onResize])\n\n const [x, y] = windowScroll\n\n return createPortal(\n <div\n ref={ref as React.Ref<HTMLDivElement>}\n style={{\n height: `${height}px`,\n left: `${left + x}px`,\n pointerEvents: \"none\",\n position: \"absolute\",\n top: `${top + y}px`,\n width: `${width}px`,\n }}\n />,\n document.body\n )\n }\n)\n\nPositioner.displayName = \"Positioner\"\n"],"names":["Positioner","forwardRef","_a","ref","top","left","height","width","_b","useState","window","scrollX","scrollY","windowScroll","setWindowScroll","onResize","useRef","debounce","useEffect","resizeCurrent","current","addEventListener","removeEventListener","x","y","createPortal","React","createElement","style","concat","pointerEvents","position","document","body","displayName"],"mappings":";;;;;MAKaA,UAAU;EAAA,MAAVA,UAAU,GAAGC,KAAU,CAAAA,UAAA,CAClC,UACEC,EAA+C,EAC/CC,GAA2B,EAAA;QADzBC,GAAG,GAAAF,EAAA,CAAAE,GAAA;MAAEC,IAAI,GAAAH,EAAA,CAAAG,IAAA;MAAEC,MAAM,GAAAJ,EAAA,CAAAI,MAAA;MAAEC,KAAK,GAAAL,EAAA,CAAAK,KAAA;IAGpB,IAAAC,EAAA,GAAkCC,KAAAA,CAAAA,QAAQ,CAAmB,CACjEC,MAAM,CAACC,OAAO,EACdD,MAAM,CAACE,OAAO,CACf,CAAC;MAHKC,YAAY,GAAAL,EAAA,CAAA,CAAA,CAAA;MAAEM,eAAe,QAGlC;IAEF,IAAMC,QAAQ,GAAGC,KAAAA,CAAAA,MAAM,CACrBC,QAAQ,CAAC,YAAA;MAAM,OAAAH,eAAe,CAAC,CAACJ,MAAM,CAACC,OAAO,EAAED,MAAM,CAACE,OAAO,CAAC,CAAC;IAAjD,CAAiD,EAAE,EAAE,CAAC,CACtE;IAEDM,KAAAA,CAAAA,SAAS,CAAC,YAAA;MACR,IAAMC,aAAa,GAAGJ,QAAQ,CAACK,OAAO;MACtCV,MAAM,CAACW,gBAAgB,CAAC,QAAQ,EAAEF,aAAa,CAAC;MAChD,OAAO,YAAA;QACLT,MAAM,CAACY,mBAAmB,CAAC,QAAQ,EAAEH,aAAa,CAAC;MACrD,CAAC;IACH,CAAC,EAAE,CAACL,eAAe,EAAEC,QAAQ,CAAC,CAAC;IAExB,IAAAQ,CAAC,GAAOV,YAAY,CAAA,CAAA,CAAnB;MAAEW,CAAC,GAAIX,YAAY,CAAA,CAAA,CAAhB;IAEX,OAAOY,QAAAA,CAAAA,YAAY,CACjBC,KACE,CAAAC,aAAA,CAAA,KAAA,EAAA;MAAAxB,GAAG,EAAEA,GAAgC;MACrCyB,KAAK,EAAE;QACLtB,MAAM,EAAE,EAAG,CAAAuB,MAAA,CAAAvB,MAAM,EAAI,IAAA,CAAA;QACrBD,IAAI,EAAE,EAAA,CAAAwB,MAAA,CAAGxB,IAAI,GAAGkB,CAAC,EAAI,IAAA,CAAA;QACrBO,aAAa,EAAE,MAAM;QACrBC,QAAQ,EAAE,UAAU;QACpB3B,GAAG,EAAE,EAAA,CAAAyB,MAAA,CAAGzB,GAAG,GAAGoB,CAAC,EAAI,IAAA,CAAA;QACnBjB,KAAK,EAAE,EAAG,CAAAsB,MAAA,CAAAtB,KAAK,EAAI,IAAA;MACpB;KAAA,CACD,EACFyB,QAAQ,CAACC,IAAI,CACd;EACH,CAAC,CACF;EAEDjC,UAAU,CAACkC,WAAW,GAAG,YAAY;EAAA,OAzCxBlC,UAAU;AAAA;"}
@@ -0,0 +1,52 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var React = require('react');
5
+ var Nanobus = require('nanobus');
6
+ var client = require('react-dom/client');
7
+ var Wrapper = function (_a) {
8
+ var emitter = _a.emitter,
9
+ componentProps = _a.componentProps,
10
+ Component = _a.Component;
11
+ var _b = React.useState(componentProps),
12
+ localComponentProps = _b[0],
13
+ setLocalComponentProps = _b[1];
14
+ React.useEffect(function () {
15
+ var onUpdate = function (newComponentProps) {
16
+ setLocalComponentProps(newComponentProps);
17
+ };
18
+ emitter.addListener("update", onUpdate);
19
+ return function () {
20
+ emitter.removeListener("update", onUpdate);
21
+ };
22
+ }, [emitter]);
23
+ return React.createElement(Component, tslib.__assign({}, localComponentProps));
24
+ };
25
+ /**
26
+ * Create a wrapping connector for rendering a React element into a separate
27
+ * part of the DOM while being able to update it without remounting.
28
+ */
29
+ var createReactTooltipWrapper = function (parentNode, Component, componentProps) {
30
+ var emitter = new Nanobus();
31
+ var container = document.createElement("div");
32
+ parentNode.appendChild(container);
33
+ var root = client.createRoot(container);
34
+ root.render(React.createElement(Wrapper, {
35
+ componentProps: componentProps,
36
+ Component: Component,
37
+ emitter: emitter
38
+ }));
39
+ function destroy() {
40
+ root.unmount();
41
+ emitter.removeAllListeners("*");
42
+ }
43
+ function update(props) {
44
+ emitter.emit("update", props);
45
+ }
46
+ return {
47
+ destroy: destroy,
48
+ update: update
49
+ };
50
+ };
51
+ exports.createReactTooltipWrapper = createReactTooltipWrapper;
52
+ //# sourceMappingURL=createReactTooltipWrapper.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createReactTooltipWrapper.cjs","sources":["../../../../../../src/RichTextEditor/utils/plugins/LinkManager/createReactTooltipWrapper.tsx"],"sourcesContent":["import React, { ElementType, useEffect, useState } from \"react\"\nimport Nanobus from \"nanobus\"\nimport { createRoot } from \"react-dom/client\"\nimport { LinkEditorProps } from \"./components\"\n\nconst Wrapper = ({\n emitter,\n componentProps,\n Component,\n}: {\n emitter: Nanobus\n componentProps: LinkEditorProps\n Component: ElementType\n}): JSX.Element => {\n const [localComponentProps, setLocalComponentProps] =\n useState<LinkEditorProps>(componentProps)\n\n useEffect(() => {\n const onUpdate = (newComponentProps: LinkEditorProps): void => {\n setLocalComponentProps(newComponentProps)\n }\n emitter.addListener(\"update\", onUpdate)\n\n return () => {\n emitter.removeListener(\"update\", onUpdate)\n }\n }, [emitter])\n\n return <Component {...localComponentProps} />\n}\n\n/**\n * Create a wrapping connector for rendering a React element into a separate\n * part of the DOM while being able to update it without remounting.\n */\nexport const createReactTooltipWrapper = (\n parentNode: HTMLElement,\n Component: ElementType,\n componentProps: LinkEditorProps\n): {\n destroy: () => void\n update: (props: LinkEditorProps) => void\n} => {\n const emitter = new Nanobus()\n const container = document.createElement(\"div\")\n parentNode.appendChild(container)\n const root = createRoot(container)\n\n root.render(\n <Wrapper\n componentProps={componentProps}\n Component={Component}\n emitter={emitter}\n />\n )\n\n function destroy(): void {\n root.unmount()\n emitter.removeAllListeners(\"*\")\n }\n\n function update(props: LinkEditorProps): void {\n emitter.emit(\"update\", props)\n }\n\n return { destroy, update }\n}\n"],"names":["Wrapper","_a","emitter","componentProps","Component","_b","useState","localComponentProps","setLocalComponentProps","useEffect","onUpdate","newComponentProps","addListener","removeListener","React","createElement","__assign","createReactTooltipWrapper","parentNode","Nanobus","container","document","appendChild","root","createRoot","render","destroy","unmount","removeAllListeners","update","props","emit"],"mappings":";;;;;;AAKA,IAAMA,OAAO,GAAG,SAAAA,CAACC,EAQhB,EAAA;EAPC,IAAAC,OAAO,aAAA;IACPC,cAAc,GAAAF,EAAA,CAAAE,cAAA;IACdC,SAAS,GAAAH,EAAA,CAAAG,SAAA;EAMH,IAAAC,EAAA,GACJC,KAAAA,CAAAA,QAAQ,CAAkBH,cAAc,CAAC;IADpCI,mBAAmB,GAAAF,EAAA,CAAA,CAAA,CAAA;IAAEG,sBAAsB,GAAAH,EAAA,CAAA,CAAA,CACP;EAE3CI,KAAAA,CAAAA,SAAS,CAAC,YAAA;IACR,IAAMC,QAAQ,GAAG,SAAAA,CAACC,iBAAkC,EAAA;MAClDH,sBAAsB,CAACG,iBAAiB,CAAC;IAC3C,CAAC;IACDT,OAAO,CAACU,WAAW,CAAC,QAAQ,EAAEF,QAAQ,CAAC;IAEvC,OAAO,YAAA;MACLR,OAAO,CAACW,cAAc,CAAC,QAAQ,EAAEH,QAAQ,CAAC;IAC5C,CAAC;EACH,CAAC,EAAE,CAACR,OAAO,CAAC,CAAC;EAEb,OAAOY,KAAC,CAAAC,aAAA,CAAAX,SAAS,EAAKY,KAAA,CAAAA,QAAA,CAAA,CAAA,CAAA,EAAAT,mBAAmB,EAAI;AAC/C,CAAC;AAED;;;AAGG;IACUU,yBAAyB,GAAG,SAAAA,CACvCC,UAAuB,EACvBd,SAAsB,EACtBD,cAA+B,EAAA;EAK/B,IAAMD,OAAO,GAAG,IAAIiB,OAAO,EAAE;EAC7B,IAAMC,SAAS,GAAGC,QAAQ,CAACN,aAAa,CAAC,KAAK,CAAC;EAC/CG,UAAU,CAACI,WAAW,CAACF,SAAS,CAAC;EACjC,IAAMG,IAAI,GAAGC,iBAAU,CAACJ,SAAS,CAAC;EAElCG,IAAI,CAACE,MAAM,CACTX,oBAACd,OAAO,EAAA;IACNG,cAAc,EAAEA,cAAc;IAC9BC,SAAS,EAAEA,SAAS;IACpBF,OAAO,EAAEA;EAAO,CAAA,CAChB,CACH;EAED,SAASwB,OAAOA,CAAA,EAAA;IACdH,IAAI,CAACI,OAAO,CAAA,CAAE;IACdzB,OAAO,CAAC0B,kBAAkB,CAAC,GAAG,CAAC;EAChC;EAED,SAASC,MAAMA,CAACC,KAAsB,EAAA;IACpC5B,OAAO,CAAC6B,IAAI,CAAC,QAAQ,EAAED,KAAK,CAAC;EAC9B;EAED,OAAO;IAAEJ,OAAO,EAAAA,OAAA;IAAEG,MAAM,EAAAA;EAAA,CAAE;AAC5B,CAAA;"}
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ var validateLink = function (href) {
4
+ var isValidLink = /^https?:\/\//.test(href);
5
+ if (!isValidLink) {
6
+ return {
7
+ status: "error",
8
+ message: "Please enter a valid URL"
9
+ };
10
+ }
11
+ return {
12
+ status: "success"
13
+ };
14
+ };
15
+ exports.validateLink = validateLink;
16
+ //# sourceMappingURL=validation.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.cjs","sources":["../../../../../../src/RichTextEditor/utils/plugins/LinkManager/validation.ts"],"sourcesContent":["export type ValidationResponse = {\n status: \"success\" | \"error\" | \"default\"\n message?: React.ReactNode\n}\n\nexport const validateLink = (href: string): ValidationResponse => {\n const isValidLink = /^https?:\\/\\//.test(href)\n\n if (!isValidLink) {\n return {\n status: \"error\",\n message: \"Please enter a valid URL\",\n }\n }\n\n return {\n status: \"success\",\n }\n}\n"],"names":["validateLink","href","isValidLink","test","status","message"],"mappings":";;AAKO,IAAMA,YAAY,GAAG,SAAAA,CAACC,IAAY,EAAA;EACvC,IAAMC,WAAW,GAAG,cAAc,CAACC,IAAI,CAACF,IAAI,CAAC;EAE7C,IAAI,CAACC,WAAW,EAAE;IAChB,OAAO;MACLE,MAAM,EAAE,OAAO;MACfC,OAAO,EAAE;KACV;EACF;EAED,OAAO;IACLD,MAAM,EAAE;GACT;AACH,CAAA;"}
@@ -0,0 +1,73 @@
1
+ 'use strict';
2
+
3
+ var tslib = require('tslib');
4
+ var prosemirrorSchemaBasic = require('prosemirror-schema-basic');
5
+ var validation = require('../plugins/LinkManager/validation.cjs');
6
+ var getMarks = function () {
7
+ return tslib.__assign(tslib.__assign({}, prosemirrorSchemaBasic.marks), {
8
+ // An underline mark. Rendered as a `<u>` element. Has parse rules that also
9
+ // matches `font-style: underline`.
10
+ underline: {
11
+ parseDOM: [{
12
+ tag: "u"
13
+ }, {
14
+ style: "font-style=underline"
15
+ }],
16
+ toDOM: function () {
17
+ return ["u", 0];
18
+ }
19
+ },
20
+ // A link. Rendered and parsed as an `<a>` element.
21
+ link: {
22
+ attrs: {
23
+ href: {
24
+ "default": null
25
+ },
26
+ _metadata: {
27
+ "default": {
28
+ added: true
29
+ }
30
+ },
31
+ target: {
32
+ "default": "_blank"
33
+ },
34
+ rel: {
35
+ "default": "noreferrer"
36
+ }
37
+ },
38
+ inclusive: false,
39
+ parseDOM: [{
40
+ tag: "a[href]",
41
+ getAttrs: function (dom) {
42
+ return {
43
+ href: getAttributeWithDefault(dom, "href"),
44
+ target: getAttributeWithDefault(dom, "target"),
45
+ rel: getAttributeWithDefault(dom, "rel"),
46
+ _metadata: null
47
+ };
48
+ }
49
+ }],
50
+ toDOM: function (node) {
51
+ var _a = node.attrs,
52
+ href = _a.href,
53
+ target = _a.target,
54
+ rel = _a.rel;
55
+ var validationStatus = validation.validateLink(href);
56
+ if (validationStatus.status === "error") {
57
+ return ["span", 0];
58
+ }
59
+ return ["a", {
60
+ href: href,
61
+ target: target,
62
+ rel: rel
63
+ }, 0];
64
+ }
65
+ }
66
+ });
67
+ };
68
+ var getAttributeWithDefault = function (node, attributeName) {
69
+ var value = node.getAttribute(attributeName);
70
+ return value && value !== "" ? value : null;
71
+ };
72
+ exports.getMarks = getMarks;
73
+ //# sourceMappingURL=marks.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marks.cjs","sources":["../../../../../src/RichTextEditor/utils/schema/marks.ts"],"sourcesContent":["import { MarkSpec, Node } from \"prosemirror-model\"\nimport { marks as proseMarks } from \"prosemirror-schema-basic\"\nimport { validateLink } from \"../plugins/LinkManager/validation\"\n\nexport const getMarks = (): MarkSpec => ({\n ...proseMarks,\n\n // An underline mark. Rendered as a `<u>` element. Has parse rules that also\n // matches `font-style: underline`.\n underline: {\n parseDOM: [{ tag: \"u\" }, { style: \"font-style=underline\" }],\n toDOM() {\n return [\"u\", 0]\n },\n },\n\n // A link. Rendered and parsed as an `<a>` element.\n link: {\n attrs: {\n href: { default: null },\n _metadata: { default: { added: true } },\n target: { default: \"_blank\" },\n rel: { default: \"noreferrer\" },\n },\n inclusive: false,\n parseDOM: [\n {\n tag: \"a[href]\",\n getAttrs(dom: HTMLAnchorElement) {\n return {\n href: getAttributeWithDefault(dom, \"href\"),\n target: getAttributeWithDefault(dom, \"target\"),\n rel: getAttributeWithDefault(dom, \"rel\"),\n _metadata: null,\n }\n },\n },\n ],\n toDOM(node: Node) {\n const { href, target, rel } = node.attrs\n const validationStatus = validateLink(href)\n\n if (validationStatus.status === \"error\") {\n return [\"span\", 0]\n }\n\n return [\"a\", { href, target, rel }, 0]\n },\n },\n})\n\nconst getAttributeWithDefault = (\n node: HTMLElement,\n attributeName: string\n): string | null => {\n const value = node.getAttribute(attributeName)\n return value && value !== \"\" ? value : null\n}\n"],"names":["getMarks","proseMarks","underline","parseDOM","tag","style","toDOM","link","attrs","href","_metadata","added","target","rel","inclusive","getAttrs","dom","getAttributeWithDefault","node","_a","validationStatus","validateLink","status","attributeName","value","getAttribute"],"mappings":";;;;;AAIa,IAAAA,QAAQ,GAAG,SAAAA,CAAA,EAAgB;EAAA,yCACnCC,sBAAAA,CAAAA,KAAU,CAAA,EAAA;;;IAIbC,SAAS,EAAE;MACTC,QAAQ,EAAE,CAAC;QAAEC,GAAG,EAAE;MAAK,CAAA,EAAE;QAAEC,KAAK,EAAE;OAAwB,CAAC;MAC3DC,KAAK,EAAA,SAAAA,CAAA,EAAA;QACH,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;MAChB;IACF,CAAA;;IAGDC,IAAI,EAAE;MACJC,KAAK,EAAE;QACLC,IAAI,EAAE;UAAE,SAAO,EAAE;QAAM,CAAA;QACvBC,SAAS,EAAE;UAAE,SAAO,EAAE;YAAEC,KAAK,EAAE;UAAI;QAAI,CAAA;QACvCC,MAAM,EAAE;UAAE,SAAO,EAAE;QAAU,CAAA;QAC7BC,GAAG,EAAE;UAAE,SAAO,EAAE;QAAc;MAC/B,CAAA;MACDC,SAAS,EAAE,KAAK;MAChBX,QAAQ,EAAE,CACR;QACEC,GAAG,EAAE,SAAS;QACdW,QAAQ,YAACC,GAAsB,EAAA;UAC7B,OAAO;YACLP,IAAI,EAAEQ,uBAAuB,CAACD,GAAG,EAAE,MAAM,CAAC;YAC1CJ,MAAM,EAAEK,uBAAuB,CAACD,GAAG,EAAE,QAAQ,CAAC;YAC9CH,GAAG,EAAEI,uBAAuB,CAACD,GAAG,EAAE,KAAK,CAAC;YACxCN,SAAS,EAAE;WACZ;QACF;MACF,CAAA,CACF;MACDJ,KAAK,YAACY,IAAU,EAAA;QACR,IAAAC,EAAwB,GAAAD,IAAI,CAACV,KAAK;UAAhCC,IAAI,GAAAU,EAAA,CAAAV,IAAA;UAAEG,MAAM,GAAAO,EAAA,CAAAP,MAAA;UAAEC,GAAG,SAAe;QACxC,IAAMO,gBAAgB,GAAGC,uBAAY,CAACZ,IAAI,CAAC;QAE3C,IAAIW,gBAAgB,CAACE,MAAM,KAAK,OAAO,EAAE;UACvC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACnB;QAED,OAAO,CAAC,GAAG,EAAE;UAAEb,IAAI,MAAA;UAAEG,MAAM,EAAAA,MAAA;UAAEC,GAAG,EAAAA;SAAE,EAAE,CAAC,CAAC;MACvC;IACF;EAAA,CACD,CAAA;AAAA,CAAA;AAEF,IAAMI,uBAAuB,GAAG,SAAAA,CAC9BC,IAAiB,EACjBK,aAAqB,EAAA;EAErB,IAAMC,KAAK,GAAGN,IAAI,CAACO,YAAY,CAACF,aAAa,CAAC;EAC9C,OAAOC,KAAK,IAAIA,KAAK,KAAK,EAAE,GAAGA,KAAK,GAAG,IAAI;AAC7C,CAAC;"}