@mx-space/cli 0.14.2 → 0.15.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 (617) hide show
  1. package/README.md +36 -12
  2. package/dist/{Lexical.dev-CtGmYDoh.mjs → Lexical.dev-BSvx45_E.mjs} +350 -402
  3. package/dist/{Lexical.node-8sRFmq2X.mjs → Lexical.node-kAh5GM2n.mjs} +2 -2
  4. package/dist/{Lexical.prod-D-VfeKDz.mjs → Lexical.prod-Bqwgb3ez.mjs} +1757 -1785
  5. package/dist/{LexicalClipboard.dev-CzQ15z6E.mjs → LexicalClipboard.dev-BWU3KXIa.mjs} +19 -15
  6. package/dist/{LexicalClipboard.node-D4gMGws6.mjs → LexicalClipboard.node-BygAdNdF.mjs} +2 -2
  7. package/dist/{LexicalClipboard.prod-CltkQpzS.mjs → LexicalClipboard.prod-BtMuKNyT.mjs} +11 -11
  8. package/dist/{LexicalCodeCore.dev-DkYBZRGB.mjs → LexicalCodeCore.dev-CD2xgvDs.mjs} +95 -89
  9. package/dist/{LexicalCodeCore.prod-COc3_QL8.mjs → LexicalCodeCore.prod-Bl6FFMc7.mjs} +146 -158
  10. package/dist/{LexicalDragon.dev-Dv5_WUae.mjs → LexicalDragon.dev-BwdYhm4K.mjs} +3 -3
  11. package/dist/{LexicalDragon.node-DgjrmWkd.mjs → LexicalDragon.node-CpJhkCVV.mjs} +2 -2
  12. package/dist/{LexicalDragon.prod-DnpbDe-_.mjs → LexicalDragon.prod-CvXmWwo1.mjs} +3 -3
  13. package/dist/{LexicalExtension.dev-JMH_6-OZ.mjs → LexicalExtension.dev-LcRLXI5Z.mjs} +33 -30
  14. package/dist/{LexicalExtension.node-BUozzx4t.mjs → LexicalExtension.node-BwJt2LXV.mjs} +2 -2
  15. package/dist/{LexicalExtension.prod-UiyDgmou.mjs → LexicalExtension.prod-lg8_33-H.mjs} +87 -93
  16. package/dist/{LexicalHeadless.dev-BfLGciiX.mjs → LexicalHeadless.dev-BeUbKBes.mjs} +2 -2
  17. package/dist/{LexicalHeadless.prod-CWF7edmQ.mjs → LexicalHeadless.prod-4gbIA8HM.mjs} +2 -2
  18. package/dist/{LexicalHtml.dev-D5EF5PGW.mjs → LexicalHtml.dev-BLdZWTCJ.mjs} +22 -16
  19. package/dist/{LexicalHtml.node-BYbzHNVe.mjs → LexicalHtml.node-BeuJMvvt.mjs} +2 -2
  20. package/dist/{LexicalHtml.prod-D_FfkvVD.mjs → LexicalHtml.prod-CHUyCocN.mjs} +6 -6
  21. package/dist/{LexicalLink.dev-D3Pgh6ik.mjs → LexicalLink.dev-DgsFRqw0.mjs} +41 -58
  22. package/dist/{LexicalLink.prod-XZoAYVYD.mjs → LexicalLink.prod-CkXkeKY2.mjs} +115 -138
  23. package/dist/{LexicalList.dev-B5d3ObhB.mjs → LexicalList.dev-OOms3kQi.mjs} +15 -47
  24. package/dist/{LexicalList.prod-OQDpVAEb.mjs → LexicalList.prod-DzMBeqHn.mjs} +208 -224
  25. package/dist/{LexicalMarkdown.dev-BkM8G3DG.mjs → LexicalMarkdown.dev-DJLKbZtD.mjs} +42 -30
  26. package/dist/{LexicalMarkdown.prod-DcVXCex6.mjs → LexicalMarkdown.prod-Cp21kDCU.mjs} +12 -8
  27. package/dist/{LexicalRichText.dev-DppD7IrA.mjs → LexicalRichText.dev-0rkAGjUf.mjs} +84 -86
  28. package/dist/{LexicalRichText.node-CPSn7dkg.mjs → LexicalRichText.node-Cd-BySPE.mjs} +8 -8
  29. package/dist/{LexicalRichText.prod-h7JPxFNp.mjs → LexicalRichText.prod-DTQiEr8C.mjs} +96 -100
  30. package/dist/{LexicalSelection.dev-CD0SLbxP.mjs → LexicalSelection.dev-Bi0VlUEv.mjs} +29 -25
  31. package/dist/{LexicalSelection.node-CGlJgUlZ.mjs → LexicalSelection.node-t2U46EF_.mjs} +2 -2
  32. package/dist/{LexicalSelection.prod-DbVZN5AV.mjs → LexicalSelection.prod-CrFG111g.mjs} +3 -3
  33. package/dist/{LexicalTable.dev-D0HU14UV.mjs → LexicalTable.dev-D-sFhO-o.mjs} +288 -154
  34. package/dist/{LexicalTable.prod-BcPNSrxP.mjs → LexicalTable.prod-DwYaa_dN.mjs} +689 -632
  35. package/dist/{LexicalUtils.dev-iKy_TrRT.mjs → LexicalUtils.dev-Q2q3-UDM.mjs} +9 -6
  36. package/dist/{LexicalUtils.node-CIgMS8cG.mjs → LexicalUtils.node-Dl7OvqJV.mjs} +2 -2
  37. package/dist/{LexicalUtils.prod-DIAsKJzu.mjs → LexicalUtils.prod-CBnq_iEV.mjs} +8 -7
  38. package/dist/bin/mxs.mjs +1 -1
  39. package/dist/esm-CNZ7kdTg.mjs +2 -0
  40. package/dist/{esm-CwXl1N0a.mjs → esm-ZXjJmLEC.mjs} +422 -391
  41. package/dist/index.d.mts +16 -16
  42. package/dist/index.mjs +1 -1
  43. package/dist/{mxs-iW9DgqSZ.mjs → mxs-DC9zR3f2.mjs} +2203 -2782
  44. package/dist/{rolldown-runtime-JspESFgx.mjs → rolldown-runtime-B4iAMlE-.mjs} +1 -1
  45. package/dist/src/bin/mxs.d.ts +2 -0
  46. package/dist/src/bin/mxs.js +310 -0
  47. package/dist/src/cli/ai/_poll.d.ts +12 -0
  48. package/dist/src/cli/ai/_poll.js +38 -0
  49. package/dist/src/cli/ai/_resolve.d.ts +8 -0
  50. package/dist/src/cli/ai/_resolve.js +27 -0
  51. package/dist/src/cli/ai/index.d.ts +127 -0
  52. package/dist/src/cli/ai/index.js +46 -0
  53. package/dist/src/cli/ai/insights/by-article.d.ts +10 -0
  54. package/dist/src/cli/ai/insights/by-article.js +21 -0
  55. package/dist/src/cli/ai/insights/delete.d.ts +7 -0
  56. package/dist/src/cli/ai/insights/delete.js +18 -0
  57. package/dist/src/cli/ai/insights/edit.d.ts +8 -0
  58. package/dist/src/cli/ai/insights/edit.js +54 -0
  59. package/dist/src/cli/ai/insights/get.d.ts +6 -0
  60. package/dist/src/cli/ai/insights/get.js +11 -0
  61. package/dist/src/cli/ai/insights/index.d.ts +30 -0
  62. package/dist/src/cli/ai/insights/index.js +17 -0
  63. package/dist/src/cli/ai/insights/list.d.ts +10 -0
  64. package/dist/src/cli/ai/insights/list.js +20 -0
  65. package/dist/src/cli/ai/insights/refresh.d.ts +10 -0
  66. package/dist/src/cli/ai/insights/refresh.js +25 -0
  67. package/dist/src/cli/ai/insights/translate.d.ts +10 -0
  68. package/dist/src/cli/ai/insights/translate.js +25 -0
  69. package/dist/src/cli/ai/overview/by-article.d.ts +7 -0
  70. package/dist/src/cli/ai/overview/by-article.js +15 -0
  71. package/dist/src/cli/ai/overview/index.d.ts +11 -0
  72. package/dist/src/cli/ai/overview/index.js +4 -0
  73. package/dist/src/cli/ai/overview/list.d.ts +10 -0
  74. package/dist/src/cli/ai/overview/list.js +20 -0
  75. package/dist/src/cli/ai/summary/by-article.d.ts +10 -0
  76. package/dist/src/cli/ai/summary/by-article.js +21 -0
  77. package/dist/src/cli/ai/summary/delete.d.ts +7 -0
  78. package/dist/src/cli/ai/summary/delete.js +18 -0
  79. package/dist/src/cli/ai/summary/edit.d.ts +8 -0
  80. package/dist/src/cli/ai/summary/edit.js +54 -0
  81. package/dist/src/cli/ai/summary/get.d.ts +6 -0
  82. package/dist/src/cli/ai/summary/get.js +11 -0
  83. package/dist/src/cli/ai/summary/index.d.ts +30 -0
  84. package/dist/src/cli/ai/summary/index.js +9 -0
  85. package/dist/src/cli/ai/summary/list.d.ts +10 -0
  86. package/dist/src/cli/ai/summary/list.js +20 -0
  87. package/dist/src/cli/ai/summary/regen.d.ts +10 -0
  88. package/dist/src/cli/ai/summary/regen.js +25 -0
  89. package/dist/src/cli/ai/summary/translate.d.ts +10 -0
  90. package/dist/src/cli/ai/summary/translate.js +25 -0
  91. package/dist/src/cli/ai/translate/by-article.d.ts +9 -0
  92. package/dist/src/cli/ai/translate/by-article.js +19 -0
  93. package/dist/src/cli/ai/translate/delete.d.ts +7 -0
  94. package/dist/src/cli/ai/translate/delete.js +18 -0
  95. package/dist/src/cli/ai/translate/edit.d.ts +8 -0
  96. package/dist/src/cli/ai/translate/edit.js +97 -0
  97. package/dist/src/cli/ai/translate/entries/delete.d.ts +7 -0
  98. package/dist/src/cli/ai/translate/entries/delete.js +18 -0
  99. package/dist/src/cli/ai/translate/entries/edit.d.ts +8 -0
  100. package/dist/src/cli/ai/translate/entries/edit.js +73 -0
  101. package/dist/src/cli/ai/translate/entries/generate.d.ts +7 -0
  102. package/dist/src/cli/ai/translate/entries/generate.js +15 -0
  103. package/dist/src/cli/ai/translate/entries/index.d.ts +17 -0
  104. package/dist/src/cli/ai/translate/entries/index.js +6 -0
  105. package/dist/src/cli/ai/translate/entries/list.d.ts +10 -0
  106. package/dist/src/cli/ai/translate/entries/list.js +20 -0
  107. package/dist/src/cli/ai/translate/get.d.ts +6 -0
  108. package/dist/src/cli/ai/translate/get.js +11 -0
  109. package/dist/src/cli/ai/translate/index.d.ts +40 -0
  110. package/dist/src/cli/ai/translate/index.js +19 -0
  111. package/dist/src/cli/ai/translate/languages.d.ts +7 -0
  112. package/dist/src/cli/ai/translate/languages.js +15 -0
  113. package/dist/src/cli/ai/translate/list.d.ts +9 -0
  114. package/dist/src/cli/ai/translate/list.js +19 -0
  115. package/dist/src/cli/ai/translate/run.d.ts +10 -0
  116. package/dist/src/cli/ai/translate/run.js +31 -0
  117. package/dist/src/cli/ai/tts/by-article.d.ts +7 -0
  118. package/dist/src/cli/ai/tts/by-article.js +15 -0
  119. package/dist/src/cli/ai/tts/delete.d.ts +7 -0
  120. package/dist/src/cli/ai/tts/delete.js +18 -0
  121. package/dist/src/cli/ai/tts/index.d.ts +22 -0
  122. package/dist/src/cli/ai/tts/index.js +7 -0
  123. package/dist/src/cli/ai/tts/list.d.ts +10 -0
  124. package/dist/src/cli/ai/tts/list.js +20 -0
  125. package/dist/src/cli/ai/tts/run.d.ts +10 -0
  126. package/dist/src/cli/ai/tts/run.js +25 -0
  127. package/dist/src/cli/ai/tts/voices.d.ts +7 -0
  128. package/dist/src/cli/ai/tts/voices.js +12 -0
  129. package/dist/src/cli/ai/views.d.ts +3 -0
  130. package/dist/src/cli/ai/views.js +45 -0
  131. package/dist/src/cli/auth/index.d.ts +6 -0
  132. package/dist/src/cli/auth/index.js +22 -0
  133. package/dist/src/cli/auth/login.d.ts +11 -0
  134. package/dist/src/cli/auth/login.js +168 -0
  135. package/dist/src/cli/auth/logout.d.ts +6 -0
  136. package/dist/src/cli/auth/logout.js +21 -0
  137. package/dist/src/cli/auth/status.d.ts +4 -0
  138. package/dist/src/cli/auth/status.js +31 -0
  139. package/dist/src/cli/auth/view.d.ts +25 -0
  140. package/dist/src/cli/auth/view.js +46 -0
  141. package/dist/src/cli/auth/whoami.d.ts +7 -0
  142. package/dist/src/cli/auth/whoami.js +44 -0
  143. package/dist/src/cli/category/create.d.ts +10 -0
  144. package/dist/src/cli/category/create.js +24 -0
  145. package/dist/src/cli/category/delete.d.ts +8 -0
  146. package/dist/src/cli/category/delete.js +21 -0
  147. package/dist/src/cli/category/get.d.ts +6 -0
  148. package/dist/src/cli/category/get.js +11 -0
  149. package/dist/src/cli/category/index.d.ts +20 -0
  150. package/dist/src/cli/category/index.js +41 -0
  151. package/dist/src/cli/category/list.d.ts +4 -0
  152. package/dist/src/cli/category/list.js +10 -0
  153. package/dist/src/cli/category/update.d.ts +12 -0
  154. package/dist/src/cli/category/update.js +34 -0
  155. package/dist/src/cli/comment/_flags.d.ts +28 -0
  156. package/dist/src/cli/comment/_flags.js +48 -0
  157. package/dist/src/cli/comment/approve.d.ts +9 -0
  158. package/dist/src/cli/comment/approve.js +23 -0
  159. package/dist/src/cli/comment/delete.d.ts +9 -0
  160. package/dist/src/cli/comment/delete.js +24 -0
  161. package/dist/src/cli/comment/get.d.ts +6 -0
  162. package/dist/src/cli/comment/get.js +12 -0
  163. package/dist/src/cli/comment/index.d.ts +34 -0
  164. package/dist/src/cli/comment/index.js +53 -0
  165. package/dist/src/cli/comment/list.d.ts +9 -0
  166. package/dist/src/cli/comment/list.js +20 -0
  167. package/dist/src/cli/comment/reject.d.ts +9 -0
  168. package/dist/src/cli/comment/reject.js +23 -0
  169. package/dist/src/cli/comment/reply.d.ts +9 -0
  170. package/dist/src/cli/comment/reply.js +31 -0
  171. package/dist/src/cli/comment/unread.d.ts +7 -0
  172. package/dist/src/cli/comment/unread.js +21 -0
  173. package/dist/src/cli/comment/view.d.ts +3 -0
  174. package/dist/src/cli/comment/view.js +197 -0
  175. package/dist/src/cli/config/edit.d.ts +5 -0
  176. package/dist/src/cli/config/edit.js +36 -0
  177. package/dist/src/cli/config/get.d.ts +6 -0
  178. package/dist/src/cli/config/get.js +11 -0
  179. package/dist/src/cli/config/index.d.ts +10 -0
  180. package/dist/src/cli/config/index.js +22 -0
  181. package/dist/src/cli/config/list.d.ts +4 -0
  182. package/dist/src/cli/config/list.js +10 -0
  183. package/dist/src/cli/config/set.d.ts +9 -0
  184. package/dist/src/cli/config/set.js +48 -0
  185. package/dist/src/cli/draft/_shared.d.ts +27 -0
  186. package/dist/src/cli/draft/_shared.js +85 -0
  187. package/dist/src/cli/draft/create.d.ts +21 -0
  188. package/dist/src/cli/draft/create.js +34 -0
  189. package/dist/src/cli/draft/delete.d.ts +7 -0
  190. package/dist/src/cli/draft/delete.js +20 -0
  191. package/dist/src/cli/draft/get.d.ts +6 -0
  192. package/dist/src/cli/draft/get.js +11 -0
  193. package/dist/src/cli/draft/index.d.ts +54 -0
  194. package/dist/src/cli/draft/index.js +42 -0
  195. package/dist/src/cli/draft/list.d.ts +11 -0
  196. package/dist/src/cli/draft/list.js +23 -0
  197. package/dist/src/cli/draft/publish.d.ts +8 -0
  198. package/dist/src/cli/draft/publish.js +64 -0
  199. package/dist/src/cli/draft/update.d.ts +22 -0
  200. package/dist/src/cli/draft/update.js +29 -0
  201. package/dist/src/cli/file/_shared.d.ts +6 -0
  202. package/dist/src/cli/file/_shared.js +5 -0
  203. package/dist/src/cli/file/delete.d.ts +8 -0
  204. package/dist/src/cli/file/delete.js +21 -0
  205. package/dist/src/cli/file/index.d.ts +19 -0
  206. package/dist/src/cli/file/index.js +33 -0
  207. package/dist/src/cli/file/list.d.ts +6 -0
  208. package/dist/src/cli/file/list.js +11 -0
  209. package/dist/src/cli/file/rename.d.ts +8 -0
  210. package/dist/src/cli/file/rename.js +16 -0
  211. package/dist/src/cli/file/upload.d.ts +9 -0
  212. package/dist/src/cli/file/upload.js +32 -0
  213. package/dist/src/cli/help/index.d.ts +62 -0
  214. package/dist/src/cli/help/index.js +276 -0
  215. package/dist/src/cli/help/registry.d.ts +28 -0
  216. package/dist/src/cli/help/registry.js +29 -0
  217. package/dist/src/cli/note/_flags.d.ts +66 -0
  218. package/dist/src/cli/note/_flags.js +73 -0
  219. package/dist/src/cli/note/create.d.ts +23 -0
  220. package/dist/src/cli/note/create.js +25 -0
  221. package/dist/src/cli/note/delete.d.ts +8 -0
  222. package/dist/src/cli/note/delete.js +21 -0
  223. package/dist/src/cli/note/edit.d.ts +28 -0
  224. package/dist/src/cli/note/edit.js +114 -0
  225. package/dist/src/cli/note/get.d.ts +6 -0
  226. package/dist/src/cli/note/get.js +29 -0
  227. package/dist/src/cli/note/index.d.ts +77 -0
  228. package/dist/src/cli/note/index.js +63 -0
  229. package/dist/src/cli/note/list.d.ts +10 -0
  230. package/dist/src/cli/note/list.js +22 -0
  231. package/dist/src/cli/note/publish.d.ts +7 -0
  232. package/dist/src/cli/note/publish.js +17 -0
  233. package/dist/src/cli/note/unpublish.d.ts +7 -0
  234. package/dist/src/cli/note/unpublish.js +17 -0
  235. package/dist/src/cli/note/update.d.ts +25 -0
  236. package/dist/src/cli/note/update.js +36 -0
  237. package/dist/src/cli/note/view.d.ts +3 -0
  238. package/dist/src/cli/note/view.js +162 -0
  239. package/dist/src/cli/page/create.d.ts +41 -0
  240. package/dist/src/cli/page/create.js +56 -0
  241. package/dist/src/cli/page/delete.d.ts +7 -0
  242. package/dist/src/cli/page/delete.js +37 -0
  243. package/dist/src/cli/page/edit.d.ts +19 -0
  244. package/dist/src/cli/page/edit.js +117 -0
  245. package/dist/src/cli/page/get.d.ts +6 -0
  246. package/dist/src/cli/page/get.js +16 -0
  247. package/dist/src/cli/page/index.d.ts +44 -0
  248. package/dist/src/cli/page/index.js +38 -0
  249. package/dist/src/cli/page/list.d.ts +4 -0
  250. package/dist/src/cli/page/list.js +10 -0
  251. package/dist/src/cli/page/update.d.ts +16 -0
  252. package/dist/src/cli/page/update.js +48 -0
  253. package/dist/src/cli/page/view.d.ts +2 -0
  254. package/dist/src/cli/page/view.js +79 -0
  255. package/dist/src/cli/post/_flags.d.ts +66 -0
  256. package/dist/src/cli/post/_flags.js +96 -0
  257. package/dist/src/cli/post/apply.d.ts +7 -0
  258. package/dist/src/cli/post/apply.js +70 -0
  259. package/dist/src/cli/post/create.d.ts +21 -0
  260. package/dist/src/cli/post/create.js +24 -0
  261. package/dist/src/cli/post/delete.d.ts +8 -0
  262. package/dist/src/cli/post/delete.js +21 -0
  263. package/dist/src/cli/post/edit.d.ts +26 -0
  264. package/dist/src/cli/post/edit.js +115 -0
  265. package/dist/src/cli/post/get.d.ts +7 -0
  266. package/dist/src/cli/post/get.js +15 -0
  267. package/dist/src/cli/post/index.d.ts +91 -0
  268. package/dist/src/cli/post/index.js +73 -0
  269. package/dist/src/cli/post/list.d.ts +10 -0
  270. package/dist/src/cli/post/list.js +23 -0
  271. package/dist/src/cli/post/publish.d.ts +7 -0
  272. package/dist/src/cli/post/publish.js +17 -0
  273. package/dist/src/cli/post/stage.d.ts +23 -0
  274. package/dist/src/cli/post/stage.js +55 -0
  275. package/dist/src/cli/post/unpublish.d.ts +7 -0
  276. package/dist/src/cli/post/unpublish.js +17 -0
  277. package/dist/src/cli/post/update.d.ts +23 -0
  278. package/dist/src/cli/post/update.js +38 -0
  279. package/dist/src/cli/post/view.d.ts +3 -0
  280. package/dist/src/cli/post/view.js +150 -0
  281. package/dist/src/cli/preview/index.d.ts +13 -0
  282. package/dist/src/cli/preview/index.js +226 -0
  283. package/dist/src/cli/profile/index.d.ts +14 -0
  284. package/dist/src/cli/profile/index.js +36 -0
  285. package/dist/src/cli/profile/ls.d.ts +5 -0
  286. package/dist/src/cli/profile/ls.js +26 -0
  287. package/dist/src/cli/profile/mark.d.ts +9 -0
  288. package/dist/src/cli/profile/mark.js +23 -0
  289. package/dist/src/cli/profile/rm.d.ts +12 -0
  290. package/dist/src/cli/profile/rm.js +50 -0
  291. package/dist/src/cli/profile/show.d.ts +9 -0
  292. package/dist/src/cli/profile/show.js +40 -0
  293. package/dist/src/cli/profile/use.d.ts +6 -0
  294. package/dist/src/cli/profile/use.js +11 -0
  295. package/dist/src/cli/profile/view.d.ts +8 -0
  296. package/dist/src/cli/profile/view.js +21 -0
  297. package/dist/src/cli/project/_flags.d.ts +56 -0
  298. package/dist/src/cli/project/_flags.js +130 -0
  299. package/dist/src/cli/project/create.d.ts +17 -0
  300. package/dist/src/cli/project/create.js +25 -0
  301. package/dist/src/cli/project/delete.d.ts +8 -0
  302. package/dist/src/cli/project/delete.js +22 -0
  303. package/dist/src/cli/project/edit.d.ts +11 -0
  304. package/dist/src/cli/project/edit.js +61 -0
  305. package/dist/src/cli/project/get.d.ts +7 -0
  306. package/dist/src/cli/project/get.js +14 -0
  307. package/dist/src/cli/project/index.d.ts +43 -0
  308. package/dist/src/cli/project/index.js +52 -0
  309. package/dist/src/cli/project/list.d.ts +8 -0
  310. package/dist/src/cli/project/list.js +19 -0
  311. package/dist/src/cli/project/update.d.ts +18 -0
  312. package/dist/src/cli/project/update.js +24 -0
  313. package/dist/src/cli/project/view-cmd.d.ts +7 -0
  314. package/dist/src/cli/project/view-cmd.js +15 -0
  315. package/dist/src/cli/project/view.d.ts +3 -0
  316. package/dist/src/cli/project/view.js +102 -0
  317. package/dist/src/cli/render/codehighlight.d.ts +8 -0
  318. package/dist/src/cli/render/codehighlight.js +264 -0
  319. package/dist/src/cli/render/envelope.d.ts +7 -0
  320. package/dist/src/cli/render/envelope.js +23 -0
  321. package/dist/src/cli/render/frontmatter.d.ts +8 -0
  322. package/dist/src/cli/render/frontmatter.js +50 -0
  323. package/dist/src/cli/render/helpers.d.ts +2 -0
  324. package/dist/src/cli/render/helpers.js +11 -0
  325. package/dist/src/cli/render/index.d.ts +7 -0
  326. package/dist/src/cli/render/index.js +10 -0
  327. package/dist/src/cli/render/lexical/blocks.d.ts +19 -0
  328. package/dist/src/cli/render/lexical/blocks.js +208 -0
  329. package/dist/src/cli/render/lexical/code.d.ts +2 -0
  330. package/dist/src/cli/render/lexical/code.js +22 -0
  331. package/dist/src/cli/render/lexical/embeds.d.ts +6 -0
  332. package/dist/src/cli/render/lexical/embeds.js +51 -0
  333. package/dist/src/cli/render/lexical/index.d.ts +9 -0
  334. package/dist/src/cli/render/lexical/index.js +25 -0
  335. package/dist/src/cli/render/lexical/inlines.d.ts +17 -0
  336. package/dist/src/cli/render/lexical/inlines.js +76 -0
  337. package/dist/src/cli/render/lexical/parser.d.ts +10 -0
  338. package/dist/src/cli/render/lexical/parser.js +64 -0
  339. package/dist/src/cli/render/lexical/walker.d.ts +21 -0
  340. package/dist/src/cli/render/lexical/walker.js +51 -0
  341. package/dist/src/cli/render/markdown.d.ts +18 -0
  342. package/dist/src/cli/render/markdown.js +196 -0
  343. package/dist/src/cli/render/metadata-block.d.ts +14 -0
  344. package/dist/src/cli/render/metadata-block.js +50 -0
  345. package/dist/src/cli/skill/all.d.ts +4 -0
  346. package/dist/src/cli/skill/all.js +11 -0
  347. package/dist/src/cli/skill/get.d.ts +6 -0
  348. package/dist/src/cli/skill/get.js +12 -0
  349. package/dist/src/cli/skill/index.d.ts +10 -0
  350. package/dist/src/cli/skill/index.js +34 -0
  351. package/dist/src/cli/skill/list.d.ts +4 -0
  352. package/dist/src/cli/skill/list.js +11 -0
  353. package/dist/src/cli/skill/search.d.ts +6 -0
  354. package/dist/src/cli/skill/search.js +12 -0
  355. package/dist/src/cli/skill/views.d.ts +6 -0
  356. package/dist/src/cli/skill/views.js +90 -0
  357. package/dist/src/cli/snippet/_flags.d.ts +57 -0
  358. package/dist/src/cli/snippet/_flags.js +123 -0
  359. package/dist/src/cli/snippet/_resolve.d.ts +4 -0
  360. package/dist/src/cli/snippet/_resolve.js +32 -0
  361. package/dist/src/cli/snippet/_sync.d.ts +5 -0
  362. package/dist/src/cli/snippet/_sync.js +54 -0
  363. package/dist/src/cli/snippet/create.d.ts +19 -0
  364. package/dist/src/cli/snippet/create.js +35 -0
  365. package/dist/src/cli/snippet/delete.d.ts +8 -0
  366. package/dist/src/cli/snippet/delete.js +28 -0
  367. package/dist/src/cli/snippet/edit.d.ts +7 -0
  368. package/dist/src/cli/snippet/edit.js +29 -0
  369. package/dist/src/cli/snippet/get.d.ts +6 -0
  370. package/dist/src/cli/snippet/get.js +12 -0
  371. package/dist/src/cli/snippet/index.d.ts +43 -0
  372. package/dist/src/cli/snippet/index.js +58 -0
  373. package/dist/src/cli/snippet/list.d.ts +9 -0
  374. package/dist/src/cli/snippet/list.js +20 -0
  375. package/dist/src/cli/snippet/pull.d.ts +8 -0
  376. package/dist/src/cli/snippet/pull.js +33 -0
  377. package/dist/src/cli/snippet/push.d.ts +10 -0
  378. package/dist/src/cli/snippet/push.js +31 -0
  379. package/dist/src/cli/snippet/update.d.ts +8 -0
  380. package/dist/src/cli/snippet/update.js +16 -0
  381. package/dist/src/cli/topic/create.d.ts +10 -0
  382. package/dist/src/cli/topic/create.js +24 -0
  383. package/dist/src/cli/topic/delete.d.ts +7 -0
  384. package/dist/src/cli/topic/delete.js +37 -0
  385. package/dist/src/cli/topic/get.d.ts +6 -0
  386. package/dist/src/cli/topic/get.js +15 -0
  387. package/dist/src/cli/topic/index.d.ts +20 -0
  388. package/dist/src/cli/topic/index.js +32 -0
  389. package/dist/src/cli/topic/list.d.ts +4 -0
  390. package/dist/src/cli/topic/list.js +10 -0
  391. package/dist/src/cli/topic/update.d.ts +11 -0
  392. package/dist/src/cli/topic/update.js +51 -0
  393. package/dist/src/cli/ui/index.d.ts +24 -0
  394. package/dist/src/cli/ui/index.js +83 -0
  395. package/dist/src/cli/update/index.d.ts +10 -0
  396. package/dist/src/cli/update/index.js +142 -0
  397. package/dist/src/domain/admin-link.d.ts +12 -0
  398. package/dist/src/domain/admin-link.js +45 -0
  399. package/dist/src/domain/content-spec.d.ts +20 -0
  400. package/dist/src/domain/content-spec.js +78 -0
  401. package/dist/src/domain/envelope-compat.d.ts +68 -0
  402. package/dist/src/domain/envelope-compat.js +121 -0
  403. package/dist/src/domain/envelope.d.ts +34 -0
  404. package/dist/src/domain/envelope.js +355 -0
  405. package/dist/src/domain/errors.d.ts +336 -0
  406. package/dist/src/domain/errors.js +239 -0
  407. package/dist/src/domain/gate.d.ts +14 -0
  408. package/dist/src/domain/gate.js +18 -0
  409. package/dist/src/domain/payload.d.ts +64 -0
  410. package/dist/src/domain/payload.js +237 -0
  411. package/dist/src/domain/preflight-guards.d.ts +54 -0
  412. package/dist/src/domain/preflight-guards.js +130 -0
  413. package/dist/src/domain/runtime-flags.d.ts +33 -0
  414. package/dist/src/domain/runtime-flags.js +166 -0
  415. package/dist/src/domain/schema/api-envelope.d.ts +67 -0
  416. package/dist/src/domain/schema/api-envelope.js +65 -0
  417. package/dist/src/domain/schema/category.d.ts +23 -0
  418. package/dist/src/domain/schema/category.js +19 -0
  419. package/dist/src/domain/schema/config.d.ts +13 -0
  420. package/dist/src/domain/schema/config.js +18 -0
  421. package/dist/src/domain/schema/note.d.ts +76 -0
  422. package/dist/src/domain/schema/note.js +35 -0
  423. package/dist/src/domain/schema/page.d.ts +40 -0
  424. package/dist/src/domain/schema/page.js +22 -0
  425. package/dist/src/domain/schema/post.d.ts +68 -0
  426. package/dist/src/domain/schema/post.js +35 -0
  427. package/dist/src/domain/schema/profile.d.ts +14 -0
  428. package/dist/src/domain/schema/profile.js +22 -0
  429. package/dist/src/domain/schema/topic.d.ts +24 -0
  430. package/dist/src/domain/schema/topic.js +16 -0
  431. package/dist/src/domain/version.d.ts +15 -0
  432. package/dist/src/domain/version.js +43 -0
  433. package/dist/src/index.d.ts +4 -0
  434. package/dist/src/index.js +8 -0
  435. package/dist/src/layers/App.d.ts +30 -0
  436. package/dist/src/layers/App.js +39 -0
  437. package/dist/src/services/Ai/index.d.ts +13 -0
  438. package/dist/src/services/Ai/index.js +127 -0
  439. package/dist/src/services/Ai/overview.d.ts +7 -0
  440. package/dist/src/services/Ai/overview.js +11 -0
  441. package/dist/src/services/Ai/resources.d.ts +7 -0
  442. package/dist/src/services/Ai/resources.js +59 -0
  443. package/dist/src/services/Ai/shared.d.ts +2 -0
  444. package/dist/src/services/Ai/shared.js +11 -0
  445. package/dist/src/services/Ai/tasks.d.ts +8 -0
  446. package/dist/src/services/Ai/tasks.js +144 -0
  447. package/dist/src/services/Ai/types.d.ts +130 -0
  448. package/dist/src/services/Ai/types.js +1 -0
  449. package/dist/src/services/Api.d.ts +67 -0
  450. package/dist/src/services/Api.js +348 -0
  451. package/dist/src/services/Auth.d.ts +101 -0
  452. package/dist/src/services/Auth.js +402 -0
  453. package/dist/src/services/Backup.d.ts +8 -0
  454. package/dist/src/services/Backup.js +4 -0
  455. package/dist/src/services/Cache.d.ts +8 -0
  456. package/dist/src/services/Cache.js +4 -0
  457. package/dist/src/services/Comment.d.ts +48 -0
  458. package/dist/src/services/Comment.js +102 -0
  459. package/dist/src/services/Config.d.ts +95 -0
  460. package/dist/src/services/Config.js +359 -0
  461. package/dist/src/services/Editor.d.ts +28 -0
  462. package/dist/src/services/Editor.js +95 -0
  463. package/dist/src/services/Lexical.d.ts +27 -0
  464. package/dist/src/services/Lexical.js +56 -0
  465. package/dist/src/services/Migration.d.ts +31 -0
  466. package/dist/src/services/Migration.js +177 -0
  467. package/dist/src/services/Profile.d.ts +29 -0
  468. package/dist/src/services/Profile.js +115 -0
  469. package/dist/src/services/Renderer/content.d.ts +16 -0
  470. package/dist/src/services/Renderer/content.js +110 -0
  471. package/dist/src/services/Renderer/datetime.d.ts +38 -0
  472. package/dist/src/services/Renderer/datetime.js +147 -0
  473. package/dist/src/services/Renderer/errors.d.ts +3 -0
  474. package/dist/src/services/Renderer/errors.js +59 -0
  475. package/dist/src/services/Renderer/index.d.ts +13 -0
  476. package/dist/src/services/Renderer/index.js +11 -0
  477. package/dist/src/services/Renderer/lists.d.ts +1 -0
  478. package/dist/src/services/Renderer/lists.js +101 -0
  479. package/dist/src/services/Renderer/options.d.ts +10 -0
  480. package/dist/src/services/Renderer/options.js +13 -0
  481. package/dist/src/services/Renderer/primitives.d.ts +4 -0
  482. package/dist/src/services/Renderer/primitives.js +12 -0
  483. package/dist/src/services/Renderer/service.d.ts +35 -0
  484. package/dist/src/services/Renderer/service.js +123 -0
  485. package/dist/src/services/Renderer/view.d.ts +16 -0
  486. package/dist/src/services/Renderer/view.js +1 -0
  487. package/dist/src/services/Resolver.d.ts +47 -0
  488. package/dist/src/services/Resolver.js +269 -0
  489. package/dist/src/services/Skill.d.ts +29 -0
  490. package/dist/src/services/Skill.js +421 -0
  491. package/dist/src/services/UpdateNotifier.d.ts +162 -0
  492. package/dist/src/services/UpdateNotifier.js +572 -0
  493. package/dist/test/cli/ai/ai.test.d.ts +1 -0
  494. package/dist/test/cli/ai/ai.test.js +507 -0
  495. package/dist/test/cli/ai/verbs.test.d.ts +1 -0
  496. package/dist/test/cli/ai/verbs.test.js +235 -0
  497. package/dist/test/cli/auth/login.test.d.ts +1 -0
  498. package/dist/test/cli/auth/login.test.js +236 -0
  499. package/dist/test/cli/auth/logout-whoami.test.d.ts +1 -0
  500. package/dist/test/cli/auth/logout-whoami.test.js +124 -0
  501. package/dist/test/cli/auth/status.test.d.ts +1 -0
  502. package/dist/test/cli/auth/status.test.js +90 -0
  503. package/dist/test/cli/category/category.test.d.ts +1 -0
  504. package/dist/test/cli/category/category.test.js +175 -0
  505. package/dist/test/cli/comment/comment.test.d.ts +1 -0
  506. package/dist/test/cli/comment/comment.test.js +445 -0
  507. package/dist/test/cli/config/config.test.d.ts +1 -0
  508. package/dist/test/cli/config/config.test.js +281 -0
  509. package/dist/test/cli/edit-roundtrip.test.d.ts +1 -0
  510. package/dist/test/cli/edit-roundtrip.test.js +259 -0
  511. package/dist/test/cli/file/file.test.d.ts +1 -0
  512. package/dist/test/cli/file/file.test.js +185 -0
  513. package/dist/test/cli/help.test.d.ts +1 -0
  514. package/dist/test/cli/help.test.js +289 -0
  515. package/dist/test/cli/note/create.test.d.ts +1 -0
  516. package/dist/test/cli/note/create.test.js +155 -0
  517. package/dist/test/cli/note/list.test.d.ts +1 -0
  518. package/dist/test/cli/note/list.test.js +115 -0
  519. package/dist/test/cli/note/publish.test.d.ts +1 -0
  520. package/dist/test/cli/note/publish.test.js +123 -0
  521. package/dist/test/cli/page/page.test.d.ts +1 -0
  522. package/dist/test/cli/page/page.test.js +185 -0
  523. package/dist/test/cli/post/create.test.d.ts +1 -0
  524. package/dist/test/cli/post/create.test.js +172 -0
  525. package/dist/test/cli/post/list.test.d.ts +1 -0
  526. package/dist/test/cli/post/list.test.js +133 -0
  527. package/dist/test/cli/post/publish.test.d.ts +1 -0
  528. package/dist/test/cli/post/publish.test.js +139 -0
  529. package/dist/test/cli/post/stage-apply.test.d.ts +1 -0
  530. package/dist/test/cli/post/stage-apply.test.js +215 -0
  531. package/dist/test/cli/post/update.test.d.ts +1 -0
  532. package/dist/test/cli/post/update.test.js +160 -0
  533. package/dist/test/cli/post-note-crud.test.d.ts +1 -0
  534. package/dist/test/cli/post-note-crud.test.js +362 -0
  535. package/dist/test/cli/profile/ls.test.d.ts +1 -0
  536. package/dist/test/cli/profile/ls.test.js +93 -0
  537. package/dist/test/cli/profile/mark-use.test.d.ts +1 -0
  538. package/dist/test/cli/profile/mark-use.test.js +216 -0
  539. package/dist/test/cli/project-crud.test.d.ts +1 -0
  540. package/dist/test/cli/project-crud.test.js +315 -0
  541. package/dist/test/cli/render/lexical.test.d.ts +1 -0
  542. package/dist/test/cli/render/lexical.test.js +216 -0
  543. package/dist/test/cli/render/markdown.test.d.ts +1 -0
  544. package/dist/test/cli/render/markdown.test.js +39 -0
  545. package/dist/test/cli/snippet-crud.test.d.ts +1 -0
  546. package/dist/test/cli/snippet-crud.test.js +293 -0
  547. package/dist/test/cli/topic/topic.test.d.ts +1 -0
  548. package/dist/test/cli/topic/topic.test.js +181 -0
  549. package/dist/test/cli/update.test.d.ts +1 -0
  550. package/dist/test/cli/update.test.js +395 -0
  551. package/dist/test/domain/content-spec.test.d.ts +1 -0
  552. package/dist/test/domain/content-spec.test.js +126 -0
  553. package/dist/test/domain/envelope-compat.test.d.ts +1 -0
  554. package/dist/test/domain/envelope-compat.test.js +126 -0
  555. package/dist/test/domain/envelope.test.d.ts +1 -0
  556. package/dist/test/domain/envelope.test.js +149 -0
  557. package/dist/test/domain/errors.test.d.ts +1 -0
  558. package/dist/test/domain/errors.test.js +127 -0
  559. package/dist/test/domain/gate.test.d.ts +1 -0
  560. package/dist/test/domain/gate.test.js +128 -0
  561. package/dist/test/domain/payload.test.d.ts +1 -0
  562. package/dist/test/domain/payload.test.js +259 -0
  563. package/dist/test/helper/test-fs.d.ts +24 -0
  564. package/dist/test/helper/test-fs.js +161 -0
  565. package/dist/test/helper/test-http.d.ts +31 -0
  566. package/dist/test/helper/test-http.js +66 -0
  567. package/dist/test/integration/_helpers.d.ts +5 -0
  568. package/dist/test/integration/_helpers.js +24 -0
  569. package/dist/test/integration/cli-error-envelope.test.d.ts +1 -0
  570. package/dist/test/integration/cli-error-envelope.test.js +137 -0
  571. package/dist/test/integration/cli-help-render.test.d.ts +1 -0
  572. package/dist/test/integration/cli-help-render.test.js +149 -0
  573. package/dist/test/integration/cli-help.test.d.ts +1 -0
  574. package/dist/test/integration/cli-help.test.js +67 -0
  575. package/dist/test/integration/cli-post-list.test.d.ts +1 -0
  576. package/dist/test/integration/cli-post-list.test.js +140 -0
  577. package/dist/test/integration/cli-skill.test.d.ts +1 -0
  578. package/dist/test/integration/cli-skill.test.js +74 -0
  579. package/dist/test/integration/cli-version.test.d.ts +1 -0
  580. package/dist/test/integration/cli-version.test.js +37 -0
  581. package/dist/test/services/Api.test.d.ts +1 -0
  582. package/dist/test/services/Api.test.js +553 -0
  583. package/dist/test/services/Auth.test.d.ts +1 -0
  584. package/dist/test/services/Auth.test.js +650 -0
  585. package/dist/test/services/Config.test.d.ts +1 -0
  586. package/dist/test/services/Config.test.js +510 -0
  587. package/dist/test/services/Datetime.test.d.ts +1 -0
  588. package/dist/test/services/Datetime.test.js +113 -0
  589. package/dist/test/services/Editor.test.d.ts +1 -0
  590. package/dist/test/services/Editor.test.js +205 -0
  591. package/dist/test/services/Lexical.errors.test.d.ts +1 -0
  592. package/dist/test/services/Lexical.errors.test.js +60 -0
  593. package/dist/test/services/Lexical.test.d.ts +1 -0
  594. package/dist/test/services/Lexical.test.js +68 -0
  595. package/dist/test/services/Migration.test.d.ts +1 -0
  596. package/dist/test/services/Migration.test.js +376 -0
  597. package/dist/test/services/Profile.test.d.ts +1 -0
  598. package/dist/test/services/Profile.test.js +277 -0
  599. package/dist/test/services/Renderer.test.d.ts +1 -0
  600. package/dist/test/services/Renderer.test.js +538 -0
  601. package/dist/test/services/Resolver.test.d.ts +1 -0
  602. package/dist/test/services/Resolver.test.js +320 -0
  603. package/dist/test/services/Skill.test.d.ts +1 -0
  604. package/dist/test/services/Skill.test.js +261 -0
  605. package/dist/test/services/UpdateNotifier.spawn.test.d.ts +1 -0
  606. package/dist/test/services/UpdateNotifier.spawn.test.js +73 -0
  607. package/dist/test/services/UpdateNotifier.test.d.ts +1 -0
  608. package/dist/test/services/UpdateNotifier.test.js +912 -0
  609. package/dist/vendor/litexml/cli.mjs +2481 -2561
  610. package/dist/vendor/litexml/litexml-html-preview-client.css +178 -60
  611. package/dist/vendor/litexml/litexml-html-preview-client.js +9950 -8762
  612. package/dist/vendor/litexml/style.css +11 -7
  613. package/package.json +23 -21
  614. package/skills/commands-ai.md +45 -12
  615. package/skills/overview.md +1 -1
  616. package/skills/safety.md +1 -1
  617. package/dist/esm-CH7CrOvh.mjs +0 -2
