@domternal/core 0.4.0 → 0.4.1

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 (381) hide show
  1. package/dist/CanChecker.d.ts +79 -0
  2. package/dist/CanChecker.d.ts.map +1 -0
  3. package/dist/CanChecker.test.d.ts +2 -0
  4. package/dist/CanChecker.test.d.ts.map +1 -0
  5. package/dist/ChainBuilder.d.ts +119 -0
  6. package/dist/ChainBuilder.d.ts.map +1 -0
  7. package/dist/ChainBuilder.test.d.ts +2 -0
  8. package/dist/ChainBuilder.test.d.ts.map +1 -0
  9. package/dist/CommandManager.d.ts +86 -0
  10. package/dist/CommandManager.d.ts.map +1 -0
  11. package/dist/CommandManager.test.d.ts +2 -0
  12. package/dist/CommandManager.test.d.ts.map +1 -0
  13. package/dist/Editor.d.ts +262 -0
  14. package/dist/Editor.d.ts.map +1 -0
  15. package/dist/Editor.test.d.ts +2 -0
  16. package/dist/Editor.test.d.ts.map +1 -0
  17. package/dist/EventEmitter.d.ts +57 -0
  18. package/dist/EventEmitter.d.ts.map +1 -0
  19. package/dist/EventEmitter.test.d.ts +2 -0
  20. package/dist/EventEmitter.test.d.ts.map +1 -0
  21. package/dist/Extension.d.ts +171 -0
  22. package/dist/Extension.d.ts.map +1 -0
  23. package/dist/Extension.test.d.ts +2 -0
  24. package/dist/Extension.test.d.ts.map +1 -0
  25. package/dist/ExtensionManager.d.ts +283 -0
  26. package/dist/ExtensionManager.d.ts.map +1 -0
  27. package/dist/ExtensionManager.test.d.ts +2 -0
  28. package/dist/ExtensionManager.test.d.ts.map +1 -0
  29. package/dist/Mark.d.ts +164 -0
  30. package/dist/Mark.d.ts.map +1 -0
  31. package/dist/Mark.test.d.ts +5 -0
  32. package/dist/Mark.test.d.ts.map +1 -0
  33. package/dist/Node.d.ts +153 -0
  34. package/dist/Node.d.ts.map +1 -0
  35. package/dist/Node.test.d.ts +2 -0
  36. package/dist/Node.test.d.ts.map +1 -0
  37. package/dist/ToolbarController.d.ts +169 -0
  38. package/dist/ToolbarController.d.ts.map +1 -0
  39. package/dist/ToolbarController.test.d.ts +2 -0
  40. package/dist/ToolbarController.test.d.ts.map +1 -0
  41. package/dist/commandPropsBuilder.d.ts +70 -0
  42. package/dist/commandPropsBuilder.d.ts.map +1 -0
  43. package/dist/commandPropsBuilder.test.d.ts +2 -0
  44. package/dist/commandPropsBuilder.test.d.ts.map +1 -0
  45. package/dist/commands/attributeCommands.d.ts +24 -0
  46. package/dist/commands/attributeCommands.d.ts.map +1 -0
  47. package/dist/commands/attributeCommands.test.d.ts +2 -0
  48. package/dist/commands/attributeCommands.test.d.ts.map +1 -0
  49. package/dist/commands/builtIn.test.d.ts +2 -0
  50. package/dist/commands/builtIn.test.d.ts.map +1 -0
  51. package/dist/commands/contentCommands.d.ts +52 -0
  52. package/dist/commands/contentCommands.d.ts.map +1 -0
  53. package/dist/commands/contentCommands.test.d.ts +2 -0
  54. package/dist/commands/contentCommands.test.d.ts.map +1 -0
  55. package/dist/commands/index.d.ts +43 -0
  56. package/dist/commands/index.d.ts.map +1 -0
  57. package/dist/commands/listCommands.d.ts +15 -0
  58. package/dist/commands/listCommands.d.ts.map +1 -0
  59. package/dist/commands/listCommands.test.d.ts +2 -0
  60. package/dist/commands/listCommands.test.d.ts.map +1 -0
  61. package/dist/commands/markCommands.d.ts +40 -0
  62. package/dist/commands/markCommands.d.ts.map +1 -0
  63. package/dist/commands/markCommands.test.d.ts +2 -0
  64. package/dist/commands/markCommands.test.d.ts.map +1 -0
  65. package/dist/commands/nodeCommands.d.ts +53 -0
  66. package/dist/commands/nodeCommands.d.ts.map +1 -0
  67. package/dist/commands/nodeCommands.test.d.ts +2 -0
  68. package/dist/commands/nodeCommands.test.d.ts.map +1 -0
  69. package/dist/commands/selectionCommands.d.ts +37 -0
  70. package/dist/commands/selectionCommands.d.ts.map +1 -0
  71. package/dist/commands/selectionCommands.test.d.ts +2 -0
  72. package/dist/commands/selectionCommands.test.d.ts.map +1 -0
  73. package/dist/extensions/BaseKeymap.d.ts +36 -0
  74. package/dist/extensions/BaseKeymap.d.ts.map +1 -0
  75. package/dist/extensions/BaseKeymap.test.d.ts +2 -0
  76. package/dist/extensions/BaseKeymap.test.d.ts.map +1 -0
  77. package/dist/extensions/BubbleMenu.d.ts +85 -0
  78. package/dist/extensions/BubbleMenu.d.ts.map +1 -0
  79. package/dist/extensions/BubbleMenu.test.d.ts +2 -0
  80. package/dist/extensions/BubbleMenu.test.d.ts.map +1 -0
  81. package/dist/extensions/CharacterCount.d.ts +60 -0
  82. package/dist/extensions/CharacterCount.d.ts.map +1 -0
  83. package/dist/extensions/CharacterCount.test.d.ts +2 -0
  84. package/dist/extensions/CharacterCount.test.d.ts.map +1 -0
  85. package/dist/extensions/ClearFormatting.d.ts +25 -0
  86. package/dist/extensions/ClearFormatting.d.ts.map +1 -0
  87. package/dist/extensions/ClearFormatting.test.d.ts +2 -0
  88. package/dist/extensions/ClearFormatting.test.d.ts.map +1 -0
  89. package/dist/extensions/Dropcursor.d.ts +20 -0
  90. package/dist/extensions/Dropcursor.d.ts.map +1 -0
  91. package/dist/extensions/Dropcursor.test.d.ts +2 -0
  92. package/dist/extensions/Dropcursor.test.d.ts.map +1 -0
  93. package/dist/extensions/FloatingMenu.d.ts +74 -0
  94. package/dist/extensions/FloatingMenu.d.ts.map +1 -0
  95. package/dist/extensions/FloatingMenu.test.d.ts +2 -0
  96. package/dist/extensions/FloatingMenu.test.d.ts.map +1 -0
  97. package/dist/extensions/Focus.d.ts +26 -0
  98. package/dist/extensions/Focus.d.ts.map +1 -0
  99. package/dist/extensions/Focus.test.d.ts +2 -0
  100. package/dist/extensions/Focus.test.d.ts.map +1 -0
  101. package/dist/extensions/FontFamily.d.ts +41 -0
  102. package/dist/extensions/FontFamily.d.ts.map +1 -0
  103. package/dist/extensions/FontFamily.test.d.ts +2 -0
  104. package/dist/extensions/FontFamily.test.d.ts.map +1 -0
  105. package/dist/extensions/FontSize.d.ts +46 -0
  106. package/dist/extensions/FontSize.d.ts.map +1 -0
  107. package/dist/extensions/FontSize.test.d.ts +2 -0
  108. package/dist/extensions/FontSize.test.d.ts.map +1 -0
  109. package/dist/extensions/Gapcursor.d.ts +3 -0
  110. package/dist/extensions/Gapcursor.d.ts.map +1 -0
  111. package/dist/extensions/Gapcursor.test.d.ts +2 -0
  112. package/dist/extensions/Gapcursor.test.d.ts.map +1 -0
  113. package/dist/extensions/Highlight.d.ts +61 -0
  114. package/dist/extensions/Highlight.d.ts.map +1 -0
  115. package/dist/extensions/Highlight.test.d.ts +2 -0
  116. package/dist/extensions/Highlight.test.d.ts.map +1 -0
  117. package/dist/extensions/History.d.ts +22 -0
  118. package/dist/extensions/History.d.ts.map +1 -0
  119. package/dist/extensions/History.test.d.ts +2 -0
  120. package/dist/extensions/History.test.d.ts.map +1 -0
  121. package/dist/extensions/InvisibleChars.d.ts +86 -0
  122. package/dist/extensions/InvisibleChars.d.ts.map +1 -0
  123. package/dist/extensions/InvisibleChars.test.d.ts +2 -0
  124. package/dist/extensions/InvisibleChars.test.d.ts.map +1 -0
  125. package/dist/extensions/LineHeight.d.ts +50 -0
  126. package/dist/extensions/LineHeight.d.ts.map +1 -0
  127. package/dist/extensions/LineHeight.test.d.ts +2 -0
  128. package/dist/extensions/LineHeight.test.d.ts.map +1 -0
  129. package/dist/extensions/LinkPopover.d.ts +10 -0
  130. package/dist/extensions/LinkPopover.d.ts.map +1 -0
  131. package/dist/extensions/ListKeymap.d.ts +10 -0
  132. package/dist/extensions/ListKeymap.d.ts.map +1 -0
  133. package/dist/extensions/ListKeymap.test.d.ts +2 -0
  134. package/dist/extensions/ListKeymap.test.d.ts.map +1 -0
  135. package/dist/extensions/Placeholder.d.ts +47 -0
  136. package/dist/extensions/Placeholder.d.ts.map +1 -0
  137. package/dist/extensions/Placeholder.test.d.ts +2 -0
  138. package/dist/extensions/Placeholder.test.d.ts.map +1 -0
  139. package/dist/extensions/Selection.d.ts +71 -0
  140. package/dist/extensions/Selection.d.ts.map +1 -0
  141. package/dist/extensions/Selection.test.d.ts +2 -0
  142. package/dist/extensions/Selection.test.d.ts.map +1 -0
  143. package/dist/extensions/SelectionDecoration.d.ts +18 -0
  144. package/dist/extensions/SelectionDecoration.d.ts.map +1 -0
  145. package/dist/extensions/SelectionDecoration.test.d.ts +2 -0
  146. package/dist/extensions/SelectionDecoration.test.d.ts.map +1 -0
  147. package/dist/extensions/StarterKit.d.ts +138 -0
  148. package/dist/extensions/StarterKit.d.ts.map +1 -0
  149. package/dist/extensions/StarterKit.test.d.ts +2 -0
  150. package/dist/extensions/StarterKit.test.d.ts.map +1 -0
  151. package/dist/extensions/TextAlign.d.ts +32 -0
  152. package/dist/extensions/TextAlign.d.ts.map +1 -0
  153. package/dist/extensions/TextAlign.test.d.ts +2 -0
  154. package/dist/extensions/TextAlign.test.d.ts.map +1 -0
  155. package/dist/extensions/TextColor.d.ts +55 -0
  156. package/dist/extensions/TextColor.d.ts.map +1 -0
  157. package/dist/extensions/TextColor.test.d.ts +2 -0
  158. package/dist/extensions/TextColor.test.d.ts.map +1 -0
  159. package/dist/extensions/TrailingNode.d.ts +16 -0
  160. package/dist/extensions/TrailingNode.d.ts.map +1 -0
  161. package/dist/extensions/TrailingNode.test.d.ts +2 -0
  162. package/dist/extensions/TrailingNode.test.d.ts.map +1 -0
  163. package/dist/extensions/Typography.d.ts +65 -0
  164. package/dist/extensions/Typography.d.ts.map +1 -0
  165. package/dist/extensions/Typography.test.d.ts +2 -0
  166. package/dist/extensions/Typography.test.d.ts.map +1 -0
  167. package/dist/extensions/UniqueID.d.ts +48 -0
  168. package/dist/extensions/UniqueID.d.ts.map +1 -0
  169. package/dist/extensions/UniqueID.test.d.ts +2 -0
  170. package/dist/extensions/UniqueID.test.d.ts.map +1 -0
  171. package/dist/extensions/index.d.ts +29 -0
  172. package/dist/extensions/index.d.ts.map +1 -0
  173. package/dist/extensions/isActive-markExclusion.test.d.ts +2 -0
  174. package/dist/extensions/isActive-markExclusion.test.d.ts.map +1 -0
  175. package/dist/helpers/callOrReturn.d.ts +30 -0
  176. package/dist/helpers/callOrReturn.d.ts.map +1 -0
  177. package/dist/helpers/callOrReturn.test.d.ts +2 -0
  178. package/dist/helpers/callOrReturn.test.d.ts.map +1 -0
  179. package/dist/helpers/createDocument.d.ts +48 -0
  180. package/dist/helpers/createDocument.d.ts.map +1 -0
  181. package/dist/helpers/createDocument.test.d.ts +2 -0
  182. package/dist/helpers/createDocument.test.d.ts.map +1 -0
  183. package/dist/helpers/defaultBlockAt.d.ts +15 -0
  184. package/dist/helpers/defaultBlockAt.d.ts.map +1 -0
  185. package/dist/helpers/defaultBlockAt.test.d.ts +2 -0
  186. package/dist/helpers/defaultBlockAt.test.d.ts.map +1 -0
  187. package/dist/helpers/findChildren.d.ts +13 -0
  188. package/dist/helpers/findChildren.d.ts.map +1 -0
  189. package/dist/helpers/findChildren.test.d.ts +2 -0
  190. package/dist/helpers/findChildren.test.d.ts.map +1 -0
  191. package/dist/helpers/findParentNode.d.ts +21 -0
  192. package/dist/helpers/findParentNode.d.ts.map +1 -0
  193. package/dist/helpers/findParentNode.test.d.ts +2 -0
  194. package/dist/helpers/findParentNode.test.d.ts.map +1 -0
  195. package/dist/helpers/getMarkRange.d.ts +17 -0
  196. package/dist/helpers/getMarkRange.d.ts.map +1 -0
  197. package/dist/helpers/getMarkRange.test.d.ts +2 -0
  198. package/dist/helpers/getMarkRange.test.d.ts.map +1 -0
  199. package/dist/helpers/index.d.ts +18 -0
  200. package/dist/helpers/index.d.ts.map +1 -0
  201. package/dist/helpers/inputRulesPlugin.d.ts +26 -0
  202. package/dist/helpers/inputRulesPlugin.d.ts.map +1 -0
  203. package/dist/helpers/isNodeEmpty.d.ts +52 -0
  204. package/dist/helpers/isNodeEmpty.d.ts.map +1 -0
  205. package/dist/helpers/isNodeEmpty.test.d.ts +2 -0
  206. package/dist/helpers/isNodeEmpty.test.d.ts.map +1 -0
  207. package/dist/helpers/isValidUrl.d.ts +31 -0
  208. package/dist/helpers/isValidUrl.d.ts.map +1 -0
  209. package/dist/helpers/isValidUrl.test.d.ts +2 -0
  210. package/dist/helpers/isValidUrl.test.d.ts.map +1 -0
  211. package/dist/helpers/markInputRule.d.ts +88 -0
  212. package/dist/helpers/markInputRule.d.ts.map +1 -0
  213. package/dist/helpers/markInputRule.test.d.ts +2 -0
  214. package/dist/helpers/markInputRule.test.d.ts.map +1 -0
  215. package/dist/helpers/nodeInputRule.d.ts +41 -0
  216. package/dist/helpers/nodeInputRule.d.ts.map +1 -0
  217. package/dist/helpers/normalizeColor.d.ts +7 -0
  218. package/dist/helpers/normalizeColor.d.ts.map +1 -0
  219. package/dist/helpers/normalizeColor.test.d.ts +2 -0
  220. package/dist/helpers/normalizeColor.test.d.ts.map +1 -0
  221. package/dist/helpers/specBuilder.d.ts +28 -0
  222. package/dist/helpers/specBuilder.d.ts.map +1 -0
  223. package/dist/helpers/specBuilder.test.d.ts +2 -0
  224. package/dist/helpers/specBuilder.test.d.ts.map +1 -0
  225. package/dist/helpers/ssr.d.ts +80 -0
  226. package/dist/helpers/ssr.d.ts.map +1 -0
  227. package/dist/helpers/ssr.test.d.ts +2 -0
  228. package/dist/helpers/ssr.test.d.ts.map +1 -0
  229. package/dist/helpers/textInputRule.d.ts +34 -0
  230. package/dist/helpers/textInputRule.d.ts.map +1 -0
  231. package/dist/helpers/textblockTypeInputRule.d.ts +41 -0
  232. package/dist/helpers/textblockTypeInputRule.d.ts.map +1 -0
  233. package/dist/helpers/wrappingInputRule.d.ts +66 -0
  234. package/dist/helpers/wrappingInputRule.d.ts.map +1 -0
  235. package/dist/icons/index.d.ts +2 -0
  236. package/dist/icons/index.d.ts.map +1 -0
  237. package/dist/icons/phosphor.d.ts +3 -0
  238. package/dist/icons/phosphor.d.ts.map +1 -0
  239. package/dist/index.d.ts +23 -5832
  240. package/dist/index.d.ts.map +1 -0
  241. package/dist/index.test.d.ts +2 -0
  242. package/dist/index.test.d.ts.map +1 -0
  243. package/dist/marks/Bold.d.ts +40 -0
  244. package/dist/marks/Bold.d.ts.map +1 -0
  245. package/dist/marks/Bold.test.d.ts +2 -0
  246. package/dist/marks/Bold.test.d.ts.map +1 -0
  247. package/dist/marks/Code.d.ts +40 -0
  248. package/dist/marks/Code.d.ts.map +1 -0
  249. package/dist/marks/Code.test.d.ts +2 -0
  250. package/dist/marks/Code.test.d.ts.map +1 -0
  251. package/dist/marks/Italic.d.ts +40 -0
  252. package/dist/marks/Italic.d.ts.map +1 -0
  253. package/dist/marks/Italic.test.d.ts +2 -0
  254. package/dist/marks/Italic.test.d.ts.map +1 -0
  255. package/dist/marks/Link.d.ts +75 -0
  256. package/dist/marks/Link.d.ts.map +1 -0
  257. package/dist/marks/Link.test.d.ts +2 -0
  258. package/dist/marks/Link.test.d.ts.map +1 -0
  259. package/dist/marks/Strike.d.ts +39 -0
  260. package/dist/marks/Strike.d.ts.map +1 -0
  261. package/dist/marks/Strike.test.d.ts +2 -0
  262. package/dist/marks/Strike.test.d.ts.map +1 -0
  263. package/dist/marks/Subscript.d.ts +38 -0
  264. package/dist/marks/Subscript.d.ts.map +1 -0
  265. package/dist/marks/Subscript.test.d.ts +2 -0
  266. package/dist/marks/Subscript.test.d.ts.map +1 -0
  267. package/dist/marks/Superscript.d.ts +38 -0
  268. package/dist/marks/Superscript.d.ts.map +1 -0
  269. package/dist/marks/Superscript.test.d.ts +2 -0
  270. package/dist/marks/Superscript.test.d.ts.map +1 -0
  271. package/dist/marks/TextStyle.d.ts +41 -0
  272. package/dist/marks/TextStyle.d.ts.map +1 -0
  273. package/dist/marks/TextStyle.test.d.ts +2 -0
  274. package/dist/marks/TextStyle.test.d.ts.map +1 -0
  275. package/dist/marks/Underline.d.ts +38 -0
  276. package/dist/marks/Underline.d.ts.map +1 -0
  277. package/dist/marks/Underline.test.d.ts +2 -0
  278. package/dist/marks/Underline.test.d.ts.map +1 -0
  279. package/dist/marks/helpers/autolinkPlugin.d.ts +48 -0
  280. package/dist/marks/helpers/autolinkPlugin.d.ts.map +1 -0
  281. package/dist/marks/helpers/autolinkPlugin.test.d.ts +2 -0
  282. package/dist/marks/helpers/autolinkPlugin.test.d.ts.map +1 -0
  283. package/dist/marks/helpers/index.d.ts +10 -0
  284. package/dist/marks/helpers/index.d.ts.map +1 -0
  285. package/dist/marks/helpers/linkClickPlugin.d.ts +43 -0
  286. package/dist/marks/helpers/linkClickPlugin.d.ts.map +1 -0
  287. package/dist/marks/helpers/linkClickPlugin.test.d.ts +2 -0
  288. package/dist/marks/helpers/linkClickPlugin.test.d.ts.map +1 -0
  289. package/dist/marks/helpers/linkExitPlugin.d.ts +37 -0
  290. package/dist/marks/helpers/linkExitPlugin.d.ts.map +1 -0
  291. package/dist/marks/helpers/linkExitPlugin.test.d.ts +2 -0
  292. package/dist/marks/helpers/linkExitPlugin.test.d.ts.map +1 -0
  293. package/dist/marks/helpers/linkPastePlugin.d.ts +44 -0
  294. package/dist/marks/helpers/linkPastePlugin.d.ts.map +1 -0
  295. package/dist/marks/helpers/linkPastePlugin.test.d.ts +2 -0
  296. package/dist/marks/helpers/linkPastePlugin.test.d.ts.map +1 -0
  297. package/dist/marks/index.d.ts +16 -0
  298. package/dist/marks/index.d.ts.map +1 -0
  299. package/dist/nodes/Blockquote.d.ts +19 -0
  300. package/dist/nodes/Blockquote.d.ts.map +1 -0
  301. package/dist/nodes/Blockquote.test.d.ts +2 -0
  302. package/dist/nodes/Blockquote.test.d.ts.map +1 -0
  303. package/dist/nodes/BulletList.d.ts +18 -0
  304. package/dist/nodes/BulletList.d.ts.map +1 -0
  305. package/dist/nodes/BulletList.test.d.ts +2 -0
  306. package/dist/nodes/BulletList.test.d.ts.map +1 -0
  307. package/dist/nodes/CodeBlock.d.ts +29 -0
  308. package/dist/nodes/CodeBlock.d.ts.map +1 -0
  309. package/dist/nodes/CodeBlock.test.d.ts +2 -0
  310. package/dist/nodes/CodeBlock.test.d.ts.map +1 -0
  311. package/dist/nodes/Document.d.ts +9 -0
  312. package/dist/nodes/Document.d.ts.map +1 -0
  313. package/dist/nodes/Document.test.d.ts +2 -0
  314. package/dist/nodes/Document.test.d.ts.map +1 -0
  315. package/dist/nodes/HardBreak.d.ts +18 -0
  316. package/dist/nodes/HardBreak.d.ts.map +1 -0
  317. package/dist/nodes/HardBreak.test.d.ts +2 -0
  318. package/dist/nodes/HardBreak.test.d.ts.map +1 -0
  319. package/dist/nodes/Heading.d.ts +23 -0
  320. package/dist/nodes/Heading.d.ts.map +1 -0
  321. package/dist/nodes/Heading.test.d.ts +2 -0
  322. package/dist/nodes/Heading.test.d.ts.map +1 -0
  323. package/dist/nodes/HorizontalRule.d.ts +17 -0
  324. package/dist/nodes/HorizontalRule.d.ts.map +1 -0
  325. package/dist/nodes/HorizontalRule.test.d.ts +2 -0
  326. package/dist/nodes/HorizontalRule.test.d.ts.map +1 -0
  327. package/dist/nodes/ListItem.d.ts +16 -0
  328. package/dist/nodes/ListItem.d.ts.map +1 -0
  329. package/dist/nodes/ListItem.test.d.ts +2 -0
  330. package/dist/nodes/ListItem.test.d.ts.map +1 -0
  331. package/dist/nodes/OrderedList.d.ts +18 -0
  332. package/dist/nodes/OrderedList.d.ts.map +1 -0
  333. package/dist/nodes/OrderedList.test.d.ts +2 -0
  334. package/dist/nodes/OrderedList.test.d.ts.map +1 -0
  335. package/dist/nodes/Paragraph.d.ts +17 -0
  336. package/dist/nodes/Paragraph.d.ts.map +1 -0
  337. package/dist/nodes/Paragraph.test.d.ts +2 -0
  338. package/dist/nodes/Paragraph.test.d.ts.map +1 -0
  339. package/dist/nodes/TaskItem.d.ts +24 -0
  340. package/dist/nodes/TaskItem.d.ts.map +1 -0
  341. package/dist/nodes/TaskItem.test.d.ts +2 -0
  342. package/dist/nodes/TaskItem.test.d.ts.map +1 -0
  343. package/dist/nodes/TaskList.d.ts +18 -0
  344. package/dist/nodes/TaskList.d.ts.map +1 -0
  345. package/dist/nodes/TaskList.test.d.ts +2 -0
  346. package/dist/nodes/TaskList.test.d.ts.map +1 -0
  347. package/dist/nodes/Text.d.ts +9 -0
  348. package/dist/nodes/Text.d.ts.map +1 -0
  349. package/dist/nodes/Text.test.d.ts +2 -0
  350. package/dist/nodes/Text.test.d.ts.map +1 -0
  351. package/dist/nodes/index.d.ts +19 -0
  352. package/dist/nodes/index.d.ts.map +1 -0
  353. package/dist/nodes/integration.test.d.ts +7 -0
  354. package/dist/nodes/integration.test.d.ts.map +1 -0
  355. package/dist/types/AttributeSpec.d.ts +78 -0
  356. package/dist/types/AttributeSpec.d.ts.map +1 -0
  357. package/dist/types/Commands.d.ts +125 -0
  358. package/dist/types/Commands.d.ts.map +1 -0
  359. package/dist/types/Content.d.ts +40 -0
  360. package/dist/types/Content.d.ts.map +1 -0
  361. package/dist/types/EditorEvents.d.ts +131 -0
  362. package/dist/types/EditorEvents.d.ts.map +1 -0
  363. package/dist/types/EditorOptions.d.ts +133 -0
  364. package/dist/types/EditorOptions.d.ts.map +1 -0
  365. package/dist/types/ExtensionConfig.d.ts +271 -0
  366. package/dist/types/ExtensionConfig.d.ts.map +1 -0
  367. package/dist/types/MarkConfig.d.ts +206 -0
  368. package/dist/types/MarkConfig.d.ts.map +1 -0
  369. package/dist/types/NodeConfig.d.ts +263 -0
  370. package/dist/types/NodeConfig.d.ts.map +1 -0
  371. package/dist/types/Toolbar.d.ts +172 -0
  372. package/dist/types/Toolbar.d.ts.map +1 -0
  373. package/dist/types/index.d.ts +13 -0
  374. package/dist/types/index.d.ts.map +1 -0
  375. package/dist/utils/inlineStyles.d.ts +83 -0
  376. package/dist/utils/inlineStyles.d.ts.map +1 -0
  377. package/dist/utils/inlineStyles.test.d.ts +2 -0
  378. package/dist/utils/inlineStyles.test.d.ts.map +1 -0
  379. package/dist/utils/positionFloating.d.ts +74 -0
  380. package/dist/utils/positionFloating.d.ts.map +1 -0
  381. package/package.json +1 -1
