doclific 0.2.1 → 0.2.3

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 (584) hide show
  1. package/LICENSE +17 -0
  2. package/dist/bin/doclific.js +36 -8
  3. package/dist/public/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  4. package/dist/public/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  5. package/dist/public/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  6. package/dist/public/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  7. package/dist/public/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  8. package/dist/public/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  9. package/dist/public/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  10. package/dist/public/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  11. package/dist/public/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  12. package/dist/public/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  13. package/dist/public/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  14. package/dist/public/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  15. package/dist/public/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  16. package/dist/public/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  17. package/dist/public/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  18. package/dist/public/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  19. package/dist/public/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  20. package/dist/public/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  21. package/dist/public/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  22. package/dist/public/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  23. package/dist/public/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  24. package/dist/public/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  25. package/dist/public/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  26. package/dist/public/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  27. package/dist/public/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  28. package/dist/public/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  29. package/dist/public/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  30. package/dist/public/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  31. package/dist/public/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  32. package/dist/public/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  33. package/dist/public/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  34. package/dist/public/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  35. package/dist/public/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  36. package/dist/public/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  37. package/dist/public/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  38. package/dist/public/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  39. package/dist/public/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  40. package/dist/public/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  41. package/dist/public/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  42. package/dist/public/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  43. package/dist/public/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  44. package/dist/public/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  45. package/dist/public/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  46. package/dist/public/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  47. package/dist/public/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  48. package/dist/public/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  49. package/dist/public/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  50. package/dist/public/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  51. package/dist/public/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  52. package/dist/public/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  53. package/dist/public/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  54. package/dist/public/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  55. package/dist/public/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  56. package/dist/public/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  57. package/dist/public/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  58. package/dist/public/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  59. package/dist/public/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  60. package/dist/public/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  61. package/dist/public/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  62. package/dist/public/assets/Preview-NR2gYrSG.js +1 -0
  63. package/dist/public/assets/abap-BdImnpbu.js +1 -0
  64. package/dist/public/assets/actionscript-3-CfeIJUat.js +1 -0
  65. package/dist/public/assets/ada-bCR0ucgS.js +1 -0
  66. package/dist/public/assets/andromeeda-C-Jbm3Hp.js +1 -0
  67. package/dist/public/assets/angular-html-CU67Zn6k.js +1 -0
  68. package/dist/public/assets/angular-ts-BwZT4LLn.js +1 -0
  69. package/dist/public/assets/apache-Pmp26Uib.js +1 -0
  70. package/dist/public/assets/apex-DDbsPZ6N.js +1 -0
  71. package/dist/public/assets/apl-dKokRX4l.js +1 -0
  72. package/dist/public/assets/applescript-Co6uUVPk.js +1 -0
  73. package/dist/public/assets/ara-BRHolxvo.js +1 -0
  74. package/dist/public/assets/asciidoc-Dv7Oe6Be.js +1 -0
  75. package/dist/public/assets/asm-D_Q5rh1f.js +1 -0
  76. package/dist/public/assets/astro-CbQHKStN.js +1 -0
  77. package/dist/public/assets/aurora-x-D-2ljcwZ.js +1 -0
  78. package/dist/public/assets/awk-DMzUqQB5.js +1 -0
  79. package/dist/public/assets/ayu-dark-Cv9koXgw.js +1 -0
  80. package/dist/public/assets/ballerina-BFfxhgS-.js +1 -0
  81. package/dist/public/assets/bat-BkioyH1T.js +1 -0
  82. package/dist/public/assets/beancount-k_qm7-4y.js +1 -0
  83. package/dist/public/assets/berry-uYugtg8r.js +1 -0
  84. package/dist/public/assets/bibtex-CHM0blh-.js +1 -0
  85. package/dist/public/assets/bicep-Bmn6On1c.js +1 -0
  86. package/dist/public/assets/blade-DVc8C-J4.js +1 -0
  87. package/dist/public/assets/bsl-BO_Y6i37.js +1 -0
  88. package/dist/public/assets/c-BIGW1oBm.js +1 -0
  89. package/dist/public/assets/cadence-Bv_4Rxtq.js +1 -0
  90. package/dist/public/assets/cairo-KRGpt6FW.js +1 -0
  91. package/dist/public/assets/catppuccin-frappe-DFWUc33u.js +1 -0
  92. package/dist/public/assets/catppuccin-latte-C9dUb6Cb.js +1 -0
  93. package/dist/public/assets/catppuccin-macchiato-DQyhUUbL.js +1 -0
  94. package/dist/public/assets/catppuccin-mocha-D87Tk5Gz.js +1 -0
  95. package/dist/public/assets/clarity-D53aC0YG.js +1 -0
  96. package/dist/public/assets/clojure-P80f7IUj.js +1 -0
  97. package/dist/public/assets/cmake-D1j8_8rp.js +1 -0
  98. package/dist/public/assets/cobol-nwyudZeR.js +1 -0
  99. package/dist/public/assets/codeowners-Bp6g37R7.js +1 -0
  100. package/dist/public/assets/codeql-DsOJ9woJ.js +1 -0
  101. package/dist/public/assets/coffee-Ch7k5sss.js +1 -0
  102. package/dist/public/assets/common-lisp-Cg-RD9OK.js +1 -0
  103. package/dist/public/assets/coq-DkFqJrB1.js +1 -0
  104. package/dist/public/assets/cpp-CofmeUqb.js +1 -0
  105. package/dist/public/assets/crystal-tKQVLTB8.js +1 -0
  106. package/dist/public/assets/csharp-K5feNrxe.js +1 -0
  107. package/dist/public/assets/css-DPfMkruS.js +1 -0
  108. package/dist/public/assets/csv-fuZLfV_i.js +1 -0
  109. package/dist/public/assets/cue-D82EKSYY.js +1 -0
  110. package/dist/public/assets/custom-media-element-Ce0vsE-t.js +43 -0
  111. package/dist/public/assets/cypher-COkxafJQ.js +1 -0
  112. package/dist/public/assets/d-85-TOEBH.js +1 -0
  113. package/dist/public/assets/dark-plus-C3mMm8J8.js +1 -0
  114. package/dist/public/assets/dart-CF10PKvl.js +1 -0
  115. package/dist/public/assets/dash.all.min-Oikk9St1.js +21 -0
  116. package/dist/public/assets/dax-CEL-wOlO.js +1 -0
  117. package/dist/public/assets/desktop-BmXAJ9_W.js +1 -0
  118. package/dist/public/assets/diff-D97Zzqfu.js +1 -0
  119. package/dist/public/assets/docker-BcOcwvcX.js +1 -0
  120. package/dist/public/assets/dotenv-Da5cRb03.js +1 -0
  121. package/dist/public/assets/dracula-BzJJZx-M.js +1 -0
  122. package/dist/public/assets/dracula-soft-BXkSAIEj.js +1 -0
  123. package/dist/public/assets/dream-maker-BtqSS_iP.js +1 -0
  124. package/dist/public/assets/edge-BkV0erSs.js +1 -0
  125. package/dist/public/assets/elixir-CDX3lj18.js +1 -0
  126. package/dist/public/assets/elm-DbKCFpqz.js +1 -0
  127. package/dist/public/assets/emacs-lisp-C9XAeP06.js +1 -0
  128. package/dist/public/assets/erb-BOJIQeun.js +1 -0
  129. package/dist/public/assets/erlang-DsQrWhSR.js +1 -0
  130. package/dist/public/assets/everforest-dark-BgDCqdQA.js +1 -0
  131. package/dist/public/assets/everforest-light-C8M2exoo.js +1 -0
  132. package/dist/public/assets/fennel-BYunw83y.js +1 -0
  133. package/dist/public/assets/fish-BvzEVeQv.js +1 -0
  134. package/dist/public/assets/fluent-C4IJs8-o.js +1 -0
  135. package/dist/public/assets/fortran-fixed-form-BZjJHVRy.js +1 -0
  136. package/dist/public/assets/fortran-free-form-D22FLkUw.js +1 -0
  137. package/dist/public/assets/fsharp-CXgrBDvD.js +1 -0
  138. package/dist/public/assets/gdresource-B7Tvp0Sc.js +1 -0
  139. package/dist/public/assets/gdscript-DTMYz4Jt.js +1 -0
  140. package/dist/public/assets/gdshader-DkwncUOv.js +1 -0
  141. package/dist/public/assets/genie-D0YGMca9.js +1 -0
  142. package/dist/public/assets/gherkin-DyxjwDmM.js +1 -0
  143. package/dist/public/assets/git-commit-F4YmCXRG.js +1 -0
  144. package/dist/public/assets/git-rebase-r7XF79zn.js +1 -0
  145. package/dist/public/assets/github-dark-DHJKELXO.js +1 -0
  146. package/dist/public/assets/github-dark-default-Cuk6v7N8.js +1 -0
  147. package/dist/public/assets/github-dark-dimmed-DH5Ifo-i.js +1 -0
  148. package/dist/public/assets/github-dark-high-contrast-E3gJ1_iC.js +1 -0
  149. package/dist/public/assets/github-light-DAi9KRSo.js +1 -0
  150. package/dist/public/assets/github-light-default-D7oLnXFd.js +1 -0
  151. package/dist/public/assets/github-light-high-contrast-BfjtVDDH.js +1 -0
  152. package/dist/public/assets/gleam-BspZqrRM.js +1 -0
  153. package/dist/public/assets/glimmer-js-Rg0-pVw9.js +1 -0
  154. package/dist/public/assets/glimmer-ts-U6CK756n.js +1 -0
  155. package/dist/public/assets/glsl-DplSGwfg.js +1 -0
  156. package/dist/public/assets/gnuplot-DdkO51Og.js +1 -0
  157. package/dist/public/assets/go-Dn2_MT6a.js +1 -0
  158. package/dist/public/assets/graphql-ChdNCCLP.js +1 -0
  159. package/dist/public/assets/groovy-gcz8RCvz.js +1 -0
  160. package/dist/public/assets/gruvbox-dark-hard-CFHQjOhq.js +1 -0
  161. package/dist/public/assets/gruvbox-dark-medium-GsRaNv29.js +1 -0
  162. package/dist/public/assets/gruvbox-dark-soft-CVdnzihN.js +1 -0
  163. package/dist/public/assets/gruvbox-light-hard-CH1njM8p.js +1 -0
  164. package/dist/public/assets/gruvbox-light-medium-DRw_LuNl.js +1 -0
  165. package/dist/public/assets/gruvbox-light-soft-hJgmCMqR.js +1 -0
  166. package/dist/public/assets/hack-CaT9iCJl.js +1 -0
  167. package/dist/public/assets/haml-B8DHNrY2.js +1 -0
  168. package/dist/public/assets/handlebars-BL8al0AC.js +1 -0
  169. package/dist/public/assets/haskell-Df6bDoY_.js +1 -0
  170. package/dist/public/assets/haxe-CzTSHFRz.js +1 -0
  171. package/dist/public/assets/hcl-BWvSN4gD.js +1 -0
  172. package/dist/public/assets/hjson-D5-asLiD.js +1 -0
  173. package/dist/public/assets/hls-C_5si56p.js +40 -0
  174. package/dist/public/assets/hlsl-D3lLCCz7.js +1 -0
  175. package/dist/public/assets/houston-DnULxvSX.js +1 -0
  176. package/dist/public/assets/html-GMplVEZG.js +1 -0
  177. package/dist/public/assets/html-derivative-BFtXZ54Q.js +1 -0
  178. package/dist/public/assets/http-jrhK8wxY.js +1 -0
  179. package/dist/public/assets/hurl-irOxFIW8.js +1 -0
  180. package/dist/public/assets/hxml-Bvhsp5Yf.js +1 -0
  181. package/dist/public/assets/hy-DFXneXwc.js +1 -0
  182. package/dist/public/assets/imba-DGztddWO.js +1 -0
  183. package/dist/public/assets/index-7dkQZ452.js +3299 -0
  184. package/dist/public/assets/index-Ba4GJyLR.js +594 -0
  185. package/dist/public/assets/index-Cr3JJDAk.css +1 -0
  186. package/dist/public/assets/ini-BEwlwnbL.js +1 -0
  187. package/dist/public/assets/java-CylS5w8V.js +1 -0
  188. package/dist/public/assets/javascript-wDzz0qaB.js +1 -0
  189. package/dist/public/assets/jinja-4LBKfQ-Z.js +1 -0
  190. package/dist/public/assets/jison-wvAkD_A8.js +1 -0
  191. package/dist/public/assets/json-Cp-IABpG.js +1 -0
  192. package/dist/public/assets/json5-C9tS-k6U.js +1 -0
  193. package/dist/public/assets/jsonc-Des-eS-w.js +1 -0
  194. package/dist/public/assets/jsonl-DcaNXYhu.js +1 -0
  195. package/dist/public/assets/jsonnet-DFQXde-d.js +1 -0
  196. package/dist/public/assets/jssm-C2t-YnRu.js +1 -0
  197. package/dist/public/assets/jsx-g9-lgVsj.js +1 -0
  198. package/dist/public/assets/julia-C8NyazO9.js +1 -0
  199. package/dist/public/assets/kanagawa-dragon-CkXjmgJE.js +1 -0
  200. package/dist/public/assets/kanagawa-lotus-CfQXZHmo.js +1 -0
  201. package/dist/public/assets/kanagawa-wave-DWedfzmr.js +1 -0
  202. package/dist/public/assets/kdl-DV7GczEv.js +1 -0
  203. package/dist/public/assets/kotlin-BdnUsdx6.js +1 -0
  204. package/dist/public/assets/kusto-BvAqAH-y.js +1 -0
  205. package/dist/public/assets/laserwave-DUszq2jm.js +1 -0
  206. package/dist/public/assets/latex-BdAV_C_H.js +1 -0
  207. package/dist/public/assets/lean-Bc6EcWN3.js +1 -0
  208. package/dist/public/assets/less-B1dDrJ26.js +1 -0
  209. package/dist/public/assets/light-plus-B7mTdjB0.js +1 -0
  210. package/dist/public/assets/liquid-DYVedYrR.js +1 -0
  211. package/dist/public/assets/llvm-BtvRca6l.js +1 -0
  212. package/dist/public/assets/log-2UxHyX5q.js +1 -0
  213. package/dist/public/assets/logo-BtOb2qkB.js +1 -0
  214. package/dist/public/assets/lua-BbnMAYS6.js +1 -0
  215. package/dist/public/assets/luau-CXu1NL6O.js +1 -0
  216. package/dist/public/assets/make-CHLpvVh8.js +1 -0
  217. package/dist/public/assets/markdown-Cvjx9yec.js +1 -0
  218. package/dist/public/assets/marko-CPi9NSCl.js +1 -0
  219. package/dist/public/assets/material-theme-D5KoaKCx.js +1 -0
  220. package/dist/public/assets/material-theme-darker-BfHTSMKl.js +1 -0
  221. package/dist/public/assets/material-theme-lighter-B0m2ddpp.js +1 -0
  222. package/dist/public/assets/material-theme-ocean-CyktbL80.js +1 -0
  223. package/dist/public/assets/material-theme-palenight-Csfq5Kiy.js +1 -0
  224. package/dist/public/assets/matlab-D7o27uSR.js +1 -0
  225. package/dist/public/assets/mdc-DUICxH0z.js +1 -0
  226. package/dist/public/assets/mdx-Cmh6b_Ma.js +1 -0
  227. package/dist/public/assets/mermaid-DKYwYmdq.js +1 -0
  228. package/dist/public/assets/min-dark-CafNBF8u.js +1 -0
  229. package/dist/public/assets/min-light-CTRr51gU.js +1 -0
  230. package/dist/public/assets/mipsasm-CKIfxQSi.js +1 -0
  231. package/dist/public/assets/mojo-1DNp92w6.js +1 -0
  232. package/dist/public/assets/monokai-D4h5O-jR.js +1 -0
  233. package/dist/public/assets/move-Bu9oaDYs.js +1 -0
  234. package/dist/public/assets/narrat-DRg8JJMk.js +1 -0
  235. package/dist/public/assets/nextflow-BrzmwbiE.js +1 -0
  236. package/dist/public/assets/nginx-DknmC5AR.js +1 -0
  237. package/dist/public/assets/night-owl-C39BiMTA.js +1 -0
  238. package/dist/public/assets/nim-CVrawwO9.js +1 -0
  239. package/dist/public/assets/nix-c8nO5XWb.js +1 -0
  240. package/dist/public/assets/nord-Ddv68eIx.js +1 -0
  241. package/dist/public/assets/nushell-C-sUppwS.js +1 -0
  242. package/dist/public/assets/objective-c-DXmwc3jG.js +1 -0
  243. package/dist/public/assets/objective-cpp-CLxacb5B.js +1 -0
  244. package/dist/public/assets/ocaml-C0hk2d4L.js +1 -0
  245. package/dist/public/assets/one-dark-pro-DVMEJ2y_.js +1 -0
  246. package/dist/public/assets/one-light-PoHY5YXO.js +1 -0
  247. package/dist/public/assets/openscad-C4EeE6gA.js +1 -0
  248. package/dist/public/assets/pascal-D93ZcfNL.js +1 -0
  249. package/dist/public/assets/perl-C0TMdlhV.js +1 -0
  250. package/dist/public/assets/php-CDn_0X-4.js +1 -0
  251. package/dist/public/assets/pkl-u5AG7uiY.js +1 -0
  252. package/dist/public/assets/plastic-3e1v2bzS.js +1 -0
  253. package/dist/public/assets/plsql-ChMvpjG-.js +1 -0
  254. package/dist/public/assets/po-BTJTHyun.js +1 -0
  255. package/dist/public/assets/poimandres-CS3Unz2-.js +1 -0
  256. package/dist/public/assets/polar-C0HS_06l.js +1 -0
  257. package/dist/public/assets/postcss-CXtECtnM.js +1 -0
  258. package/dist/public/assets/powerquery-CEu0bR-o.js +1 -0
  259. package/dist/public/assets/powershell-Dpen1YoG.js +1 -0
  260. package/dist/public/assets/prisma-Dd19v3D-.js +1 -0
  261. package/dist/public/assets/prolog-CbFg5uaA.js +1 -0
  262. package/dist/public/assets/proto-DyJlTyXw.js +1 -0
  263. package/dist/public/assets/pug-CGlum2m_.js +1 -0
  264. package/dist/public/assets/puppet-BMWR74SV.js +1 -0
  265. package/dist/public/assets/purescript-CklMAg4u.js +1 -0
  266. package/dist/public/assets/python-B6aJPvgy.js +1 -0
  267. package/dist/public/assets/qml-3beO22l8.js +1 -0
  268. package/dist/public/assets/qmldir-C8lEn-DE.js +1 -0
  269. package/dist/public/assets/qss-IeuSbFQv.js +1 -0
  270. package/dist/public/assets/r-DiinP2Uv.js +1 -0
  271. package/dist/public/assets/racket-BqYA7rlc.js +1 -0
  272. package/dist/public/assets/raku-DXvB9xmW.js +1 -0
  273. package/dist/public/assets/razor-CE9lU5zL.js +1 -0
  274. package/dist/public/assets/react-5ZXevCLf.js +17 -0
  275. package/dist/public/assets/react-BEcdFE7q.js +22 -0
  276. package/dist/public/assets/react-D2EJnkVv.js +19 -0
  277. package/dist/public/assets/react-D7jI_eai.js +1 -0
  278. package/dist/public/assets/react-DJAU2yhQ.js +6 -0
  279. package/dist/public/assets/react-DOmflkoB.js +19 -0
  280. package/dist/public/assets/react-cRnw9P6y.js +21 -0
  281. package/dist/public/assets/react-juJrAyUY.js +34 -0
  282. package/dist/public/assets/red-bN70gL4F.js +1 -0
  283. package/dist/public/assets/reg-C-SQnVFl.js +1 -0
  284. package/dist/public/assets/regexp-CDVJQ6XC.js +1 -0
  285. package/dist/public/assets/rel-C3B-1QV4.js +1 -0
  286. package/dist/public/assets/riscv-BM1_JUlF.js +1 -0
  287. package/dist/public/assets/rose-pine-dawn-DHQR4-dF.js +1 -0
  288. package/dist/public/assets/rose-pine-moon-D4_iv3hh.js +1 -0
  289. package/dist/public/assets/rose-pine-qdsjHGoJ.js +1 -0
  290. package/dist/public/assets/rosmsg-BJDFO7_C.js +1 -0
  291. package/dist/public/assets/rst-B0xPkSld.js +1 -0
  292. package/dist/public/assets/ruby-BvKwtOVI.js +1 -0
  293. package/dist/public/assets/rust-B1yitclQ.js +1 -0
  294. package/dist/public/assets/sas-cz2c8ADy.js +1 -0
  295. package/dist/public/assets/sass-Cj5Yp3dK.js +1 -0
  296. package/dist/public/assets/scala-C151Ov-r.js +1 -0
  297. package/dist/public/assets/scheme-C98Dy4si.js +1 -0
  298. package/dist/public/assets/scss-OYdSNvt2.js +1 -0
  299. package/dist/public/assets/sdbl-DVxCFoDh.js +1 -0
  300. package/dist/public/assets/shaderlab-Dg9Lc6iA.js +1 -0
  301. package/dist/public/assets/shellscript-Yzrsuije.js +1 -0
  302. package/dist/public/assets/shellsession-BADoaaVG.js +1 -0
  303. package/dist/public/assets/slack-dark-BthQWCQV.js +1 -0
  304. package/dist/public/assets/slack-ochin-DqwNpetd.js +1 -0
  305. package/dist/public/assets/smalltalk-BERRCDM3.js +1 -0
  306. package/dist/public/assets/snazzy-light-Bw305WKR.js +1 -0
  307. package/dist/public/assets/solarized-dark-DXbdFlpD.js +1 -0
  308. package/dist/public/assets/solarized-light-L9t79GZl.js +1 -0
  309. package/dist/public/assets/solidity-rGO070M0.js +1 -0
  310. package/dist/public/assets/soy-Brmx7dQM.js +1 -0
  311. package/dist/public/assets/sparql-rVzFXLq3.js +1 -0
  312. package/dist/public/assets/splunk-BtCnVYZw.js +1 -0
  313. package/dist/public/assets/sql-BLtJtn59.js +1 -0
  314. package/dist/public/assets/ssh-config-_ykCGR6B.js +1 -0
  315. package/dist/public/assets/stata-BH5u7GGu.js +1 -0
  316. package/dist/public/assets/stylus-BEDo0Tqx.js +1 -0
  317. package/dist/public/assets/svelte-3Dk4HxPD.js +1 -0
  318. package/dist/public/assets/swift-Dg5xB15N.js +1 -0
  319. package/dist/public/assets/synthwave-84-CbfX1IO0.js +1 -0
  320. package/dist/public/assets/system-verilog-CnnmHF94.js +1 -0
  321. package/dist/public/assets/systemd-4A_iFExJ.js +1 -0
  322. package/dist/public/assets/talonscript-CkByrt1z.js +1 -0
  323. package/dist/public/assets/tasl-QIJgUcNo.js +1 -0
  324. package/dist/public/assets/tcl-dwOrl1Do.js +1 -0
  325. package/dist/public/assets/templ-W15q3VgB.js +1 -0
  326. package/dist/public/assets/terraform-BETggiCN.js +1 -0
  327. package/dist/public/assets/tex-CxkMU7Pf.js +1 -0
  328. package/dist/public/assets/tokyo-night-hegEt444.js +1 -0
  329. package/dist/public/assets/toml-vGWfd6FD.js +1 -0
  330. package/dist/public/assets/ts-tags-zn1MmPIZ.js +1 -0
  331. package/dist/public/assets/tsv-B_m7g4N7.js +1 -0
  332. package/dist/public/assets/tsx-COt5Ahok.js +1 -0
  333. package/dist/public/assets/turtle-BsS91CYL.js +1 -0
  334. package/dist/public/assets/twig-CO9l9SDP.js +1 -0
  335. package/dist/public/assets/typescript-BPQ3VLAy.js +1 -0
  336. package/dist/public/assets/typespec-BGHnOYBU.js +1 -0
  337. package/dist/public/assets/typst-DHCkPAjA.js +1 -0
  338. package/dist/public/assets/v-BcVCzyr7.js +1 -0
  339. package/dist/public/assets/vala-CsfeWuGM.js +1 -0
  340. package/dist/public/assets/vb-D17OF-Vu.js +1 -0
  341. package/dist/public/assets/verilog-BQ8w6xss.js +1 -0
  342. package/dist/public/assets/vesper-DU1UobuO.js +1 -0
  343. package/dist/public/assets/vhdl-CeAyd5Ju.js +1 -0
  344. package/dist/public/assets/viml-CJc9bBzg.js +1 -0
  345. package/dist/public/assets/vitesse-black-Bkuqu6BP.js +1 -0
  346. package/dist/public/assets/vitesse-dark-D0r3Knsf.js +1 -0
  347. package/dist/public/assets/vitesse-light-CVO1_9PV.js +1 -0
  348. package/dist/public/assets/vue-DnHKYNfI.js +1 -0
  349. package/dist/public/assets/vue-html-CChd_i61.js +1 -0
  350. package/dist/public/assets/vue-vine-8moa0y9V.js +1 -0
  351. package/dist/public/assets/vyper-CDx5xZoG.js +1 -0
  352. package/dist/public/assets/wasm-CG6Dc4jp.js +1 -0
  353. package/dist/public/assets/wasm-MzD3tlZU.js +1 -0
  354. package/dist/public/assets/wenyan-BV7otONQ.js +1 -0
  355. package/dist/public/assets/wgsl-Dx-B1_4e.js +1 -0
  356. package/dist/public/assets/wikitext-BhOHFoWU.js +1 -0
  357. package/dist/public/assets/wit-5i3qLPDT.js +1 -0
  358. package/dist/public/assets/wolfram-lXgVvXCa.js +1 -0
  359. package/dist/public/assets/xml-sdJ4AIDG.js +1 -0
  360. package/dist/public/assets/xsl-CtQFsRM5.js +1 -0
  361. package/dist/public/assets/yaml-Buea-lGh.js +1 -0
  362. package/dist/public/assets/zenscript-DVFEvuxE.js +1 -0
  363. package/dist/public/assets/zig-VOosw3JB.js +1 -0
  364. package/{frontend → dist/public}/index.html +2 -1
  365. package/dist/server/index.js +1 -1
  366. package/package.json +10 -3
  367. package/readme.md +77 -0
  368. package/.gitattributes +0 -2
  369. package/.prettierignore +0 -5
  370. package/.prettierrc +0 -9
  371. package/.vscode/settings.json +0 -13
  372. package/frontend/README.md +0 -73
  373. package/frontend/components.json +0 -24
  374. package/frontend/eslint.config.js +0 -23
  375. package/frontend/package-lock.json +0 -15754
  376. package/frontend/package.json +0 -122
  377. package/frontend/src/App.tsx +0 -21
  378. package/frontend/src/components/app-sidebar.tsx +0 -393
  379. package/frontend/src/components/editor/editor-base-kit.tsx +0 -43
  380. package/frontend/src/components/editor/editor-kit.tsx +0 -93
  381. package/frontend/src/components/editor/plugins/align-base-kit.tsx +0 -16
  382. package/frontend/src/components/editor/plugins/align-kit.tsx +0 -18
  383. package/frontend/src/components/editor/plugins/autoformat-kit.tsx +0 -236
  384. package/frontend/src/components/editor/plugins/basic-blocks-base-kit.tsx +0 -35
  385. package/frontend/src/components/editor/plugins/basic-blocks-kit.tsx +0 -88
  386. package/frontend/src/components/editor/plugins/basic-marks-base-kit.tsx +0 -27
  387. package/frontend/src/components/editor/plugins/basic-marks-kit.tsx +0 -41
  388. package/frontend/src/components/editor/plugins/basic-nodes-kit.tsx +0 -6
  389. package/frontend/src/components/editor/plugins/block-menu-kit.tsx +0 -14
  390. package/frontend/src/components/editor/plugins/block-placeholder-kit.tsx +0 -17
  391. package/frontend/src/components/editor/plugins/block-selection-kit.tsx +0 -32
  392. package/frontend/src/components/editor/plugins/callout-base-kit.tsx +0 -7
  393. package/frontend/src/components/editor/plugins/callout-kit.tsx +0 -7
  394. package/frontend/src/components/editor/plugins/code-block-base-kit.tsx +0 -23
  395. package/frontend/src/components/editor/plugins/code-block-kit.tsx +0 -26
  396. package/frontend/src/components/editor/plugins/codebase-kit.tsx +0 -23
  397. package/frontend/src/components/editor/plugins/column-base-kit.tsx +0 -11
  398. package/frontend/src/components/editor/plugins/column-kit.tsx +0 -10
  399. package/frontend/src/components/editor/plugins/comment-base-kit.tsx +0 -7
  400. package/frontend/src/components/editor/plugins/comment-kit.tsx +0 -97
  401. package/frontend/src/components/editor/plugins/cursor-overlay-kit.tsx +0 -13
  402. package/frontend/src/components/editor/plugins/date-base-kit.tsx +0 -5
  403. package/frontend/src/components/editor/plugins/date-kit.tsx +0 -7
  404. package/frontend/src/components/editor/plugins/discussion-kit.tsx +0 -148
  405. package/frontend/src/components/editor/plugins/dnd-kit.tsx +0 -28
  406. package/frontend/src/components/editor/plugins/docx-kit.tsx +0 -6
  407. package/frontend/src/components/editor/plugins/emoji-kit.tsx +0 -13
  408. package/frontend/src/components/editor/plugins/excalidraw-kit.tsx +0 -9
  409. package/frontend/src/components/editor/plugins/exit-break-kit.tsx +0 -12
  410. package/frontend/src/components/editor/plugins/floating-toolbar-kit.tsx +0 -19
  411. package/frontend/src/components/editor/plugins/font-base-kit.tsx +0 -20
  412. package/frontend/src/components/editor/plugins/font-kit.tsx +0 -29
  413. package/frontend/src/components/editor/plugins/indent-base-kit.tsx +0 -19
  414. package/frontend/src/components/editor/plugins/indent-kit.tsx +0 -22
  415. package/frontend/src/components/editor/plugins/line-height-base-kit.tsx +0 -14
  416. package/frontend/src/components/editor/plugins/line-height-kit.tsx +0 -16
  417. package/frontend/src/components/editor/plugins/link-base-kit.tsx +0 -5
  418. package/frontend/src/components/editor/plugins/link-kit.tsx +0 -15
  419. package/frontend/src/components/editor/plugins/list-base-kit.tsx +0 -23
  420. package/frontend/src/components/editor/plugins/list-kit.tsx +0 -26
  421. package/frontend/src/components/editor/plugins/markdown-kit.tsx +0 -46
  422. package/frontend/src/components/editor/plugins/math-base-kit.tsx +0 -11
  423. package/frontend/src/components/editor/plugins/math-kit.tsx +0 -13
  424. package/frontend/src/components/editor/plugins/media-base-kit.tsx +0 -31
  425. package/frontend/src/components/editor/plugins/media-kit.tsx +0 -43
  426. package/frontend/src/components/editor/plugins/mention-base-kit.tsx +0 -7
  427. package/frontend/src/components/editor/plugins/mention-kit.tsx +0 -15
  428. package/frontend/src/components/editor/plugins/slash-kit.tsx +0 -18
  429. package/frontend/src/components/editor/plugins/suggestion-base-kit.tsx +0 -7
  430. package/frontend/src/components/editor/plugins/suggestion-kit.tsx +0 -90
  431. package/frontend/src/components/editor/plugins/table-base-kit.tsx +0 -20
  432. package/frontend/src/components/editor/plugins/table-kit.tsx +0 -22
  433. package/frontend/src/components/editor/plugins/toc-base-kit.tsx +0 -5
  434. package/frontend/src/components/editor/plugins/toc-kit.tsx +0 -14
  435. package/frontend/src/components/editor/plugins/toggle-base-kit.tsx +0 -7
  436. package/frontend/src/components/editor/plugins/toggle-kit.tsx +0 -11
  437. package/frontend/src/components/editor/transforms.ts +0 -194
  438. package/frontend/src/components/markdown-to-slate-demo.tsx +0 -50
  439. package/frontend/src/components/mode-toggle.tsx +0 -15
  440. package/frontend/src/components/theme-provider.tsx +0 -73
  441. package/frontend/src/components/ui/alert-dialog.tsx +0 -155
  442. package/frontend/src/components/ui/align-toolbar-button.tsx +0 -84
  443. package/frontend/src/components/ui/avatar.tsx +0 -51
  444. package/frontend/src/components/ui/block-context-menu.tsx +0 -199
  445. package/frontend/src/components/ui/block-discussion.tsx +0 -365
  446. package/frontend/src/components/ui/block-draggable.tsx +0 -512
  447. package/frontend/src/components/ui/block-list-static.tsx +0 -80
  448. package/frontend/src/components/ui/block-list.tsx +0 -87
  449. package/frontend/src/components/ui/block-selection.tsx +0 -42
  450. package/frontend/src/components/ui/block-suggestion.tsx +0 -473
  451. package/frontend/src/components/ui/blockquote-node-static.tsx +0 -11
  452. package/frontend/src/components/ui/blockquote-node.tsx +0 -13
  453. package/frontend/src/components/ui/button.tsx +0 -62
  454. package/frontend/src/components/ui/calendar.tsx +0 -218
  455. package/frontend/src/components/ui/callout-node-static.tsx +0 -36
  456. package/frontend/src/components/ui/callout-node.tsx +0 -63
  457. package/frontend/src/components/ui/caption.tsx +0 -63
  458. package/frontend/src/components/ui/checkbox.tsx +0 -30
  459. package/frontend/src/components/ui/code-block-node-static.tsx +0 -35
  460. package/frontend/src/components/ui/code-block-node.tsx +0 -287
  461. package/frontend/src/components/ui/code-node-static.tsx +0 -15
  462. package/frontend/src/components/ui/code-node.tsx +0 -17
  463. package/frontend/src/components/ui/codebase-snippet-node.tsx +0 -237
  464. package/frontend/src/components/ui/column-node-static.tsx +0 -29
  465. package/frontend/src/components/ui/column-node.tsx +0 -317
  466. package/frontend/src/components/ui/command.tsx +0 -182
  467. package/frontend/src/components/ui/comment-node-static.tsx +0 -15
  468. package/frontend/src/components/ui/comment-node.tsx +0 -45
  469. package/frontend/src/components/ui/comment-toolbar-button.tsx +0 -24
  470. package/frontend/src/components/ui/comment.tsx +0 -618
  471. package/frontend/src/components/ui/context-menu.tsx +0 -250
  472. package/frontend/src/components/ui/cursor-overlay.tsx +0 -66
  473. package/frontend/src/components/ui/date-node-static.tsx +0 -45
  474. package/frontend/src/components/ui/date-node.tsx +0 -93
  475. package/frontend/src/components/ui/dialog.tsx +0 -143
  476. package/frontend/src/components/ui/dropdown-menu.tsx +0 -255
  477. package/frontend/src/components/ui/dynamic-icon.tsx +0 -12
  478. package/frontend/src/components/ui/editor-static.tsx +0 -53
  479. package/frontend/src/components/ui/editor.tsx +0 -130
  480. package/frontend/src/components/ui/emoji-node.tsx +0 -69
  481. package/frontend/src/components/ui/emoji-toolbar-button.tsx +0 -628
  482. package/frontend/src/components/ui/equation-node-static.tsx +0 -98
  483. package/frontend/src/components/ui/equation-node.tsx +0 -235
  484. package/frontend/src/components/ui/equation-toolbar-button.tsx +0 -25
  485. package/frontend/src/components/ui/excalidraw-node.tsx +0 -36
  486. package/frontend/src/components/ui/export-toolbar-button.tsx +0 -174
  487. package/frontend/src/components/ui/file-selector.tsx +0 -339
  488. package/frontend/src/components/ui/floating-toolbar-buttons.tsx +0 -73
  489. package/frontend/src/components/ui/floating-toolbar.tsx +0 -85
  490. package/frontend/src/components/ui/font-color-toolbar-button.tsx +0 -831
  491. package/frontend/src/components/ui/font-size-toolbar-button.tsx +0 -152
  492. package/frontend/src/components/ui/heading-node-static.tsx +0 -68
  493. package/frontend/src/components/ui/heading-node.tsx +0 -58
  494. package/frontend/src/components/ui/highlight-node-static.tsx +0 -11
  495. package/frontend/src/components/ui/highlight-node.tsx +0 -13
  496. package/frontend/src/components/ui/history-toolbar-button.tsx +0 -50
  497. package/frontend/src/components/ui/hr-node-static.tsx +0 -20
  498. package/frontend/src/components/ui/hr-node.tsx +0 -33
  499. package/frontend/src/components/ui/import-toolbar-button.tsx +0 -97
  500. package/frontend/src/components/ui/indent-toolbar-button.tsx +0 -30
  501. package/frontend/src/components/ui/inline-combobox.tsx +0 -414
  502. package/frontend/src/components/ui/input.tsx +0 -21
  503. package/frontend/src/components/ui/insert-toolbar-button.tsx +0 -254
  504. package/frontend/src/components/ui/kbd-node-static.tsx +0 -15
  505. package/frontend/src/components/ui/kbd-node.tsx +0 -17
  506. package/frontend/src/components/ui/layout-header.tsx +0 -35
  507. package/frontend/src/components/ui/line-height-toolbar-button.tsx +0 -68
  508. package/frontend/src/components/ui/link-node-static.tsx +0 -21
  509. package/frontend/src/components/ui/link-node.tsx +0 -39
  510. package/frontend/src/components/ui/link-toolbar-button.tsx +0 -22
  511. package/frontend/src/components/ui/link-toolbar.tsx +0 -206
  512. package/frontend/src/components/ui/list-toolbar-button.tsx +0 -204
  513. package/frontend/src/components/ui/mark-toolbar-button.tsx +0 -19
  514. package/frontend/src/components/ui/media-audio-node-static.tsx +0 -17
  515. package/frontend/src/components/ui/media-audio-node.tsx +0 -39
  516. package/frontend/src/components/ui/media-embed-node.tsx +0 -136
  517. package/frontend/src/components/ui/media-file-node-static.tsx +0 -29
  518. package/frontend/src/components/ui/media-file-node.tsx +0 -47
  519. package/frontend/src/components/ui/media-image-node-static.tsx +0 -39
  520. package/frontend/src/components/ui/media-image-node.tsx +0 -80
  521. package/frontend/src/components/ui/media-placeholder-node.tsx +0 -249
  522. package/frontend/src/components/ui/media-preview-dialog.tsx +0 -152
  523. package/frontend/src/components/ui/media-toolbar-button.tsx +0 -225
  524. package/frontend/src/components/ui/media-toolbar.tsx +0 -115
  525. package/frontend/src/components/ui/media-upload-toast.tsx +0 -66
  526. package/frontend/src/components/ui/media-video-node-static.tsx +0 -30
  527. package/frontend/src/components/ui/media-video-node.tsx +0 -121
  528. package/frontend/src/components/ui/mention-node-static.tsx +0 -36
  529. package/frontend/src/components/ui/mention-node.tsx +0 -194
  530. package/frontend/src/components/ui/mode-toolbar-button.tsx +0 -123
  531. package/frontend/src/components/ui/more-toolbar-button.tsx +0 -80
  532. package/frontend/src/components/ui/paragraph-node-static.tsx +0 -13
  533. package/frontend/src/components/ui/paragraph-node.tsx +0 -15
  534. package/frontend/src/components/ui/popover.tsx +0 -46
  535. package/frontend/src/components/ui/resize-handle.tsx +0 -87
  536. package/frontend/src/components/ui/separator.tsx +0 -28
  537. package/frontend/src/components/ui/sheet.tsx +0 -139
  538. package/frontend/src/components/ui/sidebar.tsx +0 -726
  539. package/frontend/src/components/ui/skeleton.tsx +0 -13
  540. package/frontend/src/components/ui/slash-node.tsx +0 -233
  541. package/frontend/src/components/ui/sonner.tsx +0 -38
  542. package/frontend/src/components/ui/suggestion-node-static.tsx +0 -35
  543. package/frontend/src/components/ui/suggestion-node.tsx +0 -162
  544. package/frontend/src/components/ui/suggestion-toolbar-button.tsx +0 -25
  545. package/frontend/src/components/ui/table-icons.tsx +0 -862
  546. package/frontend/src/components/ui/table-node-static.tsx +0 -98
  547. package/frontend/src/components/ui/table-node.tsx +0 -656
  548. package/frontend/src/components/ui/table-toolbar-button.tsx +0 -264
  549. package/frontend/src/components/ui/toc-node-static.tsx +0 -92
  550. package/frontend/src/components/ui/toc-node.tsx +0 -55
  551. package/frontend/src/components/ui/toggle-node-static.tsx +0 -18
  552. package/frontend/src/components/ui/toggle-node.tsx +0 -36
  553. package/frontend/src/components/ui/toggle-toolbar-button.tsx +0 -22
  554. package/frontend/src/components/ui/toolbar.tsx +0 -387
  555. package/frontend/src/components/ui/tooltip.tsx +0 -59
  556. package/frontend/src/components/ui/turn-into-toolbar-button.tsx +0 -188
  557. package/frontend/src/hooks/use-debounce.ts +0 -18
  558. package/frontend/src/hooks/use-is-touch-device.ts +0 -24
  559. package/frontend/src/hooks/use-mobile.ts +0 -19
  560. package/frontend/src/hooks/use-mounted.ts +0 -11
  561. package/frontend/src/hooks/use-upload-file.ts +0 -128
  562. package/frontend/src/index.css +0 -128
  563. package/frontend/src/layout.tsx +0 -42
  564. package/frontend/src/lib/markdown-joiner-transform.ts +0 -239
  565. package/frontend/src/lib/orpc.ts +0 -13
  566. package/frontend/src/lib/uploadthing.ts +0 -19
  567. package/frontend/src/lib/utils.ts +0 -6
  568. package/frontend/src/main.tsx +0 -13
  569. package/frontend/src/pages/editor.tsx +0 -44
  570. package/frontend/src/types/docs.d.ts +0 -6
  571. package/frontend/src/types/global.d.ts +0 -9
  572. package/frontend/src/types/router.d.ts +0 -4
  573. package/frontend/tsconfig.app.json +0 -33
  574. package/frontend/tsconfig.json +0 -10
  575. package/frontend/tsconfig.node.json +0 -26
  576. package/frontend/vite.config.ts +0 -14
  577. package/src/bin/doclific.ts +0 -47
  578. package/src/core/codebase.ts +0 -39
  579. package/src/core/docs.ts +0 -90
  580. package/src/core/git.ts +0 -48
  581. package/src/server/index.ts +0 -55
  582. package/src/server/router.ts +0 -65
  583. package/tsconfig.json +0 -15
  584. /package/{frontend → dist}/public/logo.svg +0 -0