@@ -1,9 +1,9 @@
1
- import { f as namedSignals, l as effect, p as signal } from "./LexicalExtension.node-BUozzx4t.mjs";
2
- import { $r as isHTMLElement, $t as COMMAND_PRIORITY_LOW, A as $getChildCaret, Ar as getComposedEventTarget, B as $getNodeByKey, Dt as $normalizeSelection__EXPERIMENTAL, Et as $normalizeCaret, Ft as $setSelection, G as $getSelection, Gn as KEY_ARROW_RIGHT_COMMAND, Gr as isCurrentlyReadOnlyMode, Hn as IS_UNDERLINE, I as $getDocument, Jn as KEY_DELETE_COMMAND, Jr as isDOMShadowRoot, K as $getSiblingCaret, Kn as KEY_ARROW_UP_COMMAND, Kr as isDOMDocumentNode, Kt as CLICK_COMMAND, L as $getEditor, Ln as IS_ITALIC, Mr as getDOMSelectionPoints, Nr as getDOMSelectionRange, Or as getActiveElement, Pn as IS_FIREFOX, Pt as $setPointFromCaret, Qn as KEY_TAB_COMMAND, Qt as COMMAND_PRIORITY_HIGH, S as $fullReconcile, St as $isTextNode, Tr as defineExtension, U as $getPreviousSelection, Un as KEY_ARROW_DOWN_COMMAND, V as $getNodeByKeyOrThrow, W as $getRoot, Wn as KEY_ARROW_LEFT_COMMAND, Xn as KEY_ESCAPE_COMMAND, Zt as COMMAND_PRIORITY_EDITOR, _n as FORMAT_ELEMENT_COMMAND, an as CUT_COMMAND, b as $findMatchingParent, br as configExtension, ci as mergeRegister, cn as DELETE_CHARACTER_COMMAND, cr as SELECTION_CHANGE_COMMAND, ct as $isInlineElementOrDecoratorNode, dt as $isLineBreakNode, ei as isHTMLTableRowElement, fi as removeClassNamesFromElement, g as $createRangeSelectionFromDom, gn as FOCUS_COMMAND, gt as $isRootOrShadowRoot, h as $createRangeSelection, hi as setDOMUnmanaged, hn as ElementNode, hr as TEXT_TYPE_TO_FORMAT, ht as $isRootNode, i as $caretFromPoint, in as COPY_COMMAND, jn as IS_BOLD, jr as getDOMSelection, ln as DELETE_LINE_COMMAND, lr as SELECTION_INSERT_CLIPBOARD_NODES_COMMAND, m as $createPoint, mi as setDOMStyleFromCSS, mt as $isRangeSelection, n as $applyNodeReplacement, ot as $isElementNode, p as $createParagraphNode, pi as safeCast, pt as $isParagraphNode, qn as KEY_BACKSPACE_COMMAND, qr as isDOMNode, rn as CONTROLLED_TEXT_INSERTION_COMMAND, rr as PASTE_COMMAND, rt as $isChildCaret, st as $isExtendableTextPointCaret, ui as registerEventListener, un as DELETE_WORD_COMMAND, ur as SELECT_ALL_COMMAND, v as $createTextNode, vn as FORMAT_TEXT_COMMAND, vr as addClassNamesToElement, w as $getAdjacentChildCaret, wn as INSERT_PARAGRAPH_COMMAND, xr as createCommand, y as $extendCaretToRange, yt as $isSiblingCaret, z as $getNearestNodeFromDOMNode, zn as IS_STRIKETHROUGH } from "./Lexical.node-8sRFmq2X.mjs";
3
- import { c as CoreImportExtension, g as defineImportRule, h as contextValue, l as DOMImportExtension, m as ImportTextStyle, o as $propagateTextAlignToBlockChildren, p as ImportTextFormat, y as sel } from "./LexicalHtml.node-BYbzHNVe.mjs";
4
- import { d as $unwrapAndFilterDescendants, m as objectKlassEquals, n as $dfs, o as $insertFirst$1, s as $insertNodeToNearestRoot, t as $descendantsMatching } from "./LexicalUtils.node-CIgMS8cG.mjs";
5
- import { o as copyToClipboard, t as $getClipboardDataFromSelection } from "./LexicalClipboard.node-D4gMGws6.mjs";
6
- //#region ../../node_modules/.pnpm/@lexical+table@0.48.0_typescript@6.0.3/node_modules/@lexical/table/dist/LexicalTable.dev.mjs
1
+ import { d as getPeerDependencyFromEditor, f as namedSignals, l as effect, p as signal } from "./LexicalExtension.node-BwJt2LXV.mjs";
2
+ import { $r as isHTMLElement, $t as COMMAND_PRIORITY_LOW, A as $getChildCaret, Ar as getComposedEventTarget, B as $getNodeByKey, Dt as $normalizeSelection__EXPERIMENTAL, Et as $normalizeCaret, Ft as $setSelection, G as $getSelection, Gn as KEY_ARROW_RIGHT_COMMAND, Gr as isCurrentlyReadOnlyMode, Hn as IS_UNDERLINE, I as $getDocument, Jn as KEY_DELETE_COMMAND, Jr as isDOMShadowRoot, K as $getSiblingCaret, Kn as KEY_ARROW_UP_COMMAND, Kr as isDOMDocumentNode, Kt as CLICK_COMMAND, L as $getEditor, Ln as IS_ITALIC, Mr as getDOMSelectionPoints, Nr as getDOMSelectionRange, Or as getActiveElement, Pn as IS_FIREFOX, Pt as $setPointFromCaret, Qn as KEY_TAB_COMMAND, Qt as COMMAND_PRIORITY_HIGH, S as $fullReconcile, St as $isTextNode, Tr as defineExtension, U as $getPreviousSelection, Un as KEY_ARROW_DOWN_COMMAND, V as $getNodeByKeyOrThrow, W as $getRoot, Wn as KEY_ARROW_LEFT_COMMAND, Xn as KEY_ESCAPE_COMMAND, Zt as COMMAND_PRIORITY_EDITOR, _n as FORMAT_ELEMENT_COMMAND, an as CUT_COMMAND, b as $findMatchingParent, br as configExtension, ci as mergeRegister, cn as DELETE_CHARACTER_COMMAND, cr as SELECTION_CHANGE_COMMAND, ct as $isInlineElementOrDecoratorNode, dt as $isLineBreakNode, ei as isHTMLTableRowElement, fi as removeClassNamesFromElement, g as $createRangeSelectionFromDom, gn as FOCUS_COMMAND, gt as $isRootOrShadowRoot, h as $createRangeSelection, hi as setDOMUnmanaged, hn as ElementNode, hr as TEXT_TYPE_TO_FORMAT, ht as $isRootNode, i as $caretFromPoint, in as COPY_COMMAND, jn as IS_BOLD, jr as getDOMSelection, ln as DELETE_LINE_COMMAND, lr as SELECTION_INSERT_CLIPBOARD_NODES_COMMAND, m as $createPoint, mi as setDOMStyleFromCSS, mt as $isRangeSelection, n as $applyNodeReplacement, ot as $isElementNode, p as $createParagraphNode, pi as safeCast, pt as $isParagraphNode, qn as KEY_BACKSPACE_COMMAND, qr as isDOMNode, rn as CONTROLLED_TEXT_INSERTION_COMMAND, rr as PASTE_COMMAND, rt as $isChildCaret, st as $isExtendableTextPointCaret, ui as registerEventListener, un as DELETE_WORD_COMMAND, ur as SELECT_ALL_COMMAND, v as $createTextNode, vn as FORMAT_TEXT_COMMAND, vr as addClassNamesToElement, w as $getAdjacentChildCaret, wn as INSERT_PARAGRAPH_COMMAND, xr as createCommand, y as $extendCaretToRange, yt as $isSiblingCaret, z as $getNearestNodeFromDOMNode, zn as IS_STRIKETHROUGH } from "./Lexical.node-kAh5GM2n.mjs";
3
+ import { c as CoreImportExtension, g as defineImportRule, h as contextValue, l as DOMImportExtension, m as ImportTextStyle, o as $propagateTextAlignToBlockChildren, p as ImportTextFormat, y as sel } from "./LexicalHtml.node-BeuJMvvt.mjs";
4
+ import { d as $unwrapAndFilterDescendants, m as objectKlassEquals, n as $dfs, o as $insertFirst$1, s as $insertNodeToNearestRoot, t as $descendantsMatching } from "./LexicalUtils.node-Dl7OvqJV.mjs";
5
+ import { o as copyToClipboard, t as $getClipboardDataFromSelection } from "./LexicalClipboard.node-BygAdNdF.mjs";
6
+ //#region ../../node_modules/.pnpm/@lexical+table@0.49.0_typescript@6.0.3/node_modules/@lexical/table/dist/LexicalTable.dev.mjs
7
7
  /**
8
8
  * Copyright (c) Meta Platforms, Inc. and affiliates.
9
9
  *
@@ -34,7 +34,7 @@ const TableCellHeaderStates = {
34
34
  ROW: 1
35
35
  };
36
36
  /** @noInheritDoc */