@@ -0,0 +1,171 @@
1
+ /**
2
+ * Extension - Base class for all extensions
3
+ *
4
+ * Extensions provide functionality without contributing to the schema.
5
+ * For schema contributions, use Node (for block/inline nodes) or Mark (for inline formatting).
6
+ *
7
+ * Three-tier model:
8
+ * - Extension (type: 'extension') → Pure functionality (History, Placeholder, etc.)
9
+ * - Node (type: 'node') → Schema nodes (Paragraph, Heading, etc.)
10
+ * - Mark (type: 'mark') → Schema marks (Bold, Italic, etc.)
11
+ *
12
+ * @example
13
+ * const History = Extension.create({
14
+ * name: 'history',
15
+ * addOptions() {
16
+ * return { depth: 100 };
17
+ * },
18
+ * addKeyboardShortcuts() {
19
+ * return {
20
+ * 'Mod-z': () => this.editor.commands.undo(),
21
+ * 'Mod-Shift-z': () => this.editor.commands.redo(),
22
+ * };
23
+ * },
24
+ * });
25
+ */
26
+ import type { ExtensionConfig, ExtensionConfigBase, ExtensionContext } from './types/ExtensionConfig.js';
27
+ import type { SingleCommands } from './types/Commands.js';
28
+ import type { EditorState } from '@domternal/pm/state';
29
+ import type { EditorView } from '@domternal/pm/view';
30
+ /**
31
+ * Merges extension config with parent binding support.
32
+ *
33
+ * For each function in `extendedConfig` that overrides a function in `parentConfig`,
34
+ * wraps the override so that `this.parent` temporarily points to the parent's version.
35
+ * This enables the `this.parent?.()` pattern in extend():
36
+ *
37
+ * ```typescript
38
+ * Paragraph.extend({
39
+ * addAttributes() {
40
+ * return { ...this.parent?.(), align: { default: 'left' } };
41
+ * },
42
+ * });
43
+ * ```
44
+ */
45
+ export declare function mergeConfigWithParentBinding(parentConfig: object, extendedConfig: object): object;
46
+ /**
47
+ * Editor interface for Extension
48
+ * Forward declaration to avoid circular dependency
49
+ */
50
+ export interface ExtensionEditorInterface {
51
+ readonly state: EditorState;
52
+ readonly view: EditorView;
53
+ readonly schema: unknown;
54
+ readonly commands: SingleCommands;
55
+ }
56
+ /**
57
+ * Base class for all extensions
58
+ *
59
+ * @typeParam Options - Extension options type
60
+ * @typeParam Storage - Extension storage type
61
+ */
62
+ export declare class Extension<Options = unknown, Storage = unknown> {
63
+ /**
64
+ * Extension type identifier
65
+ * Used to distinguish between Extension, Node, and Mark
66
+ * Subclasses override this to 'node' or 'mark'
67
+ */
68
+ readonly type: 'extension' | 'node' | 'mark';
69
+ /**
70
+ * Unique extension name
71
+ */
72
+ readonly name: string;
73
+ /**
74
+ * Extension options (immutable after creation)
75
+ */
76
+ readonly options: Options;
77
+ /**
78
+ * Extension storage (mutable state)
79
+ * Accessible via editor.storage[extensionName]
80
+ */
81
+ storage: Storage;
82
+ /**
83
+ * The original configuration object
84
+ */
85
+ readonly config: ExtensionConfig<Options, Storage>;
86
+ /**
87
+ * Editor instance (set by ExtensionManager after creation)
88
+ * null until ExtensionManager binds it
89
+ */
90
+ editor: ExtensionEditorInterface | null;
91
+ /**
92
+ * Reference to the parent config method when using extend().
93
+ * Set temporarily during config method execution so overridden
94
+ * methods can call `this.parent?.()` to invoke the original.
95
+ */
96
+ parent?: ((...args: unknown[]) => unknown) | undefined;
97
+ /**
98
+ * Protected constructor - use Extension.create() instead
99
+ */
100
+ protected constructor(config: ExtensionConfig<Options, Storage>);
101
+ /**
102
+ * Creates a new extension instance
103
+ *
104
+ * @param config - Extension configuration
105
+ * @returns New extension instance
106
+ *
107
+ * @example
108
+ * const MyExtension = Extension.create({
109
+ * name: 'myExtension',
110
+ * addOptions() {
111
+ * return { enabled: true };
112
+ * },
113
+ * });
114
+ */
115
+ static create<O = unknown, S = unknown>(config: ExtensionConfig<O, S>): Extension<O, S>;
116
+ /**
117
+ * Creates a new extension with merged options
118
+ * Original extension is not modified
119
+ *
120
+ * **Note:** Options are merged shallowly using object spread (`...`).
121
+ * Nested objects are replaced entirely, not deeply merged.
122
+ *
123
+ * @param options - Options to merge with existing options
124
+ * @returns New extension instance with merged options
125
+ *
126
+ * @example
127
+ * const configured = MyExtension.configure({ enabled: false });
128
+ *
129
+ * @example
130
+ * // Shallow merge behavior with nested objects:
131
+ * // Given: options = { nested: { a: 1, b: 2 } }
132
+ * // configure({ nested: { b: 3 } })
133
+ * // Result: { nested: { b: 3 } } — 'a' is lost!
134
+ * // To preserve nested values, spread manually:
135
+ * // configure({ nested: { ...original.options.nested, b: 3 } })
136
+ */
137
+ configure(options: Partial<Options>): Extension<Options, Storage>;
138
+ /**
139
+ * Creates a new extension with extended configuration
140
+ * Original extension is not modified
141
+ *
142
+ * **Note:** Config is merged shallowly using object spread (`...`).
143
+ * Config properties (like `addCommands`, `addKeyboardShortcuts`) are
144
+ * replaced entirely, not combined with the base extension's config.
145
+ *
146
+ * @param extendedConfig - Configuration to extend/override
147
+ * @returns New extension instance with extended config
148
+ *
149
+ * @example
150
+ * const Extended = MyExtension.extend({
151
+ * name: 'extendedExtension',
152
+ * addCommands() {
153
+ * return { customCommand: () => ({ tr }) => true };
154
+ * },
155
+ * });
156
+ *
157
+ * @example
158
+ * // To preserve base extension's commands while adding new ones:
159
+ * const Extended = BaseExtension.extend({
160
+ * addCommands() {
161
+ * const baseCommands = BaseExtension.config.addCommands?.call(this) ?? {};
162
+ * return {
163
+ * ...baseCommands,
164
+ * newCommand: () => ({ tr }) => true,
165
+ * };
166
+ * },
167
+ * });
168
+ */
169
+ extend<ExtendedOptions = Options, ExtendedStorage = Storage>(extendedConfig: Partial<ExtensionConfigBase<ExtendedOptions, ExtendedStorage>> & ThisType<ExtensionContext<ExtendedOptions, ExtendedStorage>>): Extension<ExtendedOptions, ExtendedStorage>;
170
+ }
171
+ //# sourceMappingURL=Extension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Extension.d.ts","sourceRoot":"","sources":["../src/Extension.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACzG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GACrB,MAAM,CAsBR;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;CACnC;AAED;;;;;GAKG;AACH,qBAAa,SAAS,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO;IACzD;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM,CAAe;IAE3D;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEnD;;;OAGG;IACH,MAAM,EAAE,wBAAwB,GAAG,IAAI,CAAQ;IAE/C;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;IAEvD;;OAEG;IACH,SAAS,aAAa,MAAM,EAAE,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC;IAuB/D;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,EACpC,MAAM,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,GAC5B,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IAIlB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;IAcjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,MAAM,CAAC,eAAe,GAAG,OAAO,EAAE,eAAe,GAAG,OAAO,EACzD,cAAc,EAAE,OAAO,CAAC,mBAAmB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,GAC5E,QAAQ,CAAC,gBAAgB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,GAC7D,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;CAK/C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Extension.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Extension.test.d.ts","sourceRoot":"","sources":["../src/Extension.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,283 @@
1
+ /**
2
+ * ExtensionManager - Manages extensions and schema
3
+ *
4
+ * Handles:
5
+ * - Extension lifecycle (flatten, resolve, bind)
6
+ * - Schema building from Node/Mark extensions
7
+ * - Plugin collection from all extensions
8
+ * - Extension storage management
9
+ * - Conflict detection (AD-7)
10
+ */
11
+ import { Schema } from '@domternal/pm/model';
12
+ import type { Plugin, Transaction } from '@domternal/pm/state';
13
+ import type { NodeViewConstructor } from '@domternal/pm/view';
14
+ import type { AnyExtension } from './types/EditorOptions.js';
15
+ import type { CommandMap } from './types/Commands.js';
16
+ import type { ToolbarItem } from './types/Toolbar.js';
17
+ /**
18
+ * Error event props for safeCall
19
+ */
20
+ interface ErrorEventProps {
21
+ error: Error;
22
+ context: string;
23
+ }
24
+ /**
25
+ * Editor interface for ExtensionManager
26
+ * Forward declaration to avoid circular dependency
27
+ */
28
+ export interface ExtensionManagerEditor {
29
+ readonly schema: Schema;
30
+ emit?(event: 'error', props: ErrorEventProps): void;
31
+ }
32
+ /**
33
+ * Context attached to node view constructors for framework wrappers.
34
+ * Accessible via `(constructor as any).__domternalContext`.
35
+ */
36
+ export interface NodeViewContext {
37
+ editor: ExtensionManagerEditor;
38
+ extension: {
39
+ name: string;
40
+ options: Record<string, unknown>;
41
+ };
42
+ }
43
+ /**
44
+ * Options for ExtensionManager constructor
45
+ */
46
+ export interface ExtensionManagerOptions {
47
+ /**
48
+ * Extensions to process
49
+ * If provided, schema is built from extensions
50
+ */
51
+ extensions?: AnyExtension[] | undefined;
52
+ /**
53
+ * Direct schema (backward compatibility with Step 1.3)
54
+ * If provided, extensions are ignored for schema building
55
+ */
56
+ schema?: Schema | undefined;
57
+ }
58
+ export declare class ExtensionManager {
59
+ /**
60
+ * Processed extensions (flattened, sorted by priority)
61
+ */
62
+ private readonly _extensions;
63
+ /**
64
+ * ProseMirror schema (built from extensions or passed directly)
65
+ */
66
+ private readonly _schema;
67
+ /**
68
+ * Reference to the editor instance
69
+ */
70
+ readonly editor: ExtensionManagerEditor;
71
+ /**
72
+ * Extension storage (keyed by extension name)
73
+ */
74
+ private readonly _storage;
75
+ /**
76
+ * Whether the manager has been destroyed
77
+ */
78
+ private isDestroyed;
79
+ /**
80
+ * Cached plugins (built lazily)
81
+ */
82
+ private _plugins;
83
+ /**
84
+ * Cached commands (collected lazily)
85
+ */
86
+ private _commands;
87
+ /**
88
+ * Cached toolbar items (collected lazily)
89
+ */
90
+ private _toolbarItems;
91
+ /**
92
+ * Cached node views (collected lazily)
93
+ */
94
+ private _nodeViews;
95
+ /**
96
+ * Creates a new ExtensionManager
97
+ *
98
+ * @param options - Extensions or direct schema
99
+ * @param editor - Editor instance
100
+ */
101
+ constructor(options: ExtensionManagerOptions, editor: ExtensionManagerEditor);
102
+ /**
103
+ * Gets the processed extensions array
104
+ */
105
+ get extensions(): readonly AnyExtension[];
106
+ /**
107
+ * Gets the ProseMirror schema
108
+ */
109
+ get schema(): Schema;
110
+ /**
111
+ * Gets extension storage (accessed via editor.storage)
112
+ */
113
+ get storage(): Record<string, unknown>;
114
+ /**
115
+ * Gets plugins from all extensions
116
+ * Cached after first call
117
+ */
118
+ get plugins(): Plugin[];
119
+ /**
120
+ * Gets commands from all extensions
121
+ */
122
+ get commands(): CommandMap;
123
+ /**
124
+ * Gets toolbar items from all extensions
125
+ * Cached after first call
126
+ */
127
+ get toolbarItems(): ToolbarItem[];
128
+ /**
129
+ * Gets node views from all Node extensions that define addNodeView
130
+ */
131
+ get nodeViews(): Record<string, NodeViewConstructor>;
132
+ /**
133
+ * Clears all caches (plugins, commands)
134
+ * Call when extensions change dynamically
135
+ */
136
+ clearAllCaches(): void;
137
+ /**
138
+ * Recursively flattens extensions by expanding addExtensions()
139
+ * This allows extension bundles like StarterKit to work
140
+ */
141
+ private flattenExtensions;
142
+ /**
143
+ * Removes duplicate extensions by name, keeping the last occurrence.
144
+ * This allows parent extensions to auto-include children via addExtensions()
145
+ * while letting users override with explicitly configured versions.
146
+ */
147
+ private deduplicateExtensions;
148
+ /**
149
+ * Sorts extensions by priority (higher priority first)
150
+ * Default priority is 100
151
+ */
152
+ private resolveExtensions;
153
+ /**
154
+ * Detects duplicate extension names (AD-7: Schema Conflict Detection)
155
+ * @throws Error if duplicate names found
156
+ */
157
+ private detectConflicts;
158
+ /**
159
+ * Validates that all extension dependencies are present
160
+ * @throws Error if required dependency is missing
161
+ */
162
+ private checkDependencies;
163
+ /**
164
+ * Sets editor reference on all extensions
165
+ */
166
+ private bindEditorToExtensions;
167
+ /**
168
+ * Collects global attributes from all extensions.
169
+ * Returns a map of type name -> attribute specs to merge.
170
+ */
171
+ private collectGlobalAttributes;
172
+ /**
173
+ * Applies global attributes to a node or mark spec.
174
+ * Merges extra attrs into spec.attrs, wraps parseDOM getAttrs to parse
175
+ * global attributes from DOM elements, and wraps toDOM to inject rendered
176
+ * global HTML attributes into the output.
177
+ */
178
+ private applyGlobalAttributes;
179
+ /**
180
+ * Builds ProseMirror Schema from Node and Mark extensions
181
+ */
182
+ private buildSchema;
183
+ /**
184
+ * Initializes storage for all extensions
185
+ */
186
+ private initializeStorage;
187
+ /**
188
+ * Builds all ProseMirror plugins from extensions
189
+ */
190
+ private buildPlugins;
191
+ /**
192
+ * Collects keyboard shortcuts from all extensions
193
+ * Returns ProseMirror-compatible commands for keymap plugin
194
+ *
195
+ * Note: Extensions should return PM-compatible commands from addKeyboardShortcuts()
196
+ */
197
+ private collectKeyboardShortcuts;
198
+ /**
199
+ * Collects input rules from all extensions
200
+ */
201
+ private collectInputRules;
202
+ /**
203
+ * Collects commands from all extensions
204
+ *
205
+ * Note: Commands with the same name will be overwritten by later extensions
206
+ * (lower priority extensions override higher priority). This is intentional
207
+ * to allow customization of built-in commands.
208
+ */
209
+ private collectCommands;
210
+ /**
211
+ * Collects toolbar items from all extensions
212
+ */
213
+ private collectToolbarItems;
214
+ /**
215
+ * Collects node views from all Node extensions.
216
+ * Returns a map of node name to NodeViewConstructor for EditorView.
217
+ *
218
+ * Each constructor is annotated with `__domternalContext` containing
219
+ * the editor and extension metadata so framework wrappers (React, Vue)
220
+ * can access them without changing the ProseMirror calling convention.
221
+ */
222
+ private collectNodeViews;
223
+ /**
224
+ * Validates that the schema has required nodes
225
+ * @throws Error if schema is missing 'doc' or 'text' nodes
226
+ */
227
+ validateSchema(): void;
228
+ /**
229
+ * Cleans up the extension manager
230
+ * Calls onDestroy on all extensions and clears all caches
231
+ */
232
+ destroy(): void;
233
+ /**
234
+ * Safely executes a function, catching and reporting errors
235
+ * Prevents a single extension error from crashing the entire editor
236
+ *
237
+ * Handles both synchronous errors and async promise rejections.
238
+ *
239
+ * @param fn - Function to execute
240
+ * @param context - Context for error reporting (e.g., 'Bold.onUpdate')
241
+ * @returns The function result, or undefined if an error occurred
242
+ */
243
+ safeCall<T>(fn: () => T, context: string): T | undefined;
244
+ /**
245
+ * Calls onBeforeCreate on all extensions
246
+ */
247
+ callOnBeforeCreate(): void;
248
+ /**
249
+ * Calls onCreate on all extensions
250
+ */
251
+ callOnCreate(): void;
252
+ /**
253
+ * Calls onUpdate on all extensions
254
+ */
255
+ callOnUpdate(): void;
256
+ /**
257
+ * Calls onSelectionUpdate on all extensions
258
+ */
259
+ callOnSelectionUpdate(): void;
260
+ /**
261
+ * Calls onTransaction on all extensions
262
+ * @param props - Transaction props
263
+ */
264
+ callOnTransaction(props: {
265
+ transaction: Transaction;
266
+ }): void;
267
+ /**
268
+ * Calls onFocus on all extensions
269
+ * @param props - Focus event props
270
+ */
271
+ callOnFocus(props: {
272
+ event: FocusEvent;
273
+ }): void;
274
+ /**
275
+ * Calls onBlur on all extensions
276
+ * @param props - Blur event props
277
+ */
278
+ callOnBlur(props: {
279
+ event: FocusEvent;
280
+ }): void;
281
+ }
282
+ export {};
283
+ //# sourceMappingURL=ExtensionManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExtensionManager.d.ts","sourceRoot":"","sources":["../src/ExtensionManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAO9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAMtD;;GAEG;AACH,UAAU,eAAe;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;CACrD;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CAC/D;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,UAAU,CAAC,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;IAExC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAgCD,qBAAa,gBAAgB;IAC3B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAE7C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IAExC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IAExD;;OAEG;IACH,OAAO,CAAC,WAAW,CAAS;IAE5B;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAyB;IAEzC;;OAEG;IACH,OAAO,CAAC,SAAS,CAA2B;IAE5C;;OAEG;IACH,OAAO,CAAC,aAAa,CAA8B;IAEnD;;OAEG;IACH,OAAO,CAAC,UAAU,CAAoD;IAEtE;;;;;OAKG;gBACS,OAAO,EAAE,uBAAuB,EAAE,MAAM,EAAE,sBAAsB;IAwC5E;;OAEG;IACH,IAAI,UAAU,IAAI,SAAS,YAAY,EAAE,CAExC;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAErC;IAED;;;OAGG;IACH,IAAI,OAAO,IAAI,MAAM,EAAE,CAGtB;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,UAAU,CAGzB;IAED;;;OAGG;IACH,IAAI,YAAY,IAAI,WAAW,EAAE,CAGhC;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAGnD;IAID;;;OAGG;IACH,cAAc,IAAI,IAAI;IAStB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAcvB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAO9B;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAyB/B;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAuF7B;;OAEG;IACH,OAAO,CAAC,WAAW;IA4CnB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAwBzB;;OAEG;IACH,OAAO,CAAC,YAAY;IAkCpB;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IA8BhC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAmBzB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAoBvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAmB3B;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IA4BxB;;;OAGG;IACH,cAAc,IAAI,IAAI;IAwBtB;;;OAGG;IACH,OAAO,IAAI,IAAI;IA0Bf;;;;;;;;;OASG;IACH,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAyBxD;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAW1B;;OAEG;IACH,YAAY,IAAI,IAAI;IAWpB;;OAEG;IACH,YAAY,IAAI,IAAI;IAWpB;;OAEG;IACH,qBAAqB,IAAI,IAAI;IAW7B;;;OAGG;IACH,iBAAiB,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,WAAW,CAAA;KAAE,GAAG,IAAI;IAW5D;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI;IAW/C;;;OAGG;IACH,UAAU,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI;CAU/C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ExtensionManager.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExtensionManager.test.d.ts","sourceRoot":"","sources":["../src/ExtensionManager.test.ts"],"names":[],"mappings":""}
package/dist/Mark.d.ts ADDED
@@ -0,0 +1,164 @@
1
+ /**
2
+ * Mark - Base class for mark extensions
3
+ *
4
+ * Marks define inline formatting that can be applied to text.
5
+ * Examples: Bold, Italic, Link, Code, etc.
6
+ *
7
+ * Three-tier model:
8
+ * - Extension (type: 'extension') → Pure functionality (History, Placeholder, etc.)
9
+ * - Node (type: 'node') → Schema nodes (Paragraph, Heading, etc.)
10
+ * - Mark (type: 'mark') → Schema marks (Bold, Italic, etc.)
11
+ *
12
+ * @example
13
+ * const Bold = Mark.create({
14
+ * name: 'bold',
15
+ * parseHTML() {
16
+ * return [
17
+ * { tag: 'strong' },
18
+ * { tag: 'b' },
19
+ * { style: 'font-weight=bold' },
20
+ * ];
21
+ * },
22
+ * renderHTML({ HTMLAttributes }) {
23
+ * return ['strong', HTMLAttributes, 0];
24
+ * },
25
+ * });
26
+ */
27
+ import type { MarkSpec, MarkType } from '@domternal/pm/model';
28
+ import { Extension, type ExtensionEditorInterface } from './Extension.js';
29
+ import type { MarkConfig, MarkContext } from './types/MarkConfig.js';
30
+ /**
31
+ * Extended editor interface for Mark
32
+ * Includes schema access for MarkType getter
33
+ */
34
+ export interface MarkEditorInterface extends ExtensionEditorInterface {
35
+ readonly schema: {
36
+ marks: Record<string, MarkType>;
37
+ };
38
+ }
39
+ /**
40
+ * Base class for mark extensions
41
+ *
42
+ * @typeParam Options - Mark options type
43
+ * @typeParam Storage - Mark storage type
44
+ */
45
+ export declare class Mark<Options = unknown, Storage = unknown> extends Extension<Options, Storage> {
46
+ /**
47
+ * Mark type identifier
48
+ * Distinguishes marks from extensions and nodes
49
+ */
50
+ readonly type: "mark";
51
+ /**
52
+ * The original configuration object
53
+ * Typed as MarkConfig for mark-specific properties
54
+ */
55
+ readonly config: MarkConfig<Options, Storage>;
56
+ /**
57
+ * Editor instance with schema access
58
+ * null until set by ExtensionManager
59
+ */
60
+ editor: MarkEditorInterface | null;
61
+ /**
62
+ * Protected constructor - use Mark.create() instead
63
+ */
64
+ protected constructor(config: MarkConfig<Options, Storage>);
65
+ /**
66
+ * Whether this mark represents visual formatting.
67
+ * Returns false for semantic marks (links, comments) that should
68
+ * survive `unsetAllMarks`. Defaults to true.
69
+ */
70
+ get isFormatting(): boolean;
71
+ /**
72
+ * Get the ProseMirror MarkType from schema
73
+ *
74
+ * This is a lazy getter because schema doesn't exist at mark creation time.
75
+ * Schema is built FROM marks by ExtensionManager.
76
+ *
77
+ * Returns null if editor is not yet initialized.
78
+ * Always check editor is set before using markType.
79
+ */
80
+ get markType(): MarkType | null;
81
+ /**
82
+ * Get MarkType or throw if not initialized.
83
+ * Use in contexts where editor is guaranteed to be set (like addCommands).
84
+ */
85
+ get markTypeOrThrow(): MarkType;
86
+ /**
87
+ * Creates a new mark instance
88
+ *
89
+ * @param config - Mark configuration
90
+ * @returns New mark instance
91
+ *
92
+ * @example
93
+ * const Bold = Mark.create({
94
+ * name: 'bold',
95
+ * parseHTML() {
96
+ * return [{ tag: 'strong' }, { tag: 'b' }];
97
+ * },
98
+ * });
99
+ */
100
+ static create<O = unknown, S = unknown>(config: MarkConfig<O, S>): Mark<O, S>;
101
+ /**
102
+ * Creates a new mark with merged options
103
+ * Original mark is not modified
104
+ *
105
+ * **Note:** Options are merged shallowly using object spread (`...`).
106
+ * Nested objects are replaced entirely, not deeply merged.
107
+ *
108
+ * @param options - Options to merge with existing options
109
+ * @returns New mark instance with merged options
110
+ *
111
+ * @example
112
+ * const CustomBold = Bold.configure({ HTMLAttributes: { class: 'custom-bold' } });
113
+ *
114
+ * @example
115
+ * // Shallow merge behavior with nested objects:
116
+ * // Given: options = { HTMLAttributes: { class: 'a', id: 'b' } }
117
+ * // configure({ HTMLAttributes: { class: 'c' } })
118
+ * // Result: { HTMLAttributes: { class: 'c' } } — 'id' is lost!
119
+ * // To preserve nested values, spread manually:
120
+ * // configure({ HTMLAttributes: { ...original.options.HTMLAttributes, class: 'c' } })
121
+ */
122
+ configure(options: Partial<Options> & {
123
+ isFormatting?: boolean;
124
+ }): Mark<Options, Storage>;
125
+ /**
126
+ * Creates a new mark with extended configuration
127
+ * Original mark is not modified
128
+ *
129
+ * **Note:** Config is merged shallowly using object spread (`...`).
130
+ * Config properties (like `addAttributes`, `parseHTML`) are
131
+ * replaced entirely, not combined with the base mark's config.
132
+ *
133
+ * @param extendedConfig - Configuration to extend/override
134
+ * @returns New mark instance with extended config
135
+ *
136
+ * @example
137
+ * const CustomBold = Bold.extend({
138
+ * name: 'customBold',
139
+ * addAttributes() {
140
+ * return { ...this.parent?.(), weight: { default: 'bold' } };
141
+ * },
142
+ * });
143
+ *
144
+ * @example
145
+ * // To preserve base mark's parse rules while adding new ones:
146
+ * const Extended = BaseMark.extend({
147
+ * parseHTML() {
148
+ * const baseRules = BaseMark.config.parseHTML?.call(this) ?? [];
149
+ * return [...baseRules, { tag: 'custom-tag' }];
150
+ * },
151
+ * });
152
+ */
153
+ extend<ExtendedOptions = Options, ExtendedStorage = Storage>(extendedConfig: Partial<MarkConfig<ExtendedOptions, ExtendedStorage>> & ThisType<MarkContext<ExtendedOptions, ExtendedStorage>>): Mark<ExtendedOptions, ExtendedStorage>;
154
+ /**
155
+ * Creates a ProseMirror MarkSpec from this mark's configuration
156
+ *
157
+ * Called by ExtensionManager when building the schema.
158
+ * Converts our config format to ProseMirror's MarkSpec format.
159
+ *
160
+ * @returns ProseMirror MarkSpec
161
+ */
162
+ createMarkSpec(): MarkSpec;
163
+ }
164
+ //# sourceMappingURL=Mark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Mark.d.ts","sourceRoot":"","sources":["../src/Mark.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAa,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,KAAK,wBAAwB,EAAgC,MAAM,gBAAgB,CAAC;AACxG,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIrE;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,wBAAwB;IACnE,QAAQ,CAAC,MAAM,EAAE;QACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;KACjC,CAAC;CACH;AAED;;;;;GAKG;AACH,qBAAa,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,CAAE,SAAQ,SAAS,CACvE,OAAO,EACP,OAAO,CACR;IACC;;;OAGG;IACH,SAAkB,IAAI,EAAG,MAAM,CAAU;IAEzC;;;OAGG;IACH,SAAiB,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEtD;;;OAGG;IACM,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAQ;IAEnD;;OAEG;IACH,SAAS,aAAa,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC;IAI1D;;;;OAIG;IACH,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED;;;;;;;;OAQG;IACH,IAAI,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAK9B;IAED;;;OAGG;IACH,IAAI,eAAe,IAAI,QAAQ,CAS9B;IAED;;;;;;;;;;;;;OAaG;WACa,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,EAC7C,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GACvB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAIb;;;;;;;;;;;;;;;;;;;;OAoBG;IACM,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;IAclG;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACM,MAAM,CAAC,eAAe,GAAG,OAAO,EAAE,eAAe,GAAG,OAAO,EAClE,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,GACnE,QAAQ,CAAC,WAAW,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,GACxD,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC;IAMzC;;;;;;;OAOG;IACH,cAAc,IAAI,QAAQ;CA+F3B"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Tests for Mark class
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=Mark.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Mark.test.d.ts","sourceRoot":"","sources":["../src/Mark.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}