@akinon/ui-editor 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (521) hide show
  1. package/dist/cjs/__tests__/index.test.d.ts +2 -0
  2. package/dist/cjs/__tests__/index.test.d.ts.map +1 -0
  3. package/dist/cjs/__tests__/index.test.js +38 -0
  4. package/dist/cjs/__tests__/index.test.tsx +51 -0
  5. package/dist/cjs/i18n/index.d.ts +3 -0
  6. package/dist/cjs/i18n/index.d.ts.map +1 -0
  7. package/dist/cjs/i18n/index.js +11 -0
  8. package/dist/cjs/i18n/translations/en.d.ts +86 -0
  9. package/dist/cjs/i18n/translations/en.d.ts.map +1 -0
  10. package/dist/cjs/i18n/translations/en.js +85 -0
  11. package/dist/cjs/i18n/translations/tr.d.ts +86 -0
  12. package/dist/cjs/i18n/translations/tr.d.ts.map +1 -0
  13. package/dist/cjs/i18n/translations/tr.js +85 -0
  14. package/dist/cjs/index.d.ts +4 -0
  15. package/dist/cjs/index.d.ts.map +1 -0
  16. package/dist/cjs/index.js +8 -0
  17. package/dist/cjs/tiptap/assets/__tests__/icons.test.d.ts +2 -0
  18. package/dist/cjs/tiptap/assets/__tests__/icons.test.d.ts.map +1 -0
  19. package/dist/cjs/tiptap/assets/__tests__/icons.test.js +25 -0
  20. package/dist/cjs/tiptap/assets/__tests__/icons.test.tsx +29 -0
  21. package/dist/cjs/tiptap/assets/icons.d.ts +3 -0
  22. package/dist/cjs/tiptap/assets/icons.d.ts.map +1 -0
  23. package/dist/cjs/tiptap/assets/icons.js +3 -0
  24. package/dist/cjs/tiptap/components/__tests__/format-bubble-menu.test.d.ts +6 -0
  25. package/dist/cjs/tiptap/components/__tests__/format-bubble-menu.test.d.ts.map +1 -0
  26. package/dist/cjs/tiptap/components/__tests__/format-bubble-menu.test.js +311 -0
  27. package/dist/cjs/tiptap/components/__tests__/format-bubble-menu.test.tsx +452 -0
  28. package/dist/cjs/tiptap/components/__tests__/html-code-viewer.test.d.ts +2 -0
  29. package/dist/cjs/tiptap/components/__tests__/html-code-viewer.test.d.ts.map +1 -0
  30. package/dist/cjs/tiptap/components/__tests__/html-code-viewer.test.js +89 -0
  31. package/dist/cjs/tiptap/components/__tests__/html-code-viewer.test.tsx +126 -0
  32. package/dist/cjs/tiptap/components/__tests__/image-upload-placeholder.test.d.ts +2 -0
  33. package/dist/cjs/tiptap/components/__tests__/image-upload-placeholder.test.d.ts.map +1 -0
  34. package/dist/cjs/tiptap/components/__tests__/image-upload-placeholder.test.js +206 -0
  35. package/dist/cjs/tiptap/components/__tests__/image-upload-placeholder.test.tsx +297 -0
  36. package/dist/cjs/tiptap/components/__tests__/secure-script-component.test.d.ts +2 -0
  37. package/dist/cjs/tiptap/components/__tests__/secure-script-component.test.d.ts.map +1 -0
  38. package/dist/cjs/tiptap/components/__tests__/secure-script-component.test.js +57 -0
  39. package/dist/cjs/tiptap/components/__tests__/secure-script-component.test.tsx +89 -0
  40. package/dist/cjs/tiptap/components/__tests__/table-bubble-menu.test.d.ts +6 -0
  41. package/dist/cjs/tiptap/components/__tests__/table-bubble-menu.test.d.ts.map +1 -0
  42. package/dist/cjs/tiptap/components/__tests__/table-bubble-menu.test.js +284 -0
  43. package/dist/cjs/tiptap/components/__tests__/table-bubble-menu.test.tsx +466 -0
  44. package/dist/cjs/tiptap/components/__tests__/table-popover.test.d.ts +2 -0
  45. package/dist/cjs/tiptap/components/__tests__/table-popover.test.d.ts.map +1 -0
  46. package/dist/cjs/tiptap/components/__tests__/table-popover.test.js +101 -0
  47. package/dist/cjs/tiptap/components/__tests__/table-popover.test.tsx +157 -0
  48. package/dist/cjs/tiptap/components/__tests__/tiptap.test.d.ts +2 -0
  49. package/dist/cjs/tiptap/components/__tests__/tiptap.test.d.ts.map +1 -0
  50. package/dist/cjs/tiptap/components/__tests__/tiptap.test.js +275 -0
  51. package/dist/cjs/tiptap/components/__tests__/tiptap.test.tsx +378 -0
  52. package/dist/cjs/tiptap/components/format-bubble-menu.d.ts +8 -0
  53. package/dist/cjs/tiptap/components/format-bubble-menu.d.ts.map +1 -0
  54. package/dist/cjs/tiptap/components/format-bubble-menu.js +202 -0
  55. package/dist/cjs/tiptap/components/html-code-viewer.d.ts +10 -0
  56. package/dist/cjs/tiptap/components/html-code-viewer.d.ts.map +1 -0
  57. package/dist/cjs/tiptap/components/html-code-viewer.js +96 -0
  58. package/dist/cjs/tiptap/components/image-upload-placeholder.d.ts +4 -0
  59. package/dist/cjs/tiptap/components/image-upload-placeholder.d.ts.map +1 -0
  60. package/dist/cjs/tiptap/components/image-upload-placeholder.js +94 -0
  61. package/dist/cjs/tiptap/components/menu-bar/__tests__/action-toolbar.test.d.ts +2 -0
  62. package/dist/cjs/tiptap/components/menu-bar/__tests__/action-toolbar.test.d.ts.map +1 -0
  63. package/dist/cjs/tiptap/components/menu-bar/__tests__/action-toolbar.test.js +78 -0
  64. package/dist/cjs/tiptap/components/menu-bar/__tests__/action-toolbar.test.tsx +212 -0
  65. package/dist/cjs/tiptap/components/menu-bar/__tests__/alignment-toolbar.test.d.ts +3 -0
  66. package/dist/cjs/tiptap/components/menu-bar/__tests__/alignment-toolbar.test.d.ts.map +1 -0
  67. package/dist/cjs/tiptap/components/menu-bar/__tests__/alignment-toolbar.test.js +201 -0
  68. package/dist/cjs/tiptap/components/menu-bar/__tests__/alignment-toolbar.test.tsx +411 -0
  69. package/dist/cjs/tiptap/components/menu-bar/__tests__/heading-selector.test.d.ts +4 -0
  70. package/dist/cjs/tiptap/components/menu-bar/__tests__/heading-selector.test.d.ts.map +1 -0
  71. package/dist/cjs/tiptap/components/menu-bar/__tests__/heading-selector.test.js +242 -0
  72. package/dist/cjs/tiptap/components/menu-bar/__tests__/heading-selector.test.tsx +569 -0
  73. package/dist/cjs/tiptap/components/menu-bar/__tests__/index.test.d.ts +2 -0
  74. package/dist/cjs/tiptap/components/menu-bar/__tests__/index.test.d.ts.map +1 -0
  75. package/dist/cjs/tiptap/components/menu-bar/__tests__/index.test.js +236 -0
  76. package/dist/cjs/tiptap/components/menu-bar/__tests__/index.test.tsx +325 -0
  77. package/dist/cjs/tiptap/components/menu-bar/__tests__/link-popover.test.d.ts +3 -0
  78. package/dist/cjs/tiptap/components/menu-bar/__tests__/link-popover.test.d.ts.map +1 -0
  79. package/dist/cjs/tiptap/components/menu-bar/__tests__/link-popover.test.js +332 -0
  80. package/dist/cjs/tiptap/components/menu-bar/__tests__/link-popover.test.tsx +648 -0
  81. package/dist/cjs/tiptap/components/menu-bar/__tests__/list-and-block-toolbar.test.d.ts +2 -0
  82. package/dist/cjs/tiptap/components/menu-bar/__tests__/list-and-block-toolbar.test.d.ts.map +1 -0
  83. package/dist/cjs/tiptap/components/menu-bar/__tests__/list-and-block-toolbar.test.js +196 -0
  84. package/dist/cjs/tiptap/components/menu-bar/__tests__/list-and-block-toolbar.test.tsx +414 -0
  85. package/dist/cjs/tiptap/components/menu-bar/__tests__/media-toolbar.test.d.ts +2 -0
  86. package/dist/cjs/tiptap/components/menu-bar/__tests__/media-toolbar.test.d.ts.map +1 -0
  87. package/dist/cjs/tiptap/components/menu-bar/__tests__/media-toolbar.test.js +74 -0
  88. package/dist/cjs/tiptap/components/menu-bar/__tests__/media-toolbar.test.tsx +206 -0
  89. package/dist/cjs/tiptap/components/menu-bar/__tests__/text-formatting-toolbar.test.d.ts +2 -0
  90. package/dist/cjs/tiptap/components/menu-bar/__tests__/text-formatting-toolbar.test.d.ts.map +1 -0
  91. package/dist/cjs/tiptap/components/menu-bar/__tests__/text-formatting-toolbar.test.js +265 -0
  92. package/dist/cjs/tiptap/components/menu-bar/__tests__/text-formatting-toolbar.test.tsx +575 -0
  93. package/dist/cjs/tiptap/components/menu-bar/__tests__/youtube-popover.test.d.ts +3 -0
  94. package/dist/cjs/tiptap/components/menu-bar/__tests__/youtube-popover.test.d.ts.map +1 -0
  95. package/dist/cjs/tiptap/components/menu-bar/__tests__/youtube-popover.test.js +277 -0
  96. package/dist/cjs/tiptap/components/menu-bar/__tests__/youtube-popover.test.tsx +538 -0
  97. package/dist/cjs/tiptap/components/menu-bar/action-toolbar.d.ts +15 -0
  98. package/dist/cjs/tiptap/components/menu-bar/action-toolbar.d.ts.map +1 -0
  99. package/dist/cjs/tiptap/components/menu-bar/action-toolbar.js +40 -0
  100. package/dist/cjs/tiptap/components/menu-bar/alignment-toolbar.d.ts +12 -0
  101. package/dist/cjs/tiptap/components/menu-bar/alignment-toolbar.d.ts.map +1 -0
  102. package/dist/cjs/tiptap/components/menu-bar/alignment-toolbar.js +39 -0
  103. package/dist/cjs/tiptap/components/menu-bar/heading-selector.d.ts +16 -0
  104. package/dist/cjs/tiptap/components/menu-bar/heading-selector.d.ts.map +1 -0
  105. package/dist/cjs/tiptap/components/menu-bar/heading-selector.js +70 -0
  106. package/dist/cjs/tiptap/components/menu-bar/index.d.ts +18 -0
  107. package/dist/cjs/tiptap/components/menu-bar/index.d.ts.map +1 -0
  108. package/dist/cjs/tiptap/components/menu-bar/index.js +131 -0
  109. package/dist/cjs/tiptap/components/menu-bar/link-popover.d.ts +12 -0
  110. package/dist/cjs/tiptap/components/menu-bar/link-popover.d.ts.map +1 -0
  111. package/dist/cjs/tiptap/components/menu-bar/link-popover.js +108 -0
  112. package/dist/cjs/tiptap/components/menu-bar/list-and-block-toolbar.d.ts +18 -0
  113. package/dist/cjs/tiptap/components/menu-bar/list-and-block-toolbar.d.ts.map +1 -0
  114. package/dist/cjs/tiptap/components/menu-bar/list-and-block-toolbar.js +69 -0
  115. package/dist/cjs/tiptap/components/menu-bar/media-toolbar.d.ts +13 -0
  116. package/dist/cjs/tiptap/components/menu-bar/media-toolbar.d.ts.map +1 -0
  117. package/dist/cjs/tiptap/components/menu-bar/media-toolbar.js +15 -0
  118. package/dist/cjs/tiptap/components/menu-bar/text-formatting-toolbar.d.ts +18 -0
  119. package/dist/cjs/tiptap/components/menu-bar/text-formatting-toolbar.d.ts.map +1 -0
  120. package/dist/cjs/tiptap/components/menu-bar/text-formatting-toolbar.js +87 -0
  121. package/dist/cjs/tiptap/components/menu-bar/youtube-popover.d.ts +12 -0
  122. package/dist/cjs/tiptap/components/menu-bar/youtube-popover.d.ts.map +1 -0
  123. package/dist/cjs/tiptap/components/menu-bar/youtube-popover.js +70 -0
  124. package/dist/cjs/tiptap/components/secure-script-component.d.ts +3 -0
  125. package/dist/cjs/tiptap/components/secure-script-component.d.ts.map +1 -0
  126. package/dist/cjs/tiptap/components/secure-script-component.js +61 -0
  127. package/dist/cjs/tiptap/components/table-bubble-menu.d.ts +9 -0
  128. package/dist/cjs/tiptap/components/table-bubble-menu.d.ts.map +1 -0
  129. package/dist/cjs/tiptap/components/table-bubble-menu.js +274 -0
  130. package/dist/cjs/tiptap/components/table-popover.d.ts +10 -0
  131. package/dist/cjs/tiptap/components/table-popover.d.ts.map +1 -0
  132. package/dist/cjs/tiptap/components/table-popover.js +86 -0
  133. package/dist/cjs/tiptap/components/tiptap.d.ts +4 -0
  134. package/dist/cjs/tiptap/components/tiptap.d.ts.map +1 -0
  135. package/dist/cjs/tiptap/components/tiptap.js +311 -0
  136. package/dist/cjs/tiptap/constants/__tests__/table-defaults.test.d.ts +2 -0
  137. package/dist/cjs/tiptap/constants/__tests__/table-defaults.test.d.ts.map +1 -0
  138. package/dist/cjs/tiptap/constants/__tests__/table-defaults.test.js +56 -0
  139. package/dist/cjs/tiptap/constants/__tests__/table-defaults.test.ts +69 -0
  140. package/dist/cjs/tiptap/constants/editor-config.d.ts +89 -0
  141. package/dist/cjs/tiptap/constants/editor-config.d.ts.map +1 -0
  142. package/dist/cjs/tiptap/constants/editor-config.js +103 -0
  143. package/dist/cjs/tiptap/constants/html-elements.d.ts +95 -0
  144. package/dist/cjs/tiptap/constants/html-elements.d.ts.map +1 -0
  145. package/dist/cjs/tiptap/constants/html-elements.js +158 -0
  146. package/dist/cjs/tiptap/constants/index.d.ts +4 -0
  147. package/dist/cjs/tiptap/constants/index.d.ts.map +1 -0
  148. package/dist/cjs/tiptap/constants/index.js +3 -0
  149. package/dist/cjs/tiptap/constants/table-defaults.d.ts +14 -0
  150. package/dist/cjs/tiptap/constants/table-defaults.d.ts.map +1 -0
  151. package/dist/cjs/tiptap/constants/table-defaults.js +18 -0
  152. package/dist/cjs/tiptap/extensions/__tests__/comment-extension.test.d.ts +2 -0
  153. package/dist/cjs/tiptap/extensions/__tests__/comment-extension.test.d.ts.map +1 -0
  154. package/dist/cjs/tiptap/extensions/__tests__/comment-extension.test.js +75 -0
  155. package/dist/cjs/tiptap/extensions/__tests__/comment-extension.test.ts +84 -0
  156. package/dist/cjs/tiptap/extensions/__tests__/custom-table-cell-extension.test.d.ts +2 -0
  157. package/dist/cjs/tiptap/extensions/__tests__/custom-table-cell-extension.test.d.ts.map +1 -0
  158. package/dist/cjs/tiptap/extensions/__tests__/custom-table-cell-extension.test.js +116 -0
  159. package/dist/cjs/tiptap/extensions/__tests__/custom-table-cell-extension.test.ts +147 -0
  160. package/dist/cjs/tiptap/extensions/__tests__/custom-table-cell-extension.test.tsx +90 -0
  161. package/dist/cjs/tiptap/extensions/__tests__/custom-table-header-extension.test.d.ts +2 -0
  162. package/dist/cjs/tiptap/extensions/__tests__/custom-table-header-extension.test.d.ts.map +1 -0
  163. package/dist/cjs/tiptap/extensions/__tests__/custom-table-header-extension.test.js +183 -0
  164. package/dist/cjs/tiptap/extensions/__tests__/custom-table-header-extension.test.ts +213 -0
  165. package/dist/cjs/tiptap/extensions/__tests__/html-block-extension.test.d.ts +2 -0
  166. package/dist/cjs/tiptap/extensions/__tests__/html-block-extension.test.d.ts.map +1 -0
  167. package/dist/cjs/tiptap/extensions/__tests__/html-block-extension.test.js +103 -0
  168. package/dist/cjs/tiptap/extensions/__tests__/html-block-extension.test.ts +117 -0
  169. package/dist/cjs/tiptap/extensions/__tests__/html-inline-extension.test.d.ts +2 -0
  170. package/dist/cjs/tiptap/extensions/__tests__/html-inline-extension.test.d.ts.map +1 -0
  171. package/dist/cjs/tiptap/extensions/__tests__/html-inline-extension.test.js +105 -0
  172. package/dist/cjs/tiptap/extensions/__tests__/html-inline-extension.test.ts +119 -0
  173. package/dist/cjs/tiptap/extensions/__tests__/iframe-extension.test.d.ts +2 -0
  174. package/dist/cjs/tiptap/extensions/__tests__/iframe-extension.test.d.ts.map +1 -0
  175. package/dist/cjs/tiptap/extensions/__tests__/iframe-extension.test.js +262 -0
  176. package/dist/cjs/tiptap/extensions/__tests__/iframe-extension.test.ts +297 -0
  177. package/dist/cjs/tiptap/extensions/__tests__/image-upload-extension.test.d.ts +2 -0
  178. package/dist/cjs/tiptap/extensions/__tests__/image-upload-extension.test.d.ts.map +1 -0
  179. package/dist/cjs/tiptap/extensions/__tests__/image-upload-extension.test.js +52 -0
  180. package/dist/cjs/tiptap/extensions/__tests__/image-upload-extension.test.tsx +65 -0
  181. package/dist/cjs/tiptap/extensions/__tests__/index.test.d.ts +2 -0
  182. package/dist/cjs/tiptap/extensions/__tests__/index.test.d.ts.map +1 -0
  183. package/dist/cjs/tiptap/extensions/__tests__/index.test.js +24 -0
  184. package/dist/cjs/tiptap/extensions/__tests__/index.test.ts +26 -0
  185. package/dist/cjs/tiptap/extensions/__tests__/reset-marks-extension.test.d.ts +2 -0
  186. package/dist/cjs/tiptap/extensions/__tests__/reset-marks-extension.test.d.ts.map +1 -0
  187. package/dist/cjs/tiptap/extensions/__tests__/reset-marks-extension.test.js +53 -0
  188. package/dist/cjs/tiptap/extensions/__tests__/reset-marks-extension.test.ts +74 -0
  189. package/dist/cjs/tiptap/extensions/__tests__/secure-script-extension.test.d.ts +2 -0
  190. package/dist/cjs/tiptap/extensions/__tests__/secure-script-extension.test.d.ts.map +1 -0
  191. package/dist/cjs/tiptap/extensions/__tests__/secure-script-extension.test.js +27 -0
  192. package/dist/cjs/tiptap/extensions/__tests__/secure-script-extension.test.tsx +32 -0
  193. package/dist/cjs/tiptap/extensions/comment-extension.d.ts +13 -0
  194. package/dist/cjs/tiptap/extensions/comment-extension.d.ts.map +1 -0
  195. package/dist/cjs/tiptap/extensions/comment-extension.js +47 -0
  196. package/dist/cjs/tiptap/extensions/custom-table-cell-extension.d.ts +10 -0
  197. package/dist/cjs/tiptap/extensions/custom-table-cell-extension.d.ts.map +1 -0
  198. package/dist/cjs/tiptap/extensions/custom-table-cell-extension.js +64 -0
  199. package/dist/cjs/tiptap/extensions/custom-table-header-extension.d.ts +10 -0
  200. package/dist/cjs/tiptap/extensions/custom-table-header-extension.d.ts.map +1 -0
  201. package/dist/cjs/tiptap/extensions/custom-table-header-extension.js +63 -0
  202. package/dist/cjs/tiptap/extensions/html-block-extension.d.ts +6 -0
  203. package/dist/cjs/tiptap/extensions/html-block-extension.d.ts.map +1 -0
  204. package/dist/cjs/tiptap/extensions/html-block-extension.js +90 -0
  205. package/dist/cjs/tiptap/extensions/html-inline-extension.d.ts +6 -0
  206. package/dist/cjs/tiptap/extensions/html-inline-extension.d.ts.map +1 -0
  207. package/dist/cjs/tiptap/extensions/html-inline-extension.js +87 -0
  208. package/dist/cjs/tiptap/extensions/iframe-extension.d.ts +18 -0
  209. package/dist/cjs/tiptap/extensions/iframe-extension.d.ts.map +1 -0
  210. package/dist/cjs/tiptap/extensions/iframe-extension.js +170 -0
  211. package/dist/cjs/tiptap/extensions/image-upload-extension.d.ts +3 -0
  212. package/dist/cjs/tiptap/extensions/image-upload-extension.d.ts.map +1 -0
  213. package/dist/cjs/tiptap/extensions/image-upload-extension.js +29 -0
  214. package/dist/cjs/tiptap/extensions/index.d.ts +10 -0
  215. package/dist/cjs/tiptap/extensions/index.d.ts.map +1 -0
  216. package/dist/cjs/tiptap/extensions/index.js +9 -0
  217. package/dist/cjs/tiptap/extensions/reset-marks-extension.d.ts +3 -0
  218. package/dist/cjs/tiptap/extensions/reset-marks-extension.d.ts.map +1 -0
  219. package/dist/cjs/tiptap/extensions/reset-marks-extension.js +17 -0
  220. package/dist/cjs/tiptap/extensions/secure-script-extension.d.ts +3 -0
  221. package/dist/cjs/tiptap/extensions/secure-script-extension.d.ts.map +1 -0
  222. package/dist/cjs/tiptap/extensions/secure-script-extension.js +55 -0
  223. package/dist/cjs/tiptap/types/index.d.ts +232 -0
  224. package/dist/cjs/tiptap/types/index.d.ts.map +1 -0
  225. package/dist/cjs/tiptap/types/index.js +1 -0
  226. package/dist/cjs/tiptap/utils/__tests__/format-html.test.d.ts +2 -0
  227. package/dist/cjs/tiptap/utils/__tests__/format-html.test.d.ts.map +1 -0
  228. package/dist/cjs/tiptap/utils/__tests__/format-html.test.js +68 -0
  229. package/dist/cjs/tiptap/utils/__tests__/format-html.test.ts +91 -0
  230. package/dist/cjs/tiptap/utils/__tests__/highlight-html.test.d.ts +2 -0
  231. package/dist/cjs/tiptap/utils/__tests__/highlight-html.test.d.ts.map +1 -0
  232. package/dist/cjs/tiptap/utils/__tests__/highlight-html.test.js +71 -0
  233. package/dist/cjs/tiptap/utils/__tests__/highlight-html.test.ts +100 -0
  234. package/dist/cjs/tiptap/utils/__tests__/index.test.d.ts +2 -0
  235. package/dist/cjs/tiptap/utils/__tests__/index.test.d.ts.map +1 -0
  236. package/dist/cjs/tiptap/utils/__tests__/index.test.js +13 -0
  237. package/dist/cjs/tiptap/utils/__tests__/index.test.ts +15 -0
  238. package/dist/cjs/tiptap/utils/__tests__/normalize-html.test.d.ts +2 -0
  239. package/dist/cjs/tiptap/utils/__tests__/normalize-html.test.d.ts.map +1 -0
  240. package/dist/cjs/tiptap/utils/__tests__/normalize-html.test.js +53 -0
  241. package/dist/cjs/tiptap/utils/__tests__/normalize-html.test.ts +77 -0
  242. package/dist/cjs/tiptap/utils/__tests__/tiptap-extensions.test.d.ts +2 -0
  243. package/dist/cjs/tiptap/utils/__tests__/tiptap-extensions.test.d.ts.map +1 -0
  244. package/dist/cjs/tiptap/utils/__tests__/tiptap-extensions.test.js +209 -0
  245. package/dist/cjs/tiptap/utils/__tests__/tiptap-extensions.test.ts +299 -0
  246. package/dist/cjs/tiptap/utils/format-html.d.ts +6 -0
  247. package/dist/cjs/tiptap/utils/format-html.d.ts.map +1 -0
  248. package/dist/cjs/tiptap/utils/format-html.js +108 -0
  249. package/dist/cjs/tiptap/utils/highlight-html.d.ts +6 -0
  250. package/dist/cjs/tiptap/utils/highlight-html.d.ts.map +1 -0
  251. package/dist/cjs/tiptap/utils/highlight-html.js +82 -0
  252. package/dist/cjs/tiptap/utils/index.d.ts +5 -0
  253. package/dist/cjs/tiptap/utils/index.d.ts.map +1 -0
  254. package/dist/cjs/tiptap/utils/index.js +4 -0
  255. package/dist/cjs/tiptap/utils/normalize-html.d.ts +7 -0
  256. package/dist/cjs/tiptap/utils/normalize-html.d.ts.map +1 -0
  257. package/dist/cjs/tiptap/utils/normalize-html.js +109 -0
  258. package/dist/cjs/tiptap/utils/tiptap-extensions.d.ts +21 -0
  259. package/dist/cjs/tiptap/utils/tiptap-extensions.d.ts.map +1 -0
  260. package/dist/cjs/tiptap/utils/tiptap-extensions.js +198 -0
  261. package/dist/esm/__tests__/index.test.d.ts +2 -0
  262. package/dist/esm/__tests__/index.test.d.ts.map +1 -0
  263. package/dist/esm/__tests__/index.test.js +38 -0
  264. package/dist/esm/__tests__/index.test.tsx +51 -0
  265. package/dist/esm/i18n/index.d.ts +3 -0
  266. package/dist/esm/i18n/index.d.ts.map +1 -0
  267. package/dist/esm/i18n/index.js +11 -0
  268. package/dist/esm/i18n/translations/en.d.ts +86 -0
  269. package/dist/esm/i18n/translations/en.d.ts.map +1 -0
  270. package/dist/esm/i18n/translations/en.js +85 -0
  271. package/dist/esm/i18n/translations/tr.d.ts +86 -0
  272. package/dist/esm/i18n/translations/tr.d.ts.map +1 -0
  273. package/dist/esm/i18n/translations/tr.js +85 -0
  274. package/dist/esm/index.d.ts +4 -0
  275. package/dist/esm/index.d.ts.map +1 -0
  276. package/dist/esm/index.js +8 -0
  277. package/dist/esm/tiptap/assets/__tests__/icons.test.d.ts +2 -0
  278. package/dist/esm/tiptap/assets/__tests__/icons.test.d.ts.map +1 -0
  279. package/dist/esm/tiptap/assets/__tests__/icons.test.js +25 -0
  280. package/dist/esm/tiptap/assets/__tests__/icons.test.tsx +29 -0
  281. package/dist/esm/tiptap/assets/icons.d.ts +3 -0
  282. package/dist/esm/tiptap/assets/icons.d.ts.map +1 -0
  283. package/dist/esm/tiptap/assets/icons.js +3 -0
  284. package/dist/esm/tiptap/components/__tests__/format-bubble-menu.test.d.ts +6 -0
  285. package/dist/esm/tiptap/components/__tests__/format-bubble-menu.test.d.ts.map +1 -0
  286. package/dist/esm/tiptap/components/__tests__/format-bubble-menu.test.js +311 -0
  287. package/dist/esm/tiptap/components/__tests__/format-bubble-menu.test.tsx +452 -0
  288. package/dist/esm/tiptap/components/__tests__/html-code-viewer.test.d.ts +2 -0
  289. package/dist/esm/tiptap/components/__tests__/html-code-viewer.test.d.ts.map +1 -0
  290. package/dist/esm/tiptap/components/__tests__/html-code-viewer.test.js +89 -0
  291. package/dist/esm/tiptap/components/__tests__/html-code-viewer.test.tsx +126 -0
  292. package/dist/esm/tiptap/components/__tests__/image-upload-placeholder.test.d.ts +2 -0
  293. package/dist/esm/tiptap/components/__tests__/image-upload-placeholder.test.d.ts.map +1 -0
  294. package/dist/esm/tiptap/components/__tests__/image-upload-placeholder.test.js +206 -0
  295. package/dist/esm/tiptap/components/__tests__/image-upload-placeholder.test.tsx +297 -0
  296. package/dist/esm/tiptap/components/__tests__/secure-script-component.test.d.ts +2 -0
  297. package/dist/esm/tiptap/components/__tests__/secure-script-component.test.d.ts.map +1 -0
  298. package/dist/esm/tiptap/components/__tests__/secure-script-component.test.js +57 -0
  299. package/dist/esm/tiptap/components/__tests__/secure-script-component.test.tsx +89 -0
  300. package/dist/esm/tiptap/components/__tests__/table-bubble-menu.test.d.ts +6 -0
  301. package/dist/esm/tiptap/components/__tests__/table-bubble-menu.test.d.ts.map +1 -0
  302. package/dist/esm/tiptap/components/__tests__/table-bubble-menu.test.js +284 -0
  303. package/dist/esm/tiptap/components/__tests__/table-bubble-menu.test.tsx +466 -0
  304. package/dist/esm/tiptap/components/__tests__/table-popover.test.d.ts +2 -0
  305. package/dist/esm/tiptap/components/__tests__/table-popover.test.d.ts.map +1 -0
  306. package/dist/esm/tiptap/components/__tests__/table-popover.test.js +101 -0
  307. package/dist/esm/tiptap/components/__tests__/table-popover.test.tsx +157 -0
  308. package/dist/esm/tiptap/components/__tests__/tiptap.test.d.ts +2 -0
  309. package/dist/esm/tiptap/components/__tests__/tiptap.test.d.ts.map +1 -0
  310. package/dist/esm/tiptap/components/__tests__/tiptap.test.js +275 -0
  311. package/dist/esm/tiptap/components/__tests__/tiptap.test.tsx +378 -0
  312. package/dist/esm/tiptap/components/format-bubble-menu.d.ts +8 -0
  313. package/dist/esm/tiptap/components/format-bubble-menu.d.ts.map +1 -0
  314. package/dist/esm/tiptap/components/format-bubble-menu.js +202 -0
  315. package/dist/esm/tiptap/components/html-code-viewer.d.ts +10 -0
  316. package/dist/esm/tiptap/components/html-code-viewer.d.ts.map +1 -0
  317. package/dist/esm/tiptap/components/html-code-viewer.js +96 -0
  318. package/dist/esm/tiptap/components/image-upload-placeholder.d.ts +4 -0
  319. package/dist/esm/tiptap/components/image-upload-placeholder.d.ts.map +1 -0
  320. package/dist/esm/tiptap/components/image-upload-placeholder.js +94 -0
  321. package/dist/esm/tiptap/components/menu-bar/__tests__/action-toolbar.test.d.ts +2 -0
  322. package/dist/esm/tiptap/components/menu-bar/__tests__/action-toolbar.test.d.ts.map +1 -0
  323. package/dist/esm/tiptap/components/menu-bar/__tests__/action-toolbar.test.js +78 -0
  324. package/dist/esm/tiptap/components/menu-bar/__tests__/action-toolbar.test.tsx +212 -0
  325. package/dist/esm/tiptap/components/menu-bar/__tests__/alignment-toolbar.test.d.ts +3 -0
  326. package/dist/esm/tiptap/components/menu-bar/__tests__/alignment-toolbar.test.d.ts.map +1 -0
  327. package/dist/esm/tiptap/components/menu-bar/__tests__/alignment-toolbar.test.js +201 -0
  328. package/dist/esm/tiptap/components/menu-bar/__tests__/alignment-toolbar.test.tsx +411 -0
  329. package/dist/esm/tiptap/components/menu-bar/__tests__/heading-selector.test.d.ts +4 -0
  330. package/dist/esm/tiptap/components/menu-bar/__tests__/heading-selector.test.d.ts.map +1 -0
  331. package/dist/esm/tiptap/components/menu-bar/__tests__/heading-selector.test.js +242 -0
  332. package/dist/esm/tiptap/components/menu-bar/__tests__/heading-selector.test.tsx +569 -0
  333. package/dist/esm/tiptap/components/menu-bar/__tests__/index.test.d.ts +2 -0
  334. package/dist/esm/tiptap/components/menu-bar/__tests__/index.test.d.ts.map +1 -0
  335. package/dist/esm/tiptap/components/menu-bar/__tests__/index.test.js +236 -0
  336. package/dist/esm/tiptap/components/menu-bar/__tests__/index.test.tsx +325 -0
  337. package/dist/esm/tiptap/components/menu-bar/__tests__/link-popover.test.d.ts +3 -0
  338. package/dist/esm/tiptap/components/menu-bar/__tests__/link-popover.test.d.ts.map +1 -0
  339. package/dist/esm/tiptap/components/menu-bar/__tests__/link-popover.test.js +332 -0
  340. package/dist/esm/tiptap/components/menu-bar/__tests__/link-popover.test.tsx +648 -0
  341. package/dist/esm/tiptap/components/menu-bar/__tests__/list-and-block-toolbar.test.d.ts +2 -0
  342. package/dist/esm/tiptap/components/menu-bar/__tests__/list-and-block-toolbar.test.d.ts.map +1 -0
  343. package/dist/esm/tiptap/components/menu-bar/__tests__/list-and-block-toolbar.test.js +196 -0
  344. package/dist/esm/tiptap/components/menu-bar/__tests__/list-and-block-toolbar.test.tsx +414 -0
  345. package/dist/esm/tiptap/components/menu-bar/__tests__/media-toolbar.test.d.ts +2 -0
  346. package/dist/esm/tiptap/components/menu-bar/__tests__/media-toolbar.test.d.ts.map +1 -0
  347. package/dist/esm/tiptap/components/menu-bar/__tests__/media-toolbar.test.js +74 -0
  348. package/dist/esm/tiptap/components/menu-bar/__tests__/media-toolbar.test.tsx +206 -0
  349. package/dist/esm/tiptap/components/menu-bar/__tests__/text-formatting-toolbar.test.d.ts +2 -0
  350. package/dist/esm/tiptap/components/menu-bar/__tests__/text-formatting-toolbar.test.d.ts.map +1 -0
  351. package/dist/esm/tiptap/components/menu-bar/__tests__/text-formatting-toolbar.test.js +265 -0
  352. package/dist/esm/tiptap/components/menu-bar/__tests__/text-formatting-toolbar.test.tsx +575 -0
  353. package/dist/esm/tiptap/components/menu-bar/__tests__/youtube-popover.test.d.ts +3 -0
  354. package/dist/esm/tiptap/components/menu-bar/__tests__/youtube-popover.test.d.ts.map +1 -0
  355. package/dist/esm/tiptap/components/menu-bar/__tests__/youtube-popover.test.js +277 -0
  356. package/dist/esm/tiptap/components/menu-bar/__tests__/youtube-popover.test.tsx +538 -0
  357. package/dist/esm/tiptap/components/menu-bar/action-toolbar.d.ts +15 -0
  358. package/dist/esm/tiptap/components/menu-bar/action-toolbar.d.ts.map +1 -0
  359. package/dist/esm/tiptap/components/menu-bar/action-toolbar.js +40 -0
  360. package/dist/esm/tiptap/components/menu-bar/alignment-toolbar.d.ts +12 -0
  361. package/dist/esm/tiptap/components/menu-bar/alignment-toolbar.d.ts.map +1 -0
  362. package/dist/esm/tiptap/components/menu-bar/alignment-toolbar.js +39 -0
  363. package/dist/esm/tiptap/components/menu-bar/heading-selector.d.ts +16 -0
  364. package/dist/esm/tiptap/components/menu-bar/heading-selector.d.ts.map +1 -0
  365. package/dist/esm/tiptap/components/menu-bar/heading-selector.js +70 -0
  366. package/dist/esm/tiptap/components/menu-bar/index.d.ts +18 -0
  367. package/dist/esm/tiptap/components/menu-bar/index.d.ts.map +1 -0
  368. package/dist/esm/tiptap/components/menu-bar/index.js +131 -0
  369. package/dist/esm/tiptap/components/menu-bar/link-popover.d.ts +12 -0
  370. package/dist/esm/tiptap/components/menu-bar/link-popover.d.ts.map +1 -0
  371. package/dist/esm/tiptap/components/menu-bar/link-popover.js +108 -0
  372. package/dist/esm/tiptap/components/menu-bar/list-and-block-toolbar.d.ts +18 -0
  373. package/dist/esm/tiptap/components/menu-bar/list-and-block-toolbar.d.ts.map +1 -0
  374. package/dist/esm/tiptap/components/menu-bar/list-and-block-toolbar.js +69 -0
  375. package/dist/esm/tiptap/components/menu-bar/media-toolbar.d.ts +13 -0
  376. package/dist/esm/tiptap/components/menu-bar/media-toolbar.d.ts.map +1 -0
  377. package/dist/esm/tiptap/components/menu-bar/media-toolbar.js +15 -0
  378. package/dist/esm/tiptap/components/menu-bar/text-formatting-toolbar.d.ts +18 -0
  379. package/dist/esm/tiptap/components/menu-bar/text-formatting-toolbar.d.ts.map +1 -0
  380. package/dist/esm/tiptap/components/menu-bar/text-formatting-toolbar.js +87 -0
  381. package/dist/esm/tiptap/components/menu-bar/youtube-popover.d.ts +12 -0
  382. package/dist/esm/tiptap/components/menu-bar/youtube-popover.d.ts.map +1 -0
  383. package/dist/esm/tiptap/components/menu-bar/youtube-popover.js +70 -0
  384. package/dist/esm/tiptap/components/secure-script-component.d.ts +3 -0
  385. package/dist/esm/tiptap/components/secure-script-component.d.ts.map +1 -0
  386. package/dist/esm/tiptap/components/secure-script-component.js +61 -0
  387. package/dist/esm/tiptap/components/table-bubble-menu.d.ts +9 -0
  388. package/dist/esm/tiptap/components/table-bubble-menu.d.ts.map +1 -0
  389. package/dist/esm/tiptap/components/table-bubble-menu.js +274 -0
  390. package/dist/esm/tiptap/components/table-popover.d.ts +10 -0
  391. package/dist/esm/tiptap/components/table-popover.d.ts.map +1 -0
  392. package/dist/esm/tiptap/components/table-popover.js +86 -0
  393. package/dist/esm/tiptap/components/tiptap.d.ts +4 -0
  394. package/dist/esm/tiptap/components/tiptap.d.ts.map +1 -0
  395. package/dist/esm/tiptap/components/tiptap.js +311 -0
  396. package/dist/esm/tiptap/constants/__tests__/table-defaults.test.d.ts +2 -0
  397. package/dist/esm/tiptap/constants/__tests__/table-defaults.test.d.ts.map +1 -0
  398. package/dist/esm/tiptap/constants/__tests__/table-defaults.test.js +56 -0
  399. package/dist/esm/tiptap/constants/__tests__/table-defaults.test.ts +69 -0
  400. package/dist/esm/tiptap/constants/editor-config.d.ts +89 -0
  401. package/dist/esm/tiptap/constants/editor-config.d.ts.map +1 -0
  402. package/dist/esm/tiptap/constants/editor-config.js +103 -0
  403. package/dist/esm/tiptap/constants/html-elements.d.ts +95 -0
  404. package/dist/esm/tiptap/constants/html-elements.d.ts.map +1 -0
  405. package/dist/esm/tiptap/constants/html-elements.js +158 -0
  406. package/dist/esm/tiptap/constants/index.d.ts +4 -0
  407. package/dist/esm/tiptap/constants/index.d.ts.map +1 -0
  408. package/dist/esm/tiptap/constants/index.js +3 -0
  409. package/dist/esm/tiptap/constants/table-defaults.d.ts +14 -0
  410. package/dist/esm/tiptap/constants/table-defaults.d.ts.map +1 -0
  411. package/dist/esm/tiptap/constants/table-defaults.js +18 -0
  412. package/dist/esm/tiptap/extensions/__tests__/comment-extension.test.d.ts +2 -0
  413. package/dist/esm/tiptap/extensions/__tests__/comment-extension.test.d.ts.map +1 -0
  414. package/dist/esm/tiptap/extensions/__tests__/comment-extension.test.js +75 -0
  415. package/dist/esm/tiptap/extensions/__tests__/comment-extension.test.ts +84 -0
  416. package/dist/esm/tiptap/extensions/__tests__/custom-table-cell-extension.test.d.ts +2 -0
  417. package/dist/esm/tiptap/extensions/__tests__/custom-table-cell-extension.test.d.ts.map +1 -0
  418. package/dist/esm/tiptap/extensions/__tests__/custom-table-cell-extension.test.js +116 -0
  419. package/dist/esm/tiptap/extensions/__tests__/custom-table-cell-extension.test.ts +147 -0
  420. package/dist/esm/tiptap/extensions/__tests__/custom-table-cell-extension.test.tsx +90 -0
  421. package/dist/esm/tiptap/extensions/__tests__/custom-table-header-extension.test.d.ts +2 -0
  422. package/dist/esm/tiptap/extensions/__tests__/custom-table-header-extension.test.d.ts.map +1 -0
  423. package/dist/esm/tiptap/extensions/__tests__/custom-table-header-extension.test.js +183 -0
  424. package/dist/esm/tiptap/extensions/__tests__/custom-table-header-extension.test.ts +213 -0
  425. package/dist/esm/tiptap/extensions/__tests__/html-block-extension.test.d.ts +2 -0
  426. package/dist/esm/tiptap/extensions/__tests__/html-block-extension.test.d.ts.map +1 -0
  427. package/dist/esm/tiptap/extensions/__tests__/html-block-extension.test.js +103 -0
  428. package/dist/esm/tiptap/extensions/__tests__/html-block-extension.test.ts +117 -0
  429. package/dist/esm/tiptap/extensions/__tests__/html-inline-extension.test.d.ts +2 -0
  430. package/dist/esm/tiptap/extensions/__tests__/html-inline-extension.test.d.ts.map +1 -0
  431. package/dist/esm/tiptap/extensions/__tests__/html-inline-extension.test.js +105 -0
  432. package/dist/esm/tiptap/extensions/__tests__/html-inline-extension.test.ts +119 -0
  433. package/dist/esm/tiptap/extensions/__tests__/iframe-extension.test.d.ts +2 -0
  434. package/dist/esm/tiptap/extensions/__tests__/iframe-extension.test.d.ts.map +1 -0
  435. package/dist/esm/tiptap/extensions/__tests__/iframe-extension.test.js +262 -0
  436. package/dist/esm/tiptap/extensions/__tests__/iframe-extension.test.ts +297 -0
  437. package/dist/esm/tiptap/extensions/__tests__/image-upload-extension.test.d.ts +2 -0
  438. package/dist/esm/tiptap/extensions/__tests__/image-upload-extension.test.d.ts.map +1 -0
  439. package/dist/esm/tiptap/extensions/__tests__/image-upload-extension.test.js +52 -0
  440. package/dist/esm/tiptap/extensions/__tests__/image-upload-extension.test.tsx +65 -0
  441. package/dist/esm/tiptap/extensions/__tests__/index.test.d.ts +2 -0
  442. package/dist/esm/tiptap/extensions/__tests__/index.test.d.ts.map +1 -0
  443. package/dist/esm/tiptap/extensions/__tests__/index.test.js +24 -0
  444. package/dist/esm/tiptap/extensions/__tests__/index.test.ts +26 -0
  445. package/dist/esm/tiptap/extensions/__tests__/reset-marks-extension.test.d.ts +2 -0
  446. package/dist/esm/tiptap/extensions/__tests__/reset-marks-extension.test.d.ts.map +1 -0
  447. package/dist/esm/tiptap/extensions/__tests__/reset-marks-extension.test.js +53 -0
  448. package/dist/esm/tiptap/extensions/__tests__/reset-marks-extension.test.ts +74 -0
  449. package/dist/esm/tiptap/extensions/__tests__/secure-script-extension.test.d.ts +2 -0
  450. package/dist/esm/tiptap/extensions/__tests__/secure-script-extension.test.d.ts.map +1 -0
  451. package/dist/esm/tiptap/extensions/__tests__/secure-script-extension.test.js +27 -0
  452. package/dist/esm/tiptap/extensions/__tests__/secure-script-extension.test.tsx +32 -0
  453. package/dist/esm/tiptap/extensions/comment-extension.d.ts +13 -0
  454. package/dist/esm/tiptap/extensions/comment-extension.d.ts.map +1 -0
  455. package/dist/esm/tiptap/extensions/comment-extension.js +47 -0
  456. package/dist/esm/tiptap/extensions/custom-table-cell-extension.d.ts +10 -0
  457. package/dist/esm/tiptap/extensions/custom-table-cell-extension.d.ts.map +1 -0
  458. package/dist/esm/tiptap/extensions/custom-table-cell-extension.js +64 -0
  459. package/dist/esm/tiptap/extensions/custom-table-header-extension.d.ts +10 -0
  460. package/dist/esm/tiptap/extensions/custom-table-header-extension.d.ts.map +1 -0
  461. package/dist/esm/tiptap/extensions/custom-table-header-extension.js +63 -0
  462. package/dist/esm/tiptap/extensions/html-block-extension.d.ts +6 -0
  463. package/dist/esm/tiptap/extensions/html-block-extension.d.ts.map +1 -0
  464. package/dist/esm/tiptap/extensions/html-block-extension.js +90 -0
  465. package/dist/esm/tiptap/extensions/html-inline-extension.d.ts +6 -0
  466. package/dist/esm/tiptap/extensions/html-inline-extension.d.ts.map +1 -0
  467. package/dist/esm/tiptap/extensions/html-inline-extension.js +87 -0
  468. package/dist/esm/tiptap/extensions/iframe-extension.d.ts +18 -0
  469. package/dist/esm/tiptap/extensions/iframe-extension.d.ts.map +1 -0
  470. package/dist/esm/tiptap/extensions/iframe-extension.js +170 -0
  471. package/dist/esm/tiptap/extensions/image-upload-extension.d.ts +3 -0
  472. package/dist/esm/tiptap/extensions/image-upload-extension.d.ts.map +1 -0
  473. package/dist/esm/tiptap/extensions/image-upload-extension.js +29 -0
  474. package/dist/esm/tiptap/extensions/index.d.ts +10 -0
  475. package/dist/esm/tiptap/extensions/index.d.ts.map +1 -0
  476. package/dist/esm/tiptap/extensions/index.js +9 -0
  477. package/dist/esm/tiptap/extensions/reset-marks-extension.d.ts +3 -0
  478. package/dist/esm/tiptap/extensions/reset-marks-extension.d.ts.map +1 -0
  479. package/dist/esm/tiptap/extensions/reset-marks-extension.js +17 -0
  480. package/dist/esm/tiptap/extensions/secure-script-extension.d.ts +3 -0
  481. package/dist/esm/tiptap/extensions/secure-script-extension.d.ts.map +1 -0
  482. package/dist/esm/tiptap/extensions/secure-script-extension.js +55 -0
  483. package/dist/esm/tiptap/types/index.d.ts +232 -0
  484. package/dist/esm/tiptap/types/index.d.ts.map +1 -0
  485. package/dist/esm/tiptap/types/index.js +1 -0
  486. package/dist/esm/tiptap/utils/__tests__/format-html.test.d.ts +2 -0
  487. package/dist/esm/tiptap/utils/__tests__/format-html.test.d.ts.map +1 -0
  488. package/dist/esm/tiptap/utils/__tests__/format-html.test.js +68 -0
  489. package/dist/esm/tiptap/utils/__tests__/format-html.test.ts +91 -0
  490. package/dist/esm/tiptap/utils/__tests__/highlight-html.test.d.ts +2 -0
  491. package/dist/esm/tiptap/utils/__tests__/highlight-html.test.d.ts.map +1 -0
  492. package/dist/esm/tiptap/utils/__tests__/highlight-html.test.js +71 -0
  493. package/dist/esm/tiptap/utils/__tests__/highlight-html.test.ts +100 -0
  494. package/dist/esm/tiptap/utils/__tests__/index.test.d.ts +2 -0
  495. package/dist/esm/tiptap/utils/__tests__/index.test.d.ts.map +1 -0
  496. package/dist/esm/tiptap/utils/__tests__/index.test.js +13 -0
  497. package/dist/esm/tiptap/utils/__tests__/index.test.ts +15 -0
  498. package/dist/esm/tiptap/utils/__tests__/normalize-html.test.d.ts +2 -0
  499. package/dist/esm/tiptap/utils/__tests__/normalize-html.test.d.ts.map +1 -0
  500. package/dist/esm/tiptap/utils/__tests__/normalize-html.test.js +53 -0
  501. package/dist/esm/tiptap/utils/__tests__/normalize-html.test.ts +77 -0
  502. package/dist/esm/tiptap/utils/__tests__/tiptap-extensions.test.d.ts +2 -0
  503. package/dist/esm/tiptap/utils/__tests__/tiptap-extensions.test.d.ts.map +1 -0
  504. package/dist/esm/tiptap/utils/__tests__/tiptap-extensions.test.js +209 -0
  505. package/dist/esm/tiptap/utils/__tests__/tiptap-extensions.test.ts +299 -0
  506. package/dist/esm/tiptap/utils/format-html.d.ts +6 -0
  507. package/dist/esm/tiptap/utils/format-html.d.ts.map +1 -0
  508. package/dist/esm/tiptap/utils/format-html.js +108 -0
  509. package/dist/esm/tiptap/utils/highlight-html.d.ts +6 -0
  510. package/dist/esm/tiptap/utils/highlight-html.d.ts.map +1 -0
  511. package/dist/esm/tiptap/utils/highlight-html.js +82 -0
  512. package/dist/esm/tiptap/utils/index.d.ts +5 -0
  513. package/dist/esm/tiptap/utils/index.d.ts.map +1 -0
  514. package/dist/esm/tiptap/utils/index.js +4 -0
  515. package/dist/esm/tiptap/utils/normalize-html.d.ts +7 -0
  516. package/dist/esm/tiptap/utils/normalize-html.d.ts.map +1 -0
  517. package/dist/esm/tiptap/utils/normalize-html.js +109 -0
  518. package/dist/esm/tiptap/utils/tiptap-extensions.d.ts +21 -0
  519. package/dist/esm/tiptap/utils/tiptap-extensions.d.ts.map +1 -0
  520. package/dist/esm/tiptap/utils/tiptap-extensions.js +198 -0
  521. package/package.json +99 -0