37
- var TableCellNode = class TableCellNode extends ElementNode {
37
+ var TableCellNode = class extends ElementNode {
38
38
  /** @internal */
39
39
  __colSpan;
40
40
  /** @internal */
@@ -47,11 +47,20 @@ var TableCellNode = class TableCellNode extends ElementNode {
47
47
  __backgroundColor;
48
48
  /** @internal */
49
49
  __verticalAlign;
50
- static getType() {
51
- return "tablecell";
52
- }
53
- static clone(node) {
54
- return new TableCellNode(node.__headerState, node.__colSpan, node.__width, node.__key);
50
+ $config() {
51
+ return this.config("tablecell", {
52
+ extends: ElementNode,
53
+ importDOM: {
54
+ td: () => ({
55
+ conversion: $convertTableCellNodeElement,
56
+ priority: 0
57
+ }),
58
+ th: () => ({
59
+ conversion: $convertTableCellNodeElement,
60
+ priority: 0
61
+ })
62
+ }
63
+ });
55
64
  }
56
65
  afterCloneFrom(node) {
57
66
  super.afterCloneFrom(node);
@@ -62,21 +71,6 @@ var TableCellNode = class TableCellNode extends ElementNode {
62
71
  this.__headerState = node.__headerState;
63
72
  this.__width = node.__width;
64
73
  }
65
- static importDOM() {
66
- return {
67
- td: (node) => ({
68
- conversion: $convertTableCellNodeElement,
69
- priority: 0
70
- }),
71
- th: (node) => ({
72
- conversion: $convertTableCellNodeElement,
73
- priority: 0
74
- })
75
- };
76
- }
77
- static importJSON(serializedNode) {
78
- return $createTableCellNode().updateFromJSON(serializedNode);
79
- }
80
74
  updateFromJSON(serializedNode) {
81
75
  return super.updateFromJSON(serializedNode).setHeaderStyles(serializedNode.headerState).setColSpan(serializedNode.colSpan || 1).setRowSpan(serializedNode.rowSpan || 1).setWidth(serializedNode.width || void 0).setBackgroundColor(serializedNode.backgroundColor || null).setVerticalAlign(serializedNode.verticalAlign || void 0);
82
76
  }
@@ -309,32 +303,26 @@ function formatDevErrorMessage(message) {
309
303
  *
310
304
  */
311
305
  /** @noInheritDoc */
312
- var TableRowNode = class TableRowNode extends ElementNode {
306
+ var TableRowNode = class extends ElementNode {
313
307
  /** @internal */
314
308
  __height;
315
- static getType() {
316
- return "tablerow";
317
- }
318
- static clone(node) {
319
- return new TableRowNode(node.__height, node.__key);
309
+ $config() {
310
+ return this.config("tablerow", {
311
+ extends: ElementNode,
312
+ importDOM: { tr: () => ({
313
+ conversion: $convertTableRowElement,
314
+ priority: 0
315
+ }) }
316
+ });
320
317
  }
321
318
  afterCloneFrom(prevNode) {
322
319
  super.afterCloneFrom(prevNode);
323
320
  this.__height = prevNode.__height;
324
321
  }
325
- static importDOM() {
326
- return { tr: (node) => ({
327
- conversion: $convertTableRowElement,
328
- priority: 0
329
- }) };
330
- }
331
- static importJSON(serializedNode) {
332
- return $createTableRowNode().updateFromJSON(serializedNode);
333
- }
334
322
  updateFromJSON(serializedNode) {
335
323
  return super.updateFromJSON(serializedNode).setHeight(serializedNode.height);
336
324
  }
337
- constructor(height, key) {
325
+ constructor(height = void 0, key) {
338
326
  super(key);
339
327
  this.__height = height;
340
328
  }
@@ -856,7 +844,8 @@ function $cellContainsEmptyParagraph(cell) {
856
844
  function $unmergeCell() {
857
845
  const selection = $getSelection();
858
846
  if (!($isRangeSelection(selection) || $isTableSelection(selection))) formatDevErrorMessage(`Expected a RangeSelection or TableSelection`);
859
- const cellNode = $findMatchingParent(selection.anchor.getNode(), $isTableCellNode);
847
+ const anchor = selection.anchor.getNode();
848
+ const cellNode = $findMatchingParent(anchor, $isTableCellNode);
860
849
  if (!$isTableCellNode(cellNode)) formatDevErrorMessage(`Expected to find a parent TableCellNode`);
861
850
  return $unmergeCellNode(cellNode);
862
851
  }
@@ -1003,6 +992,10 @@ function $computeTableCellRectSpans(map, boundary) {
1003
992
  topSpan
1004
993
  };
1005
994
  }
995
+ /**
996
+ * Compute the bounding rectangle of two table cells in a table map,
997
+ * expanding iteratively to include any merged cells that overlap the boundary.
998
+ */
1006
999
  function $computeTableCellRectBoundary(map, cellAMap, cellBMap) {
1007
1000
  let minColumn = Math.min(cellAMap.startColumn, cellBMap.startColumn);
1008
1001
  let minRow = Math.min(cellAMap.startRow, cellBMap.startRow);
@@ -1375,6 +1368,7 @@ var TableSelection = class TableSelection {
1375
1368
  if (!$isElementNode(focusNode)) formatDevErrorMessage(`Expected TableSelection focus to be an ElementNode`);
1376
1369
  $normalizeSelection__EXPERIMENTAL(focusNode.select(0, focusNode.getChildrenSize())).insertNodes(nodes);
1377
1370
  }
1371
+ /** @deprecated Use {@link $computeTableMap} and {@link $computeTableCellRectBoundary} directly. */
1378
1372
  getShape() {
1379
1373
  const { anchorCell, focusCell } = $getCellNodes(this);
1380
1374
  const anchorCellNodeRect = $getTableCellNodeRect(anchorCell);
@@ -1442,12 +1436,23 @@ var TableSelection = class TableSelection {
1442
1436
  return textContent;
1443
1437
  }
1444
1438
  };
1439
+ /** Type guard for {@link TableSelection}. */
1445
1440
  function $isTableSelection(x) {
1446
1441
  return x instanceof TableSelection;
1447
1442
  }
1443
+ /** @deprecated Use {@link $createTableSelectionFrom} instead. */
1448
1444
  function $createTableSelection() {
1449
1445
  return new TableSelection("root", $createPoint("root", 0, "element"), $createPoint("root", 0, "element"));
1450
1446
  }
1447
+ /**
1448
+ * Creates a {@link TableSelection} spanning from `anchorCell` to `focusCell`
1449
+ * within `tableNode`. In `__DEV__` mode, validates that both cells belong to
1450
+ * the given table and that the table is attached to the editor state.
1451
+ *
1452
+ * If the current selection is already a TableSelection, it clones and
1453
+ * re-targets it (preserving identity for dirty-checking); otherwise it
1454
+ * constructs a fresh one.
1455
+ */
1451
1456
  function $createTableSelectionFrom(tableNode, anchorCell, focusCell) {
1452
1457
  const tableNodeKey = tableNode.getKey();
1453
1458
  const anchorCellKey = anchorCell.getKey();
@@ -1456,7 +1461,7 @@ function $createTableSelectionFrom(tableNode, anchorCell, focusCell) {
1456
1461
  if (!tableNode.is($findTableNode(anchorCell))) formatDevErrorMessage(`$createTableSelectionFrom: anchorCell ${anchorCellKey} is not in table ${tableNodeKey}`);
1457
1462
  if (!tableNode.is($findTableNode(focusCell))) formatDevErrorMessage(`$createTableSelectionFrom: focusCell ${focusCellKey} is not in table ${tableNodeKey}`);
1458
1463
  const prevSelection = $getSelection();
1459
- const nextSelection = $isTableSelection(prevSelection) ? prevSelection.clone() : $createTableSelection();
1464
+ const nextSelection = $isTableSelection(prevSelection) ? prevSelection.clone() : new TableSelection("root", $createPoint("root", 0, "element"), $createPoint("root", 0, "element"));
1460
1465
  nextSelection.set(tableNode.getKey(), anchorCell.getKey(), focusCell.getKey());
1461
1466
  return nextSelection;
1462
1467
  }
@@ -1680,7 +1685,7 @@ var TableObserver = class {
1680
1685
  $updateDOMForSelection(editor, getTable(tableNode, tableElement), null);
1681
1686
  if (setEmptySelection && $getSelection() !== null) {
1682
1687
  $setSelection(null);
1683
- editor.dispatchCommand(SELECTION_CHANGE_COMMAND, void 0);
1688
+ editor.dispatchCommand(SELECTION_CHANGE_COMMAND);
1684
1689
  }
1685
1690
  }
1686
1691
  $enableHighlightStyle() {
@@ -1738,7 +1743,7 @@ var TableObserver = class {
1738
1743
  this.focusCellNodeKey = targetCellNode.getKey();
1739
1744
  this.tableSelection = $createTableSelectionFrom(tableNode, anchorTableCell, targetCellNode);
1740
1745
  $setSelection(this.tableSelection);
1741
- editor.dispatchCommand(SELECTION_CHANGE_COMMAND, void 0);
1746
+ editor.dispatchCommand(SELECTION_CHANGE_COMMAND);
1742
1747
  $updateDOMForSelection(editor, this.table, this.tableSelection);
1743
1748
  return true;
1744
1749
  }
@@ -1800,7 +1805,7 @@ var TableObserver = class {
1800
1805
  formatSelection.formatText(type, alignFormatWith);
1801
1806
  });
1802
1807
  $setSelection(selection);
1803
- this.editor.dispatchCommand(SELECTION_CHANGE_COMMAND, void 0);
1808
+ this.editor.dispatchCommand(SELECTION_CHANGE_COMMAND);
1804
1809
  }
1805
1810
  $clearText() {
1806
1811
  const { editor } = this;
@@ -1815,7 +1820,7 @@ var TableObserver = class {
1815
1820
  tableNode.selectPrevious();
1816
1821
  const parent = tableNode.getParent();
1817
1822
  tableNode.remove();
1818
- if ($isRootNode(parent) && parent.isEmpty()) editor.dispatchCommand(INSERT_PARAGRAPH_COMMAND, void 0);
1823
+ if ($isRootNode(parent) && parent.isEmpty()) editor.dispatchCommand(INSERT_PARAGRAPH_COMMAND);
1819
1824
  return;
1820
1825
  }
1821
1826
  selectedNodes.forEach((cellNode) => {
@@ -1831,7 +1836,7 @@ var TableObserver = class {
1831
1836
  });
1832
1837
  $updateDOMForSelection(editor, this.table, null);
1833
1838
  $setSelection(null);
1834
- editor.dispatchCommand(SELECTION_CHANGE_COMMAND, void 0);
1839
+ editor.dispatchCommand(SELECTION_CHANGE_COMMAND);
1835
1840
  }
1836
1841
  };
1837
1842
  const LEXICAL_ELEMENT_KEY = "__lexicalTableSelection";
@@ -1893,7 +1898,7 @@ function registerTableWindowHandlers(editor, tableObservers) {
1893
1898
  if ($isTableSelection($getSelection())) {
1894
1899
  for (const [observer] of tableObservers.observers.values()) observer.$clearHighlight(false);
1895
1900
  $setSelection(null);
1896
- editor.dispatchCommand(SELECTION_CHANGE_COMMAND, void 0);
1901
+ editor.dispatchCommand(SELECTION_CHANGE_COMMAND);
1897
1902
  }
1898
1903
  if (!selectionInfo) return;
1899
1904
  const { tableObserver, tableElement, cellElement } = selectionInfo;
@@ -1943,7 +1948,7 @@ function $handleTableClick(editor, event, selectedDOMCell, tableElement, tableOb
1943
1948
  override,
1944
1949
  tableKey: tableObserver.tableNodeKey
1945
1950
  });
1946
- editor.dispatchCommand(SELECTION_CHANGE_COMMAND, void 0);
1951
+ editor.dispatchCommand(SELECTION_CHANGE_COMMAND);
1947
1952
  }
1948
1953
  };
1949
1954
  const findScrollContainer = (axis) => {
@@ -2089,30 +2094,16 @@ function applyTableHandlers(tableNode, element, editor, hasTabHandler, tableObse
2089
2094
  }
2090
2095
  return false;
2091
2096
  }, COMMAND_PRIORITY_HIGH));
2092
- const deleteTextHandler = (command) => () => {
2097
+ const $deleteTextHandler = () => {
2093
2098
  const selection = $getSelection();
2094
2099
  if (!$isSelectionInTable(selection, tableNode)) return false;
2095
2100
  if ($isTableSelection(selection)) {
2096
2101
  tableObserver.$clearText();
2097
2102
  return true;
2098
- } else if ($isRangeSelection(selection)) {
2099
- if (!$isTableCellNode($findParentTableCellNodeInTable(tableNode, selection.anchor.getNode()))) return false;
2100
- const anchorNode = selection.anchor.getNode();
2101
- const focusNode = selection.focus.getNode();
2102
- const isAnchorInside = tableNode.isParentOf(anchorNode);
2103
- const isFocusInside = tableNode.isParentOf(focusNode);
2104
- if (isAnchorInside && !isFocusInside || isFocusInside && !isAnchorInside) {
2105
- tableObserver.$clearText();
2106
- return true;
2107
- }
2108
- const nearestElementNode = $findMatchingParent(selection.anchor.getNode(), (n) => $isElementNode(n));
2109
- const topLevelCellElementNode = nearestElementNode && $findMatchingParent(nearestElementNode, (n) => $isElementNode(n) && $isTableCellNode(n.getParent()));
2110
- if (!$isElementNode(topLevelCellElementNode) || !$isElementNode(nearestElementNode)) return false;
2111
- if (command === DELETE_LINE_COMMAND && topLevelCellElementNode.getPreviousSibling() === null) return true;
2112
2103
  }
2113
2104
  return false;
2114
2105
  };
2115
- for (const command of DELETE_TEXT_COMMANDS) tableObserver.listenersToRemove.add(editor.registerCommand(command, deleteTextHandler(command), COMMAND_PRIORITY_HIGH));
2106
+ for (const command of DELETE_TEXT_COMMANDS) tableObserver.listenersToRemove.add(editor.registerCommand(command, $deleteTextHandler, COMMAND_PRIORITY_HIGH));
2116
2107
  const $deleteCellHandler = (event) => {
2117
2108
  const selection = $getSelection();
2118
2109
  if (!($isTableSelection(selection) || $isRangeSelection(selection))) return false;
@@ -2179,8 +2170,6 @@ function applyTableHandlers(tableNode, element, editor, hasTabHandler, tableObse
2179
2170
  if ($isTableSelection(selection)) {
2180
2171
  tableObserver.$formatCells(payload);
2181
2172
  return true;
2182
- } else if ($isRangeSelection(selection)) {
2183
- if (!$isTableCellNode($findMatchingParent(selection.anchor.getNode(), (n) => $isTableCellNode(n)))) return false;
2184
2173
  }
2185
2174
  return false;
2186
2175
  }, COMMAND_PRIORITY_HIGH));
@@ -2190,15 +2179,15 @@ function applyTableHandlers(tableNode, element, editor, hasTabHandler, tableObse
2190
2179
  const anchorNode = selection.anchor.getNode();
2191
2180
  const focusNode = selection.focus.getNode();
2192
2181
  if (!$isTableCellNode(anchorNode) || !$isTableCellNode(focusNode)) return false;
2193
- if ($isFullTableSelection(selection, tableNode)) {
2194
- tableNode.setFormat(formatType);
2195
- return true;
2196
- }
2197
2182
  const [tableMap, anchorCell, focusCell] = $computeTableMap(tableNode, anchorNode, focusNode);
2198
2183
  const maxRow = Math.max(anchorCell.startRow + anchorCell.cell.__rowSpan - 1, focusCell.startRow + focusCell.cell.__rowSpan - 1);
2199
2184
  const maxColumn = Math.max(anchorCell.startColumn + anchorCell.cell.__colSpan - 1, focusCell.startColumn + focusCell.cell.__colSpan - 1);
2200
2185
  const minRow = Math.min(anchorCell.startRow, focusCell.startRow);
2201
2186
  const minColumn = Math.min(anchorCell.startColumn, focusCell.startColumn);
2187
+ if (minRow === 0 && minColumn === 0 && maxRow === tableMap.length - 1 && maxColumn === tableMap[0].length - 1) {
2188
+ tableNode.setFormat(formatType);
2189
+ return true;
2190
+ }
2202
2191
  const visited = /* @__PURE__ */ new Set();
2203
2192
  for (let i = minRow; i <= maxRow; i++) for (let j = minColumn; j <= maxColumn; j++) {
2204
2193
  const cell = tableMap[i][j].cell;
@@ -2265,12 +2254,13 @@ function $handleTableSelectionChangeCommand(tableObservers, editor) {
2265
2254
  const observerAndTable = tableObservers.observers.get(tableKey);
2266
2255
  if (!!!observerAndTable) formatDevErrorMessage(`tableObserver not found for tableKey: ${tableKey}`);
2267
2256
  const [tableObserver] = observerAndTable;
2268
- if ($isTableSelection(selection) && selection.tableKey === tableObserver.tableNodeKey) if (focusCell.x === tableObserver.focusX && focusCell.y === tableObserver.focusY) return false;
2269
- else {
2270
- tableObserver.$setFocusCellForSelection(focusCell);
2271
- return true;
2272
- }
2273
- else if (tableObserver.anchorCell !== null && tableObserver.anchorCellNodeKey !== null && focusCell.elem !== tableObserver.anchorCell.elem && tableObserver.tableSelection !== null) {
2257
+ if ($isTableSelection(selection) && selection.tableKey === tableObserver.tableNodeKey) {
2258
+ if (focusCell.x === tableObserver.focusX && focusCell.y === tableObserver.focusY) return false;
2259
+ else {
2260
+ tableObserver.$setFocusCellForSelection(focusCell);
2261
+ return true;
2262
+ }
2263
+ } else if (tableObserver.anchorCell !== null && tableObserver.anchorCellNodeKey !== null && focusCell.elem !== tableObserver.anchorCell.elem && tableObserver.tableSelection !== null) {
2274
2264
  tableObserver.$setFocusCellForSelection(focusCell, true);
2275
2265
  return true;
2276
2266
  }
@@ -2627,17 +2617,6 @@ function $isSelectionInTable(selection, tableNode) {
2627
2617
  }
2628
2618
  return false;
2629
2619
  }
2630
- function $isFullTableSelection(selection, tableNode) {
2631
- if ($isTableSelection(selection)) {
2632
- const anchorNode = selection.anchor.getNode();
2633
- const focusNode = selection.focus.getNode();
2634
- if (tableNode && anchorNode && focusNode) {
2635
- const [map] = $computeTableMap(tableNode, anchorNode, focusNode);
2636
- return anchorNode.getKey() === map[0][0].cell.getKey() && focusNode.getKey() === map[map.length - 1].at(-1).cell.getKey();
2637
- }
2638
- }
2639
- return false;
2640
- }
2641
2620
  function selectTableCellNode(tableCell, fromStart) {
2642
2621
  if (fromStart) tableCell.selectStart();
2643
2622
  else tableCell.selectEnd();
@@ -2687,15 +2666,16 @@ function $handleHorizontalArrowKeyRangeSelection(editor, event, selection, alter
2687
2666
  const anchorDOMCell = getDOMCellFromTarget(anchorCellDOM);
2688
2667
  if (!anchorCellDOM || !anchorDOMCell) return false;
2689
2668
  tableObserver.table = $getElementForTableNode(editor, anchorCellTable);
2690
- if (!focusCaret) if (alter === "extend") {
2691
- tableObserver.$setAnchorCellForSelection(anchorDOMCell);
2692
- tableObserver.$setFocusCellForSelection(anchorDOMCell, true);
2693
- } else {
2694
- const outerFocusCaret = $getTableExitCaret($getSiblingCaret(anchorCellTable, initialFocus.direction));
2695
- $setPointFromCaret(selection.anchor, outerFocusCaret);
2696
- $setPointFromCaret(selection.focus, outerFocusCaret);
2697
- }
2698
- else if (alter === "extend") {
2669
+ if (!focusCaret) {
2670
+ if (alter === "extend") {
2671
+ tableObserver.$setAnchorCellForSelection(anchorDOMCell);
2672
+ tableObserver.$setFocusCellForSelection(anchorDOMCell, true);
2673
+ } else {
2674
+ const outerFocusCaret = $getTableExitCaret($getSiblingCaret(anchorCellTable, initialFocus.direction));
2675
+ $setPointFromCaret(selection.anchor, outerFocusCaret);
2676
+ $setPointFromCaret(selection.focus, outerFocusCaret);
2677
+ }
2678
+ } else if (alter === "extend") {
2699
2679
  const focusDOMCell = getDOMCellFromTarget(editor.getElementByKey(focusCaret.origin.getKey()));
2700
2680
  if (!focusDOMCell) return false;
2701
2681
  tableObserver.$setAnchorCellForSelection(anchorDOMCell);
@@ -2923,12 +2903,20 @@ function isHTMLDivElement(element) {
2923
2903
  return isHTMLElement(element) && element.nodeName === "DIV";
2924
2904
  }
2925
2905
  function $updateColgroup(dom, colCount, colWidths) {
2926
- const colGroup = dom.querySelector("colgroup");
2927
- if (!colGroup) return;
2906
+ let colGroup = dom.querySelector(":scope > colgroup");
2907
+ if (!colWidths) {
2908
+ if (colGroup) colGroup.remove();
2909
+ return;
2910
+ }
2911
+ if (!colGroup) {
2912
+ colGroup = $getDocument().createElement("colgroup");
2913
+ setDOMUnmanaged(colGroup);
2914
+ dom.insertBefore(colGroup, dom.firstChild);
2915
+ }
2928
2916
  const cols = [];
2929
2917
  for (let i = 0; i < colCount; i++) {
2930
2918
  const col = $getDocument().createElement("col");
2931
- const width = colWidths && colWidths[i];
2919
+ const width = colWidths[i];
2932
2920
  if (width) col.style.width = `${width}px`;
2933
2921
  cols.push(col);
2934
2922
  }
@@ -2973,10 +2961,115 @@ function alignTableElement(dom, config, formatType) {
2973
2961
  removeClassNamesFromElement(dom, ...removeClasses);
2974
2962
  addClassNamesToElement(dom, ...addClasses);
2975
2963
  }
2964
+ function $createScrollableWrapper(tableElement, config, hideNativeScrollbar) {
2965
+ const wrapper = $getDocument().createElement("div");
2966
+ const classes = config.theme.tableScrollableWrapper;
2967
+ if (classes) addClassNamesToElement(wrapper, classes);
2968
+ else wrapper.style.overflowX = "auto";
2969
+ if (hideNativeScrollbar) wrapper.style.scrollbarWidth = "none";
2970
+ wrapper.appendChild(tableElement);
2971
+ return wrapper;
2972
+ }
2973
+ function $createStickyScrollbar(config) {
2974
+ const doc = $getDocument();
2975
+ const scrollbar = doc.createElement("div");
2976
+ const classes = config.theme.tableStickyScrollbar;
2977
+ if (classes) addClassNamesToElement(scrollbar, classes);
2978
+ else {
2979
+ scrollbar.style.position = "sticky";
2980
+ scrollbar.style.bottom = "0";
2981
+ scrollbar.style.overflowX = "scroll";
2982
+ scrollbar.style.overflowY = "hidden";
2983
+ }
2984
+ scrollbar.style.display = "none";
2985
+ scrollbar.setAttribute("aria-hidden", "true");
2986
+ scrollbar.tabIndex = -1;
2987
+ const spacer = doc.createElement("div");
2988
+ spacer.style.height = "1px";
2989
+ spacer.style.width = "0px";
2990
+ scrollbar.appendChild(spacer);
2991
+ return scrollbar;
2992
+ }
2993
+ const overlayStickyScrollbars = /* @__PURE__ */ new WeakSet();
2994
+ function measureScrollbarThickness(scrollbar) {
2995
+ const prevDisplay = scrollbar.style.display;
2996
+ scrollbar.style.display = "";
2997
+ const thickness = scrollbar.offsetHeight - scrollbar.clientHeight;
2998
+ scrollbar.style.display = prevDisplay;
2999
+ return thickness;
3000
+ }
3001
+ function attachStickyScrollbarListeners(elements) {
3002
+ const { scrollable, scrollbar, tableElement } = elements;
3003
+ if (scrollbar.classList.length === 0 && measureScrollbarThickness(scrollbar) === 0) {
3004
+ overlayStickyScrollbars.add(scrollbar);
3005
+ scrollbar.style.display = "none";
3006
+ scrollable.style.scrollbarWidth = "auto";
3007
+ return () => {};
3008
+ }
3009
+ const onWrapperScroll = () => {
3010
+ if (scrollbar.scrollLeft !== scrollable.scrollLeft) scrollbar.scrollLeft = scrollable.scrollLeft;
3011
+ };
3012
+ const onScrollbarScroll = () => {
3013
+ if (scrollable.scrollLeft !== scrollbar.scrollLeft) scrollable.scrollLeft = scrollbar.scrollLeft;
3014
+ };
3015
+ scrollable.addEventListener("scroll", onWrapperScroll, { passive: true });
3016
+ scrollbar.addEventListener("scroll", onScrollbarScroll, { passive: true });
3017
+ let resizeObserver = null;
3018
+ if (typeof ResizeObserver !== "undefined") {
3019
+ resizeObserver = new ResizeObserver(() => {
3020
+ syncStickyScrollbar(scrollable, scrollbar);
3021
+ });
3022
+ resizeObserver.observe(scrollable);
3023
+ resizeObserver.observe(tableElement);
3024
+ }
3025
+ const cleanup = () => {
3026
+ scrollable.removeEventListener("scroll", onWrapperScroll);
3027
+ scrollbar.removeEventListener("scroll", onScrollbarScroll);
3028
+ if (resizeObserver) resizeObserver.disconnect();
3029
+ };
3030
+ syncStickyScrollbar(scrollable, scrollbar);
3031
+ return cleanup;
3032
+ }
3033
+ function syncStickyScrollbar(scrollable, scrollbar) {
3034
+ if (overlayStickyScrollbars.has(scrollbar)) return;
3035
+ const spacer = scrollbar.firstElementChild;
3036
+ if (!spacer || !isHTMLElement(spacer) || !scrollable.isConnected) return;
3037
+ const view = scrollable.ownerDocument.defaultView;
3038
+ if (!view) {
3039
+ scrollbar.style.display = "none";
3040
+ return;
3041
+ }
3042
+ const overflowX = view.getComputedStyle(scrollable).overflowX;
3043
+ const isScrollable = overflowX === "auto" || overflowX === "scroll";
3044
+ const scrollWidth = scrollable.scrollWidth;
3045
+ const clientWidth = scrollable.clientWidth;
3046
+ const spacerWidth = scrollWidth + "px";
3047
+ if (spacer.style.width !== spacerWidth) spacer.style.width = spacerWidth;
3048
+ const hasOverflow = isScrollable && scrollWidth > clientWidth;
3049
+ scrollbar.style.display = hasOverflow ? "" : "none";
3050
+ }
3051
+ function findStickyScrollbarElements(dom) {
3052
+ if (!dom.hasAttribute("data-lexical-sticky-scrollbar")) return null;
3053
+ const firstChild = dom.firstElementChild;
3054
+ if (!isHTMLDivElement(firstChild)) return null;
3055
+ const tableElement = firstChild.querySelector(":scope > table");
3056
+ if (!isHTMLTableElement(tableElement)) return null;
3057
+ const scrollbar = firstChild.nextElementSibling;
3058
+ if (!isHTMLDivElement(scrollbar)) return null;
3059
+ return {
3060
+ scrollable: firstChild,
3061
+ scrollbar,
3062
+ tableElement
3063
+ };
3064
+ }
2976
3065
  const scrollableEditors = /* @__PURE__ */ new WeakSet();
2977
3066
  function $isScrollableTablesActive(editor = $getEditor()) {
2978
3067
  return scrollableEditors.has(editor);
2979
3068
  }
3069
+ function $isStickyScrollbarActive(editor = $getEditor()) {
3070
+ const dep = getPeerDependencyFromEditor(editor, "@lexical/table/Table");
3071
+ return dep ? dep.output.hasStickyScrollbar.peek() && dep.output.hasHorizontalScroll.peek() : false;
3072
+ }
2980
3073
  function setScrollableTablesActive(editor, active) {
2981
3074
  if (active) {
2982
3075
  if (!editor._config.theme.tableScrollableWrapper) console.warn("TableNode: hasHorizontalScroll is active but theme.tableScrollableWrapper is not defined.");
@@ -2984,14 +3077,20 @@ function setScrollableTablesActive(editor, active) {
2984
3077
  } else scrollableEditors.delete(editor);
2985
3078
  }
2986
3079
  /** @noInheritDoc */
2987
- var TableNode = class TableNode extends ElementNode {
3080
+ var TableNode = class extends ElementNode {
2988
3081
  /** @internal */
2989
- __rowStriping;
2990
- __frozenColumnCount;
2991
- __frozenRowCount;
2992
- __colWidths;
2993
- static getType() {
2994
- return "table";
3082
+ __rowStriping = false;
3083
+ __frozenColumnCount = 0;
3084
+ __frozenRowCount = 0;
3085
+ __colWidths = void 0;
3086
+ $config() {
3087
+ return this.config("table", {
3088
+ extends: ElementNode,
3089
+ importDOM: { table: () => ({
3090
+ conversion: $convertTableElement,
3091
+ priority: 1
3092
+ }) }
3093
+ });
2995
3094
  }
2996
3095
  getColWidths() {
2997
3096
  return this.getLatest().__colWidths;
@@ -3001,9 +3100,6 @@ var TableNode = class TableNode extends ElementNode {
3001
3100
  self.__colWidths = colWidths !== void 0 && __DEV__ ? Object.freeze(colWidths) : colWidths;
3002
3101
  return self;
3003
3102
  }
3004
- static clone(node) {
3005
- return new TableNode(node.__key);
3006
- }
3007
3103
  afterCloneFrom(prevNode) {
3008
3104
  super.afterCloneFrom(prevNode);
3009
3105
  this.__colWidths = prevNode.__colWidths;
@@ -3011,25 +3107,9 @@ var TableNode = class TableNode extends ElementNode {
3011
3107
  this.__frozenColumnCount = prevNode.__frozenColumnCount;
3012
3108
  this.__frozenRowCount = prevNode.__frozenRowCount;
3013
3109
  }
3014
- static importDOM() {
3015
- return { table: (_node) => ({
3016
- conversion: $convertTableElement,
3017
- priority: 1
3018
- }) };
3019
- }
3020
- static importJSON(serializedNode) {
3021
- return $createTableNode().updateFromJSON(serializedNode);
3022
- }
3023
3110
  updateFromJSON(serializedNode) {
3024
3111
  return super.updateFromJSON(serializedNode).setRowStriping(serializedNode.rowStriping || false).setFrozenColumns(serializedNode.frozenColumnCount || 0).setFrozenRows(serializedNode.frozenRowCount || 0).setColWidths(serializedNode.colWidths);
3025
3112
  }
3026
- constructor(key) {
3027
- super(key);
3028
- this.__rowStriping = false;
3029
- this.__frozenColumnCount = 0;
3030
- this.__frozenRowCount = 0;
3031
- this.__colWidths = void 0;
3032
- }
3033
3113
  exportJSON() {
3034
3114
  return {
3035
3115
  ...super.exportJSON(),
@@ -3045,24 +3125,32 @@ var TableNode = class TableNode extends ElementNode {
3045
3125
  getDOMSlot(element) {
3046
3126
  const tableElement = !isHTMLTableElement(element) ? element.querySelector("table") : element;
3047
3127
  if (!isHTMLTableElement(tableElement)) formatDevErrorMessage(`TableNode.getDOMSlot: createDOM() did not return a table`);
3048
- return super.getDOMSlot(element).withElement(tableElement).withAfter(tableElement.querySelector("colgroup"));
3128
+ return super.getDOMSlot(element).withElement(tableElement).withAfter(tableElement.querySelector(":scope > colgroup"));
3049
3129
  }
3050
3130
  createDOM(config, editor) {
3051
3131
  const tableElement = $getDocument().createElement("table");
3052
3132
  if (this.__style) setDOMStyleFromCSS(tableElement.style, this.__style);
3053
- const colGroup = $getDocument().createElement("colgroup");
3054
- tableElement.appendChild(colGroup);
3055
- setDOMUnmanaged(colGroup);
3133
+ if (this.getColWidths()) {
3134
+ const colGroup = $getDocument().createElement("colgroup");
3135
+ tableElement.appendChild(colGroup);
3136
+ setDOMUnmanaged(colGroup);
3137
+ }
3056
3138
  addClassNamesToElement(tableElement, config.theme.table);
3057
3139
  this.updateTableElement(null, tableElement, config);
3058
3140
  if ($isScrollableTablesActive(editor)) {
3059
- const wrapperElement = $getDocument().createElement("div");
3060
- const classes = config.theme.tableScrollableWrapper;
3061
- if (classes) addClassNamesToElement(wrapperElement, classes);
3062
- else wrapperElement.style.overflowX = "auto";
3063
- wrapperElement.appendChild(tableElement);
3064
- this.updateTableWrapper(null, wrapperElement, tableElement, config);
3065
- return wrapperElement;
3141
+ const hasStickyScrollbar = $isStickyScrollbarActive(editor);
3142
+ const scrollableWrapper = $createScrollableWrapper(tableElement, config, hasStickyScrollbar);
3143
+ this.updateTableWrapper(null, scrollableWrapper, tableElement, config);
3144
+ if (hasStickyScrollbar) {
3145
+ const stickyScrollbar = $createStickyScrollbar(config);
3146
+ const outerWrapper = $getDocument().createElement("div");
3147
+ outerWrapper.setAttribute("data-lexical-sticky-scrollbar", "true");
3148
+ outerWrapper.appendChild(scrollableWrapper);
3149
+ outerWrapper.appendChild(stickyScrollbar);
3150
+ setDOMUnmanaged(stickyScrollbar);
3151
+ return outerWrapper;
3152
+ }
3153
+ return scrollableWrapper;
3066
3154
  }
3067
3155
  return tableElement;
3068
3156
  }
@@ -3081,7 +3169,11 @@ var TableNode = class TableNode extends ElementNode {
3081
3169
  updateDOM(prevNode, dom, config) {
3082
3170
  const tableElement = getTableElement(this, dom);
3083
3171
  if (dom === tableElement === $isScrollableTablesActive()) return true;
3084
- if (isHTMLDivElement(dom)) this.updateTableWrapper(prevNode, dom, tableElement, config);
3172
+ if (isHTMLDivElement(dom)) {
3173
+ if (dom.hasAttribute("data-lexical-sticky-scrollbar") !== $isStickyScrollbarActive()) return true;
3174
+ const scrollable = tableElement.parentElement;
3175
+ if (isHTMLDivElement(scrollable)) this.updateTableWrapper(prevNode, scrollable, tableElement, config);
3176
+ }
3085
3177
  this.updateTableElement(prevNode, tableElement, config);
3086
3178
  return false;
3087
3179
  }
@@ -3335,7 +3427,8 @@ function $tableSelectAllCommand() {
3335
3427
  const lastRow = tableMap[tableMap.length - 1];
3336
3428
  const lastCellMap = lastRow[lastRow.length - 1];
3337
3429
  if (!lastCellMap || !lastCellMap.cell) return false;
3338
- $setSelection($createTableSelectionFrom(tableNode, firstCellMap.cell, lastCellMap.cell));
3430
+ const tableSelection = $createTableSelectionFrom(tableNode, firstCellMap.cell, lastCellMap.cell);
3431
+ $setSelection(tableSelection);
3339
3432
  return true;
3340
3433
  }
3341
3434
  /**
@@ -3501,12 +3594,13 @@ function $packageCellChildren(children) {
3501
3594
  if ($isLineBreakNode(first) && paragraph.getChildrenSize() === 1) first.remove();
3502
3595
  }
3503
3596
  };
3504
- for (const child of children) if ($isInlineElementOrDecoratorNode(child) || $isTextNode(child) || $isLineBreakNode(child)) if (paragraph !== null) paragraph.append(child);
3505
- else {
3506
- paragraph = $createParagraphNode().append(child);
3507
- result.push(paragraph);
3508
- }
3509
- else {
3597
+ for (const child of children) if ($isInlineElementOrDecoratorNode(child) || $isTextNode(child) || $isLineBreakNode(child)) {
3598
+ if (paragraph !== null) paragraph.append(child);
3599
+ else {
3600
+ paragraph = $createParagraphNode().append(child);
3601
+ result.push(paragraph);
3602
+ }
3603
+ } else {
3510
3604
  flushSingleLineBreak();
3511
3605
  paragraph = null;
3512
3606
  result.push(child);
@@ -3637,6 +3731,39 @@ const TableImportRules = [
3637
3731
  * LICENSE file in the root directory of this source tree.
3638
3732
  *
3639
3733
  */
3734
+ function registerStickyScrollbar(editor) {
3735
+ const attached = /* @__PURE__ */ new Map();
3736
+ const detachAll = () => {
3737
+ for (const { cleanup } of attached.values()) cleanup();
3738
+ attached.clear();
3739
+ };
3740
+ return mergeRegister(detachAll, editor.registerMutationListener(TableNode, (nodeMutations) => {
3741
+ for (const [nodeKey, mutation] of nodeMutations) {
3742
+ const prev = attached.get(nodeKey);
3743
+ if (mutation === "destroyed") {
3744
+ if (prev) {
3745
+ prev.cleanup();
3746
+ attached.delete(nodeKey);
3747
+ }
3748
+ continue;
3749
+ }
3750
+ const dom = editor.getElementByKey(nodeKey);
3751
+ const parts = dom && isHTMLElement(dom) ? findStickyScrollbarElements(dom) : null;
3752
+ if (prev && parts && prev.parts.scrollable === parts.scrollable && prev.parts.scrollbar === parts.scrollbar && prev.parts.tableElement === parts.tableElement) {
3753
+ syncStickyScrollbar(parts.scrollable, parts.scrollbar);
3754
+ continue;
3755
+ }
3756
+ if (prev) {
3757
+ prev.cleanup();
3758
+ attached.delete(nodeKey);
3759
+ }
3760
+ if (parts) attached.set(nodeKey, {
3761
+ cleanup: attachStickyScrollbarListeners(parts),
3762
+ parts
3763
+ });
3764
+ }
3765
+ }, { skipInitialization: false }));
3766
+ }
3640
3767
  /**
3641
3768
  * Configures {@link TableNode}, {@link TableRowNode}, {@link TableCellNode} and
3642
3769
  * registers table behaviors (see {@link TableConfig})
@@ -3650,6 +3777,7 @@ const TableExtension = /* @__PURE__ */ defineExtension({
3650
3777
  hasCellMerge: true,
3651
3778
  hasHorizontalScroll: true,
3652
3779
  hasNestedTables: false,
3780
+ hasStickyScrollbar: false,
3653
3781
  hasTabHandler: true
3654
3782
  }),
3655
3783
  dependencies: [CoreImportExtension, /* @__PURE__ */ configExtension(DOMImportExtension, { rules: TableImportRules })],
@@ -3661,13 +3789,19 @@ const TableExtension = /* @__PURE__ */ defineExtension({
3661
3789
  ],
3662
3790
  register(editor, config, state) {
3663
3791
  const stores = state.getOutput();
3792
+ let prevStickyScrollbar = false;
3664
3793
  return mergeRegister(effect(() => {
3665
3794
  const hasHorizontalScroll = stores.hasHorizontalScroll.value;
3666
- if ($isScrollableTablesActive(editor) !== hasHorizontalScroll) {
3667
- setScrollableTablesActive(editor, hasHorizontalScroll);
3668
- editor.update($fullReconcile);
3669
- }
3670
- }), registerTablePlugin(editor, stores), effect(() => registerTableSelectionObserver(editor, stores.hasTabHandler.value)), effect(() => stores.hasCellMerge.value ? void 0 : registerTableCellUnmergeTransform(editor)), effect(() => stores.hasCellBackgroundColor.value ? void 0 : editor.registerNodeTransform(TableCellNode, (node) => {
3795
+ const hasStickyScrollbar = stores.hasStickyScrollbar.value && hasHorizontalScroll;
3796
+ const hadHorizontalScroll = $isScrollableTablesActive(editor);
3797
+ if (hadHorizontalScroll !== hasHorizontalScroll) setScrollableTablesActive(editor, hasHorizontalScroll);
3798
+ if (hadHorizontalScroll !== hasHorizontalScroll || prevStickyScrollbar !== hasStickyScrollbar) editor.update($fullReconcile);
3799
+ prevStickyScrollbar = hasStickyScrollbar;
3800
+ }), registerTablePlugin(editor, stores), effect(() => registerTableSelectionObserver(editor, stores.hasTabHandler.value)), effect(() => {
3801
+ if (stores.hasStickyScrollbar.value && stores.hasHorizontalScroll.value) return editor.registerRootListener((rootElement) => {
3802
+ if (rootElement) return registerStickyScrollbar(editor);
3803
+ });
3804
+ }), effect(() => stores.hasCellMerge.value ? void 0 : registerTableCellUnmergeTransform(editor)), effect(() => stores.hasCellBackgroundColor.value ? void 0 : editor.registerNodeTransform(TableCellNode, (node) => {
3671
3805
  if (node.getBackgroundColor() !== null) node.setBackgroundColor(null);
3672
3806
  })));
3673
3807
  }
@@ -3686,4 +3820,4 @@ const TableImportExtension = /* @__PURE__ */ defineExtension({
3686
3820
  name: "@lexical/table/Import"
3687
3821
  });
3688
3822
  //#endregion
3689
- export { $computeTableMap, $computeTableMapSkipCellCheck, $createTableCellNode, $createTableNode, $createTableNodeWithDimensions, $createTableRowNode, $createTableSelection, $createTableSelectionFrom, $deleteTableColumn, $deleteTableColumnAtSelection, $deleteTableColumn__EXPERIMENTAL, $deleteTableRowAtSelection, $deleteTableRow__EXPERIMENTAL, $findCellNode, $findTableNode, $getElementForTableNode, $getNodeTriplet, $getTableAndElementByKey, $getTableCellNodeFromLexicalNode, $getTableCellNodeRect, $getTableColumnIndexFromTableCellNode, $getTableNodeFromLexicalNodeOrThrow, $getTableRowIndexFromTableCellNode, $getTableRowNodeFromTableCellNodeOrThrow, $insertTableColumn, $insertTableColumnAtNode, $insertTableColumnAtSelection, $insertTableColumn__EXPERIMENTAL, $insertTableRow, $insertTableRowAtNode, $insertTableRowAtSelection, $insertTableRow__EXPERIMENTAL, $isScrollableTablesActive, $isSimpleTable, $isTableCellNode, $isTableNode, $isTableRowNode, $isTableSelection, $mergeCells, $moveTableColumn, $moveTableRow, $removeTableRowAtIndex, $setTableColumnIsHeader, $setTableRowIsHeader, $unmergeCell, $unmergeCellNode, INSERT_TABLE_COMMAND, TableCellHeaderStates, TableCellNode, TableExtension, TableImportExtension, TableImportRules, TableNode, TableObserver, TableRowNode, TableRowSchema, TableSchema, applyTableHandlers, getDOMCellFromTarget, getTableElement, getTableObserverFromTableElement, registerTableCellUnmergeTransform, registerTablePlugin, registerTableSelectionObserver, setScrollableTablesActive };
3823
+ export { $computeTableCellRectBoundary, $computeTableMap, $computeTableMapSkipCellCheck, $createTableCellNode, $createTableNode, $createTableNodeWithDimensions, $createTableRowNode, $createTableSelection, $createTableSelectionFrom, $deleteTableColumn, $deleteTableColumnAtSelection, $deleteTableColumn__EXPERIMENTAL, $deleteTableRowAtSelection, $deleteTableRow__EXPERIMENTAL, $findCellNode, $findTableNode, $getElementForTableNode, $getNodeTriplet, $getTableAndElementByKey, $getTableCellNodeFromLexicalNode, $getTableCellNodeRect, $getTableColumnIndexFromTableCellNode, $getTableNodeFromLexicalNodeOrThrow, $getTableRowIndexFromTableCellNode, $getTableRowNodeFromTableCellNodeOrThrow, $insertTableColumn, $insertTableColumnAtNode, $insertTableColumnAtSelection, $insertTableColumn__EXPERIMENTAL, $insertTableRow, $insertTableRowAtNode, $insertTableRowAtSelection, $insertTableRow__EXPERIMENTAL, $isScrollableTablesActive, $isSimpleTable, $isStickyScrollbarActive, $isTableCellNode, $isTableNode, $isTableRowNode, $isTableSelection, $mergeCells, $moveTableColumn, $moveTableRow, $removeTableRowAtIndex, $setTableColumnIsHeader, $setTableRowIsHeader, $unmergeCell, $unmergeCellNode, INSERT_TABLE_COMMAND, TableCellHeaderStates, TableCellNode, TableExtension, TableImportExtension, TableImportRules, TableNode, TableObserver, TableRowNode, TableRowSchema, TableSchema, applyTableHandlers, getDOMCellFromTarget, getTableElement, getTableObserverFromTableElement, registerTableCellUnmergeTransform, registerTablePlugin, registerTableSelectionObserver, setScrollableTablesActive };