@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,839 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
6
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
7
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
8
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
- var _react = _interopRequireDefault(require("react"));
11
- var _react2 = require("@testing-library/react");
12
- var _mathRendering = require("@pie-lib/math-rendering");
13
- var _InlineDropdown = _interopRequireDefault(require("../respArea/InlineDropdown"));
14
- var _excluded = ["children"];
15
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
16
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17
- jest.mock('@pie-lib/math-rendering', function () {
18
- return {
19
- renderMath: jest.fn()
20
- };
21
- });
22
- jest.mock('@tiptap/react', function () {
23
- return {
24
- NodeViewWrapper: function NodeViewWrapper(_ref) {
25
- var children = _ref.children,
26
- props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
27
- return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
28
- "data-testid": "node-view-wrapper"
29
- }, props), children);
30
- }
31
- };
32
- });
33
- var mockCreatePortal = jest.fn(function (node) {
34
- return node;
35
- });
36
- jest.mock('react-dom', function () {
37
- return _objectSpread(_objectSpread({}, jest.requireActual('react-dom')), {}, {
38
- createPortal: function createPortal() {
39
- return mockCreatePortal.apply(void 0, arguments);
40
- }
41
- });
42
- });
43
- describe('InlineDropdown', function () {
44
- var buildMockEditor = function buildMockEditor() {
45
- var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
46
- var mockNodeAt = jest.fn(function (pos) {
47
- return pos === 5 ? {
48
- nodeSize: 1
49
- } : null;
50
- });
51
- var mockDoc = {
52
- descendants: jest.fn(),
53
- nodeAt: mockNodeAt
54
- };
55
- var mockTr = {
56
- "delete": jest.fn(),
57
- doc: {
58
- nodeAt: mockNodeAt
59
- },
60
- setSelection: jest.fn(),
61
- setMeta: jest.fn(function setMeta() {
62
- return mockTr;
63
- })
64
- };
65
- return _objectSpread({
66
- state: {
67
- selection: {
68
- from: 0,
69
- to: 1
70
- },
71
- tr: mockTr,
72
- doc: mockDoc
73
- },
74
- view: {
75
- coordsAtPos: jest.fn(function () {
76
- return {
77
- top: 100,
78
- left: 50
79
- };
80
- }),
81
- dispatch: jest.fn()
82
- },
83
- commands: {
84
- focus: jest.fn()
85
- },
86
- _tiptapContainerEl: document.createElement('div'),
87
- _toolbarOpened: false
88
- }, overrides);
89
- };
90
- var mockEditor;
91
- var mockNode = {
92
- attrs: {
93
- index: '0',
94
- value: 'Selected Option',
95
- error: false
96
- },
97
- nodeSize: 1
98
- };
99
- var mockOptions = {
100
- respAreaToolbar: jest.fn(function () {
101
- return function () {
102
- return /*#__PURE__*/_react["default"].createElement("div", {
103
- "data-testid": "inline-dropdown-toolbar"
104
- }, "Toolbar");
105
- };
106
- })
107
- };
108
- var defaultProps = {
109
- editor: mockEditor,
110
- node: mockNode,
111
- getPos: function getPos() {
112
- return 5;
113
- },
114
- options: mockOptions,
115
- selected: false
116
- };
117
- beforeEach(function () {
118
- jest.clearAllMocks();
119
- mockCreatePortal.mockClear();
120
- mockEditor = buildMockEditor();
121
- defaultProps.editor = mockEditor;
122
- Object.defineProperty(document.body, 'getBoundingClientRect', {
123
- value: jest.fn(function () {
124
- return {
125
- top: 0,
126
- left: 0
127
- };
128
- }),
129
- configurable: true
130
- });
131
- });
132
- it('renders without crashing', function () {
133
- var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
134
- container = _render.container;
135
- expect(container).toBeInTheDocument();
136
- });
137
- it('renders NodeViewWrapper', function () {
138
- var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
139
- getByTestId = _render2.getByTestId;
140
- expect(getByTestId('node-view-wrapper')).toBeInTheDocument();
141
- });
142
- it('displays selected value', function () {
143
- var _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
144
- container = _render3.container;
145
- var valueDiv = container.querySelector('div[style*="border"]');
146
- expect(valueDiv).toBeInTheDocument();
147
- });
148
- it('renders math inside the value control on mount', function () {
149
- var _render4 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
150
- container = _render4.container;
151
- var valueDiv = container.querySelector('div[style*="border"]');
152
- expect(_mathRendering.renderMath).toHaveBeenCalledWith(valueDiv);
153
- });
154
- it('re-renders math when the value changes', function () {
155
- var updatedNode = _objectSpread(_objectSpread({}, mockNode), {}, {
156
- attrs: _objectSpread(_objectSpread({}, mockNode.attrs), {}, {
157
- value: '<span>Updated math</span>'
158
- })
159
- });
160
- var _render5 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
161
- container = _render5.container,
162
- rerender = _render5.rerender;
163
- _mathRendering.renderMath.mockClear();
164
- rerender(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
165
- node: updatedNode
166
- })));
167
- var valueDiv = container.querySelector('div[style*="border"]');
168
- expect(_mathRendering.renderMath).toHaveBeenCalledWith(valueDiv);
169
- });
170
- it('uses 2px horizontal margin on the value control and no horizontal margin on the wrapper', function () {
171
- var _render6 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
172
- container = _render6.container,
173
- getByTestId = _render6.getByTestId;
174
- var valueDiv = container.querySelector('div[style*="border"]');
175
- expect(valueDiv).toHaveStyle({
176
- margin: '0 2px'
177
- });
178
- var wrapper = getByTestId('node-view-wrapper');
179
- expect(wrapper.getAttribute('style') || '').not.toMatch(/margin/);
180
- });
181
- it('renders chevron icon', function () {
182
- var _render7 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
183
- container = _render7.container;
184
- var chevron = container.querySelector('svg');
185
- expect(chevron).toBeInTheDocument();
186
- });
187
- it('shows toolbar when selected and only this node is selected', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
188
- var _render8, queryByTestId;
189
- return _regenerator["default"].wrap(function (_context) {
190
- while (1) switch (_context.prev = _context.next) {
191
- case 0:
192
- _render8 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
193
- selected: true
194
- }))), queryByTestId = _render8.queryByTestId;
195
- _context.next = 1;
196
- return (0, _react2.waitFor)(function () {
197
- // Toolbar is shown via portal
198
- expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
199
- });
200
- case 1:
201
- case "end":
202
- return _context.stop();
203
- }
204
- }, _callee);
205
- })));
206
- it('does not show toolbar when not selected', function () {
207
- var _render9 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
208
- selected: false
209
- }))),
210
- queryByTestId = _render9.queryByTestId;
211
- expect(queryByTestId('inline-dropdown-toolbar')).not.toBeInTheDocument();
212
- });
213
- it('shows toolbar on click', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2() {
214
- var _render0, container, queryByTestId, dropdown;
215
- return _regenerator["default"].wrap(function (_context2) {
216
- while (1) switch (_context2.prev = _context2.next) {
217
- case 0:
218
- _render0 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)), container = _render0.container, queryByTestId = _render0.queryByTestId;
219
- dropdown = container.querySelector('div[style*="border"]');
220
- if (!dropdown) {
221
- _context2.next = 2;
222
- break;
223
- }
224
- _react2.fireEvent.click(dropdown);
225
- _context2.next = 1;
226
- return (0, _react2.waitFor)(function () {
227
- expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
228
- });
229
- case 1:
230
- _context2.next = 3;
231
- break;
232
- case 2:
233
- // If dropdown is not found, just verify the component rendered
234
- expect(container).toBeInTheDocument();
235
- case 3:
236
- case "end":
237
- return _context2.stop();
238
- }
239
- }, _callee2);
240
- })));
241
- it('has correct minimum dimensions', function () {
242
- var _render1 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
243
- container = _render1.container;
244
- var wrapper = container.querySelector('[data-testid="node-view-wrapper"]');
245
- expect(wrapper).toHaveStyle({
246
- height: '50px'
247
- });
248
- });
249
- it('has inline-flex display', function () {
250
- var _render10 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
251
- container = _render10.container;
252
- var wrapper = container.querySelector('[data-testid="node-view-wrapper"]');
253
- expect(wrapper).toHaveStyle({
254
- display: 'inline-flex'
255
- });
256
- });
257
- it('has cursor pointer style', function () {
258
- var _render11 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
259
- container = _render11.container;
260
- var wrapper = container.querySelector('[data-testid="node-view-wrapper"]');
261
- expect(wrapper).toHaveStyle({
262
- cursor: 'pointer'
263
- });
264
- });
265
- it('renders with empty value as nbsp', function () {
266
- var emptyNode = _objectSpread(_objectSpread({}, mockNode), {}, {
267
- attrs: _objectSpread(_objectSpread({}, mockNode.attrs), {}, {
268
- value: ''
269
- })
270
- });
271
- var _render12 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
272
- node: emptyNode
273
- }))),
274
- container = _render12.container;
275
- expect(container).toBeInTheDocument();
276
- });
277
- it('calls respAreaToolbar with correct params', function () {
278
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps));
279
- expect(mockOptions.respAreaToolbar).toHaveBeenCalledWith([mockNode, 5], mockEditor, expect.any(Function));
280
- });
281
- it('closes toolbar on outside click', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3() {
282
- var _render13, container, queryByTestId;
283
- return _regenerator["default"].wrap(function (_context3) {
284
- while (1) switch (_context3.prev = _context3.next) {
285
- case 0:
286
- _render13 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
287
- selected: true
288
- }))), container = _render13.container, queryByTestId = _render13.queryByTestId;
289
- _context3.next = 1;
290
- return (0, _react2.waitFor)(function () {
291
- _react2.fireEvent.mouseDown(document.body);
292
- });
293
- case 1:
294
- _context3.next = 2;
295
- return (0, _react2.waitFor)(function () {
296
- expect(queryByTestId('inline-dropdown-toolbar')).not.toBeInTheDocument();
297
- });
298
- case 2:
299
- case "end":
300
- return _context3.stop();
301
- }
302
- }, _callee3);
303
- })));
304
- it('calls close callback when toolbar closes on outside click', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4() {
305
- var onInlineDropdownToolbarClose, options, _render14, queryByTestId;
306
- return _regenerator["default"].wrap(function (_context4) {
307
- while (1) switch (_context4.prev = _context4.next) {
308
- case 0:
309
- onInlineDropdownToolbarClose = jest.fn();
310
- options = _objectSpread(_objectSpread({}, mockOptions), {}, {
311
- onInlineDropdownToolbarClose: onInlineDropdownToolbarClose
312
- });
313
- _render14 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
314
- options: options,
315
- selected: true
316
- }))), queryByTestId = _render14.queryByTestId;
317
- _context4.next = 1;
318
- return (0, _react2.waitFor)(function () {
319
- expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
320
- });
321
- case 1:
322
- _react2.fireEvent.mouseDown(document.body);
323
- _context4.next = 2;
324
- return (0, _react2.waitFor)(function () {
325
- expect(queryByTestId('inline-dropdown-toolbar')).not.toBeInTheDocument();
326
- });
327
- case 2:
328
- expect(onInlineDropdownToolbarClose).toHaveBeenCalledWith(mockEditor);
329
- case 3:
330
- case "end":
331
- return _context4.stop();
332
- }
333
- }, _callee4);
334
- })));
335
- it('uses the current node when closing on outside click after the node prop changes', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5() {
336
- var onToolbarCloseRequest, options, updatedNode, _render15, queryByTestId, rerender;
337
- return _regenerator["default"].wrap(function (_context5) {
338
- while (1) switch (_context5.prev = _context5.next) {
339
- case 0:
340
- onToolbarCloseRequest = jest.fn(function (_tuple, _editor, onConfirm) {
341
- return onConfirm();
342
- });
343
- options = _objectSpread(_objectSpread({}, mockOptions), {}, {
344
- onToolbarCloseRequest: onToolbarCloseRequest
345
- });
346
- updatedNode = {
347
- attrs: {
348
- index: '1',
349
- value: 'Updated Option',
350
- error: false
351
- },
352
- nodeSize: 1
353
- };
354
- _render15 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
355
- options: options,
356
- selected: true
357
- }))), queryByTestId = _render15.queryByTestId, rerender = _render15.rerender;
358
- _context5.next = 1;
359
- return (0, _react2.waitFor)(function () {
360
- expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
361
- });
362
- case 1:
363
- rerender(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
364
- options: options,
365
- node: updatedNode,
366
- selected: true
367
- })));
368
- _react2.fireEvent.mouseDown(document.body);
369
- _context5.next = 2;
370
- return (0, _react2.waitFor)(function () {
371
- expect(onToolbarCloseRequest).toHaveBeenCalledWith([updatedNode, 5], expect.anything(), expect.any(Function), expect.any(Function));
372
- });
373
- case 2:
374
- case "end":
375
- return _context5.stop();
376
- }
377
- }, _callee5);
378
- })));
379
- it('respects hold state for the current node after the node prop changes', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6() {
380
- var updatedNode, _render16, queryByTestId, rerender;
381
- return _regenerator["default"].wrap(function (_context6) {
382
- while (1) switch (_context6.prev = _context6.next) {
383
- case 0:
384
- updatedNode = {
385
- attrs: {
386
- index: '1',
387
- value: 'Updated Option',
388
- error: false
389
- },
390
- nodeSize: 1
391
- };
392
- mockEditor._holdInlineDropdownToolbarIndex = '1';
393
- _render16 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
394
- selected: true
395
- }))), queryByTestId = _render16.queryByTestId, rerender = _render16.rerender;
396
- _context6.next = 1;
397
- return (0, _react2.waitFor)(function () {
398
- expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
399
- });
400
- case 1:
401
- rerender(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
402
- node: updatedNode,
403
- selected: true
404
- })));
405
- _react2.fireEvent.mouseDown(document.body);
406
- _context6.next = 2;
407
- return (0, _react2.waitFor)(function () {
408
- expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
409
- });
410
- case 2:
411
- case "end":
412
- return _context6.stop();
413
- }
414
- }, _callee6);
415
- })));
416
- it('rebinds the outside-click listener when the node prop changes while the toolbar is open', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee7() {
417
- var addSpy, removeSpy, updatedNode, _render17, rerender, removeCallsBeforeRerender;
418
- return _regenerator["default"].wrap(function (_context7) {
419
- while (1) switch (_context7.prev = _context7.next) {
420
- case 0:
421
- addSpy = jest.spyOn(document, 'addEventListener');
422
- removeSpy = jest.spyOn(document, 'removeEventListener');
423
- updatedNode = _objectSpread(_objectSpread({}, mockNode), {}, {
424
- attrs: _objectSpread(_objectSpread({}, mockNode.attrs), {}, {
425
- value: 'Updated Option'
426
- })
427
- });
428
- _render17 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
429
- selected: true
430
- }))), rerender = _render17.rerender;
431
- _context7.next = 1;
432
- return (0, _react2.waitFor)(function () {
433
- expect(addSpy).toHaveBeenCalledWith('mousedown', expect.any(Function));
434
- });
435
- case 1:
436
- removeCallsBeforeRerender = removeSpy.mock.calls.filter(function (_ref9) {
437
- var _ref0 = (0, _slicedToArray2["default"])(_ref9, 1),
438
- type = _ref0[0];
439
- return type === 'mousedown';
440
- }).length;
441
- rerender(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
442
- node: updatedNode,
443
- selected: true
444
- })));
445
- _context7.next = 2;
446
- return (0, _react2.waitFor)(function () {
447
- var removeCallsAfterRerender = removeSpy.mock.calls.filter(function (_ref1) {
448
- var _ref10 = (0, _slicedToArray2["default"])(_ref1, 1),
449
- type = _ref10[0];
450
- return type === 'mousedown';
451
- }).length;
452
- expect(removeCallsAfterRerender).toBeGreaterThan(removeCallsBeforeRerender);
453
- expect(addSpy).toHaveBeenCalledWith('mousedown', expect.any(Function));
454
- });
455
- case 2:
456
- addSpy.mockRestore();
457
- removeSpy.mockRestore();
458
- case 3:
459
- case "end":
460
- return _context7.stop();
461
- }
462
- }, _callee7);
463
- })));
464
- it('has correct border styling', function () {
465
- var _render18 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
466
- container = _render18.container;
467
- var dropdownDiv = container.querySelector('div[style*="border"]');
468
- expect(dropdownDiv).toHaveStyle({
469
- border: '1px solid #C0C3CF'
470
- });
471
- });
472
- it('has correct min width', function () {
473
- var _render19 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
474
- container = _render19.container;
475
- var dropdownDiv = container.querySelector('div[style*="border"]');
476
- expect(dropdownDiv).toHaveStyle({
477
- minWidth: '178px'
478
- });
479
- });
480
- it('positions chevron correctly', function () {
481
- var _render20 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
482
- container = _render20.container;
483
- var chevron = container.querySelector('svg');
484
- // Chevron styling is applied inline, just verify it rendered
485
- if (chevron) {
486
- expect(chevron).toBeInTheDocument();
487
- } else {
488
- expect(container).toBeInTheDocument();
489
- }
490
- });
491
- it('has ellipsis for overflow text', function () {
492
- var _render21 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], defaultProps)),
493
- container = _render21.container;
494
- var textContainer = container.querySelector('div[style*="overflow"]');
495
- expect(textContainer).toHaveStyle({
496
- textOverflow: 'ellipsis',
497
- whiteSpace: 'nowrap'
498
- });
499
- });
500
- it('portals toolbar into editor container when _tiptapContainerEl is set', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee8() {
501
- var containerEl, editor;
502
- return _regenerator["default"].wrap(function (_context8) {
503
- while (1) switch (_context8.prev = _context8.next) {
504
- case 0:
505
- containerEl = document.createElement('div');
506
- editor = buildMockEditor({
507
- _tiptapContainerEl: containerEl
508
- });
509
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
510
- editor: editor,
511
- selected: true
512
- })));
513
- _context8.next = 1;
514
- return (0, _react2.waitFor)(function () {
515
- expect(mockCreatePortal).toHaveBeenCalled();
516
- });
517
- case 1:
518
- expect(mockCreatePortal.mock.calls[0][1]).toBe(containerEl);
519
- case 2:
520
- case "end":
521
- return _context8.stop();
522
- }
523
- }, _callee8);
524
- })));
525
- it('portals toolbar into document.body when _tiptapContainerEl is missing', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee9() {
526
- var editor;
527
- return _regenerator["default"].wrap(function (_context9) {
528
- while (1) switch (_context9.prev = _context9.next) {
529
- case 0:
530
- editor = buildMockEditor({
531
- _tiptapContainerEl: undefined
532
- });
533
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
534
- editor: editor,
535
- selected: true
536
- })));
537
- _context9.next = 1;
538
- return (0, _react2.waitFor)(function () {
539
- expect(mockCreatePortal).toHaveBeenCalled();
540
- });
541
- case 1:
542
- expect(mockCreatePortal.mock.calls[0][1]).toBe(document.body);
543
- case 2:
544
- case "end":
545
- return _context9.stop();
546
- }
547
- }, _callee9);
548
- })));
549
- it('passes editorCallback to InlineDropdownToolbar', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee0() {
550
- var mockToolbarComponent, mockOptionsWithCallback, _render22, queryByTestId;
551
- return _regenerator["default"].wrap(function (_context0) {
552
- while (1) switch (_context0.prev = _context0.next) {
553
- case 0:
554
- mockToolbarComponent = jest.fn(function (_ref14) {
555
- var editorCallback = _ref14.editorCallback;
556
- editorCallback === null || editorCallback === void 0 || editorCallback({
557
- instanceId: 'test-instance'
558
- });
559
- return /*#__PURE__*/_react["default"].createElement("div", {
560
- "data-testid": "inline-dropdown-toolbar"
561
- }, "Toolbar");
562
- });
563
- mockOptionsWithCallback = {
564
- respAreaToolbar: jest.fn(function () {
565
- return mockToolbarComponent;
566
- })
567
- };
568
- _render22 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
569
- options: mockOptionsWithCallback,
570
- selected: true
571
- }))), queryByTestId = _render22.queryByTestId;
572
- _context0.next = 1;
573
- return (0, _react2.waitFor)(function () {
574
- expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
575
- });
576
- case 1:
577
- case "end":
578
- return _context0.stop();
579
- }
580
- }, _callee0);
581
- })));
582
- it('stores toolbar editor instance in ref when editorCallback is called', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee1() {
583
- var capturedCallback, mockToolbarComponent, mockOptionsWithCallback, _render23, queryByTestId;
584
- return _regenerator["default"].wrap(function (_context1) {
585
- while (1) switch (_context1.prev = _context1.next) {
586
- case 0:
587
- mockToolbarComponent = function mockToolbarComponent(_ref16) {
588
- var editorCallback = _ref16.editorCallback;
589
- capturedCallback = editorCallback;
590
- return /*#__PURE__*/_react["default"].createElement("div", {
591
- "data-testid": "inline-dropdown-toolbar"
592
- }, "Toolbar");
593
- };
594
- mockOptionsWithCallback = {
595
- respAreaToolbar: jest.fn(function () {
596
- return mockToolbarComponent;
597
- })
598
- };
599
- _render23 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
600
- options: mockOptionsWithCallback,
601
- selected: true
602
- }))), queryByTestId = _render23.queryByTestId;
603
- _context1.next = 1;
604
- return (0, _react2.waitFor)(function () {
605
- expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
606
- });
607
- case 1:
608
- // Verify callback exists
609
- expect(capturedCallback).toBeDefined();
610
- case 2:
611
- case "end":
612
- return _context1.stop();
613
- }
614
- }, _callee1);
615
- })));
616
- it('handles click outside logic with data-toolbar-for attribute', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee10() {
617
- var editorWithInstanceId, capturedCallback, mockToolbarComponent, mockOptionsWithCallback, _render24, container, queryByTestId, otherToolbar;
618
- return _regenerator["default"].wrap(function (_context10) {
619
- while (1) switch (_context10.prev = _context10.next) {
620
- case 0:
621
- editorWithInstanceId = _objectSpread(_objectSpread({}, mockEditor), {}, {
622
- instanceId: 'editor-123',
623
- _toolbarOpened: false
624
- }); // Mock the toolbar callback to set the toolbar editor instance
625
- mockToolbarComponent = function mockToolbarComponent(_ref18) {
626
- var editorCallback = _ref18.editorCallback;
627
- _react["default"].useEffect(function () {
628
- capturedCallback = editorCallback;
629
- if (editorCallback) {
630
- editorCallback({
631
- instanceId: 'editor-123'
632
- });
633
- }
634
- }, [editorCallback]);
635
- return /*#__PURE__*/_react["default"].createElement("div", {
636
- "data-testid": "inline-dropdown-toolbar"
637
- }, "Toolbar");
638
- };
639
- mockOptionsWithCallback = {
640
- respAreaToolbar: jest.fn(function () {
641
- return mockToolbarComponent;
642
- })
643
- };
644
- _render24 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
645
- editor: editorWithInstanceId,
646
- options: mockOptionsWithCallback,
647
- selected: true
648
- }))), container = _render24.container, queryByTestId = _render24.queryByTestId;
649
- _context10.next = 1;
650
- return (0, _react2.waitFor)(function () {
651
- expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
652
- });
653
- case 1:
654
- // Create an element with data-toolbar-for attribute
655
- otherToolbar = document.createElement('div');
656
- otherToolbar.setAttribute('data-toolbar-for', 'editor-456');
657
- document.body.appendChild(otherToolbar);
658
- _context10.next = 2;
659
- return (0, _react2.waitFor)(function () {
660
- _react2.fireEvent.mouseDown(otherToolbar);
661
- });
662
- case 2:
663
- // Cleanup
664
- document.body.removeChild(otherToolbar);
665
- expect(container).toBeInTheDocument();
666
- case 3:
667
- case "end":
668
- return _context10.stop();
669
- }
670
- }, _callee10);
671
- })));
672
- it('does not close when clicking inside same editor toolbar', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee11() {
673
- var editorWithInstanceId, toolbarEditorInstance, mockToolbarComponent, mockOptionsWithCallback;
674
- return _regenerator["default"].wrap(function (_context11) {
675
- while (1) switch (_context11.prev = _context11.next) {
676
- case 0:
677
- editorWithInstanceId = _objectSpread(_objectSpread({}, mockEditor), {}, {
678
- instanceId: 'editor-123',
679
- _toolbarOpened: false
680
- });
681
- mockToolbarComponent = function mockToolbarComponent(_ref20) {
682
- var editorCallback = _ref20.editorCallback;
683
- _react["default"].useEffect(function () {
684
- if (editorCallback) {
685
- editorCallback({
686
- instanceId: 'editor-123'
687
- });
688
- toolbarEditorInstance = {
689
- instanceId: 'editor-123'
690
- };
691
- }
692
- }, [editorCallback]);
693
- return /*#__PURE__*/_react["default"].createElement("div", {
694
- "data-testid": "inline-dropdown-toolbar"
695
- }, "Toolbar");
696
- };
697
- mockOptionsWithCallback = {
698
- respAreaToolbar: jest.fn(function () {
699
- return mockToolbarComponent;
700
- })
701
- };
702
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
703
- editor: editorWithInstanceId,
704
- options: mockOptionsWithCallback,
705
- selected: true
706
- })));
707
- _context11.next = 1;
708
- return (0, _react2.waitFor)(function () {
709
- expect(mockOptionsWithCallback.respAreaToolbar).toHaveBeenCalled();
710
- });
711
- case 1:
712
- case "end":
713
- return _context11.stop();
714
- }
715
- }, _callee11);
716
- })));
717
- it('checks editor._toolbarOpened in click outside handler', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee12() {
718
- var editorWithToolbarOpened, _render25, queryByTestId;
719
- return _regenerator["default"].wrap(function (_context12) {
720
- while (1) switch (_context12.prev = _context12.next) {
721
- case 0:
722
- editorWithToolbarOpened = buildMockEditor({
723
- _toolbarOpened: true
724
- });
725
- _render25 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
726
- editor: editorWithToolbarOpened,
727
- selected: true
728
- }))), queryByTestId = _render25.queryByTestId;
729
- _context12.next = 1;
730
- return (0, _react2.waitFor)(function () {
731
- expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
732
- });
733
- case 1:
734
- // When _toolbarOpened is true, clicking outside should not close
735
- _react2.fireEvent.mouseDown(document.body);
736
-
737
- // Toolbar should still be visible
738
- expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
739
- case 2:
740
- case "end":
741
- return _context12.stop();
742
- }
743
- }, _callee12);
744
- })));
745
- it('does not close toolbar when clicking the page scrollbar (documentElement)', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee13() {
746
- var _render26, queryByTestId;
747
- return _regenerator["default"].wrap(function (_context13) {
748
- while (1) switch (_context13.prev = _context13.next) {
749
- case 0:
750
- _render26 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
751
- selected: true
752
- }))), queryByTestId = _render26.queryByTestId;
753
- _context13.next = 1;
754
- return (0, _react2.waitFor)(function () {
755
- expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
756
- });
757
- case 1:
758
- _react2.fireEvent.mouseDown(document.documentElement);
759
- _context13.next = 2;
760
- return (0, _react2.waitFor)(function () {
761
- expect(queryByTestId('inline-dropdown-toolbar')).toBeInTheDocument();
762
- });
763
- case 2:
764
- case "end":
765
- return _context13.stop();
766
- }
767
- }, _callee13);
768
- })));
769
- it('renders delete control on portaled custom toolbar when container el is set', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee14() {
770
- var _render27, findByLabelText, _t;
771
- return _regenerator["default"].wrap(function (_context14) {
772
- while (1) switch (_context14.prev = _context14.next) {
773
- case 0:
774
- _render27 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
775
- selected: true
776
- }))), findByLabelText = _render27.findByLabelText;
777
- _t = expect;
778
- _context14.next = 1;
779
- return findByLabelText('Delete');
780
- case 1:
781
- _t(_context14.sent).toBeInTheDocument();
782
- case 2:
783
- case "end":
784
- return _context14.stop();
785
- }
786
- }, _callee14);
787
- })));
788
- it('does not render portaled delete control when _tiptapContainerEl is missing', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee15() {
789
- var editor, _render28, queryByLabelText, findByTestId, _t2;
790
- return _regenerator["default"].wrap(function (_context15) {
791
- while (1) switch (_context15.prev = _context15.next) {
792
- case 0:
793
- editor = buildMockEditor({
794
- _tiptapContainerEl: undefined
795
- });
796
- _render28 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
797
- editor: editor,
798
- selected: true
799
- }))), queryByLabelText = _render28.queryByLabelText, findByTestId = _render28.findByTestId;
800
- _t2 = expect;
801
- _context15.next = 1;
802
- return findByTestId('inline-dropdown-toolbar');
803
- case 1:
804
- _t2(_context15.sent).toBeInTheDocument();
805
- expect(queryByLabelText('Delete')).not.toBeInTheDocument();
806
- case 2:
807
- case "end":
808
- return _context15.stop();
809
- }
810
- }, _callee15);
811
- })));
812
- it('delete clears toolbar flag, removes node range, dispatches, and focuses', /*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee16() {
813
- var _render29, findByLabelText, _t3;
814
- return _regenerator["default"].wrap(function (_context16) {
815
- while (1) switch (_context16.prev = _context16.next) {
816
- case 0:
817
- mockEditor._toolbarOpened = true;
818
- _render29 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_InlineDropdown["default"], (0, _extends2["default"])({}, defaultProps, {
819
- selected: true
820
- }))), findByLabelText = _render29.findByLabelText;
821
- _t3 = _react2.fireEvent;
822
- _context16.next = 1;
823
- return findByLabelText('Delete');
824
- case 1:
825
- _t3.mouseDown.call(_t3, _context16.sent);
826
- expect(mockEditor.state.tr["delete"]).toHaveBeenCalledWith(5, 6);
827
- expect(mockEditor.view.dispatch).toHaveBeenCalledTimes(2);
828
- expect(mockEditor.view.dispatch).toHaveBeenNthCalledWith(1, mockEditor.state.tr);
829
- expect(mockEditor.view.dispatch).toHaveBeenNthCalledWith(2, mockEditor.state.tr);
830
- expect(mockEditor._toolbarOpened).toBe(false);
831
- expect(mockEditor.commands.focus).toHaveBeenCalled();
832
- case 2:
833
- case "end":
834
- return _context16.stop();
835
- }
836
- }, _callee16);
837
- })));
838
- });
839
- //# sourceMappingURL=InlineDropdown.test.js.map