@@ -0,0 +1,452 @@
1
+ import '@testing-library/jest-dom';
2
+
3
+ import { act, fireEvent, render, screen } from '@testing-library/react';
4
+ import { getMarkRange, isTextSelection } from '@tiptap/core';
5
+ import { type Editor } from '@tiptap/react';
6
+ import { ConfigProvider } from 'antd';
7
+ import React from 'react';
8
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
9
+
10
+ import { FormatBubbleMenu } from '../format-bubble-menu';
11
+
12
+ vi.mock('@akinon/akilocale/react', () => ({
13
+ useTranslation: () => ({
14
+ t: (key: string) => key
15
+ })
16
+ }));
17
+
18
+ vi.mock('@akinon/ui-button', () => ({
19
+ Button: ({
20
+ icon,
21
+ onClick,
22
+ disabled,
23
+ className,
24
+ tooltip
25
+ }: {
26
+ icon: string;
27
+ onClick: () => void;
28
+ disabled?: boolean;
29
+ className?: string;
30
+ tooltip?: string;
31
+ }) => (
32
+ <button
33
+ data-testid={`ui-button-${icon}`}
34
+ onClick={onClick}
35
+ disabled={disabled}
36
+ className={className}
37
+ title={tooltip}
38
+ >
39
+ {icon}
40
+ </button>
41
+ )
42
+ }));
43
+
44
+ vi.mock('@akinon/ui-input', () => ({
45
+ Input: ({
46
+ value,
47
+ onChange,
48
+ onKeyDown,
49
+ placeholder
50
+ }: {
51
+ value: string;
52
+ onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
53
+ onKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => void;
54
+ placeholder?: string;
55
+ }) => (
56
+ <input
57
+ data-testid="ui-input"
58
+ value={value}
59
+ onChange={onChange}
60
+ onKeyDown={onKeyDown}
61
+ placeholder={placeholder}
62
+ />
63
+ )
64
+ }));
65
+
66
+ vi.mock('@akinon/ui-theme', () => ({
67
+ useToken: () => ({
68
+ token: { boxShadowSecondary: '0 2px 8px rgba(0,0,0,0.15)' },
69
+ hashId: 'hash-id'
70
+ })
71
+ }));
72
+
73
+ vi.mock('@ant-design/cssinjs', () => ({
74
+ useStyleRegister: vi.fn((_config, cb) => {
75
+ cb();
76
+ return (node: React.ReactNode) => node;
77
+ })
78
+ }));
79
+
80
+ export let capturedShouldShow: (props: { editor: Editor }) => boolean;
81
+
82
+ vi.mock('@tiptap/react/menus', () => ({
83
+ BubbleMenu: ({
84
+ children,
85
+ shouldShow
86
+ }: {
87
+ children: React.ReactNode;
88
+ shouldShow: (props: { editor: Editor }) => boolean;
89
+ }) => {
90
+ capturedShouldShow = shouldShow;
91
+ return <div data-testid="bubble-menu">{children}</div>;
92
+ }
93
+ }));
94
+
95
+ vi.mock('@tiptap/core', () => ({
96
+ getMarkRange: vi.fn(),
97
+ isTextSelection: vi.fn()
98
+ }));
99
+
100
+ describe('FormatBubbleMenu', () => {
101
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
102
+ let mockEditor: any;
103
+
104
+ beforeEach(() => {
105
+ mockEditor = {
106
+ isActive: vi.fn(),
107
+ getAttributes: vi.fn(() => ({})),
108
+ chain: vi.fn(() => mockEditor.chainApi),
109
+ on: vi.fn(),
110
+ off: vi.fn(),
111
+ isFocused: true,
112
+ schema: {
113
+ marks: {
114
+ link: {}
115
+ }
116
+ },
117
+ state: {
118
+ selection: {
119
+ from: 0,
120
+ to: 10,
121
+ $from: {}
122
+ },
123
+ schema: {
124
+ marks: {
125
+ link: {}
126
+ }
127
+ }
128
+ },
129
+ chainApi: {
130
+ focus: vi.fn(function (this: unknown) {
131
+ return this;
132
+ }),
133
+ toggleMark: vi.fn(function (this: unknown) {
134
+ return this;
135
+ }),
136
+ unsetAllMarks: vi.fn(function (this: unknown) {
137
+ return this;
138
+ }),
139
+ extendMarkRange: vi.fn(function (this: unknown) {
140
+ return this;
141
+ }),
142
+ setMark: vi.fn(function (this: unknown) {
143
+ return this;
144
+ }),
145
+ unsetMark: vi.fn(function (this: unknown) {
146
+ return this;
147
+ }),
148
+ setTextSelection: vi.fn(function (this: unknown) {
149
+ return this;
150
+ }),
151
+ run: vi.fn(function (this: unknown) {
152
+ return this;
153
+ })
154
+ }
155
+ };
156
+ vi.mocked(isTextSelection).mockReturnValue(true);
157
+ vi.mocked(getMarkRange).mockReturnValue(undefined);
158
+ });
159
+
160
+ const renderComponent = (editor = mockEditor as unknown as Editor) => {
161
+ return render(
162
+ <ConfigProvider>
163
+ <FormatBubbleMenu editor={editor} />
164
+ </ConfigProvider>
165
+ );
166
+ };
167
+
168
+ it('should return null if editor is not provided', () => {
169
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
170
+ const { container } = renderComponent(null as any);
171
+ expect(container.firstChild).toBeNull();
172
+ });
173
+
174
+ it('should handle missing theme colors', () => {
175
+ render(
176
+ <ConfigProvider theme={{}}>
177
+ <FormatBubbleMenu editor={mockEditor as unknown as Editor} />
178
+ </ConfigProvider>
179
+ );
180
+ expect(screen.getByTestId('bubble-menu')).toBeInTheDocument();
181
+ });
182
+
183
+ it('should handle partial theme colors', () => {
184
+ render(
185
+ <ConfigProvider
186
+ theme={
187
+ {
188
+ colors: {
189
+ ebonyClay: { '500': '#000' },
190
+ neutral: { '50': '#fff' }
191
+ }
192
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
193
+ } as any
194
+ }
195
+ >
196
+ <FormatBubbleMenu editor={mockEditor as unknown as Editor} />
197
+ </ConfigProvider>
198
+ );
199
+ expect(screen.getByTestId('bubble-menu')).toBeInTheDocument();
200
+ });
201
+
202
+ it('should render formatting buttons', () => {
203
+ renderComponent();
204
+
205
+ expect(screen.getByTestId('ui-button-format-bold')).toBeInTheDocument();
206
+ expect(screen.getByTestId('ui-button-format-italic')).toBeInTheDocument();
207
+ expect(
208
+ screen.getByTestId('ui-button-format-strikethrough')
209
+ ).toBeInTheDocument();
210
+ expect(
211
+ screen.getByTestId('ui-button-format-underline')
212
+ ).toBeInTheDocument();
213
+ expect(screen.getByTestId('ui-button-format-eraser')).toBeInTheDocument();
214
+ expect(screen.getByTestId('ui-button-linked')).toBeInTheDocument();
215
+ });
216
+
217
+ it('should handle formatting actions', () => {
218
+ renderComponent();
219
+
220
+ fireEvent.click(screen.getByTestId('ui-button-format-bold'));
221
+ expect(mockEditor.chainApi.toggleMark).toHaveBeenCalledWith('bold');
222
+
223
+ fireEvent.click(screen.getByTestId('ui-button-format-italic'));
224
+ expect(mockEditor.chainApi.toggleMark).toHaveBeenCalledWith('italic');
225
+
226
+ fireEvent.click(screen.getByTestId('ui-button-format-strikethrough'));
227
+ expect(mockEditor.chainApi.toggleMark).toHaveBeenCalledWith('strike');
228
+
229
+ fireEvent.click(screen.getByTestId('ui-button-format-underline'));
230
+ expect(mockEditor.chainApi.toggleMark).toHaveBeenCalledWith('underline');
231
+
232
+ fireEvent.click(screen.getByTestId('ui-button-format-eraser'));
233
+ expect(mockEditor.chainApi.unsetAllMarks).toHaveBeenCalled();
234
+ });
235
+
236
+ it('should show link input when link button is clicked', () => {
237
+ renderComponent();
238
+
239
+ fireEvent.click(screen.getByTestId('ui-button-linked'));
240
+
241
+ expect(screen.getByTestId('ui-input')).toBeInTheDocument();
242
+ expect(screen.getByTestId('ui-button-katalogkontrol')).toBeInTheDocument();
243
+ expect(screen.getByTestId('ui-button-bin')).toBeInTheDocument();
244
+ });
245
+
246
+ it('should apply link when save button is clicked', () => {
247
+ renderComponent();
248
+
249
+ fireEvent.click(screen.getByTestId('ui-button-linked'));
250
+
251
+ const input = screen.getByTestId('ui-input');
252
+ fireEvent.change(input, { target: { value: 'https://example.com' } });
253
+
254
+ fireEvent.click(screen.getByTestId('ui-button-katalogkontrol'));
255
+
256
+ expect(mockEditor.chainApi.extendMarkRange).toHaveBeenCalledWith('link');
257
+ expect(mockEditor.chainApi.setMark).toHaveBeenCalledWith('link', {
258
+ href: 'https://example.com'
259
+ });
260
+ expect(mockEditor.chainApi.setTextSelection).toHaveBeenCalledWith(10);
261
+ expect(mockEditor.chainApi.run).toHaveBeenCalled();
262
+ });
263
+
264
+ it('should apply link when Enter is pressed', () => {
265
+ renderComponent();
266
+
267
+ fireEvent.click(screen.getByTestId('ui-button-linked'));
268
+
269
+ const input = screen.getByTestId('ui-input');
270
+ fireEvent.change(input, { target: { value: 'https://example.com' } });
271
+ fireEvent.keyDown(input, { key: 'Enter' });
272
+
273
+ expect(mockEditor.chainApi.setMark).toHaveBeenCalledWith('link', {
274
+ href: 'https://example.com'
275
+ });
276
+ expect(mockEditor.chainApi.setTextSelection).toHaveBeenCalledWith(10);
277
+ expect(mockEditor.chainApi.run).toHaveBeenCalled();
278
+ });
279
+
280
+ it('should remove link when delete button is clicked', () => {
281
+ renderComponent();
282
+
283
+ fireEvent.click(screen.getByTestId('ui-button-linked'));
284
+ fireEvent.click(screen.getByTestId('ui-button-bin'));
285
+
286
+ expect(mockEditor.chainApi.unsetMark).toHaveBeenCalledWith('link');
287
+ expect(mockEditor.chainApi.setTextSelection).toHaveBeenCalledWith(10);
288
+ expect(mockEditor.chainApi.run).toHaveBeenCalled();
289
+ });
290
+
291
+ it('should set URL when link icon is clicked and link is already active', () => {
292
+ mockEditor.isActive.mockImplementation((name: string) => name === 'link');
293
+ mockEditor.getAttributes.mockReturnValue({ href: 'https://existing.com' });
294
+
295
+ renderComponent();
296
+
297
+ expect(screen.getByTestId('ui-input')).toHaveValue('https://existing.com');
298
+
299
+ fireEvent.click(screen.getByTestId('ui-button-bin'));
300
+ expect(screen.queryByTestId('ui-input')).not.toBeInTheDocument();
301
+
302
+ fireEvent.click(screen.getByTestId('ui-button-linked'));
303
+ expect(screen.getByTestId('ui-input')).toHaveValue('https://existing.com');
304
+ });
305
+
306
+ it('should set empty URL when link icon is clicked and link is active but has no href', () => {
307
+ mockEditor.isActive.mockImplementation((name: string) => name === 'link');
308
+ mockEditor.getAttributes.mockReturnValue({});
309
+
310
+ renderComponent();
311
+
312
+ fireEvent.click(screen.getByTestId('ui-button-bin'));
313
+
314
+ fireEvent.click(screen.getByTestId('ui-button-linked'));
315
+
316
+ expect(screen.getByTestId('ui-input')).toHaveValue('');
317
+ });
318
+
319
+ it('should update link input when editor state changes', () => {
320
+ mockEditor.isActive.mockImplementation((name: string) => name === 'link');
321
+ mockEditor.getAttributes.mockReturnValue({ href: 'https://test.com' });
322
+
323
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
324
+ let selectionUpdateHandler: any;
325
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
326
+ mockEditor.on.mockImplementation((name: string, handler: any) => {
327
+ if (name === 'selectionUpdate') {
328
+ selectionUpdateHandler = handler;
329
+ }
330
+ });
331
+
332
+ renderComponent();
333
+
334
+ act(() => {
335
+ selectionUpdateHandler();
336
+ });
337
+
338
+ expect(screen.getByTestId('ui-input')).toHaveValue('https://test.com');
339
+ });
340
+
341
+ it('should not show link input if not active link and selection updates', () => {
342
+ mockEditor.isActive.mockReturnValue(false);
343
+
344
+ let selectionUpdateHandler: ((...args: unknown[]) => void) | undefined;
345
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
346
+ mockEditor.on.mockImplementation((name: string, handler: any) => {
347
+ if (name === 'selectionUpdate') {
348
+ selectionUpdateHandler = handler;
349
+ }
350
+ });
351
+
352
+ renderComponent();
353
+ fireEvent.click(screen.getByTestId('ui-button-linked'));
354
+ expect(screen.getByTestId('ui-input')).toBeInTheDocument();
355
+
356
+ act(() => {
357
+ if (selectionUpdateHandler) {
358
+ selectionUpdateHandler();
359
+ }
360
+ });
361
+ expect(screen.queryByTestId('ui-input')).not.toBeInTheDocument();
362
+ });
363
+
364
+ describe('shouldShow', () => {
365
+ beforeEach(() => {
366
+ renderComponent();
367
+ });
368
+
369
+ it('should return false if selection is not a text selection', () => {
370
+ vi.mocked(isTextSelection).mockReturnValue(false);
371
+ expect(capturedShouldShow({ editor: mockEditor })).toBe(false);
372
+ });
373
+ });
374
+
375
+ it('should return false if image, codeBlock, code, youtube or imageUpload is active', () => {
376
+ const activeStates = [
377
+ 'image',
378
+ 'codeBlock',
379
+ 'code',
380
+ 'youtube',
381
+ 'imageUpload'
382
+ ];
383
+
384
+ activeStates.forEach(state => {
385
+ mockEditor.isActive.mockImplementation((name: string) => name === state);
386
+ expect(capturedShouldShow({ editor: mockEditor })).toBe(false);
387
+ });
388
+ });
389
+
390
+ it('should return true if link is active even if selection is empty', () => {
391
+ mockEditor.isActive.mockImplementation((name: string) => name === 'link');
392
+ mockEditor.state.selection.from = 5;
393
+ mockEditor.state.selection.to = 5;
394
+
395
+ expect(capturedShouldShow({ editor: mockEditor })).toBe(true);
396
+ });
397
+
398
+ it('should return false if link is active but at the boundaries of the link', () => {
399
+ mockEditor.isActive.mockImplementation((name: string) => name === 'link');
400
+ mockEditor.state.selection.from = 5;
401
+ mockEditor.state.selection.to = 5;
402
+
403
+ vi.mocked(getMarkRange).mockReturnValue({ from: 5, to: 10 });
404
+ expect(capturedShouldShow({ editor: mockEditor })).toBe(false);
405
+
406
+ vi.mocked(getMarkRange).mockReturnValue({ from: 0, to: 5 });
407
+ expect(capturedShouldShow({ editor: mockEditor })).toBe(false);
408
+ });
409
+
410
+ it('should return true if link is active and not at boundaries', () => {
411
+ mockEditor.isActive.mockImplementation((name: string) => name === 'link');
412
+ mockEditor.state.selection.from = 7;
413
+ mockEditor.state.selection.to = 7;
414
+
415
+ vi.mocked(getMarkRange).mockReturnValue({ from: 5, to: 10 });
416
+ expect(capturedShouldShow({ editor: mockEditor })).toBe(true);
417
+ });
418
+
419
+ it('should return true if link is active and selection is not empty', () => {
420
+ mockEditor.isActive.mockImplementation((name: string) => name === 'link');
421
+ mockEditor.state.selection.from = 5;
422
+ mockEditor.state.selection.to = 10;
423
+
424
+ expect(capturedShouldShow({ editor: mockEditor })).toBe(true);
425
+ });
426
+
427
+ it('should return true if text is selected and editor is focused', () => {
428
+ mockEditor.isActive.mockReturnValue(false);
429
+ mockEditor.state.selection.from = 0;
430
+ mockEditor.state.selection.to = 10;
431
+ mockEditor.isFocused = true;
432
+
433
+ expect(capturedShouldShow({ editor: mockEditor })).toBe(true);
434
+ });
435
+
436
+ it('should return false if no text is selected', () => {
437
+ mockEditor.isActive.mockReturnValue(false);
438
+ mockEditor.state.selection.from = 5;
439
+ mockEditor.state.selection.to = 5;
440
+
441
+ expect(capturedShouldShow({ editor: mockEditor })).toBe(false);
442
+ });
443
+
444
+ it('should return false if editor is not focused', () => {
445
+ mockEditor.isActive.mockReturnValue(false);
446
+ mockEditor.state.selection.from = 0;
447
+ mockEditor.state.selection.to = 10;
448
+ mockEditor.isFocused = false;
449
+
450
+ expect(capturedShouldShow({ editor: mockEditor })).toBe(false);
451
+ });
452
+ });
@@ -0,0 +1,2 @@
1
+ import '@testing-library/jest-dom';
2
+ //# sourceMappingURL=html-code-viewer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-code-viewer.test.d.ts","sourceRoot":"","sources":["../../../../../src/tiptap/components/__tests__/html-code-viewer.test.tsx"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC"}
@@ -0,0 +1,89 @@
1
+ import '@testing-library/jest-dom';
2
+ import { fireEvent, render, screen } from '@testing-library/react';
3
+ import { ConfigProvider } from 'antd';
4
+ import React from 'react';
5
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
6
+ import { HtmlCodeViewer } from '../html-code-viewer';
7
+ vi.mock('@ant-design/cssinjs', () => ({
8
+ useStyleRegister: vi.fn((_config, cb) => {
9
+ cb();
10
+ return (node) => node;
11
+ })
12
+ }));
13
+ vi.mock('@akinon/ui-theme', () => ({
14
+ useToken: () => ({ token: {}, hashId: 'hash-id' })
15
+ }));
16
+ describe('HtmlCodeViewer', () => {
17
+ const defaultProps = {
18
+ value: '<p>Hello World</p>',
19
+ onChange: vi.fn()
20
+ };
21
+ beforeEach(() => {
22
+ vi.clearAllMocks();
23
+ });
24
+ it('should render correctly with initial value', () => {
25
+ const { container } = render(React.createElement(HtmlCodeViewer, Object.assign({}, defaultProps)));
26
+ const textarea = screen.getByRole('textbox');
27
+ expect(textarea).toBeInTheDocument();
28
+ expect(textarea).toHaveValue('<p>Hello World</p>');
29
+ const pre = container.querySelector('pre');
30
+ expect(pre).toBeInTheDocument();
31
+ expect(pre === null || pre === void 0 ? void 0 : pre.innerHTML).toContain('Hello World');
32
+ });
33
+ it('should call onChange when textarea value changes', () => {
34
+ render(React.createElement(HtmlCodeViewer, Object.assign({}, defaultProps)));
35
+ const textarea = screen.getByRole('textbox');
36
+ fireEvent.change(textarea, { target: { value: '<div>New Value</div>' } });
37
+ expect(defaultProps.onChange).toHaveBeenCalledWith('<div>New Value</div>');
38
+ });
39
+ it('should apply custom className', () => {
40
+ const { container } = render(React.createElement(HtmlCodeViewer, Object.assign({}, defaultProps, { className: "custom-viewer" })));
41
+ expect(container.firstChild).toHaveClass('custom-viewer');
42
+ });
43
+ it('should sync scroll from textarea to pre', () => {
44
+ const { container } = render(React.createElement(HtmlCodeViewer, Object.assign({}, defaultProps)));
45
+ const textarea = screen.getByRole('textbox');
46
+ const pre = container.querySelector('pre');
47
+ Object.defineProperty(pre, 'scrollTop', { value: 0, writable: true });
48
+ Object.defineProperty(pre, 'scrollLeft', { value: 0, writable: true });
49
+ fireEvent.scroll(textarea, { target: { scrollTop: 100, scrollLeft: 50 } });
50
+ expect(pre.scrollTop).toBe(100);
51
+ expect(pre.scrollLeft).toBe(50);
52
+ });
53
+ it('should add <br> if value ends with newline', () => {
54
+ const { container } = render(React.createElement(HtmlCodeViewer, Object.assign({}, defaultProps, { value: '<p>\n' })));
55
+ const pre = container.querySelector('pre');
56
+ expect(pre === null || pre === void 0 ? void 0 : pre.innerHTML).toContain('<br>');
57
+ });
58
+ it('should not add <br> if value does not end with newline', () => {
59
+ const { container } = render(React.createElement(HtmlCodeViewer, Object.assign({}, defaultProps, { value: '<p>' })));
60
+ const pre = container.querySelector('pre');
61
+ expect(pre === null || pre === void 0 ? void 0 : pre.innerHTML).not.toContain('<br>');
62
+ });
63
+ it('should handle theme colors correctly', () => {
64
+ const mockTheme = {
65
+ colors: {
66
+ editor: {
67
+ code: {
68
+ border: '#ccc',
69
+ tag: '#00f',
70
+ attr: '#f00',
71
+ value: '#0f0',
72
+ comment: '#999',
73
+ string: '#a0a'
74
+ }
75
+ },
76
+ neutral: {
77
+ '50': '#fff',
78
+ '1000': '#000'
79
+ }
80
+ }
81
+ };
82
+ render(
83
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
84
+ React.createElement(ConfigProvider, { theme: mockTheme },
85
+ React.createElement(HtmlCodeViewer, Object.assign({}, defaultProps))));
86
+ const textarea = screen.getByRole('textbox');
87
+ expect(textarea).toBeInTheDocument();
88
+ });
89
+ });
@@ -0,0 +1,126 @@
1
+ import '@testing-library/jest-dom';
2
+
3
+ import { fireEvent, render, screen } from '@testing-library/react';
4
+ import { ConfigProvider } from 'antd';
5
+ import React from 'react';
6
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
7
+
8
+ import { HtmlCodeViewer } from '../html-code-viewer';
9
+
10
+ vi.mock('@ant-design/cssinjs', () => ({
11
+ useStyleRegister: vi.fn((_config, cb) => {
12
+ cb();
13
+ return (node: React.ReactNode) => node;
14
+ })
15
+ }));
16
+
17
+ vi.mock('@akinon/ui-theme', () => ({
18
+ useToken: () => ({ token: {}, hashId: 'hash-id' })
19
+ }));
20
+
21
+ describe('HtmlCodeViewer', () => {
22
+ const defaultProps = {
23
+ value: '<p>Hello World</p>',
24
+ onChange: vi.fn()
25
+ };
26
+
27
+ beforeEach(() => {
28
+ vi.clearAllMocks();
29
+ });
30
+
31
+ it('should render correctly with initial value', () => {
32
+ const { container } = render(<HtmlCodeViewer {...defaultProps} />);
33
+
34
+ const textarea = screen.getByRole('textbox');
35
+
36
+ expect(textarea).toBeInTheDocument();
37
+ expect(textarea).toHaveValue('<p>Hello World</p>');
38
+
39
+ const pre = container.querySelector('pre');
40
+
41
+ expect(pre).toBeInTheDocument();
42
+ expect(pre?.innerHTML).toContain('Hello World');
43
+ });
44
+
45
+ it('should call onChange when textarea value changes', () => {
46
+ render(<HtmlCodeViewer {...defaultProps} />);
47
+
48
+ const textarea = screen.getByRole('textbox');
49
+ fireEvent.change(textarea, { target: { value: '<div>New Value</div>' } });
50
+
51
+ expect(defaultProps.onChange).toHaveBeenCalledWith('<div>New Value</div>');
52
+ });
53
+
54
+ it('should apply custom className', () => {
55
+ const { container } = render(
56
+ <HtmlCodeViewer {...defaultProps} className="custom-viewer" />
57
+ );
58
+
59
+ expect(container.firstChild).toHaveClass('custom-viewer');
60
+ });
61
+
62
+ it('should sync scroll from textarea to pre', () => {
63
+ const { container } = render(<HtmlCodeViewer {...defaultProps} />);
64
+
65
+ const textarea = screen.getByRole('textbox') as HTMLTextAreaElement;
66
+ const pre = container.querySelector('pre') as HTMLPreElement;
67
+
68
+ Object.defineProperty(pre, 'scrollTop', { value: 0, writable: true });
69
+ Object.defineProperty(pre, 'scrollLeft', { value: 0, writable: true });
70
+
71
+ fireEvent.scroll(textarea, { target: { scrollTop: 100, scrollLeft: 50 } });
72
+
73
+ expect(pre.scrollTop).toBe(100);
74
+ expect(pre.scrollLeft).toBe(50);
75
+ });
76
+
77
+ it('should add <br> if value ends with newline', () => {
78
+ const { container } = render(
79
+ <HtmlCodeViewer {...defaultProps} value={'<p>\n'} />
80
+ );
81
+
82
+ const pre = container.querySelector('pre');
83
+ expect(pre?.innerHTML).toContain('<br>');
84
+ });
85
+
86
+ it('should not add <br> if value does not end with newline', () => {
87
+ const { container } = render(
88
+ <HtmlCodeViewer {...defaultProps} value={'<p>'} />
89
+ );
90
+
91
+ const pre = container.querySelector('pre');
92
+
93
+ expect(pre?.innerHTML).not.toContain('<br>');
94
+ });
95
+
96
+ it('should handle theme colors correctly', () => {
97
+ const mockTheme = {
98
+ colors: {
99
+ editor: {
100
+ code: {
101
+ border: '#ccc',
102
+ tag: '#00f',
103
+ attr: '#f00',
104
+ value: '#0f0',
105
+ comment: '#999',
106
+ string: '#a0a'
107
+ }
108
+ },
109
+ neutral: {
110
+ '50': '#fff',
111
+ '1000': '#000'
112
+ }
113
+ }
114
+ };
115
+
116
+ render(
117
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
118
+ <ConfigProvider theme={mockTheme as any}>
119
+ <HtmlCodeViewer {...defaultProps} />
120
+ </ConfigProvider>
121
+ );
122
+
123
+ const textarea = screen.getByRole('textbox');
124
+ expect(textarea).toBeInTheDocument();
125
+ });
126
+ });
@@ -0,0 +1,2 @@
1
+ import '@testing-library/jest-dom';
2
+ //# sourceMappingURL=image-upload-placeholder.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-upload-placeholder.test.d.ts","sourceRoot":"","sources":["../../../../../src/tiptap/components/__tests__/image-upload-placeholder.test.tsx"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC"}