@pie-lib/editable-html-tip-tap 2.2.0-beta.7 → 3.0.0-next.35

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 (374) hide show
  1. package/dist/components/CharacterPicker.d.ts +31 -0
  2. package/dist/components/CharacterPicker.js +141 -0
  3. package/dist/components/EditableHtml.d.ts +11 -0
  4. package/dist/components/EditableHtml.js +330 -0
  5. package/dist/components/MenuBar.d.ts +11 -0
  6. package/dist/components/MenuBar.js +528 -0
  7. package/dist/components/TiptapContainer.d.ts +11 -0
  8. package/dist/components/TiptapContainer.js +167 -0
  9. package/dist/components/characters/characterUtils.d.ts +35 -0
  10. package/dist/components/characters/characterUtils.js +465 -0
  11. package/dist/components/characters/custom-popper.d.ts +14 -0
  12. package/dist/components/characters/custom-popper.js +32 -0
  13. package/dist/components/common/done-button.d.ts +30 -0
  14. package/dist/components/common/done-button.js +26 -0
  15. package/dist/components/common/toolbar-buttons.d.ts +38 -0
  16. package/dist/components/common/toolbar-buttons.js +96 -0
  17. package/dist/components/icons/CssIcon.d.ts +11 -0
  18. package/dist/components/icons/CssIcon.js +14 -0
  19. package/dist/components/icons/RespArea.d.ts +26 -0
  20. package/dist/components/icons/RespArea.js +42 -0
  21. package/dist/components/icons/TableIcons.d.ts +14 -0
  22. package/dist/components/icons/TableIcons.js +34 -0
  23. package/dist/components/icons/TextAlign.d.ts +18 -0
  24. package/dist/components/icons/TextAlign.js +143 -0
  25. package/dist/components/image/AltDialog.d.ts +22 -0
  26. package/dist/components/image/AltDialog.js +61 -0
  27. package/dist/components/image/ImageToolbar.d.ts +24 -0
  28. package/dist/components/image/ImageToolbar.js +80 -0
  29. package/dist/components/image/InsertImageHandler.d.ts +32 -0
  30. package/dist/components/image/InsertImageHandler.js +53 -0
  31. package/dist/components/media/MediaDialog.d.ts +43 -0
  32. package/dist/components/media/MediaDialog.js +389 -0
  33. package/dist/components/media/MediaToolbar.d.ts +19 -0
  34. package/dist/components/media/MediaToolbar.js +41 -0
  35. package/dist/components/media/MediaWrapper.d.ts +19 -0
  36. package/dist/components/respArea/DragInTheBlank/DragInTheBlank.d.ts +23 -0
  37. package/dist/components/respArea/DragInTheBlank/DragInTheBlank.js +58 -0
  38. package/dist/components/respArea/DragInTheBlank/choice.d.ts +56 -0
  39. package/dist/components/respArea/DragInTheBlank/choice.js +157 -0
  40. package/dist/components/respArea/ExplicitConstructedResponse.d.ts +20 -0
  41. package/dist/components/respArea/ExplicitConstructedResponse.js +84 -0
  42. package/dist/components/respArea/InlineDropdown.d.ts +18 -0
  43. package/dist/components/respArea/InlineDropdown.js +126 -0
  44. package/dist/components/respArea/MathTemplated.d.ts +19 -0
  45. package/dist/components/respArea/MathTemplated.js +98 -0
  46. package/dist/components/respArea/ToolbarIcon.d.ts +14 -0
  47. package/dist/components/respArea/ToolbarIcon.js +17 -0
  48. package/dist/components/respArea/inlineDropdownUtils.d.ts +15 -0
  49. package/dist/components/respArea/inlineDropdownUtils.js +15 -0
  50. package/dist/constants.d.ts +13 -0
  51. package/dist/constants.js +4 -0
  52. package/dist/extensions/css.d.ts +11 -0
  53. package/dist/extensions/css.js +120 -0
  54. package/dist/extensions/custom-toolbar-wrapper.d.ts +11 -0
  55. package/dist/extensions/custom-toolbar-wrapper.js +61 -0
  56. package/dist/extensions/div-node.d.ts +10 -0
  57. package/dist/extensions/div-node.js +42 -0
  58. package/dist/extensions/ensure-empty-root-div.d.ts +14 -0
  59. package/dist/extensions/ensure-empty-root-div.js +24 -0
  60. package/dist/extensions/ensure-list-item-content-is-div.d.ts +15 -0
  61. package/dist/extensions/ensure-list-item-content-is-div.js +31 -0
  62. package/dist/extensions/extended-list-item.d.ts +13 -0
  63. package/dist/extensions/extended-list-item.js +5 -0
  64. package/dist/extensions/extended-table-cell.d.ts +10 -0
  65. package/dist/extensions/extended-table-cell.js +6 -0
  66. package/dist/extensions/extended-table.d.ts +17 -0
  67. package/dist/extensions/extended-table.js +34 -0
  68. package/dist/extensions/heading-paragraph.d.ts +17 -0
  69. package/dist/extensions/heading-paragraph.js +30 -0
  70. package/dist/extensions/image-component.d.ts +22 -0
  71. package/dist/extensions/image-component.js +225 -0
  72. package/dist/extensions/image.d.ts +10 -0
  73. package/dist/extensions/image.js +68 -0
  74. package/dist/extensions/index.d.ts +16 -0
  75. package/dist/extensions/index.js +64 -0
  76. package/dist/extensions/math.d.ts +15 -0
  77. package/dist/extensions/math.js +213 -0
  78. package/dist/extensions/media.d.ts +19 -0
  79. package/dist/extensions/media.js +149 -0
  80. package/dist/extensions/responseArea.d.ts +27 -0
  81. package/dist/extensions/responseArea.js +255 -0
  82. package/dist/index.d.ts +13 -0
  83. package/dist/index.js +7 -0
  84. package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js +16 -0
  85. package/dist/styles/editorContainerStyles.d.ts +134 -0
  86. package/dist/theme.d.ts +9 -0
  87. package/dist/utils/helper.d.ts +9 -0
  88. package/dist/utils/helper.js +27 -0
  89. package/dist/utils/size.d.ts +9 -0
  90. package/dist/utils/size.js +14 -0
  91. package/dist/utils/toolbar.d.ts +10 -0
  92. package/dist/utils/toolbar.js +7 -0
  93. package/package.json +43 -29
  94. package/CHANGELOG.json +0 -32
  95. package/CHANGELOG.md +0 -2532
  96. package/lib/__tests__/EditableHtml.test.js +0 -831
  97. package/lib/__tests__/EditableHtml.test.js.map +0 -1
  98. package/lib/__tests__/constants.test.js +0 -21
  99. package/lib/__tests__/constants.test.js.map +0 -1
  100. package/lib/__tests__/div-to-paragraph-conversion.test.js +0 -213
  101. package/lib/__tests__/div-to-paragraph-conversion.test.js.map +0 -1
  102. package/lib/__tests__/extensions.test.js +0 -209
  103. package/lib/__tests__/extensions.test.js.map +0 -1
  104. package/lib/__tests__/index.test.js +0 -250
  105. package/lib/__tests__/index.test.js.map +0 -1
  106. package/lib/__tests__/size-utils.test.js +0 -57
  107. package/lib/__tests__/size-utils.test.js.map +0 -1
  108. package/lib/__tests__/theme.test.js +0 -17
  109. package/lib/__tests__/theme.test.js.map +0 -1
  110. package/lib/components/CharacterPicker.js +0 -226
  111. package/lib/components/CharacterPicker.js.map +0 -1
  112. package/lib/components/EditableHtml.js +0 -388
  113. package/lib/components/EditableHtml.js.map +0 -1
  114. package/lib/components/MenuBar.js +0 -702
  115. package/lib/components/MenuBar.js.map +0 -1
  116. package/lib/components/TiptapContainer.js +0 -242
  117. package/lib/components/TiptapContainer.js.map +0 -1
  118. package/lib/components/__tests__/AltDialog.test.js +0 -201
  119. package/lib/components/__tests__/AltDialog.test.js.map +0 -1
  120. package/lib/components/__tests__/CharacterPicker.test.js +0 -455
  121. package/lib/components/__tests__/CharacterPicker.test.js.map +0 -1
  122. package/lib/components/__tests__/CssIcon.test.js +0 -58
  123. package/lib/components/__tests__/CssIcon.test.js.map +0 -1
  124. package/lib/components/__tests__/DragInTheBlank.test.js +0 -295
  125. package/lib/components/__tests__/DragInTheBlank.test.js.map +0 -1
  126. package/lib/components/__tests__/ExplicitConstructedResponse.test.js +0 -345
  127. package/lib/components/__tests__/ExplicitConstructedResponse.test.js.map +0 -1
  128. package/lib/components/__tests__/ImageToolbar.test.js +0 -185
  129. package/lib/components/__tests__/ImageToolbar.test.js.map +0 -1
  130. package/lib/components/__tests__/InlineDropdown.test.js +0 -839
  131. package/lib/components/__tests__/InlineDropdown.test.js.map +0 -1
  132. package/lib/components/__tests__/InsertImageHandler.test.js +0 -171
  133. package/lib/components/__tests__/InsertImageHandler.test.js.map +0 -1
  134. package/lib/components/__tests__/MediaDialog.test.js +0 -433
  135. package/lib/components/__tests__/MediaDialog.test.js.map +0 -1
  136. package/lib/components/__tests__/MediaToolbar.test.js +0 -126
  137. package/lib/components/__tests__/MediaToolbar.test.js.map +0 -1
  138. package/lib/components/__tests__/MediaWrapper.test.js +0 -96
  139. package/lib/components/__tests__/MediaWrapper.test.js.map +0 -1
  140. package/lib/components/__tests__/MenuBar.test.js +0 -502
  141. package/lib/components/__tests__/MenuBar.test.js.map +0 -1
  142. package/lib/components/__tests__/RespArea.test.js +0 -171
  143. package/lib/components/__tests__/RespArea.test.js.map +0 -1
  144. package/lib/components/__tests__/TableIcons.test.js +0 -153
  145. package/lib/components/__tests__/TableIcons.test.js.map +0 -1
  146. package/lib/components/__tests__/TextAlign.test.js +0 -209
  147. package/lib/components/__tests__/TextAlign.test.js.map +0 -1
  148. package/lib/components/__tests__/TiptapContainer.test.js +0 -196
  149. package/lib/components/__tests__/TiptapContainer.test.js.map +0 -1
  150. package/lib/components/__tests__/characterUtils.test.js +0 -178
  151. package/lib/components/__tests__/characterUtils.test.js.map +0 -1
  152. package/lib/components/__tests__/choice.test.js +0 -213
  153. package/lib/components/__tests__/choice.test.js.map +0 -1
  154. package/lib/components/__tests__/custom-popper.test.js +0 -108
  155. package/lib/components/__tests__/custom-popper.test.js.map +0 -1
  156. package/lib/components/__tests__/done-button.test.js +0 -72
  157. package/lib/components/__tests__/done-button.test.js.map +0 -1
  158. package/lib/components/__tests__/toolbar-buttons.test.js +0 -277
  159. package/lib/components/__tests__/toolbar-buttons.test.js.map +0 -1
  160. package/lib/components/characters/characterUtils.js +0 -378
  161. package/lib/components/characters/characterUtils.js.map +0 -1
  162. package/lib/components/characters/custom-popper.js +0 -44
  163. package/lib/components/characters/custom-popper.js.map +0 -1
  164. package/lib/components/common/done-button.js +0 -34
  165. package/lib/components/common/done-button.js.map +0 -1
  166. package/lib/components/common/toolbar-buttons.js +0 -149
  167. package/lib/components/common/toolbar-buttons.js.map +0 -1
  168. package/lib/components/icons/CssIcon.js +0 -25
  169. package/lib/components/icons/CssIcon.js.map +0 -1
  170. package/lib/components/icons/RespArea.js +0 -72
  171. package/lib/components/icons/RespArea.js.map +0 -1
  172. package/lib/components/icons/TableIcons.js +0 -53
  173. package/lib/components/icons/TableIcons.js.map +0 -1
  174. package/lib/components/icons/TextAlign.js +0 -157
  175. package/lib/components/icons/TextAlign.js.map +0 -1
  176. package/lib/components/image/AltDialog.js +0 -98
  177. package/lib/components/image/AltDialog.js.map +0 -1
  178. package/lib/components/image/ImageToolbar.js +0 -137
  179. package/lib/components/image/ImageToolbar.js.map +0 -1
  180. package/lib/components/image/InsertImageHandler.js +0 -135
  181. package/lib/components/image/InsertImageHandler.js.map +0 -1
  182. package/lib/components/media/MediaDialog.js +0 -594
  183. package/lib/components/media/MediaDialog.js.map +0 -1
  184. package/lib/components/media/MediaToolbar.js +0 -74
  185. package/lib/components/media/MediaToolbar.js.map +0 -1
  186. package/lib/components/media/MediaWrapper.js +0 -67
  187. package/lib/components/media/MediaWrapper.js.map +0 -1
  188. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js +0 -84
  189. package/lib/components/respArea/DragInTheBlank/DragInTheBlank.js.map +0 -1
  190. package/lib/components/respArea/DragInTheBlank/__tests__/choice.test.js +0 -90
  191. package/lib/components/respArea/DragInTheBlank/__tests__/choice.test.js.map +0 -1
  192. package/lib/components/respArea/DragInTheBlank/choice.js +0 -253
  193. package/lib/components/respArea/DragInTheBlank/choice.js.map +0 -1
  194. package/lib/components/respArea/ExplicitConstructedResponse.js +0 -137
  195. package/lib/components/respArea/ExplicitConstructedResponse.js.map +0 -1
  196. package/lib/components/respArea/InlineDropdown.js +0 -223
  197. package/lib/components/respArea/InlineDropdown.js.map +0 -1
  198. package/lib/components/respArea/MathTemplated.js +0 -130
  199. package/lib/components/respArea/MathTemplated.js.map +0 -1
  200. package/lib/components/respArea/ToolbarIcon.js +0 -81
  201. package/lib/components/respArea/ToolbarIcon.js.map +0 -1
  202. package/lib/components/respArea/__tests__/MathTemplated.test.js +0 -217
  203. package/lib/components/respArea/__tests__/MathTemplated.test.js.map +0 -1
  204. package/lib/components/respArea/inlineDropdownUtils.js +0 -67
  205. package/lib/components/respArea/inlineDropdownUtils.js.map +0 -1
  206. package/lib/constants.js +0 -11
  207. package/lib/constants.js.map +0 -1
  208. package/lib/extensions/__tests__/css.test.js +0 -214
  209. package/lib/extensions/__tests__/css.test.js.map +0 -1
  210. package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js +0 -175
  211. package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js.map +0 -1
  212. package/lib/extensions/__tests__/divNode.test.js +0 -108
  213. package/lib/extensions/__tests__/divNode.test.js.map +0 -1
  214. package/lib/extensions/__tests__/ensure-empty-root-div.test.js +0 -50
  215. package/lib/extensions/__tests__/ensure-empty-root-div.test.js.map +0 -1
  216. package/lib/extensions/__tests__/ensure-list-item-content-is-div.test.js +0 -60
  217. package/lib/extensions/__tests__/ensure-list-item-content-is-div.test.js.map +0 -1
  218. package/lib/extensions/__tests__/extended-list-item.test.js +0 -13
  219. package/lib/extensions/__tests__/extended-list-item.test.js.map +0 -1
  220. package/lib/extensions/__tests__/extended-table-cell.test.js +0 -15
  221. package/lib/extensions/__tests__/extended-table-cell.test.js.map +0 -1
  222. package/lib/extensions/__tests__/extended-table.test.js +0 -200
  223. package/lib/extensions/__tests__/extended-table.test.js.map +0 -1
  224. package/lib/extensions/__tests__/image-component.test.js +0 -432
  225. package/lib/extensions/__tests__/image-component.test.js.map +0 -1
  226. package/lib/extensions/__tests__/image.test.js +0 -313
  227. package/lib/extensions/__tests__/image.test.js.map +0 -1
  228. package/lib/extensions/__tests__/math.test.js +0 -1411
  229. package/lib/extensions/__tests__/math.test.js.map +0 -1
  230. package/lib/extensions/__tests__/media-node-view.test.js +0 -307
  231. package/lib/extensions/__tests__/media-node-view.test.js.map +0 -1
  232. package/lib/extensions/__tests__/media.test.js +0 -292
  233. package/lib/extensions/__tests__/media.test.js.map +0 -1
  234. package/lib/extensions/__tests__/responseArea.test.js +0 -736
  235. package/lib/extensions/__tests__/responseArea.test.js.map +0 -1
  236. package/lib/extensions/css.js +0 -227
  237. package/lib/extensions/css.js.map +0 -1
  238. package/lib/extensions/custom-toolbar-wrapper.js +0 -92
  239. package/lib/extensions/custom-toolbar-wrapper.js.map +0 -1
  240. package/lib/extensions/div-node.js +0 -83
  241. package/lib/extensions/div-node.js.map +0 -1
  242. package/lib/extensions/ensure-empty-root-div.js +0 -48
  243. package/lib/extensions/ensure-empty-root-div.js.map +0 -1
  244. package/lib/extensions/ensure-list-item-content-is-div.js +0 -64
  245. package/lib/extensions/ensure-list-item-content-is-div.js.map +0 -1
  246. package/lib/extensions/extended-list-item.js +0 -15
  247. package/lib/extensions/extended-list-item.js.map +0 -1
  248. package/lib/extensions/extended-table-cell.js +0 -22
  249. package/lib/extensions/extended-table-cell.js.map +0 -1
  250. package/lib/extensions/extended-table.js +0 -75
  251. package/lib/extensions/extended-table.js.map +0 -1
  252. package/lib/extensions/heading-paragraph.js +0 -61
  253. package/lib/extensions/heading-paragraph.js.map +0 -1
  254. package/lib/extensions/image-component.js +0 -351
  255. package/lib/extensions/image-component.js.map +0 -1
  256. package/lib/extensions/image.js +0 -134
  257. package/lib/extensions/image.js.map +0 -1
  258. package/lib/extensions/index.js +0 -46
  259. package/lib/extensions/index.js.map +0 -1
  260. package/lib/extensions/math.js +0 -469
  261. package/lib/extensions/math.js.map +0 -1
  262. package/lib/extensions/media.js +0 -243
  263. package/lib/extensions/media.js.map +0 -1
  264. package/lib/extensions/responseArea.js +0 -452
  265. package/lib/extensions/responseArea.js.map +0 -1
  266. package/lib/index.js +0 -37
  267. package/lib/index.js.map +0 -1
  268. package/lib/styles/editorContainerStyles.js +0 -137
  269. package/lib/styles/editorContainerStyles.js.map +0 -1
  270. package/lib/theme.js +0 -8
  271. package/lib/theme.js.map +0 -1
  272. package/lib/utils/__tests__/helper.test.js +0 -107
  273. package/lib/utils/__tests__/helper.test.js.map +0 -1
  274. package/lib/utils/__tests__/toolbar.test.js +0 -38
  275. package/lib/utils/__tests__/toolbar.test.js.map +0 -1
  276. package/lib/utils/helper.js +0 -73
  277. package/lib/utils/helper.js.map +0 -1
  278. package/lib/utils/size.js +0 -26
  279. package/lib/utils/size.js.map +0 -1
  280. package/lib/utils/toolbar.js +0 -19
  281. package/lib/utils/toolbar.js.map +0 -1
  282. package/src/__tests__/EditableHtml.test.jsx +0 -588
  283. package/src/__tests__/constants.test.js +0 -19
  284. package/src/__tests__/div-to-paragraph-conversion.test.jsx +0 -125
  285. package/src/__tests__/extensions.test.js +0 -208
  286. package/src/__tests__/index.test.jsx +0 -154
  287. package/src/__tests__/size-utils.test.js +0 -64
  288. package/src/__tests__/theme.test.js +0 -17
  289. package/src/components/CharacterPicker.jsx +0 -237
  290. package/src/components/EditableHtml.jsx +0 -458
  291. package/src/components/MenuBar.jsx +0 -561
  292. package/src/components/TiptapContainer.jsx +0 -235
  293. package/src/components/__tests__/AltDialog.test.jsx +0 -147
  294. package/src/components/__tests__/CharacterPicker.test.jsx +0 -270
  295. package/src/components/__tests__/CssIcon.test.jsx +0 -46
  296. package/src/components/__tests__/DragInTheBlank.test.jsx +0 -255
  297. package/src/components/__tests__/ExplicitConstructedResponse.test.jsx +0 -209
  298. package/src/components/__tests__/ImageToolbar.test.jsx +0 -128
  299. package/src/components/__tests__/InlineDropdown.test.jsx +0 -557
  300. package/src/components/__tests__/InsertImageHandler.test.js +0 -161
  301. package/src/components/__tests__/MediaDialog.test.jsx +0 -293
  302. package/src/components/__tests__/MediaToolbar.test.jsx +0 -74
  303. package/src/components/__tests__/MediaWrapper.test.jsx +0 -81
  304. package/src/components/__tests__/MenuBar.test.jsx +0 -250
  305. package/src/components/__tests__/RespArea.test.jsx +0 -122
  306. package/src/components/__tests__/TableIcons.test.jsx +0 -149
  307. package/src/components/__tests__/TextAlign.test.jsx +0 -167
  308. package/src/components/__tests__/TiptapContainer.test.jsx +0 -138
  309. package/src/components/__tests__/characterUtils.test.js +0 -166
  310. package/src/components/__tests__/choice.test.jsx +0 -171
  311. package/src/components/__tests__/custom-popper.test.jsx +0 -82
  312. package/src/components/__tests__/done-button.test.jsx +0 -54
  313. package/src/components/__tests__/toolbar-buttons.test.jsx +0 -234
  314. package/src/components/characters/characterUtils.js +0 -447
  315. package/src/components/characters/custom-popper.js +0 -38
  316. package/src/components/common/done-button.jsx +0 -27
  317. package/src/components/common/toolbar-buttons.jsx +0 -127
  318. package/src/components/icons/CssIcon.jsx +0 -15
  319. package/src/components/icons/RespArea.jsx +0 -71
  320. package/src/components/icons/TableIcons.jsx +0 -52
  321. package/src/components/icons/TextAlign.jsx +0 -114
  322. package/src/components/image/AltDialog.jsx +0 -82
  323. package/src/components/image/ImageToolbar.jsx +0 -99
  324. package/src/components/image/InsertImageHandler.js +0 -107
  325. package/src/components/media/MediaDialog.jsx +0 -596
  326. package/src/components/media/MediaToolbar.jsx +0 -49
  327. package/src/components/media/MediaWrapper.jsx +0 -39
  328. package/src/components/respArea/DragInTheBlank/DragInTheBlank.jsx +0 -76
  329. package/src/components/respArea/DragInTheBlank/__tests__/choice.test.jsx +0 -72
  330. package/src/components/respArea/DragInTheBlank/choice.jsx +0 -259
  331. package/src/components/respArea/ExplicitConstructedResponse.jsx +0 -136
  332. package/src/components/respArea/InlineDropdown.jsx +0 -240
  333. package/src/components/respArea/MathTemplated.jsx +0 -124
  334. package/src/components/respArea/ToolbarIcon.jsx +0 -66
  335. package/src/components/respArea/__tests__/MathTemplated.test.jsx +0 -210
  336. package/src/components/respArea/inlineDropdownUtils.js +0 -79
  337. package/src/constants.js +0 -5
  338. package/src/extensions/__tests__/css.test.js +0 -196
  339. package/src/extensions/__tests__/custom-toolbar-wrapper.test.jsx +0 -180
  340. package/src/extensions/__tests__/divNode.test.js +0 -87
  341. package/src/extensions/__tests__/ensure-empty-root-div.test.js +0 -57
  342. package/src/extensions/__tests__/ensure-list-item-content-is-div.test.js +0 -44
  343. package/src/extensions/__tests__/extended-list-item.test.js +0 -13
  344. package/src/extensions/__tests__/extended-table-cell.test.js +0 -22
  345. package/src/extensions/__tests__/extended-table.test.js +0 -183
  346. package/src/extensions/__tests__/image-component.test.jsx +0 -346
  347. package/src/extensions/__tests__/image.test.js +0 -237
  348. package/src/extensions/__tests__/math.test.js +0 -900
  349. package/src/extensions/__tests__/media-node-view.test.jsx +0 -298
  350. package/src/extensions/__tests__/media.test.js +0 -271
  351. package/src/extensions/__tests__/responseArea.test.js +0 -655
  352. package/src/extensions/css.js +0 -233
  353. package/src/extensions/custom-toolbar-wrapper.jsx +0 -78
  354. package/src/extensions/div-node.js +0 -86
  355. package/src/extensions/ensure-empty-root-div.js +0 -47
  356. package/src/extensions/ensure-list-item-content-is-div.js +0 -62
  357. package/src/extensions/extended-list-item.js +0 -10
  358. package/src/extensions/extended-table-cell.js +0 -19
  359. package/src/extensions/extended-table.js +0 -60
  360. package/src/extensions/heading-paragraph.js +0 -53
  361. package/src/extensions/image-component.jsx +0 -340
  362. package/src/extensions/image.js +0 -109
  363. package/src/extensions/index.js +0 -81
  364. package/src/extensions/math.js +0 -454
  365. package/src/extensions/media.js +0 -188
  366. package/src/extensions/responseArea.js +0 -407
  367. package/src/index.jsx +0 -5
  368. package/src/styles/editorContainerStyles.js +0 -145
  369. package/src/theme.js +0 -1
  370. package/src/utils/__tests__/helper.test.js +0 -126
  371. package/src/utils/__tests__/toolbar.test.js +0 -43
  372. package/src/utils/helper.js +0 -69
  373. package/src/utils/size.js +0 -32
  374. package/src/utils/toolbar.js +0 -15
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditableHtml.test.js","names":["_react","_interopRequireDefault","require","_react2","_react3","_EditableHtml","_responseArea","_excluded","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","jest","mock","EditorContent","_ref","editor","props","_objectWithoutProperties2","createElement","_extends2","useEditor","fn","config","mockEditor","getHTML","setEditable","commands","setContent","isActive","isFocused","useEditorState","__esModule","configure","TextStyleKit","CharacterCount","TableRow","ExtendedTableCell","ExtendedTableHeader","EnsureEmptyRootIsDiv","ExtendedListItem","EnsureListItemContentIsDiv","ExplicitConstructedResponseNode","DragInTheBlankNode","InlineDropdownNode","MathTemplatedNode","ResponseAreaExtension","MathNode","ImageUploadNode","Media","CSSMark","default","_ref2","children","requireActual","buildExtensions","describe","defaultProps","markup","onChange","onDone","disabled","beforeEach","clearAllMocks","it","_render","render","EditableHtml","container","expect","toBeInTheDocument","_render2","getByTestId","_asyncToGenerator2","_regenerator","mark","_callee","_render3","wrap","_context","prev","next","waitFor","stop","toolbarOpts","position","alignment","alwaysVisible","showDone","doneOn","_render4","activePlugins","_render5","pluginProps","showParagraphs","separateParagraphs","_render6","responseAreaProps","type","options","_render7","_callee2","html","configureCall","inlineDropdownOptions","_context2","toHaveBeenCalled","calls","onInlineDropdownToolbarClose","toHaveBeenCalledTimes","toHaveBeenCalledWith","sizeProps","width","height","minHeight","maxHeight","minWidth","maxWidth","_render8","_render9","charactersLimit","imageSupport","add","_render0","_render1","maxImageWidth","maxImageHeight","languageCharactersProps","label","value","_render10","extraCSSRules","color","_render11","uploadSoundSupport","_render12","onKeyDown","_render13","_render14","disableImageAlignmentButtons","_callee3","editorRef","_context3","_callee4","_context4","callArg","toHaveProperty","_render15","undefined","_callee5","_render16","_context5","editorContent","_callee6","editorConfig","blurEditor","_context6","useFakeTimers","schema","_insertingImage","_toolbarOpened","onBlur","advanceTimersByTime","not","useRealTimers","_callee7","_context7","_callee8","_context8","_callee9","mockTransaction","_context9","isDone","onUpdate","transaction","_callee0","_context0","_callee1","_context1","_callee10","_context10","_callee11","_context11","toThrow"],"sources":["../../src/__tests__/EditableHtml.test.jsx"],"sourcesContent":["import React from 'react';\nimport { render, waitFor } from '@testing-library/react';\nimport { useEditor } from '@tiptap/react';\nimport { EditableHtml } from '../components/EditableHtml';\nimport { InlineDropdownNode } from '../extensions/responseArea';\n\n// Mock TipTap dependencies\njest.mock('@tiptap/react', () => ({\n EditorContent: ({ editor, ...props }) => <div data-testid=\"editor-content\" {...props} />,\n useEditor: jest.fn((config) => {\n const mockEditor = {\n getHTML: jest.fn(() => '<p>test content</p>'),\n setEditable: jest.fn(),\n commands: {\n setContent: jest.fn(),\n },\n isActive: jest.fn(() => false),\n isFocused: false,\n };\n return mockEditor;\n }),\n useEditorState: jest.fn(() => ({\n isFocused: false,\n })),\n}));\n\njest.mock('@tiptap/starter-kit', () => ({\n __esModule: true,\n default: {\n configure: jest.fn(() => ({})),\n },\n}));\n\njest.mock('@tiptap/extension-text-style', () => ({\n TextStyleKit: {},\n}));\n\njest.mock('@tiptap/extension-character-count', () => ({\n CharacterCount: {\n configure: jest.fn(() => ({})),\n },\n}));\n\njest.mock('@tiptap/extension-superscript', () => ({\n __esModule: true,\n default: {},\n}));\n\njest.mock('@tiptap/extension-subscript', () => ({\n __esModule: true,\n default: {},\n}));\n\njest.mock('@tiptap/extension-text-align', () => ({\n __esModule: true,\n default: {\n configure: jest.fn(() => ({})),\n },\n}));\n\njest.mock('@tiptap/extension-image', () => ({\n __esModule: true,\n default: {},\n}));\n\njest.mock('@tiptap/extension-table', () => ({\n __esModule: true,\n default: {},\n}));\n\njest.mock('@tiptap/extension-table-row', () => ({\n TableRow: {},\n}));\n\njest.mock('../extensions/extended-table-cell', () => ({\n ExtendedTableCell: {},\n ExtendedTableHeader: {},\n}));\n\njest.mock('../extensions/extended-table', () => ({\n __esModule: true,\n default: {},\n}));\n\njest.mock('../extensions/ensure-empty-root-div', () => ({\n EnsureEmptyRootIsDiv: {},\n}));\n\njest.mock('../extensions/extended-list-item', () => ({\n ExtendedListItem: {},\n}));\n\njest.mock('../extensions/ensure-list-item-content-is-div', () => ({\n EnsureListItemContentIsDiv: {},\n}));\n\njest.mock('../extensions/responseArea', () => ({\n ExplicitConstructedResponseNode: {\n configure: jest.fn(() => ({})),\n },\n DragInTheBlankNode: {\n configure: jest.fn(() => ({})),\n },\n InlineDropdownNode: {\n configure: jest.fn(() => ({})),\n },\n MathTemplatedNode: {\n configure: jest.fn(() => ({})),\n },\n ResponseAreaExtension: {\n configure: jest.fn(() => ({})),\n },\n}));\n\njest.mock('../extensions/math', () => ({\n MathNode: {\n configure: jest.fn(() => ({})),\n },\n}));\n\njest.mock('../extensions/image', () => ({\n ImageUploadNode: {\n configure: jest.fn(() => ({})),\n },\n}));\n\njest.mock('../extensions/media', () => ({\n Media: {\n configure: jest.fn(() => ({})),\n },\n}));\n\njest.mock('../extensions/css', () => ({\n CSSMark: {\n configure: jest.fn(() => ({})),\n },\n}));\n\njest.mock('../components/TiptapContainer', () => ({\n __esModule: true,\n default: ({ children }) => <div data-testid=\"editor-container\">{children}</div>,\n}));\n\njest.mock('../extensions', () => ({\n ...jest.requireActual('../extensions'),\n buildExtensions: jest.fn(() => []),\n}));\n\ndescribe('EditableHtml', () => {\n const defaultProps = {\n markup: '<p>Hello World</p>',\n onChange: jest.fn(),\n onDone: jest.fn(),\n disabled: false,\n };\n\n beforeEach(() => {\n jest.clearAllMocks();\n });\n\n it('renders without crashing', () => {\n const { container } = render(<EditableHtml {...defaultProps} />);\n expect(container).toBeInTheDocument();\n });\n\n it('renders editor container', () => {\n const { getByTestId } = render(<EditableHtml {...defaultProps} />);\n expect(getByTestId('editor-container')).toBeInTheDocument();\n });\n\n it('renders editor content when editor is initialized', async () => {\n const { getByTestId } = render(<EditableHtml {...defaultProps} />);\n await waitFor(() => {\n expect(getByTestId('editor-content')).toBeInTheDocument();\n });\n });\n\n it('accepts custom toolbar options', () => {\n const toolbarOpts = {\n position: 'top',\n alignment: 'center',\n alwaysVisible: true,\n showDone: false,\n doneOn: 'change',\n };\n const { container } = render(<EditableHtml {...defaultProps} toolbarOpts={toolbarOpts} />);\n expect(container).toBeInTheDocument();\n });\n\n it('accepts custom active plugins', () => {\n const activePlugins = ['bold', 'italic', 'underline'];\n const { container } = render(<EditableHtml {...defaultProps} activePlugins={activePlugins} />);\n expect(container).toBeInTheDocument();\n });\n\n it('accepts plugin props', () => {\n const pluginProps = {\n showParagraphs: { disabled: false },\n separateParagraphs: { disabled: false },\n };\n const { container } = render(<EditableHtml {...defaultProps} pluginProps={pluginProps} />);\n expect(container).toBeInTheDocument();\n });\n\n it('accepts response area props', () => {\n const responseAreaProps = {\n type: 'explicit-constructed-response',\n options: {},\n };\n const { container } = render(<EditableHtml {...defaultProps} responseAreaProps={responseAreaProps} />);\n expect(container).toBeInTheDocument();\n });\n\n it('passes blur done behavior to inline dropdown toolbar close', async () => {\n const onChange = jest.fn();\n const onDone = jest.fn();\n const html = '<p>from inline dropdown close</p>';\n\n render(\n <EditableHtml\n {...defaultProps}\n markup=\"<p>Hello World</p>\"\n onChange={onChange}\n onDone={onDone}\n toolbarOpts={{ doneOn: 'blur' }}\n responseAreaProps={{ type: 'inline-dropdown' }}\n />,\n );\n\n await waitFor(() => {\n expect(InlineDropdownNode.configure).toHaveBeenCalled();\n });\n\n const configureCall = InlineDropdownNode.configure.mock.calls[InlineDropdownNode.configure.mock.calls.length - 1];\n const inlineDropdownOptions = configureCall[0];\n const editor = {\n getHTML: jest.fn(() => html),\n };\n\n inlineDropdownOptions.onInlineDropdownToolbarClose(editor);\n\n expect(editor.getHTML).toHaveBeenCalledTimes(1);\n expect(onChange).toHaveBeenCalledWith(html);\n expect(onDone).toHaveBeenCalledWith(html);\n });\n\n it('accepts size props', () => {\n const sizeProps = {\n width: 500,\n height: 300,\n minHeight: 200,\n maxHeight: 400,\n minWidth: 300,\n maxWidth: 600,\n };\n const { container } = render(<EditableHtml {...defaultProps} {...sizeProps} />);\n expect(container).toBeInTheDocument();\n });\n\n it('accepts character limit', () => {\n const { container } = render(<EditableHtml {...defaultProps} charactersLimit={500} />);\n expect(container).toBeInTheDocument();\n });\n\n it('accepts image support props', () => {\n const imageSupport = {\n add: jest.fn(),\n delete: jest.fn(),\n };\n const { container } = render(<EditableHtml {...defaultProps} imageSupport={imageSupport} />);\n expect(container).toBeInTheDocument();\n });\n\n it('accepts max image dimensions', () => {\n const { container } = render(<EditableHtml {...defaultProps} maxImageWidth={800} maxImageHeight={600} />);\n expect(container).toBeInTheDocument();\n });\n\n it('accepts language characters props', () => {\n const languageCharactersProps = [\n { label: 'Greek', value: 'greek' },\n { label: 'Cyrillic', value: 'cyrillic' },\n ];\n const { container } = render(<EditableHtml {...defaultProps} languageCharactersProps={languageCharactersProps} />);\n expect(container).toBeInTheDocument();\n });\n\n it('accepts extra CSS rules', () => {\n const extraCSSRules = {\n '.custom-class': { color: 'red' },\n };\n const { container } = render(<EditableHtml {...defaultProps} extraCSSRules={extraCSSRules} />);\n expect(container).toBeInTheDocument();\n });\n\n it('accepts upload sound support', () => {\n const uploadSoundSupport = {\n add: jest.fn(),\n delete: jest.fn(),\n };\n const { container } = render(<EditableHtml {...defaultProps} uploadSoundSupport={uploadSoundSupport} />);\n expect(container).toBeInTheDocument();\n });\n\n it('accepts onKeyDown handler', () => {\n const onKeyDown = jest.fn();\n const { container } = render(<EditableHtml {...defaultProps} onKeyDown={onKeyDown} />);\n expect(container).toBeInTheDocument();\n });\n\n it('accepts disableImageAlignmentButtons prop', () => {\n const { container } = render(<EditableHtml {...defaultProps} disableImageAlignmentButtons={true} />);\n expect(container).toBeInTheDocument();\n });\n\n it('calls editorRef callback when editor is initialized', async () => {\n const editorRef = jest.fn();\n render(<EditableHtml {...defaultProps} editorRef={editorRef} />);\n\n await waitFor(() => {\n expect(editorRef).toHaveBeenCalled();\n });\n });\n\n it('calls editorRef with the editor instance', async () => {\n const editorRef = jest.fn();\n render(<EditableHtml {...defaultProps} editorRef={editorRef} />);\n\n await waitFor(() => {\n expect(editorRef).toHaveBeenCalled();\n // Verify it was called with an object that has editor-like properties\n const callArg = editorRef.mock.calls[0][0];\n expect(callArg).toHaveProperty('getHTML');\n expect(callArg).toHaveProperty('commands');\n });\n });\n\n it('handles editorRef being undefined', () => {\n const { container } = render(<EditableHtml {...defaultProps} editorRef={undefined} />);\n expect(container).toBeInTheDocument();\n });\n\n it('applies flex display to StyledEditorContent', async () => {\n const { getByTestId } = render(<EditableHtml {...defaultProps} />);\n await waitFor(() => {\n const editorContent = getByTestId('editor-content');\n expect(editorContent).toBeInTheDocument();\n });\n });\n\n it('does not run blur onChange/onDone while an image insert flow is active', async () => {\n jest.useFakeTimers();\n const onChange = jest.fn();\n const onDone = jest.fn();\n\n render(\n <EditableHtml\n {...defaultProps}\n markup=\"<p>Hello World</p>\"\n onChange={onChange}\n onDone={onDone}\n toolbarOpts={{ ...defaultProps.toolbarOpts, doneOn: 'blur' }}\n />,\n );\n\n await waitFor(() => {\n expect(useEditor).toHaveBeenCalled();\n });\n\n const editorConfig = useEditor.mock.calls[useEditor.mock.calls.length - 1][0];\n const blurEditor = {\n getHTML: jest.fn(() => '<p>changed</p>'),\n schema: {},\n _insertingImage: true,\n _toolbarOpened: false,\n isActive: jest.fn(() => false),\n };\n\n editorConfig.onBlur({ editor: blurEditor });\n jest.advanceTimersByTime(200);\n\n expect(onChange).not.toHaveBeenCalled();\n expect(onDone).not.toHaveBeenCalled();\n\n jest.useRealTimers();\n });\n\n it('does not run blur onChange/onDone when editor has no schema', async () => {\n jest.useFakeTimers();\n const onChange = jest.fn();\n const onDone = jest.fn();\n\n render(\n <EditableHtml\n {...defaultProps}\n markup=\"<p>Hello World</p>\"\n onChange={onChange}\n onDone={onDone}\n toolbarOpts={{ doneOn: 'blur' }}\n />,\n );\n\n await waitFor(() => {\n expect(useEditor).toHaveBeenCalled();\n });\n\n const editorConfig = useEditor.mock.calls[useEditor.mock.calls.length - 1][0];\n const getHTML = jest.fn(() => '<p>changed</p>');\n const blurEditor = {\n getHTML,\n schema: undefined,\n _insertingImage: false,\n _toolbarOpened: false,\n isActive: jest.fn(() => false),\n };\n\n editorConfig.onBlur({ editor: blurEditor });\n jest.advanceTimersByTime(200);\n\n expect(getHTML).not.toHaveBeenCalled();\n expect(onChange).not.toHaveBeenCalled();\n expect(onDone).not.toHaveBeenCalled();\n\n jest.useRealTimers();\n });\n\n it('calls getHTML once on blur and passes the same html to onChange and onDone', async () => {\n jest.useFakeTimers();\n const onChange = jest.fn();\n const onDone = jest.fn();\n const html = '<p>from editor</p>';\n\n render(\n <EditableHtml\n {...defaultProps}\n markup=\"<p>Hello World</p>\"\n onChange={onChange}\n onDone={onDone}\n toolbarOpts={{ doneOn: 'blur' }}\n />,\n );\n\n await waitFor(() => {\n expect(useEditor).toHaveBeenCalled();\n });\n\n const editorConfig = useEditor.mock.calls[useEditor.mock.calls.length - 1][0];\n const getHTML = jest.fn(() => html);\n const blurEditor = {\n getHTML,\n schema: {},\n _insertingImage: false,\n _toolbarOpened: false,\n isActive: jest.fn(() => false),\n };\n\n editorConfig.onBlur({ editor: blurEditor });\n jest.advanceTimersByTime(200);\n\n expect(getHTML).toHaveBeenCalledTimes(1);\n expect(onChange).toHaveBeenCalledWith(html);\n expect(onDone).toHaveBeenCalledWith(html);\n\n jest.useRealTimers();\n });\n\n describe('onUpdate callback', () => {\n it('calls onChange when transaction.isDone is true', async () => {\n const onChange = jest.fn();\n const markup = '<p>Initial content</p>';\n\n render(<EditableHtml {...defaultProps} markup={markup} onChange={onChange} />);\n\n await waitFor(() => {\n expect(useEditor).toHaveBeenCalled();\n });\n\n const editorConfig = useEditor.mock.calls[useEditor.mock.calls.length - 1][0];\n const mockEditor = {\n getHTML: jest.fn(() => '<p>Updated content</p>'),\n };\n\n const mockTransaction = {\n isDone: true,\n };\n\n editorConfig.onUpdate({ editor: mockEditor, transaction: mockTransaction });\n\n expect(onChange).toHaveBeenCalledWith('<p>Updated content</p>');\n });\n\n it('does not call onChange when transaction.isDone is false even if markup differs from editor HTML', async () => {\n const onChange = jest.fn();\n const markup = '<p>Initial content</p>';\n\n render(<EditableHtml {...defaultProps} markup={markup} onChange={onChange} />);\n\n await waitFor(() => {\n expect(useEditor).toHaveBeenCalled();\n });\n\n const editorConfig = useEditor.mock.calls[useEditor.mock.calls.length - 1][0];\n const mockEditor = {\n getHTML: jest.fn(() => '<p>Different content</p>'),\n };\n\n const mockTransaction = {\n isDone: false,\n };\n\n editorConfig.onUpdate({ editor: mockEditor, transaction: mockTransaction });\n\n expect(onChange).not.toHaveBeenCalled();\n });\n\n it('does not call onChange when transaction.isDone is false and markup matches editor HTML', async () => {\n const onChange = jest.fn();\n const markup = '<p>Same content</p>';\n\n render(<EditableHtml {...defaultProps} markup={markup} onChange={onChange} />);\n\n await waitFor(() => {\n expect(useEditor).toHaveBeenCalled();\n });\n\n const editorConfig = useEditor.mock.calls[useEditor.mock.calls.length - 1][0];\n const mockEditor = {\n getHTML: jest.fn(() => '<p>Same content</p>'),\n };\n\n const mockTransaction = {\n isDone: false,\n };\n\n editorConfig.onUpdate({ editor: mockEditor, transaction: mockTransaction });\n\n expect(onChange).not.toHaveBeenCalled();\n });\n\n it('calls onChange when transaction.isDone is true even if markup matches', async () => {\n const onChange = jest.fn();\n const markup = '<p>Same content</p>';\n\n render(<EditableHtml {...defaultProps} markup={markup} onChange={onChange} />);\n\n await waitFor(() => {\n expect(useEditor).toHaveBeenCalled();\n });\n\n const editorConfig = useEditor.mock.calls[useEditor.mock.calls.length - 1][0];\n const mockEditor = {\n getHTML: jest.fn(() => '<p>Same content</p>'),\n };\n\n const mockTransaction = {\n isDone: true,\n };\n\n editorConfig.onUpdate({ editor: mockEditor, transaction: mockTransaction });\n\n expect(onChange).toHaveBeenCalledWith('<p>Same content</p>');\n });\n\n it('does not call onChange when onChange is not provided', async () => {\n const markup = '<p>Content</p>';\n\n render(<EditableHtml {...defaultProps} markup={markup} onChange={undefined} />);\n\n await waitFor(() => {\n expect(useEditor).toHaveBeenCalled();\n });\n\n const editorConfig = useEditor.mock.calls[useEditor.mock.calls.length - 1][0];\n const mockEditor = {\n getHTML: jest.fn(() => '<p>Updated content</p>'),\n };\n\n const mockTransaction = {\n isDone: true,\n };\n\n // Should not throw error when onChange is undefined\n expect(() => {\n editorConfig.onUpdate({ editor: mockEditor, transaction: mockTransaction });\n }).not.toThrow();\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,21 +0,0 @@
1
- "use strict";
2
-
3
- var _typeof = require("@babel/runtime/helpers/typeof");
4
- var _constants = _interopRequireWildcard(require("../constants"));
5
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
6
- describe('Constants', function () {
7
- describe('PIE_TOOLBAR__CLASS', function () {
8
- it('is defined', function () {
9
- expect(_constants.PIE_TOOLBAR__CLASS).toBeDefined();
10
- });
11
- it('has the correct value', function () {
12
- expect(_constants.PIE_TOOLBAR__CLASS).toBe('pie-toolbar');
13
- });
14
- });
15
- describe('default export', function () {
16
- it('contains PIE_TOOLBAR__CLASS', function () {
17
- expect(_constants["default"].PIE_TOOLBAR__CLASS).toBe('pie-toolbar');
18
- });
19
- });
20
- });
21
- //# sourceMappingURL=constants.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.test.js","names":["_constants","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","describe","it","expect","PIE_TOOLBAR__CLASS","toBeDefined","toBe","constants"],"sources":["../../src/__tests__/constants.test.js"],"sourcesContent":["import constants, { PIE_TOOLBAR__CLASS } from '../constants';\n\ndescribe('Constants', () => {\n describe('PIE_TOOLBAR__CLASS', () => {\n it('is defined', () => {\n expect(PIE_TOOLBAR__CLASS).toBeDefined();\n });\n\n it('has the correct value', () => {\n expect(PIE_TOOLBAR__CLASS).toBe('pie-toolbar');\n });\n });\n\n describe('default export', () => {\n it('contains PIE_TOOLBAR__CLASS', () => {\n expect(constants.PIE_TOOLBAR__CLASS).toBe('pie-toolbar');\n });\n });\n});\n"],"mappings":";;;AAAA,IAAAA,UAAA,GAAAC,uBAAA,CAAAC,OAAA;AAA6D,SAAAD,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,wBAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,mBAAAT,CAAA,iBAAAA,CAAA,gBAAAU,OAAA,CAAAV,CAAA,0BAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,cAAAM,EAAA,IAAAd,CAAA,gBAAAc,EAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,EAAA,OAAAP,CAAA,IAAAD,CAAA,GAAAW,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAc,EAAA,OAAAP,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAM,EAAA,EAAAP,CAAA,IAAAC,CAAA,CAAAM,EAAA,IAAAd,CAAA,CAAAc,EAAA,WAAAN,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAE7DmB,QAAQ,CAAC,WAAW,EAAE,YAAM;EAC1BA,QAAQ,CAAC,oBAAoB,EAAE,YAAM;IACnCC,EAAE,CAAC,YAAY,EAAE,YAAM;MACrBC,MAAM,CAACC,6BAAkB,CAAC,CAACC,WAAW,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEFH,EAAE,CAAC,uBAAuB,EAAE,YAAM;MAChCC,MAAM,CAACC,6BAAkB,CAAC,CAACE,IAAI,CAAC,aAAa,CAAC;IAChD,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFL,QAAQ,CAAC,gBAAgB,EAAE,YAAM;IAC/BC,EAAE,CAAC,6BAA6B,EAAE,YAAM;MACtCC,MAAM,CAACI,qBAAS,CAACH,kBAAkB,CAAC,CAACE,IAAI,CAAC,aAAa,CAAC;IAC1D,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -1,213 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
- var _react = _interopRequireDefault(require("react"));
7
- var _react2 = require("@testing-library/react");
8
- var _EditableHtml = require("../components/EditableHtml");
9
- describe('Div to Paragraph Conversion', function () {
10
- it('converts consecutive divs to paragraph with br tags', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
11
- var markup, _render, container, paragraph, br;
12
- return _regenerator["default"].wrap(function (_context) {
13
- while (1) switch (_context.prev = _context.next) {
14
- case 0:
15
- markup = '<div>A</div><div>B</div>';
16
- _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, {
17
- markup: markup,
18
- onChange: function onChange() {},
19
- pluginProps: {}
20
- })), container = _render.container; // Wait for the editor to initialize
21
- _context.next = 1;
22
- return (0, _react2.waitFor)(function () {
23
- var prosemirror = container.querySelector('.ProseMirror');
24
- expect(prosemirror).toBeInTheDocument();
25
- });
26
- case 1:
27
- // Check that the content was converted to a paragraph
28
- paragraph = container.querySelector('.ProseMirror p');
29
- expect(paragraph).toBeInTheDocument();
30
-
31
- // Check that br tag is present
32
- br = container.querySelector('.ProseMirror p br');
33
- expect(br).toBeInTheDocument();
34
-
35
- // Verify the text content
36
- expect(paragraph.textContent).toBe('AB');
37
- case 2:
38
- case "end":
39
- return _context.stop();
40
- }
41
- }, _callee);
42
- })));
43
- it('converts three consecutive divs correctly', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
44
- var markup, _render2, container, paragraph, brTags;
45
- return _regenerator["default"].wrap(function (_context2) {
46
- while (1) switch (_context2.prev = _context2.next) {
47
- case 0:
48
- markup = '<div>First</div><div>Second</div><div>Third</div>';
49
- _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, {
50
- markup: markup,
51
- onChange: function onChange() {},
52
- pluginProps: {}
53
- })), container = _render2.container;
54
- _context2.next = 1;
55
- return (0, _react2.waitFor)(function () {
56
- var prosemirror = container.querySelector('.ProseMirror');
57
- expect(prosemirror).toBeInTheDocument();
58
- });
59
- case 1:
60
- paragraph = container.querySelector('.ProseMirror p');
61
- expect(paragraph).toBeInTheDocument();
62
-
63
- // Should have 2 br tags (between 3 items)
64
- brTags = container.querySelectorAll('.ProseMirror p br');
65
- expect(brTags.length).toBe(2);
66
- expect(paragraph.textContent).toBe('FirstSecondThird');
67
- case 2:
68
- case "end":
69
- return _context2.stop();
70
- }
71
- }, _callee2);
72
- })));
73
- it('does not convert single div', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() {
74
- var markup, _render3, container, div;
75
- return _regenerator["default"].wrap(function (_context3) {
76
- while (1) switch (_context3.prev = _context3.next) {
77
- case 0:
78
- markup = '<div>Single</div>';
79
- _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, {
80
- markup: markup,
81
- onChange: function onChange() {},
82
- pluginProps: {}
83
- })), container = _render3.container;
84
- _context3.next = 1;
85
- return (0, _react2.waitFor)(function () {
86
- var prosemirror = container.querySelector('.ProseMirror');
87
- expect(prosemirror).toBeInTheDocument();
88
- });
89
- case 1:
90
- // Should remain as a div
91
- div = container.querySelector('.ProseMirror div');
92
- expect(div).toBeInTheDocument();
93
- expect(div.textContent).toBe('Single');
94
- case 2:
95
- case "end":
96
- return _context3.stop();
97
- }
98
- }, _callee3);
99
- })));
100
- it('does not convert divs with attributes', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4() {
101
- var markup, _render4, container, divs;
102
- return _regenerator["default"].wrap(function (_context4) {
103
- while (1) switch (_context4.prev = _context4.next) {
104
- case 0:
105
- markup = '<div class="test">A</div><div>B</div>';
106
- _render4 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, {
107
- markup: markup,
108
- onChange: function onChange() {},
109
- pluginProps: {}
110
- })), container = _render4.container;
111
- _context4.next = 1;
112
- return (0, _react2.waitFor)(function () {
113
- var prosemirror = container.querySelector('.ProseMirror');
114
- expect(prosemirror).toBeInTheDocument();
115
- });
116
- case 1:
117
- // Should remain as divs since one has an attribute
118
- divs = container.querySelectorAll('.ProseMirror div');
119
- expect(divs.length).toBeGreaterThanOrEqual(2);
120
- case 2:
121
- case "end":
122
- return _context4.stop();
123
- }
124
- }, _callee4);
125
- })));
126
- it('handles divs with inline formatting', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5() {
127
- var markup, _render5, container, paragraph, strong, em;
128
- return _regenerator["default"].wrap(function (_context5) {
129
- while (1) switch (_context5.prev = _context5.next) {
130
- case 0:
131
- markup = '<div><strong>Bold</strong></div><div><em>Italic</em></div>';
132
- _render5 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, {
133
- markup: markup,
134
- onChange: function onChange() {},
135
- pluginProps: {}
136
- })), container = _render5.container;
137
- _context5.next = 1;
138
- return (0, _react2.waitFor)(function () {
139
- var prosemirror = container.querySelector('.ProseMirror');
140
- expect(prosemirror).toBeInTheDocument();
141
- });
142
- case 1:
143
- // Should be converted to paragraph
144
- paragraph = container.querySelector('.ProseMirror p');
145
- expect(paragraph).toBeInTheDocument();
146
-
147
- // Check that formatting is preserved
148
- strong = container.querySelector('.ProseMirror p strong');
149
- em = container.querySelector('.ProseMirror p em');
150
- expect(strong).toBeInTheDocument();
151
- expect(em).toBeInTheDocument();
152
- case 2:
153
- case "end":
154
- return _context5.stop();
155
- }
156
- }, _callee5);
157
- })));
158
- it('does not convert mixed element types', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6() {
159
- var markup, _render6, container, div, p;
160
- return _regenerator["default"].wrap(function (_context6) {
161
- while (1) switch (_context6.prev = _context6.next) {
162
- case 0:
163
- markup = '<div>A</div><p>B</p>';
164
- _render6 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, {
165
- markup: markup,
166
- onChange: function onChange() {},
167
- pluginProps: {}
168
- })), container = _render6.container;
169
- _context6.next = 1;
170
- return (0, _react2.waitFor)(function () {
171
- var prosemirror = container.querySelector('.ProseMirror');
172
- expect(prosemirror).toBeInTheDocument();
173
- });
174
- case 1:
175
- // Should have both div and paragraph
176
- div = container.querySelector('.ProseMirror div');
177
- p = container.querySelector('.ProseMirror p');
178
- expect(div).toBeInTheDocument();
179
- expect(p).toBeInTheDocument();
180
- case 2:
181
- case "end":
182
- return _context6.stop();
183
- }
184
- }, _callee6);
185
- })));
186
- it('does not convert divs with nested block elements', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee7() {
187
- var markup, _render7, container, divs;
188
- return _regenerator["default"].wrap(function (_context7) {
189
- while (1) switch (_context7.prev = _context7.next) {
190
- case 0:
191
- markup = '<div><div>Nested</div></div><div>B</div>';
192
- _render7 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_EditableHtml.EditableHtml, {
193
- markup: markup,
194
- onChange: function onChange() {},
195
- pluginProps: {}
196
- })), container = _render7.container;
197
- _context7.next = 1;
198
- return (0, _react2.waitFor)(function () {
199
- var prosemirror = container.querySelector('.ProseMirror');
200
- expect(prosemirror).toBeInTheDocument();
201
- });
202
- case 1:
203
- // Should remain as divs
204
- divs = container.querySelectorAll('.ProseMirror > div');
205
- expect(divs.length).toBeGreaterThanOrEqual(1);
206
- case 2:
207
- case "end":
208
- return _context7.stop();
209
- }
210
- }, _callee7);
211
- })));
212
- });
213
- //# sourceMappingURL=div-to-paragraph-conversion.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"div-to-paragraph-conversion.test.js","names":["_react","_interopRequireDefault","require","_react2","_EditableHtml","describe","it","_asyncToGenerator2","_regenerator","mark","_callee","markup","_render","container","paragraph","br","wrap","_context","prev","next","render","createElement","EditableHtml","onChange","pluginProps","waitFor","prosemirror","querySelector","expect","toBeInTheDocument","textContent","toBe","stop","_callee2","_render2","brTags","_context2","querySelectorAll","length","_callee3","_render3","div","_context3","_callee4","_render4","divs","_context4","toBeGreaterThanOrEqual","_callee5","_render5","strong","em","_context5","_callee6","_render6","p","_context6","_callee7","_render7","_context7"],"sources":["../../src/__tests__/div-to-paragraph-conversion.test.jsx"],"sourcesContent":["import React from 'react';\nimport { render, waitFor } from '@testing-library/react';\nimport { EditableHtml } from '../components/EditableHtml';\n\ndescribe('Div to Paragraph Conversion', () => {\n it('converts consecutive divs to paragraph with br tags', async () => {\n const markup = '<div>A</div><div>B</div>';\n const { container } = render(<EditableHtml markup={markup} onChange={() => {}} pluginProps={{}} />);\n\n // Wait for the editor to initialize\n await waitFor(() => {\n const prosemirror = container.querySelector('.ProseMirror');\n expect(prosemirror).toBeInTheDocument();\n });\n\n // Check that the content was converted to a paragraph\n const paragraph = container.querySelector('.ProseMirror p');\n expect(paragraph).toBeInTheDocument();\n\n // Check that br tag is present\n const br = container.querySelector('.ProseMirror p br');\n expect(br).toBeInTheDocument();\n\n // Verify the text content\n expect(paragraph.textContent).toBe('AB');\n });\n\n it('converts three consecutive divs correctly', async () => {\n const markup = '<div>First</div><div>Second</div><div>Third</div>';\n const { container } = render(<EditableHtml markup={markup} onChange={() => {}} pluginProps={{}} />);\n\n await waitFor(() => {\n const prosemirror = container.querySelector('.ProseMirror');\n expect(prosemirror).toBeInTheDocument();\n });\n\n const paragraph = container.querySelector('.ProseMirror p');\n expect(paragraph).toBeInTheDocument();\n\n // Should have 2 br tags (between 3 items)\n const brTags = container.querySelectorAll('.ProseMirror p br');\n expect(brTags.length).toBe(2);\n\n expect(paragraph.textContent).toBe('FirstSecondThird');\n });\n\n it('does not convert single div', async () => {\n const markup = '<div>Single</div>';\n const { container } = render(<EditableHtml markup={markup} onChange={() => {}} pluginProps={{}} />);\n\n await waitFor(() => {\n const prosemirror = container.querySelector('.ProseMirror');\n expect(prosemirror).toBeInTheDocument();\n });\n\n // Should remain as a div\n const div = container.querySelector('.ProseMirror div');\n expect(div).toBeInTheDocument();\n expect(div.textContent).toBe('Single');\n });\n\n it('does not convert divs with attributes', async () => {\n const markup = '<div class=\"test\">A</div><div>B</div>';\n const { container } = render(<EditableHtml markup={markup} onChange={() => {}} pluginProps={{}} />);\n\n await waitFor(() => {\n const prosemirror = container.querySelector('.ProseMirror');\n expect(prosemirror).toBeInTheDocument();\n });\n\n // Should remain as divs since one has an attribute\n const divs = container.querySelectorAll('.ProseMirror div');\n expect(divs.length).toBeGreaterThanOrEqual(2);\n });\n\n it('handles divs with inline formatting', async () => {\n const markup = '<div><strong>Bold</strong></div><div><em>Italic</em></div>';\n const { container } = render(<EditableHtml markup={markup} onChange={() => {}} pluginProps={{}} />);\n\n await waitFor(() => {\n const prosemirror = container.querySelector('.ProseMirror');\n expect(prosemirror).toBeInTheDocument();\n });\n\n // Should be converted to paragraph\n const paragraph = container.querySelector('.ProseMirror p');\n expect(paragraph).toBeInTheDocument();\n\n // Check that formatting is preserved\n const strong = container.querySelector('.ProseMirror p strong');\n const em = container.querySelector('.ProseMirror p em');\n expect(strong).toBeInTheDocument();\n expect(em).toBeInTheDocument();\n });\n\n it('does not convert mixed element types', async () => {\n const markup = '<div>A</div><p>B</p>';\n const { container } = render(<EditableHtml markup={markup} onChange={() => {}} pluginProps={{}} />);\n\n await waitFor(() => {\n const prosemirror = container.querySelector('.ProseMirror');\n expect(prosemirror).toBeInTheDocument();\n });\n\n // Should have both div and paragraph\n const div = container.querySelector('.ProseMirror div');\n const p = container.querySelector('.ProseMirror p');\n expect(div).toBeInTheDocument();\n expect(p).toBeInTheDocument();\n });\n\n it('does not convert divs with nested block elements', async () => {\n const markup = '<div><div>Nested</div></div><div>B</div>';\n const { container } = render(<EditableHtml markup={markup} onChange={() => {}} pluginProps={{}} />);\n\n await waitFor(() => {\n const prosemirror = container.querySelector('.ProseMirror');\n expect(prosemirror).toBeInTheDocument();\n });\n\n // Should remain as divs\n const divs = container.querySelectorAll('.ProseMirror > div');\n expect(divs.length).toBeGreaterThanOrEqual(1);\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,209 +0,0 @@
1
- "use strict";
2
-
3
- var _extensions = require("../extensions");
4
- describe('Extensions', function () {
5
- describe('ALL_PLUGINS', function () {
6
- it('contains all expected plugins', function () {
7
- expect(_extensions.ALL_PLUGINS).toContain('bold');
8
- expect(_extensions.ALL_PLUGINS).toContain('italic');
9
- expect(_extensions.ALL_PLUGINS).toContain('underline');
10
- expect(_extensions.ALL_PLUGINS).toContain('strikethrough');
11
- expect(_extensions.ALL_PLUGINS).toContain('bulleted-list');
12
- expect(_extensions.ALL_PLUGINS).toContain('numbered-list');
13
- expect(_extensions.ALL_PLUGINS).toContain('image');
14
- expect(_extensions.ALL_PLUGINS).toContain('math');
15
- expect(_extensions.ALL_PLUGINS).toContain('languageCharacters');
16
- expect(_extensions.ALL_PLUGINS).toContain('text-align');
17
- expect(_extensions.ALL_PLUGINS).toContain('table');
18
- expect(_extensions.ALL_PLUGINS).toContain('video');
19
- expect(_extensions.ALL_PLUGINS).toContain('audio');
20
- expect(_extensions.ALL_PLUGINS).toContain('responseArea');
21
- expect(_extensions.ALL_PLUGINS).toContain('superscript');
22
- expect(_extensions.ALL_PLUGINS).toContain('subscript');
23
- expect(_extensions.ALL_PLUGINS).toContain('h3');
24
- expect(_extensions.ALL_PLUGINS).toContain('blockquote');
25
- expect(_extensions.ALL_PLUGINS).toContain('undo');
26
- expect(_extensions.ALL_PLUGINS).toContain('redo');
27
- });
28
- });
29
- describe('DEFAULT_PLUGINS', function () {
30
- it('excludes responseArea, h3, and blockquote', function () {
31
- expect(_extensions.DEFAULT_PLUGINS).not.toContain('responseArea');
32
- expect(_extensions.DEFAULT_PLUGINS).not.toContain('h3');
33
- expect(_extensions.DEFAULT_PLUGINS).not.toContain('blockquote');
34
- });
35
- it('contains basic formatting plugins', function () {
36
- expect(_extensions.DEFAULT_PLUGINS).toContain('bold');
37
- expect(_extensions.DEFAULT_PLUGINS).toContain('italic');
38
- expect(_extensions.DEFAULT_PLUGINS).toContain('underline');
39
- });
40
- });
41
- describe('buildExtensions', function () {
42
- it('returns an array when called with default parameters', function () {
43
- var result = (0, _extensions.buildExtensions)(_extensions.DEFAULT_PLUGINS, [], {});
44
- expect(Array.isArray(result)).toBe(true);
45
- });
46
- it('includes only active extensions', function () {
47
- var activeExtensions = ['bold', 'italic'];
48
- var result = (0, _extensions.buildExtensions)(activeExtensions, [], {});
49
- expect(result).toEqual(['bold', 'italic']);
50
- });
51
- it('filters out undefined values', function () {
52
- var result = (0, _extensions.buildExtensions)(['bold', 'italic'], [], {});
53
- expect(result.every(function (item) {
54
- return item !== undefined;
55
- })).toBe(true);
56
- });
57
- it('excludes image plugin when opts.image.onDelete is not provided', function () {
58
- var activeExtensions = ['image'];
59
- var result = (0, _extensions.buildExtensions)(activeExtensions, [], {});
60
- expect(result).not.toContain('image');
61
- });
62
- it('includes image plugin when opts.image.delete is provided', function () {
63
- var activeExtensions = ['image'];
64
- var opts = {
65
- image: {
66
- "delete": jest.fn()
67
- }
68
- };
69
- var result = (0, _extensions.buildExtensions)(activeExtensions, [], opts);
70
- expect(result).toContain('image');
71
- });
72
- it('excludes math plugin when opts.math is not provided', function () {
73
- var activeExtensions = ['math'];
74
- var result = (0, _extensions.buildExtensions)(activeExtensions, [], {});
75
- expect(result).not.toContain('math');
76
- });
77
- it('includes math plugin when opts.math is provided', function () {
78
- var activeExtensions = ['math'];
79
- var opts = {
80
- math: {}
81
- };
82
- var result = (0, _extensions.buildExtensions)(activeExtensions, [], opts);
83
- expect(result).toContain('math');
84
- });
85
- it('excludes responseArea plugin when opts.responseArea.type is not provided', function () {
86
- var activeExtensions = ['responseArea'];
87
- var result = (0, _extensions.buildExtensions)(activeExtensions, [], {});
88
- expect(result).not.toContain('responseArea');
89
- });
90
- it('includes responseArea plugin when opts.responseArea.type is provided', function () {
91
- var activeExtensions = ['responseArea'];
92
- var opts = {
93
- responseArea: {
94
- type: 'explicit-constructed-response'
95
- }
96
- };
97
- var result = (0, _extensions.buildExtensions)(activeExtensions, [], opts);
98
- expect(result).toContain('responseArea');
99
- });
100
- it('excludes css plugin when opts.extraCSSRules is empty', function () {
101
- var activeExtensions = ['css'];
102
- var result = (0, _extensions.buildExtensions)(activeExtensions, [], {
103
- extraCSSRules: {}
104
- });
105
- expect(result).not.toContain('css');
106
- });
107
- it('includes css plugin when opts.extraCSSRules has values', function () {
108
- var activeExtensions = ['css'];
109
- var opts = {
110
- extraCSSRules: {
111
- color: 'red'
112
- }
113
- };
114
- var result = (0, _extensions.buildExtensions)(activeExtensions, [], opts);
115
- expect(result).toContain('css');
116
- });
117
- it('excludes html plugin when opts.html is not provided', function () {
118
- var activeExtensions = ['html'];
119
- var result = (0, _extensions.buildExtensions)(activeExtensions, [], {});
120
- expect(result).not.toContain('html');
121
- });
122
- it('includes html plugin when opts.html is provided', function () {
123
- var activeExtensions = ['html'];
124
- var opts = {
125
- html: true
126
- };
127
- var result = (0, _extensions.buildExtensions)(activeExtensions, [], opts);
128
- expect(result).toContain('html');
129
- });
130
- it('handles languageCharacters plugins array', function () {
131
- var activeExtensions = ['languageCharacters'];
132
- var opts = {
133
- languageCharacters: [{
134
- label: 'Greek',
135
- value: 'greek'
136
- }, {
137
- label: 'Cyrillic',
138
- value: 'cyrillic'
139
- }]
140
- };
141
- var result = (0, _extensions.buildExtensions)(activeExtensions, [], opts);
142
- // Should include languageCharacters for each item in the array
143
- var languageCharsCount = result.filter(function (item) {
144
- return item === 'languageCharacters';
145
- }).length;
146
- expect(languageCharsCount).toBe(2);
147
- });
148
- it('uses DEFAULT_PLUGINS when activeExtensions is not provided', function () {
149
- var result = (0, _extensions.buildExtensions)(null, [], {});
150
- expect(Array.isArray(result)).toBe(true);
151
- expect(result.length).toBeGreaterThan(0);
152
- });
153
- it('includes list plugins', function () {
154
- var activeExtensions = ['bulleted-list', 'numbered-list'];
155
- var result = (0, _extensions.buildExtensions)(activeExtensions, [], {});
156
- expect(result).toContain('bulleted-list');
157
- expect(result).toContain('numbered-list');
158
- });
159
- it('includes undo and redo plugins', function () {
160
- var activeExtensions = ['undo', 'redo'];
161
- var result = (0, _extensions.buildExtensions)(activeExtensions, [], {});
162
- expect(result).toContain('undo');
163
- expect(result).toContain('redo');
164
- });
165
- it('includes text formatting plugins', function () {
166
- var activeExtensions = ['superscript', 'subscript', 'strikethrough', 'underline'];
167
- var result = (0, _extensions.buildExtensions)(activeExtensions, [], {});
168
- expect(result).toContain('superscript');
169
- expect(result).toContain('subscript');
170
- expect(result).toContain('strikethrough');
171
- expect(result).toContain('underline');
172
- });
173
- it('includes media plugins', function () {
174
- var activeExtensions = ['video', 'audio'];
175
- var result = (0, _extensions.buildExtensions)(activeExtensions, [], {});
176
- expect(result).toContain('video');
177
- expect(result).toContain('audio');
178
- });
179
- it('includes table plugin', function () {
180
- var activeExtensions = ['table'];
181
- var result = (0, _extensions.buildExtensions)(activeExtensions, [], {});
182
- expect(result).toContain('table');
183
- });
184
- it('includes text-align plugin', function () {
185
- var activeExtensions = ['text-align'];
186
- var result = (0, _extensions.buildExtensions)(activeExtensions, [], {});
187
- expect(result).toContain('text-align');
188
- });
189
- it('includes blockquote and h3 plugins when in active list', function () {
190
- var activeExtensions = ['blockquote', 'h3'];
191
- var result = (0, _extensions.buildExtensions)(activeExtensions, [], {});
192
- expect(result).toContain('blockquote');
193
- expect(result).toContain('h3');
194
- });
195
- it('filters out inactive extensions', function () {
196
- var activeExtensions = ['bold'];
197
- var result = (0, _extensions.buildExtensions)(activeExtensions, [], {});
198
- expect(result).not.toContain('italic');
199
- expect(result).not.toContain('underline');
200
- });
201
- it('maintains order of extensions', function () {
202
- var activeExtensions = ['table', 'bold', 'italic'];
203
- var result = (0, _extensions.buildExtensions)(activeExtensions, [], {});
204
- expect(result.indexOf('table')).toBeLessThan(result.indexOf('bold'));
205
- expect(result.indexOf('bold')).toBeLessThan(result.indexOf('italic'));
206
- });
207
- });
208
- });
209
- //# sourceMappingURL=extensions.test.js.map