@@ -1,512 +0,0 @@
1
- import React from 'react';
2
-
3
- import { DndPlugin, useDraggable, useDropLine } from '@platejs/dnd';
4
- import { expandListItemsWithChildren } from '@platejs/list';
5
- import { BlockSelectionPlugin } from '@platejs/selection/react';
6
- import { GripVertical } from 'lucide-react';
7
- import { type TElement, getPluginByType, isType, KEYS } from 'platejs';
8
- import {
9
- type PlateEditor,
10
- type PlateElementProps,
11
- type RenderNodeWrapper,
12
- MemoizedChildren,
13
- useEditorRef,
14
- useElement,
15
- usePluginOption,
16
- } from 'platejs/react';
17
- import { useSelected } from 'platejs/react';
18
-
19
- import { Button } from '@/components/ui/button';
20
- import {
21
- Tooltip,
22
- TooltipContent,
23
- TooltipTrigger,
24
- } from '@/components/ui/tooltip';
25
- import { cn } from '@/lib/utils';
26
-
27
- const UNDRAGGABLE_KEYS = [KEYS.column, KEYS.tr, KEYS.td];
28
-
29
- export const BlockDraggable: RenderNodeWrapper = (props) => {
30
- const { editor, element, path } = props;
31
-
32
- const enabled = React.useMemo(() => {
33
- if (editor.dom.readOnly) return false;
34
-
35
- if (path.length === 1 && !isType(editor, element, UNDRAGGABLE_KEYS)) {
36
- return true;
37
- }
38
- if (path.length === 3 && !isType(editor, element, UNDRAGGABLE_KEYS)) {
39
- const block = editor.api.some({
40
- at: path,
41
- match: {
42
- type: editor.getType(KEYS.column),
43
- },
44
- });
45
-
46
- if (block) {
47
- return true;
48
- }
49
- }
50
- if (path.length === 4 && !isType(editor, element, UNDRAGGABLE_KEYS)) {
51
- const block = editor.api.some({
52
- at: path,
53
- match: {
54
- type: editor.getType(KEYS.table),
55
- },
56
- });
57
-
58
- if (block) {
59
- return true;
60
- }
61
- }
62
-
63
- return false;
64
- }, [editor, element, path]);
65
-
66
- if (!enabled) return;
67
-
68
- return (props) => <Draggable {...props} />;
69
- };
70
-
71
- function Draggable(props: PlateElementProps) {
72
- const { children, editor, element, path } = props;
73
- const blockSelectionApi = editor.getApi(BlockSelectionPlugin).blockSelection;
74
-
75
- const { isAboutToDrag, isDragging, nodeRef, previewRef, handleRef } =
76
- useDraggable({
77
- element,
78
- onDropHandler: (_, { dragItem }) => {
79
- const id = (dragItem as { id: string[] | string }).id;
80
-
81
- if (blockSelectionApi) {
82
- blockSelectionApi.add(id);
83
- }
84
- resetPreview();
85
- },
86
- });
87
-
88
- const isInColumn = path.length === 3;
89
- const isInTable = path.length === 4;
90
-
91
- const [previewTop, setPreviewTop] = React.useState(0);
92
-
93
- const resetPreview = () => {
94
- if (previewRef.current) {
95
- previewRef.current.replaceChildren();
96
- previewRef.current?.classList.add('hidden');
97
- }
98
- };
99
-
100
- // clear up virtual multiple preview when drag end
101
- React.useEffect(() => {
102
- if (!isDragging) {
103
- resetPreview();
104
- }
105
- // eslint-disable-next-line react-hooks/exhaustive-deps
106
- }, [isDragging]);
107
-
108
- React.useEffect(() => {
109
- if (isAboutToDrag) {
110
- previewRef.current?.classList.remove('opacity-0');
111
- }
112
- // eslint-disable-next-line react-hooks/exhaustive-deps
113
- }, [isAboutToDrag]);
114
-
115
- const [dragButtonTop, setDragButtonTop] = React.useState(0);
116
-
117
- return (
118
- <div
119
- className={cn(
120
- 'relative',
121
- isDragging && 'opacity-50',
122
- getPluginByType(editor, element.type)?.node.isContainer
123
- ? 'group/container'
124
- : 'group'
125
- )}
126
- onMouseEnter={() => {
127
- if (isDragging) return;
128
- setDragButtonTop(calcDragButtonTop(editor, element));
129
- }}
130
- >
131
- {!isInTable && (
132
- <Gutter>
133
- <div
134
- className={cn(
135
- 'slate-blockToolbarWrapper',
136
- 'flex h-[1.5em]',
137
- isInColumn && 'h-4'
138
- )}
139
- >
140
- <div
141
- className={cn(
142
- 'slate-blockToolbar relative w-4.5',
143
- 'pointer-events-auto mr-1 flex items-center',
144
- isInColumn && 'mr-1.5'
145
- )}
146
- >
147
- <Button
148
- ref={handleRef}
149
- variant="ghost"
150
- className="-left-0 absolute h-6 w-full p-0"
151
- style={{ top: `${dragButtonTop + 3}px` }}
152
- data-plate-prevent-deselect
153
- >
154
- <DragHandle
155
- isDragging={isDragging}
156
- previewRef={previewRef}
157
- resetPreview={resetPreview}
158
- setPreviewTop={setPreviewTop}
159
- />
160
- </Button>
161
- </div>
162
- </div>
163
- </Gutter>
164
- )}
165
-
166
- <div
167
- ref={previewRef}
168
- className={cn('-left-0 absolute hidden w-full')}
169
- style={{ top: `${-previewTop}px` }}
170
- contentEditable={false}
171
- />
172
-
173
- <div
174
- ref={nodeRef}
175
- className="slate-blockWrapper flow-root"
176
- onContextMenu={(event) =>
177
- editor
178
- .getApi(BlockSelectionPlugin)
179
- .blockSelection.addOnContextMenu({ element, event })
180
- }
181
- >
182
- <MemoizedChildren>{children}</MemoizedChildren>
183
- <DropLine />
184
- </div>
185
- </div>
186
- );
187
- }
188
-
189
- function Gutter({
190
- children,
191
- className,
192
- ...props
193
- }: React.ComponentProps<'div'>) {
194
- const editor = useEditorRef();
195
- const element = useElement();
196
- const isSelectionAreaVisible = usePluginOption(
197
- BlockSelectionPlugin,
198
- 'isSelectionAreaVisible'
199
- );
200
- const selected = useSelected();
201
-
202
- return (
203
- <div
204
- {...props}
205
- className={cn(
206
- 'slate-gutterLeft',
207
- '-translate-x-full absolute top-0 z-50 flex h-full cursor-text hover:opacity-100 sm:opacity-0',
208
- getPluginByType(editor, element.type)?.node.isContainer
209
- ? 'group-hover/container:opacity-100'
210
- : 'group-hover:opacity-100',
211
- isSelectionAreaVisible && 'hidden',
212
- !selected && 'opacity-0',
213
- className
214
- )}
215
- contentEditable={false}
216
- >
217
- {children}
218
- </div>
219
- );
220
- }
221
-
222
- const DragHandle = React.memo(function DragHandle({
223
- isDragging,
224
- previewRef,
225
- resetPreview,
226
- setPreviewTop,
227
- }: {
228
- isDragging: boolean;
229
- previewRef: React.RefObject<HTMLDivElement | null>;
230
- resetPreview: () => void;
231
- setPreviewTop: (top: number) => void;
232
- }) {
233
- const editor = useEditorRef();
234
- const element = useElement();
235
-
236
- return (
237
- <Tooltip>
238
- <TooltipTrigger asChild>
239
- <div
240
- className="flex size-full items-center justify-center"
241
- onClick={(e) => {
242
- e.preventDefault();
243
- editor.getApi(BlockSelectionPlugin).blockSelection.focus();
244
- }}
245
- onMouseDown={(e) => {
246
- resetPreview();
247
-
248
- if ((e.button !== 0 && e.button !== 2) || e.shiftKey) return;
249
-
250
- const blockSelection = editor
251
- .getApi(BlockSelectionPlugin)
252
- .blockSelection.getNodes({ sort: true });
253
-
254
- let selectionNodes =
255
- blockSelection.length > 0
256
- ? blockSelection
257
- : editor.api.blocks({ mode: 'highest' });
258
-
259
- // If current block is not in selection, use it as the starting point
260
- if (!selectionNodes.some(([node]) => node.id === element.id)) {
261
- selectionNodes = [[element, editor.api.findPath(element)!]];
262
- }
263
-
264
- // Process selection nodes to include list children
265
- const blocks = expandListItemsWithChildren(
266
- editor,
267
- selectionNodes
268
- ).map(([node]) => node);
269
-
270
- if (blockSelection.length === 0) {
271
- editor.tf.blur();
272
- editor.tf.collapse();
273
- }
274
-
275
- const elements = createDragPreviewElements(editor, blocks);
276
- previewRef.current?.append(...elements);
277
- previewRef.current?.classList.remove('hidden');
278
- previewRef.current?.classList.add('opacity-0');
279
- editor.setOption(DndPlugin, 'multiplePreviewRef', previewRef);
280
-
281
- editor
282
- .getApi(BlockSelectionPlugin)
283
- .blockSelection.set(blocks.map((block) => block.id as string));
284
- }}
285
- onMouseEnter={() => {
286
- if (isDragging) return;
287
-
288
- const blockSelection = editor
289
- .getApi(BlockSelectionPlugin)
290
- .blockSelection.getNodes({ sort: true });
291
-
292
- let selectedBlocks =
293
- blockSelection.length > 0
294
- ? blockSelection
295
- : editor.api.blocks({ mode: 'highest' });
296
-
297
- // If current block is not in selection, use it as the starting point
298
- if (!selectedBlocks.some(([node]) => node.id === element.id)) {
299
- selectedBlocks = [[element, editor.api.findPath(element)!]];
300
- }
301
-
302
- // Process selection to include list children
303
- const processedBlocks = expandListItemsWithChildren(
304
- editor,
305
- selectedBlocks
306
- );
307
-
308
- const ids = processedBlocks.map((block) => block[0].id as string);
309
-
310
- if (ids.length > 1 && ids.includes(element.id as string)) {
311
- const previewTop = calculatePreviewTop(editor, {
312
- blocks: processedBlocks.map((block) => block[0]),
313
- element,
314
- });
315
- setPreviewTop(previewTop);
316
- } else {
317
- setPreviewTop(0);
318
- }
319
- }}
320
- onMouseUp={() => {
321
- resetPreview();
322
- }}
323
- data-plate-prevent-deselect
324
- role="button"
325
- >
326
- <GripVertical className="text-muted-foreground" />
327
- </div>
328
- </TooltipTrigger>
329
- <TooltipContent>Drag to move</TooltipContent>
330
- </Tooltip>
331
- );
332
- });
333
-
334
- const DropLine = React.memo(function DropLine({
335
- className,
336
- ...props
337
- }: React.ComponentProps<'div'>) {
338
- const { dropLine } = useDropLine();
339
-
340
- if (!dropLine) return null;
341
-
342
- return (
343
- <div
344
- {...props}
345
- className={cn(
346
- 'slate-dropLine',
347
- 'absolute inset-x-0 h-0.5 opacity-100 transition-opacity',
348
- 'bg-brand/50',
349
- dropLine === 'top' && '-top-px',
350
- dropLine === 'bottom' && '-bottom-px',
351
- className
352
- )}
353
- />
354
- );
355
- });
356
-
357
- const createDragPreviewElements = (
358
- editor: PlateEditor,
359
- blocks: TElement[]
360
- ): HTMLElement[] => {
361
- const elements: HTMLElement[] = [];
362
- const ids: string[] = [];
363
-
364
- /**
365
- * Remove data attributes from the element to avoid recognized as slate
366
- * elements incorrectly.
367
- */
368
- const removeDataAttributes = (element: HTMLElement) => {
369
- Array.from(element.attributes).forEach((attr) => {
370
- if (
371
- attr.name.startsWith('data-slate') ||
372
- attr.name.startsWith('data-block-id')
373
- ) {
374
- element.removeAttribute(attr.name);
375
- }
376
- });
377
-
378
- Array.from(element.children).forEach((child) => {
379
- removeDataAttributes(child as HTMLElement);
380
- });
381
- };
382
-
383
- const resolveElement = (node: TElement, index: number) => {
384
- const domNode = editor.api.toDOMNode(node)!;
385
- const newDomNode = domNode.cloneNode(true) as HTMLElement;
386
-
387
- // Apply visual compensation for horizontal scroll
388
- const applyScrollCompensation = (
389
- original: Element,
390
- cloned: HTMLElement
391
- ) => {
392
- const scrollLeft = original.scrollLeft;
393
-
394
- if (scrollLeft > 0) {
395
- // Create a wrapper to handle the scroll offset
396
- const scrollWrapper = document.createElement('div');
397
- scrollWrapper.style.overflow = 'hidden';
398
- scrollWrapper.style.width = `${original.clientWidth}px`;
399
-
400
- // Create inner container with the full content
401
- const innerContainer = document.createElement('div');
402
- innerContainer.style.transform = `translateX(-${scrollLeft}px)`;
403
- innerContainer.style.width = `${original.scrollWidth}px`;
404
-
405
- // Move all children to the inner container
406
- while (cloned.firstChild) {
407
- innerContainer.append(cloned.firstChild);
408
- }
409
-
410
- // Apply the original element's styles to maintain appearance
411
- const originalStyles = window.getComputedStyle(original);
412
- cloned.style.padding = '0';
413
- innerContainer.style.padding = originalStyles.padding;
414
-
415
- scrollWrapper.append(innerContainer);
416
- cloned.append(scrollWrapper);
417
- }
418
- };
419
-
420
- applyScrollCompensation(domNode, newDomNode);
421
-
422
- ids.push(node.id as string);
423
- const wrapper = document.createElement('div');
424
- wrapper.append(newDomNode);
425
- wrapper.style.display = 'flow-root';
426
-
427
- const lastDomNode = blocks[index - 1];
428
-
429
- if (lastDomNode) {
430
- const lastDomNodeRect = editor.api
431
- .toDOMNode(lastDomNode)!
432
- .parentElement!.getBoundingClientRect();
433
-
434
- const domNodeRect = domNode.parentElement!.getBoundingClientRect();
435
-
436
- const distance = domNodeRect.top - lastDomNodeRect.bottom;
437
-
438
- // Check if the two elements are adjacent (touching each other)
439
- if (distance > 15) {
440
- wrapper.style.marginTop = `${distance}px`;
441
- }
442
- }
443
-
444
- removeDataAttributes(newDomNode);
445
- elements.push(wrapper);
446
- };
447
-
448
- blocks.forEach((node, index) => {
449
- resolveElement(node, index);
450
- });
451
-
452
- editor.setOption(DndPlugin, 'draggingId', ids);
453
-
454
- return elements;
455
- };
456
-
457
- const calculatePreviewTop = (
458
- editor: PlateEditor,
459
- {
460
- blocks,
461
- element,
462
- }: {
463
- blocks: TElement[];
464
- element: TElement;
465
- }
466
- ): number => {
467
- const child = editor.api.toDOMNode(element)!;
468
- const editable = editor.api.toDOMNode(editor)!;
469
- const firstSelectedChild = blocks[0];
470
-
471
- const firstDomNode = editor.api.toDOMNode(firstSelectedChild)!;
472
- // Get editor's top padding
473
- const editorPaddingTop = Number(
474
- window.getComputedStyle(editable).paddingTop.replace('px', '')
475
- );
476
-
477
- // Calculate distance from first selected node to editor top
478
- const firstNodeToEditorDistance =
479
- firstDomNode.getBoundingClientRect().top -
480
- editable.getBoundingClientRect().top -
481
- editorPaddingTop;
482
-
483
- // Get margin top of first selected node
484
- const firstMarginTopString = window.getComputedStyle(firstDomNode).marginTop;
485
- const marginTop = Number(firstMarginTopString.replace('px', ''));
486
-
487
- // Calculate distance from current node to editor top
488
- const currentToEditorDistance =
489
- child.getBoundingClientRect().top -
490
- editable.getBoundingClientRect().top -
491
- editorPaddingTop;
492
-
493
- const currentMarginTopString = window.getComputedStyle(child).marginTop;
494
- const currentMarginTop = Number(currentMarginTopString.replace('px', ''));
495
-
496
- const previewElementsTopDistance =
497
- currentToEditorDistance -
498
- firstNodeToEditorDistance +
499
- marginTop -
500
- currentMarginTop;
501
-
502
- return previewElementsTopDistance;
503
- };
504
-
505
- const calcDragButtonTop = (editor: PlateEditor, element: TElement): number => {
506
- const child = editor.api.toDOMNode(element)!;
507
-
508
- const currentMarginTopString = window.getComputedStyle(child).marginTop;
509
- const currentMarginTop = Number(currentMarginTopString.replace('px', ''));
510
-
511
- return currentMarginTop;
512
- };
@@ -1,80 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import type { RenderStaticNodeWrapper, TListElement } from 'platejs';
4
- import type { SlateRenderElementProps } from 'platejs/static';
5
-
6
- import { isOrderedList } from '@platejs/list';
7
- import { CheckIcon } from 'lucide-react';
8
-
9
- import { cn } from '@/lib/utils';
10
-
11
- const config: Record<
12
- string,
13
- {
14
- Li: React.FC<SlateRenderElementProps>;
15
- Marker: React.FC<SlateRenderElementProps>;
16
- }
17
- > = {
18
- todo: {
19
- Li: TodoLiStatic,
20
- Marker: TodoMarkerStatic,
21
- },
22
- };
23
-
24
- export const BlockListStatic: RenderStaticNodeWrapper = (props) => {
25
- if (!props.element.listStyleType) return;
26
-
27
- return (props) => <List {...props} />;
28
- };
29
-
30
- function List(props: SlateRenderElementProps) {
31
- const { listStart, listStyleType } = props.element as TListElement;
32
- const { Li, Marker } = config[listStyleType] ?? {};
33
- const List = isOrderedList(props.element) ? 'ol' : 'ul';
34
-
35
- return (
36
- <List
37
- className="relative m-0 p-0"
38
- style={{ listStyleType }}
39
- start={listStart}
40
- >
41
- {Marker && <Marker {...props} />}
42
- {Li ? <Li {...props} /> : <li>{props.children}</li>}
43
- </List>
44
- );
45
- }
46
-
47
- function TodoMarkerStatic(props: SlateRenderElementProps) {
48
- const checked = props.element.checked as boolean;
49
-
50
- return (
51
- <div contentEditable={false}>
52
- <button
53
- className={cn(
54
- 'peer -left-6 pointer-events-none absolute top-1 size-4 shrink-0 rounded-sm border border-primary bg-background ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground',
55
- props.className
56
- )}
57
- data-state={checked ? 'checked' : 'unchecked'}
58
- type="button"
59
- >
60
- <div className={cn('flex items-center justify-center text-current')}>
61
- {checked && <CheckIcon className="size-4" />}
62
- </div>
63
- </button>
64
- </div>
65
- );
66
- }
67
-
68
- function TodoLiStatic(props: SlateRenderElementProps) {
69
- return (
70
- <li
71
- className={cn(
72
- 'list-none',
73
- (props.element.checked as boolean) &&
74
- 'text-muted-foreground line-through'
75
- )}
76
- >
77
- {props.children}
78
- </li>
79
- );
80
- }
@@ -1,87 +0,0 @@
1
- 'use client';
2
-
3
- import React from 'react';
4
-
5
- import type { TListElement } from 'platejs';
6
-
7
- import { isOrderedList } from '@platejs/list';
8
- import {
9
- useTodoListElement,
10
- useTodoListElementState,
11
- } from '@platejs/list/react';
12
- import {
13
- type PlateElementProps,
14
- type RenderNodeWrapper,
15
- useReadOnly,
16
- } from 'platejs/react';
17
-
18
- import { Checkbox } from '@/components/ui/checkbox';
19
- import { cn } from '@/lib/utils';
20
-
21
- const config: Record<
22
- string,
23
- {
24
- Li: React.FC<PlateElementProps>;
25
- Marker: React.FC<PlateElementProps>;
26
- }
27
- > = {
28
- todo: {
29
- Li: TodoLi,
30
- Marker: TodoMarker,
31
- },
32
- };
33
-
34
- export const BlockList: RenderNodeWrapper = (props) => {
35
- if (!props.element.listStyleType) return;
36
-
37
- return (props) => <List {...props} />;
38
- };
39
-
40
- function List(props: PlateElementProps) {
41
- const { listStart, listStyleType } = props.element as TListElement;
42
- const { Li, Marker } = config[listStyleType] ?? {};
43
- const List = isOrderedList(props.element) ? 'ol' : 'ul';
44
-
45
- return (
46
- <List
47
- className="relative m-0 p-0"
48
- style={{ listStyleType }}
49
- start={listStart}
50
- >
51
- {Marker && <Marker {...props} />}
52
- {Li ? <Li {...props} /> : <li>{props.children}</li>}
53
- </List>
54
- );
55
- }
56
-
57
- function TodoMarker(props: PlateElementProps) {
58
- const state = useTodoListElementState({ element: props.element });
59
- const { checkboxProps } = useTodoListElement(state);
60
- const readOnly = useReadOnly();
61
-
62
- return (
63
- <div contentEditable={false}>
64
- <Checkbox
65
- className={cn(
66
- '-left-6 absolute top-1',
67
- readOnly && 'pointer-events-none'
68
- )}
69
- {...checkboxProps}
70
- />
71
- </div>
72
- );
73
- }
74
-
75
- function TodoLi(props: PlateElementProps) {
76
- return (
77
- <li
78
- className={cn(
79
- 'list-none',
80
- (props.element.checked as boolean) &&
81
- 'text-muted-foreground line-through'
82
- )}
83
- >
84
- {props.children}
85
- </li>
86
- );
87
- }