@domternal/core 0.3.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 (385) hide show
  1. package/README.md +7 -5
  2. package/dist/CanChecker.d.ts +79 -0
  3. package/dist/CanChecker.d.ts.map +1 -0
  4. package/dist/CanChecker.test.d.ts +2 -0
  5. package/dist/CanChecker.test.d.ts.map +1 -0
  6. package/dist/ChainBuilder.d.ts +119 -0
  7. package/dist/ChainBuilder.d.ts.map +1 -0
  8. package/dist/ChainBuilder.test.d.ts +2 -0
  9. package/dist/ChainBuilder.test.d.ts.map +1 -0
  10. package/dist/CommandManager.d.ts +86 -0
  11. package/dist/CommandManager.d.ts.map +1 -0
  12. package/dist/CommandManager.test.d.ts +2 -0
  13. package/dist/CommandManager.test.d.ts.map +1 -0
  14. package/dist/Editor.d.ts +262 -0
  15. package/dist/Editor.d.ts.map +1 -0
  16. package/dist/Editor.test.d.ts +2 -0
  17. package/dist/Editor.test.d.ts.map +1 -0
  18. package/dist/EventEmitter.d.ts +57 -0
  19. package/dist/EventEmitter.d.ts.map +1 -0
  20. package/dist/EventEmitter.test.d.ts +2 -0
  21. package/dist/EventEmitter.test.d.ts.map +1 -0
  22. package/dist/Extension.d.ts +171 -0
  23. package/dist/Extension.d.ts.map +1 -0
  24. package/dist/Extension.test.d.ts +2 -0
  25. package/dist/Extension.test.d.ts.map +1 -0
  26. package/dist/ExtensionManager.d.ts +283 -0
  27. package/dist/ExtensionManager.d.ts.map +1 -0
  28. package/dist/ExtensionManager.test.d.ts +2 -0
  29. package/dist/ExtensionManager.test.d.ts.map +1 -0
  30. package/dist/Mark.d.ts +164 -0
  31. package/dist/Mark.d.ts.map +1 -0
  32. package/dist/Mark.test.d.ts +5 -0
  33. package/dist/Mark.test.d.ts.map +1 -0
  34. package/dist/Node.d.ts +153 -0
  35. package/dist/Node.d.ts.map +1 -0
  36. package/dist/Node.test.d.ts +2 -0
  37. package/dist/Node.test.d.ts.map +1 -0
  38. package/dist/ToolbarController.d.ts +169 -0
  39. package/dist/ToolbarController.d.ts.map +1 -0
  40. package/dist/ToolbarController.test.d.ts +2 -0
  41. package/dist/ToolbarController.test.d.ts.map +1 -0
  42. package/dist/commandPropsBuilder.d.ts +70 -0
  43. package/dist/commandPropsBuilder.d.ts.map +1 -0
  44. package/dist/commandPropsBuilder.test.d.ts +2 -0
  45. package/dist/commandPropsBuilder.test.d.ts.map +1 -0
  46. package/dist/commands/attributeCommands.d.ts +24 -0
  47. package/dist/commands/attributeCommands.d.ts.map +1 -0
  48. package/dist/commands/attributeCommands.test.d.ts +2 -0
  49. package/dist/commands/attributeCommands.test.d.ts.map +1 -0
  50. package/dist/commands/builtIn.test.d.ts +2 -0
  51. package/dist/commands/builtIn.test.d.ts.map +1 -0
  52. package/dist/commands/contentCommands.d.ts +52 -0
  53. package/dist/commands/contentCommands.d.ts.map +1 -0
  54. package/dist/commands/contentCommands.test.d.ts +2 -0
  55. package/dist/commands/contentCommands.test.d.ts.map +1 -0
  56. package/dist/commands/index.d.ts +43 -0
  57. package/dist/commands/index.d.ts.map +1 -0
  58. package/dist/commands/listCommands.d.ts +15 -0
  59. package/dist/commands/listCommands.d.ts.map +1 -0
  60. package/dist/commands/listCommands.test.d.ts +2 -0
  61. package/dist/commands/listCommands.test.d.ts.map +1 -0
  62. package/dist/commands/markCommands.d.ts +40 -0
  63. package/dist/commands/markCommands.d.ts.map +1 -0
  64. package/dist/commands/markCommands.test.d.ts +2 -0
  65. package/dist/commands/markCommands.test.d.ts.map +1 -0
  66. package/dist/commands/nodeCommands.d.ts +53 -0
  67. package/dist/commands/nodeCommands.d.ts.map +1 -0
  68. package/dist/commands/nodeCommands.test.d.ts +2 -0
  69. package/dist/commands/nodeCommands.test.d.ts.map +1 -0
  70. package/dist/commands/selectionCommands.d.ts +37 -0
  71. package/dist/commands/selectionCommands.d.ts.map +1 -0
  72. package/dist/commands/selectionCommands.test.d.ts +2 -0
  73. package/dist/commands/selectionCommands.test.d.ts.map +1 -0
  74. package/dist/extensions/BaseKeymap.d.ts +36 -0
  75. package/dist/extensions/BaseKeymap.d.ts.map +1 -0
  76. package/dist/extensions/BaseKeymap.test.d.ts +2 -0
  77. package/dist/extensions/BaseKeymap.test.d.ts.map +1 -0
  78. package/dist/extensions/BubbleMenu.d.ts +85 -0
  79. package/dist/extensions/BubbleMenu.d.ts.map +1 -0
  80. package/dist/extensions/BubbleMenu.test.d.ts +2 -0
  81. package/dist/extensions/BubbleMenu.test.d.ts.map +1 -0
  82. package/dist/extensions/CharacterCount.d.ts +60 -0
  83. package/dist/extensions/CharacterCount.d.ts.map +1 -0
  84. package/dist/extensions/CharacterCount.test.d.ts +2 -0
  85. package/dist/extensions/CharacterCount.test.d.ts.map +1 -0
  86. package/dist/extensions/ClearFormatting.d.ts +25 -0
  87. package/dist/extensions/ClearFormatting.d.ts.map +1 -0
  88. package/dist/extensions/ClearFormatting.test.d.ts +2 -0
  89. package/dist/extensions/ClearFormatting.test.d.ts.map +1 -0
  90. package/dist/extensions/Dropcursor.d.ts +20 -0
  91. package/dist/extensions/Dropcursor.d.ts.map +1 -0
  92. package/dist/extensions/Dropcursor.test.d.ts +2 -0
  93. package/dist/extensions/Dropcursor.test.d.ts.map +1 -0
  94. package/dist/extensions/FloatingMenu.d.ts +74 -0
  95. package/dist/extensions/FloatingMenu.d.ts.map +1 -0
  96. package/dist/extensions/FloatingMenu.test.d.ts +2 -0
  97. package/dist/extensions/FloatingMenu.test.d.ts.map +1 -0
  98. package/dist/extensions/Focus.d.ts +26 -0
  99. package/dist/extensions/Focus.d.ts.map +1 -0
  100. package/dist/extensions/Focus.test.d.ts +2 -0
  101. package/dist/extensions/Focus.test.d.ts.map +1 -0
  102. package/dist/extensions/FontFamily.d.ts +41 -0
  103. package/dist/extensions/FontFamily.d.ts.map +1 -0
  104. package/dist/extensions/FontFamily.test.d.ts +2 -0
  105. package/dist/extensions/FontFamily.test.d.ts.map +1 -0
  106. package/dist/extensions/FontSize.d.ts +46 -0
  107. package/dist/extensions/FontSize.d.ts.map +1 -0
  108. package/dist/extensions/FontSize.test.d.ts +2 -0
  109. package/dist/extensions/FontSize.test.d.ts.map +1 -0
  110. package/dist/extensions/Gapcursor.d.ts +3 -0
  111. package/dist/extensions/Gapcursor.d.ts.map +1 -0
  112. package/dist/extensions/Gapcursor.test.d.ts +2 -0
  113. package/dist/extensions/Gapcursor.test.d.ts.map +1 -0
  114. package/dist/extensions/Highlight.d.ts +61 -0
  115. package/dist/extensions/Highlight.d.ts.map +1 -0
  116. package/dist/extensions/Highlight.test.d.ts +2 -0
  117. package/dist/extensions/Highlight.test.d.ts.map +1 -0
  118. package/dist/extensions/History.d.ts +22 -0
  119. package/dist/extensions/History.d.ts.map +1 -0
  120. package/dist/extensions/History.test.d.ts +2 -0
  121. package/dist/extensions/History.test.d.ts.map +1 -0
  122. package/dist/extensions/InvisibleChars.d.ts +86 -0
  123. package/dist/extensions/InvisibleChars.d.ts.map +1 -0
  124. package/dist/extensions/InvisibleChars.test.d.ts +2 -0
  125. package/dist/extensions/InvisibleChars.test.d.ts.map +1 -0
  126. package/dist/extensions/LineHeight.d.ts +50 -0
  127. package/dist/extensions/LineHeight.d.ts.map +1 -0
  128. package/dist/extensions/LineHeight.test.d.ts +2 -0
  129. package/dist/extensions/LineHeight.test.d.ts.map +1 -0
  130. package/dist/extensions/LinkPopover.d.ts +10 -0
  131. package/dist/extensions/LinkPopover.d.ts.map +1 -0
  132. package/dist/extensions/ListKeymap.d.ts +10 -0
  133. package/dist/extensions/ListKeymap.d.ts.map +1 -0
  134. package/dist/extensions/ListKeymap.test.d.ts +2 -0
  135. package/dist/extensions/ListKeymap.test.d.ts.map +1 -0
  136. package/dist/extensions/Placeholder.d.ts +47 -0
  137. package/dist/extensions/Placeholder.d.ts.map +1 -0
  138. package/dist/extensions/Placeholder.test.d.ts +2 -0
  139. package/dist/extensions/Placeholder.test.d.ts.map +1 -0
  140. package/dist/extensions/Selection.d.ts +71 -0
  141. package/dist/extensions/Selection.d.ts.map +1 -0
  142. package/dist/extensions/Selection.test.d.ts +2 -0
  143. package/dist/extensions/Selection.test.d.ts.map +1 -0
  144. package/dist/extensions/SelectionDecoration.d.ts +18 -0
  145. package/dist/extensions/SelectionDecoration.d.ts.map +1 -0
  146. package/dist/extensions/SelectionDecoration.test.d.ts +2 -0
  147. package/dist/extensions/SelectionDecoration.test.d.ts.map +1 -0
  148. package/dist/extensions/StarterKit.d.ts +138 -0
  149. package/dist/extensions/StarterKit.d.ts.map +1 -0
  150. package/dist/extensions/StarterKit.test.d.ts +2 -0
  151. package/dist/extensions/StarterKit.test.d.ts.map +1 -0
  152. package/dist/extensions/TextAlign.d.ts +32 -0
  153. package/dist/extensions/TextAlign.d.ts.map +1 -0
  154. package/dist/extensions/TextAlign.test.d.ts +2 -0
  155. package/dist/extensions/TextAlign.test.d.ts.map +1 -0
  156. package/dist/extensions/TextColor.d.ts +55 -0
  157. package/dist/extensions/TextColor.d.ts.map +1 -0
  158. package/dist/extensions/TextColor.test.d.ts +2 -0
  159. package/dist/extensions/TextColor.test.d.ts.map +1 -0
  160. package/dist/extensions/TrailingNode.d.ts +16 -0
  161. package/dist/extensions/TrailingNode.d.ts.map +1 -0
  162. package/dist/extensions/TrailingNode.test.d.ts +2 -0
  163. package/dist/extensions/TrailingNode.test.d.ts.map +1 -0
  164. package/dist/extensions/Typography.d.ts +65 -0
  165. package/dist/extensions/Typography.d.ts.map +1 -0
  166. package/dist/extensions/Typography.test.d.ts +2 -0
  167. package/dist/extensions/Typography.test.d.ts.map +1 -0
  168. package/dist/extensions/UniqueID.d.ts +48 -0
  169. package/dist/extensions/UniqueID.d.ts.map +1 -0
  170. package/dist/extensions/UniqueID.test.d.ts +2 -0
  171. package/dist/extensions/UniqueID.test.d.ts.map +1 -0
  172. package/dist/extensions/index.d.ts +29 -0
  173. package/dist/extensions/index.d.ts.map +1 -0
  174. package/dist/extensions/isActive-markExclusion.test.d.ts +2 -0
  175. package/dist/extensions/isActive-markExclusion.test.d.ts.map +1 -0
  176. package/dist/helpers/callOrReturn.d.ts +30 -0
  177. package/dist/helpers/callOrReturn.d.ts.map +1 -0
  178. package/dist/helpers/callOrReturn.test.d.ts +2 -0
  179. package/dist/helpers/callOrReturn.test.d.ts.map +1 -0
  180. package/dist/helpers/createDocument.d.ts +48 -0
  181. package/dist/helpers/createDocument.d.ts.map +1 -0
  182. package/dist/helpers/createDocument.test.d.ts +2 -0
  183. package/dist/helpers/createDocument.test.d.ts.map +1 -0
  184. package/dist/helpers/defaultBlockAt.d.ts +15 -0
  185. package/dist/helpers/defaultBlockAt.d.ts.map +1 -0
  186. package/dist/helpers/defaultBlockAt.test.d.ts +2 -0
  187. package/dist/helpers/defaultBlockAt.test.d.ts.map +1 -0
  188. package/dist/helpers/findChildren.d.ts +13 -0
  189. package/dist/helpers/findChildren.d.ts.map +1 -0
  190. package/dist/helpers/findChildren.test.d.ts +2 -0
  191. package/dist/helpers/findChildren.test.d.ts.map +1 -0
  192. package/dist/helpers/findParentNode.d.ts +21 -0
  193. package/dist/helpers/findParentNode.d.ts.map +1 -0
  194. package/dist/helpers/findParentNode.test.d.ts +2 -0
  195. package/dist/helpers/findParentNode.test.d.ts.map +1 -0
  196. package/dist/helpers/getMarkRange.d.ts +17 -0
  197. package/dist/helpers/getMarkRange.d.ts.map +1 -0
  198. package/dist/helpers/getMarkRange.test.d.ts +2 -0
  199. package/dist/helpers/getMarkRange.test.d.ts.map +1 -0
  200. package/dist/helpers/index.d.ts +18 -0
  201. package/dist/helpers/index.d.ts.map +1 -0
  202. package/dist/helpers/inputRulesPlugin.d.ts +26 -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.cjs +20 -12
  240. package/dist/index.cjs.map +1 -1
  241. package/dist/index.d.cts +823 -794
  242. package/dist/index.d.ts +23 -5803
  243. package/dist/index.d.ts.map +1 -0
  244. package/dist/index.js +20 -12
  245. package/dist/index.js.map +1 -1
  246. package/dist/index.test.d.ts +2 -0
  247. package/dist/index.test.d.ts.map +1 -0
  248. package/dist/marks/Bold.d.ts +40 -0
  249. package/dist/marks/Bold.d.ts.map +1 -0
  250. package/dist/marks/Bold.test.d.ts +2 -0
  251. package/dist/marks/Bold.test.d.ts.map +1 -0
  252. package/dist/marks/Code.d.ts +40 -0
  253. package/dist/marks/Code.d.ts.map +1 -0
  254. package/dist/marks/Code.test.d.ts +2 -0
  255. package/dist/marks/Code.test.d.ts.map +1 -0
  256. package/dist/marks/Italic.d.ts +40 -0
  257. package/dist/marks/Italic.d.ts.map +1 -0
  258. package/dist/marks/Italic.test.d.ts +2 -0
  259. package/dist/marks/Italic.test.d.ts.map +1 -0
  260. package/dist/marks/Link.d.ts +75 -0
  261. package/dist/marks/Link.d.ts.map +1 -0
  262. package/dist/marks/Link.test.d.ts +2 -0
  263. package/dist/marks/Link.test.d.ts.map +1 -0
  264. package/dist/marks/Strike.d.ts +39 -0
  265. package/dist/marks/Strike.d.ts.map +1 -0
  266. package/dist/marks/Strike.test.d.ts +2 -0
  267. package/dist/marks/Strike.test.d.ts.map +1 -0
  268. package/dist/marks/Subscript.d.ts +38 -0
  269. package/dist/marks/Subscript.d.ts.map +1 -0
  270. package/dist/marks/Subscript.test.d.ts +2 -0
  271. package/dist/marks/Subscript.test.d.ts.map +1 -0
  272. package/dist/marks/Superscript.d.ts +38 -0
  273. package/dist/marks/Superscript.d.ts.map +1 -0
  274. package/dist/marks/Superscript.test.d.ts +2 -0
  275. package/dist/marks/Superscript.test.d.ts.map +1 -0
  276. package/dist/marks/TextStyle.d.ts +41 -0
  277. package/dist/marks/TextStyle.d.ts.map +1 -0
  278. package/dist/marks/TextStyle.test.d.ts +2 -0
  279. package/dist/marks/TextStyle.test.d.ts.map +1 -0
  280. package/dist/marks/Underline.d.ts +38 -0
  281. package/dist/marks/Underline.d.ts.map +1 -0
  282. package/dist/marks/Underline.test.d.ts +2 -0
  283. package/dist/marks/Underline.test.d.ts.map +1 -0
  284. package/dist/marks/helpers/autolinkPlugin.d.ts +48 -0
  285. package/dist/marks/helpers/autolinkPlugin.d.ts.map +1 -0
  286. package/dist/marks/helpers/autolinkPlugin.test.d.ts +2 -0
  287. package/dist/marks/helpers/autolinkPlugin.test.d.ts.map +1 -0
  288. package/dist/marks/helpers/index.d.ts +10 -0
  289. package/dist/marks/helpers/index.d.ts.map +1 -0
  290. package/dist/marks/helpers/linkClickPlugin.d.ts +43 -0
  291. package/dist/marks/helpers/linkClickPlugin.d.ts.map +1 -0
  292. package/dist/marks/helpers/linkClickPlugin.test.d.ts +2 -0
  293. package/dist/marks/helpers/linkClickPlugin.test.d.ts.map +1 -0
  294. package/dist/marks/helpers/linkExitPlugin.d.ts +37 -0
  295. package/dist/marks/helpers/linkExitPlugin.d.ts.map +1 -0
  296. package/dist/marks/helpers/linkExitPlugin.test.d.ts +2 -0
  297. package/dist/marks/helpers/linkExitPlugin.test.d.ts.map +1 -0
  298. package/dist/marks/helpers/linkPastePlugin.d.ts +44 -0
  299. package/dist/marks/helpers/linkPastePlugin.d.ts.map +1 -0
  300. package/dist/marks/helpers/linkPastePlugin.test.d.ts +2 -0
  301. package/dist/marks/helpers/linkPastePlugin.test.d.ts.map +1 -0
  302. package/dist/marks/index.d.ts +16 -0
  303. package/dist/marks/index.d.ts.map +1 -0
  304. package/dist/nodes/Blockquote.d.ts +19 -0
  305. package/dist/nodes/Blockquote.d.ts.map +1 -0
  306. package/dist/nodes/Blockquote.test.d.ts +2 -0
  307. package/dist/nodes/Blockquote.test.d.ts.map +1 -0
  308. package/dist/nodes/BulletList.d.ts +18 -0
  309. package/dist/nodes/BulletList.d.ts.map +1 -0
  310. package/dist/nodes/BulletList.test.d.ts +2 -0
  311. package/dist/nodes/BulletList.test.d.ts.map +1 -0
  312. package/dist/nodes/CodeBlock.d.ts +29 -0
  313. package/dist/nodes/CodeBlock.d.ts.map +1 -0
  314. package/dist/nodes/CodeBlock.test.d.ts +2 -0
  315. package/dist/nodes/CodeBlock.test.d.ts.map +1 -0
  316. package/dist/nodes/Document.d.ts +9 -0
  317. package/dist/nodes/Document.d.ts.map +1 -0
  318. package/dist/nodes/Document.test.d.ts +2 -0
  319. package/dist/nodes/Document.test.d.ts.map +1 -0
  320. package/dist/nodes/HardBreak.d.ts +18 -0
  321. package/dist/nodes/HardBreak.d.ts.map +1 -0
  322. package/dist/nodes/HardBreak.test.d.ts +2 -0
  323. package/dist/nodes/HardBreak.test.d.ts.map +1 -0
  324. package/dist/nodes/Heading.d.ts +23 -0
  325. package/dist/nodes/Heading.d.ts.map +1 -0
  326. package/dist/nodes/Heading.test.d.ts +2 -0
  327. package/dist/nodes/Heading.test.d.ts.map +1 -0
  328. package/dist/nodes/HorizontalRule.d.ts +17 -0
  329. package/dist/nodes/HorizontalRule.test.d.ts +2 -0
  330. package/dist/nodes/HorizontalRule.test.d.ts.map +1 -0
  331. package/dist/nodes/ListItem.d.ts +16 -0
  332. package/dist/nodes/ListItem.d.ts.map +1 -0
  333. package/dist/nodes/ListItem.test.d.ts +2 -0
  334. package/dist/nodes/ListItem.test.d.ts.map +1 -0
  335. package/dist/nodes/OrderedList.d.ts +18 -0
  336. package/dist/nodes/OrderedList.d.ts.map +1 -0
  337. package/dist/nodes/OrderedList.test.d.ts +2 -0
  338. package/dist/nodes/OrderedList.test.d.ts.map +1 -0
  339. package/dist/nodes/Paragraph.d.ts +17 -0
  340. package/dist/nodes/Paragraph.d.ts.map +1 -0
  341. package/dist/nodes/Paragraph.test.d.ts +2 -0
  342. package/dist/nodes/Paragraph.test.d.ts.map +1 -0
  343. package/dist/nodes/TaskItem.d.ts +24 -0
  344. package/dist/nodes/TaskItem.d.ts.map +1 -0
  345. package/dist/nodes/TaskItem.test.d.ts +2 -0
  346. package/dist/nodes/TaskItem.test.d.ts.map +1 -0
  347. package/dist/nodes/TaskList.d.ts +18 -0
  348. package/dist/nodes/TaskList.d.ts.map +1 -0
  349. package/dist/nodes/TaskList.test.d.ts +2 -0
  350. package/dist/nodes/TaskList.test.d.ts.map +1 -0
  351. package/dist/nodes/Text.d.ts +9 -0
  352. package/dist/nodes/Text.d.ts.map +1 -0
  353. package/dist/nodes/Text.test.d.ts +2 -0
  354. package/dist/nodes/Text.test.d.ts.map +1 -0
  355. package/dist/nodes/index.d.ts +19 -0
  356. package/dist/nodes/index.d.ts.map +1 -0
  357. package/dist/nodes/integration.test.d.ts +7 -0
  358. package/dist/nodes/integration.test.d.ts.map +1 -0
  359. package/dist/types/AttributeSpec.d.ts +78 -0
  360. package/dist/types/AttributeSpec.d.ts.map +1 -0
  361. package/dist/types/Commands.d.ts +125 -0
  362. package/dist/types/Commands.d.ts.map +1 -0
  363. package/dist/types/Content.d.ts +40 -0
  364. package/dist/types/Content.d.ts.map +1 -0
  365. package/dist/types/EditorEvents.d.ts +131 -0
  366. package/dist/types/EditorEvents.d.ts.map +1 -0
  367. package/dist/types/EditorOptions.d.ts +133 -0
  368. package/dist/types/EditorOptions.d.ts.map +1 -0
  369. package/dist/types/ExtensionConfig.d.ts +271 -0
  370. package/dist/types/ExtensionConfig.d.ts.map +1 -0
  371. package/dist/types/MarkConfig.d.ts +206 -0
  372. package/dist/types/MarkConfig.d.ts.map +1 -0
  373. package/dist/types/NodeConfig.d.ts +263 -0
  374. package/dist/types/NodeConfig.d.ts.map +1 -0
  375. package/dist/types/Toolbar.d.ts +172 -0
  376. package/dist/types/Toolbar.d.ts.map +1 -0
  377. package/dist/types/index.d.ts +13 -0
  378. package/dist/types/index.d.ts.map +1 -0
  379. package/dist/utils/inlineStyles.d.ts +83 -0
  380. package/dist/utils/inlineStyles.d.ts.map +1 -0
  381. package/dist/utils/inlineStyles.test.d.ts +2 -0
  382. package/dist/utils/inlineStyles.test.d.ts.map +1 -0
  383. package/dist/utils/positionFloating.d.ts +74 -0
  384. package/dist/utils/positionFloating.d.ts.map +1 -0
  385. package/package.json +2 -2
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"}
package/dist/Node.d.ts ADDED
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Node - Base class for node extensions
3
+ *
4
+ * Nodes define document structure elements that contribute to the schema.
5
+ * Examples: Paragraph, Heading, List, Image, 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 Paragraph = Node.create({
14
+ * name: 'paragraph',
15
+ * group: 'block',
16
+ * content: 'inline*',
17
+ * parseHTML() {
18
+ * return [{ tag: 'p' }];
19
+ * },
20
+ * renderHTML({ HTMLAttributes }) {
21
+ * return ['p', HTMLAttributes, 0];
22
+ * },
23
+ * });
24
+ */
25
+ import type { NodeSpec, NodeType } from '@domternal/pm/model';
26
+ import { Extension, type ExtensionEditorInterface } from './Extension.js';
27
+ import type { NodeConfig, NodeContext } from './types/NodeConfig.js';
28
+ /**
29
+ * Extended editor interface for Node
30
+ * Includes schema access for NodeType getter
31
+ */
32
+ export interface NodeEditorInterface extends ExtensionEditorInterface {
33
+ readonly schema: {
34
+ nodes: Record<string, NodeType>;
35
+ };
36
+ }
37
+ /**
38
+ * Base class for node extensions
39
+ *
40
+ * @typeParam Options - Node options type
41
+ * @typeParam Storage - Node storage type
42
+ */
43
+ export declare class Node<Options = unknown, Storage = unknown> extends Extension<Options, Storage> {
44
+ /**
45
+ * Node type identifier
46
+ * Distinguishes nodes from extensions and marks
47
+ */
48
+ readonly type: "node";
49
+ /**
50
+ * The original configuration object
51
+ * Typed as NodeConfig for node-specific properties
52
+ */
53
+ readonly config: NodeConfig<Options, Storage>;
54
+ /**
55
+ * Editor instance with schema access
56
+ * null until set by ExtensionManager
57
+ */
58
+ editor: NodeEditorInterface | null;
59
+ /**
60
+ * Protected constructor - use Node.create() instead
61
+ */
62
+ protected constructor(config: NodeConfig<Options, Storage>);
63
+ /**
64
+ * Get the ProseMirror NodeType from schema
65
+ *
66
+ * This is a lazy getter because schema doesn't exist at node creation time.
67
+ * Schema is built FROM nodes by ExtensionManager.
68
+ *
69
+ * Returns null if editor is not yet initialized.
70
+ * Always check editor is set before using nodeType.
71
+ */
72
+ get nodeType(): NodeType | null;
73
+ /**
74
+ * Get NodeType or throw if not initialized.
75
+ * Use in contexts where editor is guaranteed to be set (like addCommands).
76
+ */
77
+ get nodeTypeOrThrow(): NodeType;
78
+ /**
79
+ * Creates a new node instance
80
+ *
81
+ * @param config - Node configuration
82
+ * @returns New node instance
83
+ *
84
+ * @example
85
+ * const Paragraph = Node.create({
86
+ * name: 'paragraph',
87
+ * group: 'block',
88
+ * content: 'inline*',
89
+ * });
90
+ */
91
+ static create<O = unknown, S = unknown>(config: NodeConfig<O, S>): Node<O, S>;
92
+ /**
93
+ * Creates a new node with merged options
94
+ * Original node is not modified
95
+ *
96
+ * **Note:** Options are merged shallowly using object spread (`...`).
97
+ * Nested objects are replaced entirely, not deeply merged.
98
+ *
99
+ * @param options - Options to merge with existing options
100
+ * @returns New node instance with merged options
101
+ *
102
+ * @example
103
+ * const CustomParagraph = Paragraph.configure({ HTMLAttributes: { class: 'custom' } });
104
+ *
105
+ * @example
106
+ * // Shallow merge behavior with nested objects:
107
+ * // Given: options = { HTMLAttributes: { class: 'a', id: 'b' } }
108
+ * // configure({ HTMLAttributes: { class: 'c' } })
109
+ * // Result: { HTMLAttributes: { class: 'c' } } — 'id' is lost!
110
+ * // To preserve nested values, spread manually:
111
+ * // configure({ HTMLAttributes: { ...original.options.HTMLAttributes, class: 'c' } })
112
+ */
113
+ configure(options: Partial<Options>): Node<Options, Storage>;
114
+ /**
115
+ * Creates a new node with extended configuration
116
+ * Original node is not modified
117
+ *
118
+ * **Note:** Config is merged shallowly using object spread (`...`).
119
+ * Config properties (like `addAttributes`, `parseHTML`) are
120
+ * replaced entirely, not combined with the base node's config.
121
+ *
122
+ * @param extendedConfig - Configuration to extend/override
123
+ * @returns New node instance with extended config
124
+ *
125
+ * @example
126
+ * const CustomParagraph = Paragraph.extend({
127
+ * name: 'customParagraph',
128
+ * addAttributes() {
129
+ * return { ...this.parent?.(), align: { default: 'left' } };
130
+ * },
131
+ * });
132
+ *
133
+ * @example
134
+ * // To preserve base node's parse rules while adding new ones:
135
+ * const Extended = BaseNode.extend({
136
+ * parseHTML() {
137
+ * const baseRules = BaseNode.config.parseHTML?.call(this) ?? [];
138
+ * return [...baseRules, { tag: 'custom-tag' }];
139
+ * },
140
+ * });
141
+ */
142
+ extend<ExtendedOptions = Options, ExtendedStorage = Storage>(extendedConfig: Partial<NodeConfig<ExtendedOptions, ExtendedStorage>> & ThisType<NodeContext<ExtendedOptions, ExtendedStorage>>): Node<ExtendedOptions, ExtendedStorage>;
143
+ /**
144
+ * Creates a ProseMirror NodeSpec from this node's configuration
145
+ *
146
+ * Called by ExtensionManager when building the schema.
147
+ * Converts our config format to ProseMirror's NodeSpec format.
148
+ *
149
+ * @returns ProseMirror NodeSpec
150
+ */
151
+ createNodeSpec(): NodeSpec;
152
+ }
153
+ //# sourceMappingURL=Node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Node.d.ts","sourceRoot":"","sources":["../src/Node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAgB,MAAM,qBAAqB,CAAC;AAC5E,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;;;;;;;;OAQG;IACH,IAAI,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAK9B;IAED;;;OAGG;IACH,IAAI,eAAe,IAAI,QAAQ,CAS9B;IAED;;;;;;;;;;;;OAYG;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,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;IAYrE;;;;;;;;;;;;;;;;;;;;;;;;;;;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;CAqI3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Node.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Node.test.d.ts","sourceRoot":"","sources":["../src/Node.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,169 @@
1
+ /**
2
+ * ToolbarController — Headless, framework-agnostic toolbar state machine
3
+ *
4
+ * Manages toolbar item collection, grouping, active state tracking,
5
+ * dropdown state, and keyboard navigation. Framework wrappers (Angular,
6
+ * React, Vue) bind their templates to this controller.
7
+ *
8
+ * @example
9
+ * const controller = new ToolbarController(editor, () => {
10
+ * // Called on every state change — trigger framework re-render
11
+ * });
12
+ * controller.subscribe();
13
+ * // ... use controller.groups, controller.activeMap, etc.
14
+ * controller.destroy();
15
+ */
16
+ import type { ToolbarItem, ToolbarButton, ToolbarLayoutEntry } from './types/Toolbar.js';
17
+ /**
18
+ * Editor interface for ToolbarController.
19
+ * Minimal surface to avoid circular dependency on Editor class.
20
+ */
21
+ export interface ToolbarControllerEditor {
22
+ readonly toolbarItems: ToolbarItem[];
23
+ readonly storage: Record<string, unknown>;
24
+ isActive(nameOrAttributes: string | {
25
+ name: string;
26
+ attributes?: Record<string, unknown>;
27
+ }, attributes?: Record<string, unknown>): boolean;
28
+ readonly commands: Record<string, (...args: unknown[]) => boolean>;
29
+ can(): Record<string, (...args: unknown[]) => boolean>;
30
+ on(event: string, handler: (...args: unknown[]) => void): void;
31
+ off(event: string, handler: (...args: unknown[]) => void): void;
32
+ }
33
+ /**
34
+ * A group of toolbar items with the same group name.
35
+ */
36
+ export interface ToolbarGroup {
37
+ name: string;
38
+ items: ToolbarItem[];
39
+ }
40
+ /** Minimal editor shape for static helpers (avoids strict ToolbarControllerEditor compatibility issues) */
41
+ interface ToolbarItemEditor {
42
+ readonly storage: Record<string, unknown>;
43
+ readonly commands: Record<string, (...args: unknown[]) => boolean>;
44
+ isActive(nameOrAttributes: string | {
45
+ name: string;
46
+ attributes?: Record<string, unknown>;
47
+ }, attributes?: Record<string, unknown>): boolean;
48
+ }
49
+ export declare class ToolbarController {
50
+ /**
51
+ * Resolves the active state of a toolbar button against the editor.
52
+ * Shared between ToolbarController and framework components (e.g. bubble-menu).
53
+ */
54
+ static resolveActive(editor: ToolbarItemEditor, item: ToolbarButton): boolean;
55
+ /**
56
+ * Executes a toolbar button's command on the editor.
57
+ * Shared between ToolbarController and framework components (e.g. bubble-menu).
58
+ */
59
+ static executeItem(editor: ToolbarItemEditor, item: ToolbarButton): void;
60
+ private editor;
61
+ private onChange;
62
+ private _layout;
63
+ private transactionHandler;
64
+ /** Grouped and sorted toolbar items */
65
+ private _groups;
66
+ /** Active state for each button (keyed by item.name) */
67
+ private _activeMap;
68
+ /** Disabled state for each button (keyed by item.name) */
69
+ private _disabledMap;
70
+ /** Expanded state for emitEvent buttons — true when their panel is open */
71
+ private _expandedMap;
72
+ /** Currently open dropdown name (null = none) */
73
+ private _openDropdown;
74
+ /** Focused button index for roving tabindex (-1 = none) */
75
+ private _focusedIndex;
76
+ /** Flat list of top-level buttons/dropdowns for keyboard nav */
77
+ private _flatButtons;
78
+ constructor(editor: ToolbarControllerEditor, onChange: () => void, layout?: ToolbarLayoutEntry[]);
79
+ get groups(): ToolbarGroup[];
80
+ get activeMap(): ReadonlyMap<string, boolean>;
81
+ get disabledMap(): ReadonlyMap<string, boolean>;
82
+ get expandedMap(): ReadonlyMap<string, boolean>;
83
+ get openDropdown(): string | null;
84
+ get focusedIndex(): number;
85
+ get flatButtonCount(): number;
86
+ /**
87
+ * Checks if a toolbar button is currently active.
88
+ */
89
+ isActive(item: ToolbarButton): boolean;
90
+ /**
91
+ * Checks if a toolbar button is currently disabled (command cannot execute).
92
+ */
93
+ isDisabled(item: ToolbarButton): boolean;
94
+ /**
95
+ * Executes a toolbar button's command.
96
+ */
97
+ executeCommand(item: ToolbarButton): void;
98
+ /**
99
+ * Toggles a dropdown open/closed.
100
+ */
101
+ toggleDropdown(name: string): void;
102
+ /**
103
+ * Closes any open dropdown.
104
+ */
105
+ closeDropdown(): void;
106
+ /**
107
+ * Move focus to the next button (ArrowRight).
108
+ */
109
+ navigateNext(): number;
110
+ /**
111
+ * Move focus to the previous button (ArrowLeft).
112
+ */
113
+ navigatePrev(): number;
114
+ /**
115
+ * Move focus to the first button (Home).
116
+ */
117
+ navigateFirst(): number;
118
+ /**
119
+ * Move focus to the last button (End).
120
+ */
121
+ navigateLast(): number;
122
+ /**
123
+ * Set focused index directly (e.g. on mouse enter).
124
+ */
125
+ setFocusedIndex(index: number): void;
126
+ /**
127
+ * Get the flat index of a top-level item by name.
128
+ */
129
+ getFlatIndex(name: string): number;
130
+ /**
131
+ * Subscribes to editor transaction events for active state tracking.
132
+ */
133
+ subscribe(): void;
134
+ /**
135
+ * Unsubscribes from editor events and cleans up.
136
+ */
137
+ destroy(): void;
138
+ /**
139
+ * Rebuilds groups and flat button list from editor.toolbarItems.
140
+ * When a layout is provided, uses layout-based resolution instead of default grouping.
141
+ */
142
+ private rebuild;
143
+ /**
144
+ * Groups items by their `group` property, preserving extension order within groups.
145
+ * Items without a group go into a default '' group.
146
+ * Within each group, items are sorted by priority (higher first).
147
+ */
148
+ private groupItems;
149
+ /**
150
+ * Resolves a layout array into ToolbarGroups by looking up registered items by name.
151
+ * Separators ('|') split items into visual groups.
152
+ * String entries resolve to existing buttons or dropdowns.
153
+ * ToolbarLayoutDropdown entries build custom dropdowns from named sub-items.
154
+ */
155
+ private resolveLayout;
156
+ /**
157
+ * Builds a flat list of top-level buttons/dropdowns for keyboard navigation.
158
+ */
159
+ private buildFlatList;
160
+ /**
161
+ * Updates active state map by checking editor.isActive() for each button.
162
+ */
163
+ private updateActiveStates;
164
+ private checkButtonDisabled;
165
+ private checkButtonActive;
166
+ private checkButtonExpanded;
167
+ }
168
+ export {};
169
+ //# sourceMappingURL=ToolbarController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolbarController.d.ts","sourceRoot":"","sources":["../src/ToolbarController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ToolbarController.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolbarController.test.d.ts","sourceRoot":"","sources":["../src/ToolbarController.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,70 @@
1
+ import type { EditorState, Transaction } from '@domternal/pm/state';
2
+ import type { EditorView } from '@domternal/pm/view';
3
+ import type { CommandProps, ChainedCommands, CanCommands, SingleCommands } from './types/Commands.js';
4
+ /**
5
+ * Minimal editor interface for command props building
6
+ */
7
+ export interface CommandPropsEditor {
8
+ readonly view: EditorView;
9
+ readonly state: EditorState;
10
+ }
11
+ /**
12
+ * Options for building CommandProps
13
+ */
14
+ export interface BuildCommandPropsOptions {
15
+ /** The editor instance */
16
+ editor: CommandPropsEditor;
17
+ /** The transaction to use */
18
+ tr: Transaction;
19
+ /**
20
+ * Dispatch function - undefined for dry-run mode
21
+ * In chain mode, this accumulates changes on shared transaction
22
+ */
23
+ dispatch: ((tr: Transaction) => void) | undefined;
24
+ /** Function to create chain commands */
25
+ chain: () => ChainedCommands;
26
+ /** Function to create can commands */
27
+ can: () => CanCommands;
28
+ /** Function to create single commands */
29
+ commands: () => SingleCommands;
30
+ }
31
+ /**
32
+ * Builds a CommandProps object with the given options
33
+ *
34
+ * @example
35
+ * // For chain mode with dispatch
36
+ * const props = buildCommandProps({
37
+ * editor,
38
+ * tr,
39
+ * dispatch: (transaction) => { ... },
40
+ * chain: () => this.proxy(),
41
+ * can: () => this.buildCanCommands(),
42
+ * commands: () => this.buildSingleCommands(),
43
+ * });
44
+ *
45
+ * @example
46
+ * // For dry-run mode (can check)
47
+ * const props = buildCommandProps({
48
+ * editor,
49
+ * tr,
50
+ * dispatch: undefined,
51
+ * chain: () => createChainBuilder(),
52
+ * can: () => this.proxy(),
53
+ * commands: () => this.buildSingleCommands(tr),
54
+ * });
55
+ */
56
+ export declare function buildCommandProps(options: BuildCommandPropsOptions): CommandProps;
57
+ /**
58
+ * Creates a dispatch function that accumulates steps on a shared transaction
59
+ *
60
+ * Used in chain mode where multiple commands share the same transaction.
61
+ * If a command creates a new transaction, its steps and metadata are copied
62
+ * to the shared one.
63
+ *
64
+ * Metadata propagation is critical for commands like undo/redo:
65
+ * prosemirror-history sets metadata (addToHistory, plugin state) on its
66
+ * transactions. Without copying this metadata, the shared transaction
67
+ * would be recorded as a new history entry, causing undo to oscillate.
68
+ */
69
+ export declare function createAccumulatingDispatch(sharedTr: Transaction): (tr: Transaction) => void;
70
+ //# sourceMappingURL=commandPropsBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commandPropsBuilder.d.ts","sourceRoot":"","sources":["../src/commandPropsBuilder.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,WAAW,EACX,cAAc,EACf,MAAM,qBAAqB,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,0BAA0B;IAC1B,MAAM,EAAE,kBAAkB,CAAC;IAE3B,6BAA6B;IAC7B,EAAE,EAAE,WAAW,CAAC;IAEhB;;;OAGG;IACH,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAElD,wCAAwC;IACxC,KAAK,EAAE,MAAM,eAAe,CAAC;IAE7B,sCAAsC;IACtC,GAAG,EAAE,MAAM,WAAW,CAAC;IAEvB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,cAAc,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,YAAY,CAcjF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,WAAW,GAAG,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAgC3F"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=commandPropsBuilder.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commandPropsBuilder.test.d.ts","sourceRoot":"","sources":["../src/commandPropsBuilder.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Attribute commands — updateAttributes, resetAttributes
3
+ */
4
+ import type { CommandSpec } from '../types/Commands.js';
5
+ /**
6
+ * UpdateAttributes command - updates attributes on nodes matching a type
7
+ *
8
+ * Updates attributes on all nodes of the specified type within the selection.
9
+ *
10
+ * @param typeOrName - The node type name or NodeType to update
11
+ * @param attributes - The attributes to merge into existing attributes
12
+ */
13
+ export declare const updateAttributes: CommandSpec<[typeOrName: string, attributes: Record<string, unknown>]>;
14
+ /**
15
+ * ResetAttributes command - resets an attribute to its default value
16
+ *
17
+ * Resets the specified attribute on all nodes of the given type within the selection
18
+ * to the default value defined in the schema.
19
+ *
20
+ * @param typeOrName - The node type name to update
21
+ * @param attributeName - The name of the attribute to reset
22
+ */
23
+ export declare const resetAttributes: CommandSpec<[typeOrName: string, attributeName: string]>;
24
+ //# sourceMappingURL=attributeCommands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attributeCommands.d.ts","sourceRoot":"","sources":["../../src/commands/attributeCommands.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA8DjG,CAAC;AAEJ;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAoElF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=attributeCommands.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attributeCommands.test.d.ts","sourceRoot":"","sources":["../../src/commands/attributeCommands.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=builtIn.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtIn.test.d.ts","sourceRoot":"","sources":["../../src/commands/builtIn.test.ts"],"names":[],"mappings":""}