@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
@@ -0,0 +1,225 @@
1
+ import e from "./custom-toolbar-wrapper.js";
2
+ import t from "../components/image/InsertImageHandler.js";
3
+ import { ImageToolbar as n } from "../components/image/ImageToolbar.js";
4
+ import { useCallback as r, useEffect as i, useMemo as a, useRef as o, useState as s } from "react";
5
+ import { isEqual as c } from "@pie-element/shared-lodash";
6
+ import { NodeViewWrapper as l } from "@tiptap/react";
7
+ import { styled as u } from "@mui/material/styles";
8
+ import d from "react-dom";
9
+ import f from "prop-types";
10
+ import { jsx as p, jsxs as m } from "react/jsx-runtime";
11
+ import h from "debug";
12
+ import g from "@mui/material/LinearProgress";
13
+ //#region src/extensions/image-component.tsx
14
+ h("@pie-lib:editable-html:plugins:image:component");
15
+ var _ = u(g, { shouldForwardProp: (e) => e !== "hideProgress" })(({ hideProgress: e }) => ({
16
+ position: "absolute",
17
+ left: "0",
18
+ width: "fit-content",
19
+ top: "0%",
20
+ transition: "opacity 200ms linear",
21
+ ...e && { opacity: 0 }
22
+ })), v = u("div", { shouldForwardProp: (e) => ![
23
+ "active",
24
+ "loading",
25
+ "pendingDelete"
26
+ ].includes(e) })(({ loading: e, pendingDelete: t }) => ({
27
+ position: "relative",
28
+ display: "flex",
29
+ transition: "opacity 200ms linear",
30
+ ...e && { opacity: .3 },
31
+ ...t && { opacity: .3 }
32
+ })), y = u("div")(({ theme: e }) => ({
33
+ position: "relative",
34
+ width: "fit-content",
35
+ display: "flex",
36
+ alignItems: "center",
37
+ "&&:hover > .resize": { display: "block" }
38
+ })), b = u("img", { shouldForwardProp: (e) => e !== "active" })(({ theme: e, active: t }) => ({ border: t ? `solid 1px ${e.palette.primary.main}` : "solid 1px transparent" })), x = u("div")(({ theme: e }) => ({
39
+ backgroundColor: e.palette.primary.main,
40
+ cursor: "col-resize",
41
+ height: "35px",
42
+ width: "5px",
43
+ borderRadius: 8,
44
+ marginLeft: "5px",
45
+ marginRight: "10px",
46
+ display: "none"
47
+ })), S = (e) => e ? `${e}px` : "calc(20px)";
48
+ function C(u) {
49
+ let { node: f, editor: h, attributes: g, onFocus: C, getPos: w, selected: T, options: E, maxImageWidth: D = 700, maxImageHeight: O = 900 } = u, { alt: k } = f.attrs, A = w(), j = h.state.selection.from, M = h.state.selection.to, N = a(() => j + f.nodeSize === M, [
50
+ j,
51
+ M,
52
+ f.nodeSize
53
+ ]), [P, F] = s(!1), I = o(f), L = o(null), R = o(null), z = o(null), B = r((e) => {
54
+ let t = e / L.current.naturalWidth * 4;
55
+ return parseInt(t.toFixed(0) * 25, 10);
56
+ }, []), V = r(() => {
57
+ let e = I.current.attrs.nodeKey, t = null;
58
+ return h.state.doc.descendants((n, r) => {
59
+ if (t !== null) return !1;
60
+ if (n.type.name === "imageUploadNode" && n.attrs.nodeKey === e) return t = r, !1;
61
+ }), t;
62
+ }, [h]), H = r((e) => {
63
+ let t = V();
64
+ if (t === null) return;
65
+ let n = h.state.doc.nodeAt(t);
66
+ n && h.view.dispatch(h.state.tr.setNodeMarkup(t, void 0, {
67
+ ...n.attrs,
68
+ ...e
69
+ }));
70
+ }, [h, V]), U = r(() => {
71
+ if (!f.attrs.width || !L.current || !L.current.naturalWidth) return;
72
+ let e = B(f.attrs.width);
73
+ f.attrs.resizePercent !== e && H({ resizePercent: e });
74
+ }, [
75
+ f.attrs.width,
76
+ f.attrs.resizePercent,
77
+ B,
78
+ H
79
+ ]);
80
+ i(() => {
81
+ I.current = {
82
+ ...f,
83
+ pos: A
84
+ };
85
+ }, [f, A]), i(() => {
86
+ T ? N && h.isEditable && (!String(f.attrs?.src ?? "").trim() && E.imageHandling?.insertImageRequested && E.imageHandling.insertImageRequested(h, [f, A], (e) => new t(h, [f, A], e)), F(T)) : F(T);
87
+ }, [
88
+ N,
89
+ T,
90
+ h.isEditable
91
+ ]), i(() => {
92
+ U();
93
+ let e = R?.current;
94
+ return e && h.isEditable && e.addEventListener("mousedown", Y, !1), () => {
95
+ e && e.removeEventListener("mousedown", Y, !1);
96
+ };
97
+ }, []), i(() => {
98
+ U();
99
+ });
100
+ let W = r(() => {
101
+ let e = L.current;
102
+ if (e && (!e.style.width || e.style.width === "calc(20px)")) {
103
+ let t = Math.min(e.naturalWidth, D), n = Math.min(e.naturalHeight, O);
104
+ e.style.width = `${t}px`, e.style.height = `${n}px`;
105
+ let r = {
106
+ width: t,
107
+ height: n
108
+ };
109
+ c(r, {
110
+ width: f.attrs.width,
111
+ height: f.attrs.height
112
+ }) || H(r);
113
+ }
114
+ }, [
115
+ f.attrs.width,
116
+ f.attrs.height,
117
+ D,
118
+ O,
119
+ H
120
+ ]), G = (e, t, n = !0, r) => {
121
+ if (n) {
122
+ let n = e.width / e.height;
123
+ return r === "height" ? {
124
+ width: t.height * n,
125
+ height: t.height
126
+ } : {
127
+ width: t.width,
128
+ height: t.width / n
129
+ };
130
+ }
131
+ return t;
132
+ }, K = r((e) => {
133
+ let t = L.current;
134
+ if (!t) return;
135
+ let n = e.target.getBoundingClientRect(), r = {
136
+ width: t.naturalWidth,
137
+ height: t.naturalHeight
138
+ }, i = G(r, {
139
+ width: e.clientX - n.left,
140
+ height: e.clientY - n.top
141
+ });
142
+ i.width > 50 && i.height > 50 && i.width <= 700 && i.height <= 900 && (t.style.width = `${i.width}px`, t.style.height = `${i.height}px`, H({
143
+ width: i.width,
144
+ height: i.height
145
+ }));
146
+ }, [h, H]), q = r((e) => {
147
+ H(e);
148
+ }, [h, H]), J = r(() => {
149
+ window.removeEventListener("mousemove", K), window.removeEventListener("mouseup", J);
150
+ }, [K]), Y = r(() => {
151
+ window.addEventListener("mousemove", K), window.addEventListener("mouseup", J);
152
+ }, [K, J]), X = {
153
+ width: S(f.attrs.width),
154
+ height: S(f.attrs.height),
155
+ objectFit: "contain"
156
+ }, Z = {
157
+ left: "flex-start",
158
+ center: "center",
159
+ right: "flex-end"
160
+ }[f.attrs.alignment] || "flex-start";
161
+ return /* @__PURE__ */ m(l, { children: [/* @__PURE__ */ m(v, {
162
+ onFocus: C,
163
+ loading: !f.attrs.loaded,
164
+ pendingDelete: f.attrs.deleteStatus === "pending",
165
+ style: { justifyContent: Z },
166
+ children: [/* @__PURE__ */ p(_, {
167
+ mode: "determinate",
168
+ value: f.attrs.percent || 0,
169
+ hideProgress: f.attrs.loaded
170
+ }), /* @__PURE__ */ m(y, {
171
+ onDragStart: (e) => e.preventDefault(),
172
+ children: [/* @__PURE__ */ p(b, {
173
+ ...g,
174
+ active: T && f.attrs.loaded,
175
+ draggable: !1,
176
+ ref: L,
177
+ src: f.attrs.src,
178
+ style: X,
179
+ onLoad: W,
180
+ alt: f.attrs.alt
181
+ }), /* @__PURE__ */ p(x, {
182
+ ref: R,
183
+ className: "resize",
184
+ style: { display: h.isEditable ? void 0 : "none" }
185
+ })]
186
+ })]
187
+ }), P && h._tiptapContainerEl && d.createPortal(/* @__PURE__ */ p("div", {
188
+ ref: z,
189
+ style: {
190
+ zIndex: 20,
191
+ background: "var(--editable-html-toolbar-bg, #efefef)",
192
+ boxShadow: "0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)",
193
+ width: "100%"
194
+ },
195
+ children: /* @__PURE__ */ p(e, {
196
+ showDone: !0,
197
+ deletable: !0,
198
+ toolbarOpts: E.toolbarOpts || {},
199
+ onDelete: () => {
200
+ let e = V();
201
+ e !== null && (E.imageHandling?.onDelete?.(I.current), h.view.dispatch(h.state.tr.delete(e, e + h.state.doc.nodeAt(e).nodeSize)), F(!1), h.commands.focus());
202
+ },
203
+ onDone: () => {
204
+ F(!1), E.imageHandling?.onDone?.(h), h.commands.focus("end");
205
+ },
206
+ children: /* @__PURE__ */ p(n, {
207
+ disableImageAlignmentButtons: E.imageHandling?.disableImageAlignmentButtons,
208
+ alt: f.attrs.alt,
209
+ imageLoaded: f.attrs.loaded,
210
+ alignment: f.attrs.alignment || "left",
211
+ onChange: q
212
+ })
213
+ })
214
+ }), h._tiptapContainerEl)] });
215
+ }
216
+ C.propTypes = {
217
+ node: f.object.isRequired,
218
+ editor: f.object.isRequired,
219
+ attributes: f.object,
220
+ onFocus: f.func,
221
+ maxImageWidth: f.number,
222
+ maxImageHeight: f.number
223
+ };
224
+ //#endregion
225
+ export { C as default };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @synced-from pie-lib/packages/editable-html-tip-tap/src/extensions/image.js
3
+ * @auto-generated
4
+ *
5
+ * This file is automatically synced from pie-elements and converted to TypeScript.
6
+ * Manual edits will be overwritten on next sync.
7
+ * To make changes, edit the upstream JavaScript file and run sync again.
8
+ */
9
+ import { Node } from '@tiptap/core';
10
+ export declare const ImageUploadNode: Node<any, any>;
@@ -0,0 +1,68 @@
1
+ import e from "./image-component.js";
2
+ import "react";
3
+ import { ReactNodeViewRenderer as t } from "@tiptap/react";
4
+ import { Node as n, mergeAttributes as r } from "@tiptap/core";
5
+ import { Plugin as i } from "@tiptap/pm/state";
6
+ import { jsx as a } from "react/jsx-runtime";
7
+ //#region src/extensions/image.tsx
8
+ var o = n.create({
9
+ name: "imageUploadNode",
10
+ group: "block",
11
+ atom: !0,
12
+ selectable: !0,
13
+ draggable: !0,
14
+ addAttributes() {
15
+ return {
16
+ nodeKey: { default: null },
17
+ loaded: { default: !1 },
18
+ deleteStatus: { default: null },
19
+ alignment: { default: null },
20
+ percent: { default: null },
21
+ width: { default: null },
22
+ height: { default: null },
23
+ src: { default: null },
24
+ alt: { default: null }
25
+ };
26
+ },
27
+ parseHTML() {
28
+ return [{ tag: "img[data-type=\"image-upload-node\"]" }];
29
+ },
30
+ renderHTML({ HTMLAttributes: e }) {
31
+ return ["img", r(e, { "data-type": "image-upload-node" })];
32
+ },
33
+ addNodeView() {
34
+ return t((t) => /* @__PURE__ */ a(e, {
35
+ ...t,
36
+ options: this.options
37
+ }));
38
+ },
39
+ addCommands() {
40
+ return { setImageUploadNode: () => ({ commands: e }) => e.insertContent({
41
+ type: this.name,
42
+ attrs: { nodeKey: `img-${Date.now()}-${Math.random().toString(36).slice(2)}` }
43
+ }) };
44
+ },
45
+ addProseMirrorPlugins() {
46
+ let e = this.editor;
47
+ return [new i({ props: { handlePaste(t, n) {
48
+ let r = Array.from(n.clipboardData?.items || []).find((e) => e.kind === "file" && e.type.startsWith("image/"));
49
+ if (!r) return !1;
50
+ let i = r.getAsFile();
51
+ if (!i) return !1;
52
+ let a = new FileReader();
53
+ return a.onload = () => {
54
+ let t = a.result;
55
+ typeof t == "string" && e.commands.insertContent({
56
+ type: "imageUploadNode",
57
+ attrs: {
58
+ src: t,
59
+ loaded: !0,
60
+ nodeKey: `img-${Date.now()}-${Math.random().toString(36).slice(2)}`
61
+ }
62
+ });
63
+ }, a.readAsDataURL(i), !0;
64
+ } } })];
65
+ }
66
+ });
67
+ //#endregion
68
+ export { o as ImageUploadNode };
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @synced-from pie-lib/packages/editable-html-tip-tap/src/extensions/index.js
3
+ * @auto-generated
4
+ *
5
+ * This file is automatically synced from pie-elements and converted to TypeScript.
6
+ * Manual edits will be overwritten on next sync.
7
+ * To make changes, edit the upstream JavaScript file and run sync again.
8
+ */
9
+ export declare const ALL_PLUGINS: string[];
10
+ export declare const PLUGINS_MAP: {
11
+ 'text-align': string;
12
+ 'bulleted-list': string;
13
+ 'numbered-list': string;
14
+ };
15
+ export declare const DEFAULT_PLUGINS: string[];
16
+ export declare const buildExtensions: (activeExtensions: any, customExtensions: any, opts: any) => any[];
@@ -0,0 +1,64 @@
1
+ import { compact as e, isEmpty as t } from "@pie-element/shared-lodash";
2
+ import n from "debug";
3
+ //#region src/extensions/index.tsx
4
+ var r = n("@pie-lib:editable-html:plugins"), i = [
5
+ "bold",
6
+ "html",
7
+ "extraCSSRules",
8
+ "italic",
9
+ "underline",
10
+ "strikethrough",
11
+ "bulleted-list",
12
+ "numbered-list",
13
+ "image",
14
+ "math",
15
+ "languageCharacters",
16
+ "text-align",
17
+ "blockquote",
18
+ "h3",
19
+ "table",
20
+ "video",
21
+ "audio",
22
+ "responseArea",
23
+ "redo",
24
+ "undo",
25
+ "superscript",
26
+ "subscript"
27
+ ], a = {
28
+ "text-align": "textAlign",
29
+ "bulleted-list": "ul_list",
30
+ "numbered-list": "ol_list"
31
+ }, o = i.filter((e) => ![
32
+ "responseArea",
33
+ "h3",
34
+ "blockquote"
35
+ ].includes(e)), s = (n, i, a) => {
36
+ r("[buildPlugins] opts: ", a), n ||= o;
37
+ let s = (e, t = !0) => n.includes(e) && t && e, c = a.image && a.image.delete, l = a.math, u = a.responseArea && a.responseArea.type, d = !t(a.extraCSSRules), f = a?.languageCharacters || [];
38
+ return e([
39
+ s("table"),
40
+ s("bold"),
41
+ s("italic"),
42
+ s("strikethrough"),
43
+ s("underline"),
44
+ s("superscript"),
45
+ s("subscript"),
46
+ s("image", !!c),
47
+ s("video"),
48
+ s("audio"),
49
+ s("math", !!l),
50
+ ...f.map((e) => s("languageCharacters", e)),
51
+ s("text-align"),
52
+ s("blockquote"),
53
+ s("h3"),
54
+ s("bulleted-list"),
55
+ s("numbered-list"),
56
+ s("undo"),
57
+ s("redo"),
58
+ s("responseArea", !!u),
59
+ s("css", !!d),
60
+ s("html", !!a.html)
61
+ ]);
62
+ };
63
+ //#endregion
64
+ export { i as ALL_PLUGINS, o as DEFAULT_PLUGINS, a as PLUGINS_MAP, s as buildExtensions };
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @synced-from pie-lib/packages/editable-html-tip-tap/src/extensions/math.js
3
+ * @auto-generated
4
+ *
5
+ * This file is automatically synced from pie-elements and converted to TypeScript.
6
+ * Manual edits will be overwritten on next sync.
7
+ * To make changes, edit the upstream JavaScript file and run sync again.
8
+ */
9
+ import React from 'react';
10
+ import { Node } from '@tiptap/core';
11
+ import { Plugin } from 'prosemirror-state';
12
+ export declare const EnsureTextAfterMathPlugin: (mathNodeName: any) => Plugin<any>;
13
+ export declare const ZeroWidthSpaceHandlingPlugin: Plugin<any>;
14
+ export declare const MathNode: Node<any, any>;
15
+ export declare const MathNodeView: (props: any) => React.JSX.Element;
@@ -0,0 +1,213 @@
1
+ import { setToolbarOpened as e } from "../utils/toolbar.js";
2
+ import { useEffect as t, useRef as n, useState as r } from "react";
3
+ import { NodeViewWrapper as i, ReactNodeViewRenderer as a } from "@tiptap/react";
4
+ import { Node as o } from "@tiptap/core";
5
+ import { NodeSelection as s, Plugin as c, PluginKey as l, TextSelection as u } from "prosemirror-state";
6
+ import d from "react-dom";
7
+ import { jsx as f, jsxs as p } from "react/jsx-runtime";
8
+ import { wrapMath as m } from "@pie-element/shared-math-rendering-mathjax";
9
+ import { MathPreview as h, MathToolbar as g } from "@pie-lib/math-toolbar";
10
+ //#region src/extensions/math.tsx
11
+ var _ = new l("ensureTextAfterMath"), v = (e = []) => e.map((e) => ({
12
+ name: e,
13
+ latex: e,
14
+ write: e,
15
+ label: e
16
+ })), y = (e) => new c({
17
+ key: _,
18
+ appendTransaction: (t, n, r) => {
19
+ if (!t.some((e) => e.docChanged)) return null;
20
+ let i = r.tr, a = !1;
21
+ return r.doc.descendants((t, n) => {
22
+ if (t.type.name === e) {
23
+ let e = n + t.nodeSize, o = r.doc.nodeAt(e);
24
+ (!o || o.type.name !== "text") && (i.insert(e, r.schema.text("​")), a = !0);
25
+ }
26
+ }), a ? i : null;
27
+ }
28
+ }), b = (e, t) => {
29
+ let n;
30
+ for (n = t; n > 0; n--) {
31
+ let t = e.nodeAt(n);
32
+ if (t?.type?.name === "text" && t.textContent !== "​") return -1;
33
+ if (t && t?.type?.name !== "text") break;
34
+ }
35
+ return n;
36
+ }, x = new c({
37
+ key: new l("zeroWidthSpaceHandling"),
38
+ props: { handleKeyDown(e, t) {
39
+ let { state: n, dispatch: r } = e, { selection: i, doc: a } = n, { from: o, empty: c } = i;
40
+ if (c && t.key === "Backspace" && o > 0) {
41
+ let e = b(a, o);
42
+ return e === -1 ? !1 : (r(n.tr.delete(e, o)), !0);
43
+ }
44
+ if (c && t.key === "ArrowLeft" && o > 0) {
45
+ let e = b(a, o);
46
+ if (e === -1) return !1;
47
+ let t = n.doc.resolve(e);
48
+ if (t.nodeAfter || t.nodeBefore) {
49
+ let t = n.doc.resolve(e);
50
+ return r(n.tr.setSelection(s.create(n.doc, t.pos))), !0;
51
+ } else return r(n.tr.setSelection(u.create(n.doc, o - 2))), !0;
52
+ }
53
+ return !1;
54
+ } }
55
+ }), S = o.create({
56
+ name: "math",
57
+ group: "inline",
58
+ inline: !0,
59
+ atom: !0,
60
+ addAttributes() {
61
+ return {
62
+ latex: { default: "" },
63
+ wrapper: { default: null },
64
+ html: { default: null }
65
+ };
66
+ },
67
+ addProseMirrorPlugins() {
68
+ return [y(this.name), x];
69
+ },
70
+ parseHTML() {
71
+ return [{
72
+ tag: "span[data-latex]",
73
+ getAttrs: (e) => ({ latex: e.getAttribute("data-raw") || e.textContent })
74
+ }, {
75
+ tag: "span[data-type=\"mathml\"]",
76
+ getAttrs: (e) => ({ html: e.innerHTML })
77
+ }];
78
+ },
79
+ addCommands() {
80
+ return { insertMath: (t = "") => ({ tr: n, editor: r, dispatch: i }) => {
81
+ let { state: a } = r.view, o = a.schema.nodes.math.create({ latex: t }), { selection: c } = a, l = c.$from.pos;
82
+ if (n.insert(l, o), o?.type?.name === this.name) {
83
+ let e = s.create(n.doc, c.$from.pos);
84
+ n.setSelection(e);
85
+ }
86
+ return i(n), e(r, !0), !0;
87
+ } };
88
+ },
89
+ renderHTML({ HTMLAttributes: e }) {
90
+ return e.html ? ["span", {
91
+ "data-type": "mathml",
92
+ dangerouslySetInnerHTML: { __html: e.html }
93
+ }] : [
94
+ "span",
95
+ {
96
+ "data-latex": "",
97
+ "data-raw": e.latex
98
+ },
99
+ m(e.latex, e.wrapper)
100
+ ];
101
+ },
102
+ addNodeView() {
103
+ return a((e) => /* @__PURE__ */ f(C, {
104
+ ...e,
105
+ options: this.options
106
+ }));
107
+ }
108
+ }), C = (a) => {
109
+ let { node: o, updateAttributes: s, editor: c, selected: l, options: m, getPos: _ } = a, [y, b] = r(l), x = n(null), S = n(null), C = n(Date.now()), [w, T] = r({
110
+ top: 0,
111
+ left: 0
112
+ }), { math: E = {} } = m || {}, { keypadMode: D, controlledKeypadMode: O = !0, customKeys: k = [], keyPadCharacterRef: A, setKeypadInteraction: j } = E, M = o.attrs.latex || "", N = (e) => {
113
+ s({ latex: e });
114
+ }, P = (e, { moveCursorAfterNode: t = !0 } = {}) => {
115
+ if (s({ latex: e }), b(!1), t && typeof _ == "function") {
116
+ let e = _(), { doc: t } = c.state, n = u.create(t, e + o.nodeSize), r = c.state.tr.setSelection(n);
117
+ c.view.dispatch(r);
118
+ }
119
+ c.commands.focus();
120
+ };
121
+ return t(() => {
122
+ if (!l) return;
123
+ let { selection: e } = c.state;
124
+ e.node?.type?.name === "math" && b(!0);
125
+ }, [l, c]), t(() => {
126
+ e(c, l || y);
127
+ }, [
128
+ c,
129
+ y,
130
+ l
131
+ ]), t(() => {
132
+ if (!c || !y) {
133
+ T({
134
+ top: 0,
135
+ left: 0
136
+ });
137
+ return;
138
+ }
139
+ let e = () => {
140
+ if (!x.current) return;
141
+ let { from: e } = c.state.selection, t = c.view.coordsAtPos(e), n = S.current?.getBoundingClientRect?.(), r = n?.height ? n.top : t.top, i = n?.width ? n.left : t.left, a = n?.height ? n.bottom : t.bottom ?? t.top, o = x.current.offsetHeight, s = x.current.offsetWidth, l = window.innerHeight - (a + 0) >= o ? a + 0 : r - o - 0, u = i;
142
+ l = Math.max(8, Math.min(l, window.innerHeight - o - 8)), u = Math.max(8, Math.min(u, window.innerWidth - s - 8));
143
+ let d = (c._tiptapContainerEl || document.body).getBoundingClientRect();
144
+ T({
145
+ top: l - d.top,
146
+ left: u - d.left
147
+ });
148
+ };
149
+ e();
150
+ let t = null, n = () => {
151
+ t === null && (t = requestAnimationFrame(() => {
152
+ t = null, e();
153
+ }));
154
+ };
155
+ return t = requestAnimationFrame(() => {
156
+ t = null, e();
157
+ }), window.addEventListener("scroll", n, !0), window.addEventListener("resize", n), () => {
158
+ t !== null && cancelAnimationFrame(t), window.removeEventListener("scroll", n, !0), window.removeEventListener("resize", n);
159
+ };
160
+ }, [c, y]), t(() => {
161
+ let e = (e) => {
162
+ let t = e?.target, n = (document.querySelectorAll?.("[id^=\"equation-editor-select\"][id*=\"listbox\"], [aria-labelledby=\"equation-editor-label\"][role=\"listbox\"]") || []).length > 0, r = !!(t?.id && t.id.includes("equation-editor-select")) || !!t?.closest?.("[id*=\"equation-editor-select\"]"), i = !!t?.closest?.(`.math-node-${C.current}`);
163
+ if (x.current && !x.current.contains(t) && !t?.closest?.("[data-inline-node]") && !n && !r && !i) {
164
+ b(!1);
165
+ let e = !!c?.view?.dom?.contains(t);
166
+ P(o.attrs.latex, { moveCursorAfterNode: !e });
167
+ }
168
+ };
169
+ return y ? document.addEventListener("click", e) : document.removeEventListener("click", e), () => document.removeEventListener("click", e);
170
+ }, [
171
+ c,
172
+ y,
173
+ o
174
+ ]), /* @__PURE__ */ p(i, {
175
+ className: `math-node-${C.current}`,
176
+ style: {
177
+ display: "inline-flex",
178
+ cursor: "pointer",
179
+ margin: "0 4px"
180
+ },
181
+ "data-selected": l,
182
+ children: [/* @__PURE__ */ f("div", {
183
+ ref: S,
184
+ onClick: () => b(!0),
185
+ contentEditable: !1,
186
+ children: /* @__PURE__ */ f(h, { latex: M })
187
+ }), y && d.createPortal(/* @__PURE__ */ f("div", {
188
+ ref: x,
189
+ "data-toolbar-for": c.instanceId,
190
+ style: {
191
+ position: "absolute",
192
+ top: `${w.top}px`,
193
+ left: `${w.left}px`,
194
+ zIndex: 1e3,
195
+ background: "var(--editable-html-toolbar-bg, #efefef)",
196
+ boxShadow: "0px 1px 5px 0px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 3px 1px -2px rgba(0, 0, 0, 0.12)"
197
+ },
198
+ children: /* @__PURE__ */ f(g, {
199
+ latex: M,
200
+ autoFocus: !0,
201
+ onChange: N,
202
+ onDone: P,
203
+ keypadMode: D,
204
+ controlledKeypadMode: O,
205
+ additionalKeys: v(k),
206
+ keyPadCharacterRef: A,
207
+ setKeypadInteraction: j
208
+ })
209
+ }), c?._tiptapContainerEl || document.body)]
210
+ });
211
+ };
212
+ //#endregion
213
+ export { y as EnsureTextAfterMathPlugin, S as MathNode, C as MathNodeView, x as ZeroWidthSpaceHandlingPlugin };
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @synced-from pie-lib/packages/editable-html-tip-tap/src/extensions/media.js
3
+ * @auto-generated
4
+ *
5
+ * This file is automatically synced from pie-elements and converted to TypeScript.
6
+ * Manual edits will be overwritten on next sync.
7
+ * To make changes, edit the upstream JavaScript file and run sync again.
8
+ */
9
+ import React from 'react';
10
+ import { Node } from '@tiptap/core';
11
+ export declare const Media: Node<any, any>;
12
+ export declare const insertDialog: (props: any) => void;
13
+ export default function MediaNodeView({ editor, node, updateAttributes, deleteNode, options }: {
14
+ editor: any;
15
+ node: any;
16
+ updateAttributes: any;
17
+ deleteNode: any;
18
+ options: any;
19
+ }): React.JSX.Element;