@inkandswitch/patchwork-pkg-base 0.0.17 → 0.0.19

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 (384) hide show
  1. package/init.js +0 -1
  2. package/modules.json +1 -11
  3. package/package.json +1 -1
  4. package/packages/raw/raw-editor.js +2 -2
  5. package/packages/account-picker/dist/AccountPicker-7VBUJTTB.js +0 -8860
  6. package/packages/account-picker/dist/AccountPicker-7VBUJTTB.js.map +0 -7
  7. package/packages/account-picker/dist/AccountPicker-CN73XGEW.css +0 -371
  8. package/packages/account-picker/dist/AccountPicker-CN73XGEW.css.map +0 -7
  9. package/packages/account-picker/dist/chunk-5WRI5ZAA.js +0 -31
  10. package/packages/account-picker/dist/chunk-5WRI5ZAA.js.map +0 -7
  11. package/packages/account-picker/dist/tool.css +0 -371
  12. package/packages/account-picker/dist/tool.css.map +0 -7
  13. package/packages/account-picker/dist/tool.js +0 -19
  14. package/packages/account-picker/dist/tool.js.map +0 -7
  15. package/packages/account-picker/package.json +0 -39
  16. package/packages/codemirror-base/dist/chunk-KMEIRH3R.js +0 -490
  17. package/packages/codemirror-base/dist/chunk-KMEIRH3R.js.map +0 -7
  18. package/packages/codemirror-base/dist/lib/codemirror.js +0 -7
  19. package/packages/codemirror-base/dist/lib/codemirror.js.map +0 -7
  20. package/packages/codemirror-base/dist/main.js +0 -17
  21. package/packages/codemirror-base/dist/main.js.map +0 -7
  22. package/packages/codemirror-base/dist/tool.js +0 -1799
  23. package/packages/codemirror-base/dist/tool.js.map +0 -7
  24. package/packages/codemirror-base/package.json +0 -55
  25. package/packages/codemirror-markdown/dist/apl-QAIM2KBM.js +0 -142
  26. package/packages/codemirror-markdown/dist/apl-QAIM2KBM.js.map +0 -7
  27. package/packages/codemirror-markdown/dist/asciiarmor-G7UKQURA.js +0 -58
  28. package/packages/codemirror-markdown/dist/asciiarmor-G7UKQURA.js.map +0 -7
  29. package/packages/codemirror-markdown/dist/asn1-JTUXKWKT.js +0 -144
  30. package/packages/codemirror-markdown/dist/asn1-JTUXKWKT.js.map +0 -7
  31. package/packages/codemirror-markdown/dist/asterisk-NM6JCXOL.js +0 -351
  32. package/packages/codemirror-markdown/dist/asterisk-NM6JCXOL.js.map +0 -7
  33. package/packages/codemirror-markdown/dist/brainfuck-X7FFM55E.js +0 -55
  34. package/packages/codemirror-markdown/dist/brainfuck-X7FFM55E.js.map +0 -7
  35. package/packages/codemirror-markdown/dist/chunk-46Z6CXSY.js +0 -1062
  36. package/packages/codemirror-markdown/dist/chunk-46Z6CXSY.js.map +0 -7
  37. package/packages/codemirror-markdown/dist/chunk-6JT2ASRP.js +0 -1111
  38. package/packages/codemirror-markdown/dist/chunk-6JT2ASRP.js.map +0 -7
  39. package/packages/codemirror-markdown/dist/chunk-CSJO4DNL.js +0 -1424
  40. package/packages/codemirror-markdown/dist/chunk-CSJO4DNL.js.map +0 -7
  41. package/packages/codemirror-markdown/dist/chunk-FLC3A4DL.js +0 -133
  42. package/packages/codemirror-markdown/dist/chunk-FLC3A4DL.js.map +0 -7
  43. package/packages/codemirror-markdown/dist/chunk-M3X2FRO3.js +0 -998
  44. package/packages/codemirror-markdown/dist/chunk-M3X2FRO3.js.map +0 -7
  45. package/packages/codemirror-markdown/dist/chunk-MAW6NPUW.js +0 -4930
  46. package/packages/codemirror-markdown/dist/chunk-MAW6NPUW.js.map +0 -7
  47. package/packages/codemirror-markdown/dist/chunk-MBTMKYFQ.js +0 -1779
  48. package/packages/codemirror-markdown/dist/chunk-MBTMKYFQ.js.map +0 -7
  49. package/packages/codemirror-markdown/dist/chunk-NEI7FGV4.js +0 -697
  50. package/packages/codemirror-markdown/dist/chunk-NEI7FGV4.js.map +0 -7
  51. package/packages/codemirror-markdown/dist/chunk-PPGERYN5.js +0 -2528
  52. package/packages/codemirror-markdown/dist/chunk-PPGERYN5.js.map +0 -7
  53. package/packages/codemirror-markdown/dist/clike-DOBZTBQN.js +0 -808
  54. package/packages/codemirror-markdown/dist/clike-DOBZTBQN.js.map +0 -7
  55. package/packages/codemirror-markdown/dist/clojure-PTADSDNF.js +0 -851
  56. package/packages/codemirror-markdown/dist/clojure-PTADSDNF.js.map +0 -7
  57. package/packages/codemirror-markdown/dist/cmake-5HAC7YMH.js +0 -73
  58. package/packages/codemirror-markdown/dist/cmake-5HAC7YMH.js.map +0 -7
  59. package/packages/codemirror-markdown/dist/cobol-HAM4C42S.js +0 -131
  60. package/packages/codemirror-markdown/dist/cobol-HAM4C42S.js.map +0 -7
  61. package/packages/codemirror-markdown/dist/coffeescript-IBRKASSJ.js +0 -310
  62. package/packages/codemirror-markdown/dist/coffeescript-IBRKASSJ.js.map +0 -7
  63. package/packages/codemirror-markdown/dist/commonlisp-KMRPB5EW.js +0 -132
  64. package/packages/codemirror-markdown/dist/commonlisp-KMRPB5EW.js.map +0 -7
  65. package/packages/codemirror-markdown/dist/crystal-2MDF4EKJ.js +0 -400
  66. package/packages/codemirror-markdown/dist/crystal-2MDF4EKJ.js.map +0 -7
  67. package/packages/codemirror-markdown/dist/css-VQQXA3AY.js +0 -1795
  68. package/packages/codemirror-markdown/dist/css-VQQXA3AY.js.map +0 -7
  69. package/packages/codemirror-markdown/dist/cypher-ZZEGDGDJ.js +0 -123
  70. package/packages/codemirror-markdown/dist/cypher-ZZEGDGDJ.js.map +0 -7
  71. package/packages/codemirror-markdown/dist/d-5S6PJOOT.js +0 -187
  72. package/packages/codemirror-markdown/dist/d-5S6PJOOT.js.map +0 -7
  73. package/packages/codemirror-markdown/dist/datatype.js +0 -48
  74. package/packages/codemirror-markdown/dist/datatype.js.map +0 -7
  75. package/packages/codemirror-markdown/dist/diff-S77XBOWF.js +0 -27
  76. package/packages/codemirror-markdown/dist/diff-S77XBOWF.js.map +0 -7
  77. package/packages/codemirror-markdown/dist/dist-2C6IPJHB.js +0 -98
  78. package/packages/codemirror-markdown/dist/dist-2C6IPJHB.js.map +0 -7
  79. package/packages/codemirror-markdown/dist/dist-2H653DKD.js +0 -170
  80. package/packages/codemirror-markdown/dist/dist-2H653DKD.js.map +0 -7
  81. package/packages/codemirror-markdown/dist/dist-2O4EI6YQ.js +0 -140
  82. package/packages/codemirror-markdown/dist/dist-2O4EI6YQ.js.map +0 -7
  83. package/packages/codemirror-markdown/dist/dist-2UJRV4FH.js +0 -75
  84. package/packages/codemirror-markdown/dist/dist-2UJRV4FH.js.map +0 -7
  85. package/packages/codemirror-markdown/dist/dist-52S6W6Z3.js +0 -15
  86. package/packages/codemirror-markdown/dist/dist-52S6W6Z3.js.map +0 -7
  87. package/packages/codemirror-markdown/dist/dist-5KN6ODPO.js +0 -340
  88. package/packages/codemirror-markdown/dist/dist-5KN6ODPO.js.map +0 -7
  89. package/packages/codemirror-markdown/dist/dist-BOGB4NCA.js +0 -20
  90. package/packages/codemirror-markdown/dist/dist-BOGB4NCA.js.map +0 -7
  91. package/packages/codemirror-markdown/dist/dist-DZ4PW5HP.js +0 -318
  92. package/packages/codemirror-markdown/dist/dist-DZ4PW5HP.js.map +0 -7
  93. package/packages/codemirror-markdown/dist/dist-FDBKXKIA.js +0 -100
  94. package/packages/codemirror-markdown/dist/dist-FDBKXKIA.js.map +0 -7
  95. package/packages/codemirror-markdown/dist/dist-G2KVVLNT.js +0 -381
  96. package/packages/codemirror-markdown/dist/dist-G2KVVLNT.js.map +0 -7
  97. package/packages/codemirror-markdown/dist/dist-HHNZE2GE.js +0 -193
  98. package/packages/codemirror-markdown/dist/dist-HHNZE2GE.js.map +0 -7
  99. package/packages/codemirror-markdown/dist/dist-HNH74YPL.js +0 -32
  100. package/packages/codemirror-markdown/dist/dist-HNH74YPL.js.map +0 -7
  101. package/packages/codemirror-markdown/dist/dist-LBQUKRIG.js +0 -27
  102. package/packages/codemirror-markdown/dist/dist-LBQUKRIG.js.map +0 -7
  103. package/packages/codemirror-markdown/dist/dist-MFKCWPLQ.js +0 -416
  104. package/packages/codemirror-markdown/dist/dist-MFKCWPLQ.js.map +0 -7
  105. package/packages/codemirror-markdown/dist/dist-NISFJM3T.js +0 -423
  106. package/packages/codemirror-markdown/dist/dist-NISFJM3T.js.map +0 -7
  107. package/packages/codemirror-markdown/dist/dist-Q7P6VH6H.js +0 -786
  108. package/packages/codemirror-markdown/dist/dist-Q7P6VH6H.js.map +0 -7
  109. package/packages/codemirror-markdown/dist/dist-RWF5A5GN.js +0 -451
  110. package/packages/codemirror-markdown/dist/dist-RWF5A5GN.js.map +0 -7
  111. package/packages/codemirror-markdown/dist/dist-UHUU7KLC.js +0 -748
  112. package/packages/codemirror-markdown/dist/dist-UHUU7KLC.js.map +0 -7
  113. package/packages/codemirror-markdown/dist/dist-WJMBFK7W.js +0 -360
  114. package/packages/codemirror-markdown/dist/dist-WJMBFK7W.js.map +0 -7
  115. package/packages/codemirror-markdown/dist/dist-XJYSXJ7H.js +0 -115
  116. package/packages/codemirror-markdown/dist/dist-XJYSXJ7H.js.map +0 -7
  117. package/packages/codemirror-markdown/dist/dist-YY24ZXZD.js +0 -212
  118. package/packages/codemirror-markdown/dist/dist-YY24ZXZD.js.map +0 -7
  119. package/packages/codemirror-markdown/dist/dockerfile-JECCOJWP.js +0 -209
  120. package/packages/codemirror-markdown/dist/dockerfile-JECCOJWP.js.map +0 -7
  121. package/packages/codemirror-markdown/dist/dtd-MNDWTW4Z.js +0 -116
  122. package/packages/codemirror-markdown/dist/dtd-MNDWTW4Z.js.map +0 -7
  123. package/packages/codemirror-markdown/dist/dylan-VQ4IHJDS.js +0 -317
  124. package/packages/codemirror-markdown/dist/dylan-VQ4IHJDS.js.map +0 -7
  125. package/packages/codemirror-markdown/dist/ebnf-IDZBFTCG.js +0 -142
  126. package/packages/codemirror-markdown/dist/ebnf-IDZBFTCG.js.map +0 -7
  127. package/packages/codemirror-markdown/dist/ecl-X3ROY7E6.js +0 -180
  128. package/packages/codemirror-markdown/dist/ecl-X3ROY7E6.js.map +0 -7
  129. package/packages/codemirror-markdown/dist/eiffel-WB3M7Y2E.js +0 -136
  130. package/packages/codemirror-markdown/dist/eiffel-WB3M7Y2E.js.map +0 -7
  131. package/packages/codemirror-markdown/dist/elm-VHXR6ZA3.js +0 -178
  132. package/packages/codemirror-markdown/dist/elm-VHXR6ZA3.js.map +0 -7
  133. package/packages/codemirror-markdown/dist/erlang-7ZBDDQDV.js +0 -676
  134. package/packages/codemirror-markdown/dist/erlang-7ZBDDQDV.js.map +0 -7
  135. package/packages/codemirror-markdown/dist/extensions/embed.js +0 -325
  136. package/packages/codemirror-markdown/dist/extensions/embed.js.map +0 -7
  137. package/packages/codemirror-markdown/dist/extensions/links.js +0 -118
  138. package/packages/codemirror-markdown/dist/extensions/links.js.map +0 -7
  139. package/packages/codemirror-markdown/dist/extensions/markdown.js +0 -3476
  140. package/packages/codemirror-markdown/dist/extensions/markdown.js.map +0 -7
  141. package/packages/codemirror-markdown/dist/factor-IKT2GQE2.js +0 -70
  142. package/packages/codemirror-markdown/dist/factor-IKT2GQE2.js.map +0 -7
  143. package/packages/codemirror-markdown/dist/fcl-CNBUVGUC.js +0 -143
  144. package/packages/codemirror-markdown/dist/fcl-CNBUVGUC.js.map +0 -7
  145. package/packages/codemirror-markdown/dist/forth-4BTPWSFZ.js +0 -118
  146. package/packages/codemirror-markdown/dist/forth-4BTPWSFZ.js.map +0 -7
  147. package/packages/codemirror-markdown/dist/fortran-V6F5DQPK.js +0 -469
  148. package/packages/codemirror-markdown/dist/fortran-V6F5DQPK.js.map +0 -7
  149. package/packages/codemirror-markdown/dist/gas-4DLP6BC4.js +0 -296
  150. package/packages/codemirror-markdown/dist/gas-4DLP6BC4.js.map +0 -7
  151. package/packages/codemirror-markdown/dist/gherkin-OSGPX6HI.js +0 -117
  152. package/packages/codemirror-markdown/dist/gherkin-OSGPX6HI.js.map +0 -7
  153. package/packages/codemirror-markdown/dist/groovy-R2JW63QF.js +0 -225
  154. package/packages/codemirror-markdown/dist/groovy-R2JW63QF.js.map +0 -7
  155. package/packages/codemirror-markdown/dist/haskell-GG7T4J6H.js +0 -461
  156. package/packages/codemirror-markdown/dist/haskell-GG7T4J6H.js.map +0 -7
  157. package/packages/codemirror-markdown/dist/haxe-ESFUJKSE.js +0 -521
  158. package/packages/codemirror-markdown/dist/haxe-ESFUJKSE.js.map +0 -7
  159. package/packages/codemirror-markdown/dist/http-SZLSACOW.js +0 -81
  160. package/packages/codemirror-markdown/dist/http-SZLSACOW.js.map +0 -7
  161. package/packages/codemirror-markdown/dist/idl-V7UH35RP.js +0 -987
  162. package/packages/codemirror-markdown/dist/idl-V7UH35RP.js.map +0 -7
  163. package/packages/codemirror-markdown/dist/javascript-MGRPKFDN.js +0 -13
  164. package/packages/codemirror-markdown/dist/javascript-MGRPKFDN.js.map +0 -7
  165. package/packages/codemirror-markdown/dist/julia-CWCVZVPG.js +0 -409
  166. package/packages/codemirror-markdown/dist/julia-CWCVZVPG.js.map +0 -7
  167. package/packages/codemirror-markdown/dist/livescript-IGKT2FL7.js +0 -303
  168. package/packages/codemirror-markdown/dist/livescript-IGKT2FL7.js.map +0 -7
  169. package/packages/codemirror-markdown/dist/lua-GHK7GCTS.js +0 -258
  170. package/packages/codemirror-markdown/dist/lua-GHK7GCTS.js.map +0 -7
  171. package/packages/codemirror-markdown/dist/main.js +0 -58
  172. package/packages/codemirror-markdown/dist/main.js.map +0 -7
  173. package/packages/codemirror-markdown/dist/mathematica-W5LMQI3M.js +0 -112
  174. package/packages/codemirror-markdown/dist/mathematica-W5LMQI3M.js.map +0 -7
  175. package/packages/codemirror-markdown/dist/mbox-A7CXJ4HZ.js +0 -119
  176. package/packages/codemirror-markdown/dist/mbox-A7CXJ4HZ.js.map +0 -7
  177. package/packages/codemirror-markdown/dist/mirc-WYJEQUBY.js +0 -109
  178. package/packages/codemirror-markdown/dist/mirc-WYJEQUBY.js.map +0 -7
  179. package/packages/codemirror-markdown/dist/mllike-C2YS6SJI.js +0 -340
  180. package/packages/codemirror-markdown/dist/mllike-C2YS6SJI.js.map +0 -7
  181. package/packages/codemirror-markdown/dist/modelica-BMJSLZS7.js +0 -149
  182. package/packages/codemirror-markdown/dist/modelica-BMJSLZS7.js.map +0 -7
  183. package/packages/codemirror-markdown/dist/mscgen-5BORDYHW.js +0 -137
  184. package/packages/codemirror-markdown/dist/mscgen-5BORDYHW.js.map +0 -7
  185. package/packages/codemirror-markdown/dist/mumps-BYE6H7ZX.js +0 -95
  186. package/packages/codemirror-markdown/dist/mumps-BYE6H7ZX.js.map +0 -7
  187. package/packages/codemirror-markdown/dist/nginx-Y54HR7MQ.js +0 -143
  188. package/packages/codemirror-markdown/dist/nginx-Y54HR7MQ.js.map +0 -7
  189. package/packages/codemirror-markdown/dist/nsis-UZLPE2DL.js +0 -67
  190. package/packages/codemirror-markdown/dist/nsis-UZLPE2DL.js.map +0 -7
  191. package/packages/codemirror-markdown/dist/ntriples-SAI3J2VH.js +0 -155
  192. package/packages/codemirror-markdown/dist/ntriples-SAI3J2VH.js.map +0 -7
  193. package/packages/codemirror-markdown/dist/octave-TLUBYOUX.js +0 -213
  194. package/packages/codemirror-markdown/dist/octave-TLUBYOUX.js.map +0 -7
  195. package/packages/codemirror-markdown/dist/oz-F6LNIR6Q.js +0 -233
  196. package/packages/codemirror-markdown/dist/oz-F6LNIR6Q.js.map +0 -7
  197. package/packages/codemirror-markdown/dist/pascal-WINE2FE6.js +0 -107
  198. package/packages/codemirror-markdown/dist/pascal-WINE2FE6.js.map +0 -7
  199. package/packages/codemirror-markdown/dist/perl-NZG3EIBE.js +0 -1107
  200. package/packages/codemirror-markdown/dist/perl-NZG3EIBE.js.map +0 -7
  201. package/packages/codemirror-markdown/dist/pig-U7OFLRCV.js +0 -105
  202. package/packages/codemirror-markdown/dist/pig-U7OFLRCV.js.map +0 -7
  203. package/packages/codemirror-markdown/dist/powershell-ZSUS7P6D.js +0 -330
  204. package/packages/codemirror-markdown/dist/powershell-ZSUS7P6D.js.map +0 -7
  205. package/packages/codemirror-markdown/dist/properties-IJRU6UJW.js +0 -60
  206. package/packages/codemirror-markdown/dist/properties-IJRU6UJW.js.map +0 -7
  207. package/packages/codemirror-markdown/dist/protobuf-2KETQIQ5.js +0 -80
  208. package/packages/codemirror-markdown/dist/protobuf-2KETQIQ5.js.map +0 -7
  209. package/packages/codemirror-markdown/dist/pug-IQCJJAZU.js +0 -410
  210. package/packages/codemirror-markdown/dist/pug-IQCJJAZU.js.map +0 -7
  211. package/packages/codemirror-markdown/dist/puppet-YIIDDH6A.js +0 -139
  212. package/packages/codemirror-markdown/dist/puppet-YIIDDH6A.js.map +0 -7
  213. package/packages/codemirror-markdown/dist/python-A6P3XTMX.js +0 -429
  214. package/packages/codemirror-markdown/dist/python-A6P3XTMX.js.map +0 -7
  215. package/packages/codemirror-markdown/dist/q-2KXN5RX7.js +0 -135
  216. package/packages/codemirror-markdown/dist/q-2KXN5RX7.js.map +0 -7
  217. package/packages/codemirror-markdown/dist/r-BB4MIIBH.js +0 -174
  218. package/packages/codemirror-markdown/dist/r-BB4MIIBH.js.map +0 -7
  219. package/packages/codemirror-markdown/dist/rpm-LMR25AQ3.js +0 -111
  220. package/packages/codemirror-markdown/dist/rpm-LMR25AQ3.js.map +0 -7
  221. package/packages/codemirror-markdown/dist/ruby-TSD6FT73.js +0 -333
  222. package/packages/codemirror-markdown/dist/ruby-TSD6FT73.js.map +0 -7
  223. package/packages/codemirror-markdown/dist/sas-6X4WWIGV.js +0 -209
  224. package/packages/codemirror-markdown/dist/sas-6X4WWIGV.js.map +0 -7
  225. package/packages/codemirror-markdown/dist/scheme-E3I46HBL.js +0 -230
  226. package/packages/codemirror-markdown/dist/scheme-E3I46HBL.js.map +0 -7
  227. package/packages/codemirror-markdown/dist/shell-GX3PRI4I.js +0 -224
  228. package/packages/codemirror-markdown/dist/shell-GX3PRI4I.js.map +0 -7
  229. package/packages/codemirror-markdown/dist/sieve-V65ZPL4F.js +0 -137
  230. package/packages/codemirror-markdown/dist/sieve-V65ZPL4F.js.map +0 -7
  231. package/packages/codemirror-markdown/dist/smalltalk-OVKP2CVW.js +0 -123
  232. package/packages/codemirror-markdown/dist/smalltalk-OVKP2CVW.js.map +0 -7
  233. package/packages/codemirror-markdown/dist/solr-C4DLQJCF.js +0 -71
  234. package/packages/codemirror-markdown/dist/solr-C4DLQJCF.js.map +0 -7
  235. package/packages/codemirror-markdown/dist/sparql-REKUW7B3.js +0 -251
  236. package/packages/codemirror-markdown/dist/sparql-REKUW7B3.js.map +0 -7
  237. package/packages/codemirror-markdown/dist/spreadsheet-S7NN2YTQ.js +0 -89
  238. package/packages/codemirror-markdown/dist/spreadsheet-S7NN2YTQ.js.map +0 -7
  239. package/packages/codemirror-markdown/dist/sql-ML2Q43YF.js +0 -358
  240. package/packages/codemirror-markdown/dist/sql-ML2Q43YF.js.map +0 -7
  241. package/packages/codemirror-markdown/dist/stex-TCOGKBT4.js +0 -233
  242. package/packages/codemirror-markdown/dist/stex-TCOGKBT4.js.map +0 -7
  243. package/packages/codemirror-markdown/dist/stylus-3ONNYZOM.js +0 -591
  244. package/packages/codemirror-markdown/dist/stylus-3ONNYZOM.js.map +0 -7
  245. package/packages/codemirror-markdown/dist/swift-CNWGZ22Y.js +0 -293
  246. package/packages/codemirror-markdown/dist/swift-CNWGZ22Y.js.map +0 -7
  247. package/packages/codemirror-markdown/dist/tcl-77IMAZYE.js +0 -116
  248. package/packages/codemirror-markdown/dist/tcl-77IMAZYE.js.map +0 -7
  249. package/packages/codemirror-markdown/dist/textile-6IWIIKFM.js +0 -416
  250. package/packages/codemirror-markdown/dist/textile-6IWIIKFM.js.map +0 -7
  251. package/packages/codemirror-markdown/dist/tiddlywiki-IJSZMUSA.js +0 -231
  252. package/packages/codemirror-markdown/dist/tiddlywiki-IJSZMUSA.js.map +0 -7
  253. package/packages/codemirror-markdown/dist/tiki-HG37JJIT.js +0 -276
  254. package/packages/codemirror-markdown/dist/tiki-HG37JJIT.js.map +0 -7
  255. package/packages/codemirror-markdown/dist/toml-NINU2IMM.js +0 -78
  256. package/packages/codemirror-markdown/dist/toml-NINU2IMM.js.map +0 -7
  257. package/packages/codemirror-markdown/dist/troff-AOQJ4Q4C.js +0 -63
  258. package/packages/codemirror-markdown/dist/troff-AOQJ4Q4C.js.map +0 -7
  259. package/packages/codemirror-markdown/dist/ttcn-TLOZ3FX3.js +0 -211
  260. package/packages/codemirror-markdown/dist/ttcn-TLOZ3FX3.js.map +0 -7
  261. package/packages/codemirror-markdown/dist/ttcn-cfg-3B6QY7QE.js +0 -141
  262. package/packages/codemirror-markdown/dist/ttcn-cfg-3B6QY7QE.js.map +0 -7
  263. package/packages/codemirror-markdown/dist/turtle-3N5KCGXP.js +0 -132
  264. package/packages/codemirror-markdown/dist/turtle-3N5KCGXP.js.map +0 -7
  265. package/packages/codemirror-markdown/dist/vb-I7M5DRLP.js +0 -204
  266. package/packages/codemirror-markdown/dist/vb-I7M5DRLP.js.map +0 -7
  267. package/packages/codemirror-markdown/dist/vbscript-U2ARSJLD.js +0 -482
  268. package/packages/codemirror-markdown/dist/vbscript-U2ARSJLD.js.map +0 -7
  269. package/packages/codemirror-markdown/dist/velocity-R3AYP5XJ.js +0 -151
  270. package/packages/codemirror-markdown/dist/velocity-R3AYP5XJ.js.map +0 -7
  271. package/packages/codemirror-markdown/dist/verilog-7VEWVDW6.js +0 -456
  272. package/packages/codemirror-markdown/dist/verilog-7VEWVDW6.js.map +0 -7
  273. package/packages/codemirror-markdown/dist/vhdl-JZUPPGBA.js +0 -162
  274. package/packages/codemirror-markdown/dist/vhdl-JZUPPGBA.js.map +0 -7
  275. package/packages/codemirror-markdown/dist/webidl-SLQFEELK.js +0 -206
  276. package/packages/codemirror-markdown/dist/webidl-SLQFEELK.js.map +0 -7
  277. package/packages/codemirror-markdown/dist/xquery-VXP5KJ6N.js +0 -532
  278. package/packages/codemirror-markdown/dist/xquery-VXP5KJ6N.js.map +0 -7
  279. package/packages/codemirror-markdown/dist/yacas-JRBC4BEV.js +0 -132
  280. package/packages/codemirror-markdown/dist/yacas-JRBC4BEV.js.map +0 -7
  281. package/packages/codemirror-markdown/dist/z80-AJF6WLUV.js +0 -95
  282. package/packages/codemirror-markdown/dist/z80-AJF6WLUV.js.map +0 -7
  283. package/packages/codemirror-markdown/example.js +0 -46
  284. package/packages/codemirror-markdown/package.json +0 -62
  285. package/packages/commands/dist/main.js +0 -504
  286. package/packages/commands/dist/main.js.map +0 -7
  287. package/packages/commands/package.json +0 -28
  288. package/packages/contact/dist/ContactAvatar-FP32ZZH2.js +0 -161
  289. package/packages/contact/dist/ContactAvatar-FP32ZZH2.js.map +0 -7
  290. package/packages/contact/dist/ContactViewer-ZHEE6INW.js +0 -60
  291. package/packages/contact/dist/ContactViewer-ZHEE6INW.js.map +0 -7
  292. package/packages/contact/dist/InlineContactAvatar-VZDPEZV2.js +0 -46
  293. package/packages/contact/dist/InlineContactAvatar-VZDPEZV2.js.map +0 -7
  294. package/packages/contact/dist/chunk-MOZI4Y4O.js +0 -54
  295. package/packages/contact/dist/chunk-MOZI4Y4O.js.map +0 -7
  296. package/packages/contact/dist/datatype-ABVDVPWS.js +0 -27
  297. package/packages/contact/dist/datatype-ABVDVPWS.js.map +0 -7
  298. package/packages/contact/dist/tool.css +0 -81
  299. package/packages/contact/dist/tool.css.map +0 -7
  300. package/packages/contact/dist/tool.js +0 -70
  301. package/packages/contact/dist/tool.js.map +0 -7
  302. package/packages/contact/package.json +0 -46
  303. package/packages/folder/dist/datatype-HWGUFBTQ.js +0 -27
  304. package/packages/folder/dist/datatype-HWGUFBTQ.js.map +0 -7
  305. package/packages/folder/dist/index.js +0 -27
  306. package/packages/folder/dist/index.js.map +0 -7
  307. package/packages/folder/dist/tool-62JZAZRP.js +0 -366
  308. package/packages/folder/dist/tool-62JZAZRP.js.map +0 -7
  309. package/packages/folder/package.json +0 -32
  310. package/packages/sideboard/dist/account-bar-OJQC3J6W.js +0 -2
  311. package/packages/sideboard/dist/account-bar-OJQC3J6W.js.map +0 -7
  312. package/packages/sideboard/dist/chunk-32FICX7K.js +0 -26
  313. package/packages/sideboard/dist/chunk-32FICX7K.js.map +0 -7
  314. package/packages/sideboard/dist/chunk-3OYP6TVA.js +0 -2
  315. package/packages/sideboard/dist/chunk-3OYP6TVA.js.map +0 -7
  316. package/packages/sideboard/dist/chunk-FW4363Y4.js +0 -2
  317. package/packages/sideboard/dist/chunk-FW4363Y4.js.map +0 -7
  318. package/packages/sideboard/dist/chunk-QKYKEZU4.js +0 -2
  319. package/packages/sideboard/dist/chunk-QKYKEZU4.js.map +0 -7
  320. package/packages/sideboard/dist/document-list-panel-42LSXXCO.js +0 -2
  321. package/packages/sideboard/dist/document-list-panel-42LSXXCO.js.map +0 -7
  322. package/packages/sideboard/dist/index.css +0 -2
  323. package/packages/sideboard/dist/index.css.map +0 -7
  324. package/packages/sideboard/dist/index.js +0 -2
  325. package/packages/sideboard/dist/index.js.map +0 -7
  326. package/packages/sideboard/dist/sideboard/sideboard.js +0 -2
  327. package/packages/sideboard/dist/sideboard/sideboard.js.map +0 -7
  328. package/packages/sideboard/package.json +0 -56
  329. package/packages/theming/dist/active-theme-K27UXDBG.js +0 -26
  330. package/packages/theming/dist/active-theme-K27UXDBG.js.map +0 -7
  331. package/packages/theming/dist/chunk-K4OOO2TK.js +0 -281
  332. package/packages/theming/dist/chunk-K4OOO2TK.js.map +0 -7
  333. package/packages/theming/dist/chunk-RATW7VZI.js +0 -11
  334. package/packages/theming/dist/chunk-RATW7VZI.js.map +0 -7
  335. package/packages/theming/dist/chunk-U7SC4JPE.js +0 -86
  336. package/packages/theming/dist/chunk-U7SC4JPE.js.map +0 -7
  337. package/packages/theming/dist/codemirror-theme.js +0 -2415
  338. package/packages/theming/dist/codemirror-theme.js.map +0 -7
  339. package/packages/theming/dist/datatype-UUJVIZM7.js +0 -16
  340. package/packages/theming/dist/datatype-UUJVIZM7.js.map +0 -7
  341. package/packages/theming/dist/gloom-JYQPEOHI.css +0 -102
  342. package/packages/theming/dist/lychee-BMLMUNP6.css +0 -114
  343. package/packages/theming/dist/main.js +0 -112
  344. package/packages/theming/dist/main.js.map +0 -7
  345. package/packages/theming/dist/theme-RC7MV6WP.css +0 -691
  346. package/packages/theming/dist/theme-editor-datatype-CIXRKEFF.js +0 -11
  347. package/packages/theming/dist/theme-editor-datatype-CIXRKEFF.js.map +0 -7
  348. package/packages/theming/dist/theme-editor.js +0 -576
  349. package/packages/theming/dist/theme-editor.js.map +0 -7
  350. package/packages/theming/dist/theme-titlebar-P2CODQGF.js +0 -21
  351. package/packages/theming/dist/theme-titlebar-P2CODQGF.js.map +0 -7
  352. package/packages/theming/dist/theme-tray-5L2KGCGD.js +0 -351
  353. package/packages/theming/dist/theme-tray-5L2KGCGD.js.map +0 -7
  354. package/packages/theming/dist/tool.js +0 -405
  355. package/packages/theming/dist/tool.js.map +0 -7
  356. package/packages/theming/package.json +0 -48
  357. package/packages/threepane/dist/IsolatedDocumentArea-LFSDWMIY.js +0 -2
  358. package/packages/threepane/dist/IsolatedDocumentArea-LFSDWMIY.js.map +0 -7
  359. package/packages/threepane/dist/PatchworkFrame-JTNZ6365.js +0 -2
  360. package/packages/threepane/dist/PatchworkFrame-JTNZ6365.js.map +0 -7
  361. package/packages/threepane/dist/chunk-7YXO2YGV.js +0 -2
  362. package/packages/threepane/dist/chunk-7YXO2YGV.js.map +0 -7
  363. package/packages/threepane/dist/chunk-FOMAU6H2.js +0 -972
  364. package/packages/threepane/dist/chunk-FOMAU6H2.js.map +0 -7
  365. package/packages/threepane/dist/chunk-FW4363Y4.js +0 -2
  366. package/packages/threepane/dist/chunk-FW4363Y4.js.map +0 -7
  367. package/packages/threepane/dist/datatypes-FKBTWAO7.js +0 -2
  368. package/packages/threepane/dist/datatypes-FKBTWAO7.js.map +0 -7
  369. package/packages/threepane/dist/index.js +0 -2
  370. package/packages/threepane/dist/index.js.map +0 -7
  371. package/packages/threepane/package.json +0 -42
  372. package/packages/tldraw4/dist/chunk-IKZWERSR.js +0 -38
  373. package/packages/tldraw4/dist/chunk-IKZWERSR.js.map +0 -7
  374. package/packages/tldraw4/dist/chunk-VF5CY24G.js +0 -140894
  375. package/packages/tldraw4/dist/chunk-VF5CY24G.js.map +0 -7
  376. package/packages/tldraw4/dist/datatype.js +0 -46
  377. package/packages/tldraw4/dist/datatype.js.map +0 -7
  378. package/packages/tldraw4/dist/main.css +0 -3202
  379. package/packages/tldraw4/dist/main.css.map +0 -7
  380. package/packages/tldraw4/dist/main.js +0 -42
  381. package/packages/tldraw4/dist/main.js.map +0 -7
  382. package/packages/tldraw4/dist/tool.js +0 -8767
  383. package/packages/tldraw4/dist/tool.js.map +0 -7
  384. package/packages/tldraw4/package.json +0 -62
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../node_modules/.pnpm/@codemirror+legacy-modes@6.5.3/node_modules/@codemirror/legacy-modes/mode/erlang.js"],
4
- "sourcesContent": ["/////////////////////////////////////////////////////////////////////////////\n// constants\n\nvar typeWords = [\n \"-type\", \"-spec\", \"-export_type\", \"-opaque\"];\n\nvar keywordWords = [\n \"after\",\"begin\",\"catch\",\"case\",\"cond\",\"end\",\"fun\",\"if\",\n \"let\",\"of\",\"query\",\"receive\",\"try\",\"when\"];\n\nvar separatorRE = /[\\->,;]/;\nvar separatorWords = [\n \"->\",\";\",\",\"];\n\nvar operatorAtomWords = [\n \"and\",\"andalso\",\"band\",\"bnot\",\"bor\",\"bsl\",\"bsr\",\"bxor\",\n \"div\",\"not\",\"or\",\"orelse\",\"rem\",\"xor\"];\n\nvar operatorSymbolRE = /[\\+\\-\\*\\/<>=\\|:!]/;\nvar operatorSymbolWords = [\n \"=\",\"+\",\"-\",\"*\",\"/\",\">\",\">=\",\"<\",\"=<\",\"=:=\",\"==\",\"=/=\",\"/=\",\"||\",\"<-\",\"!\"];\n\nvar openParenRE = /[<\\(\\[\\{]/;\nvar openParenWords = [\n \"<<\",\"(\",\"[\",\"{\"];\n\nvar closeParenRE = /[>\\)\\]\\}]/;\nvar closeParenWords = [\n \"}\",\"]\",\")\",\">>\"];\n\nvar guardWords = [\n \"is_atom\",\"is_binary\",\"is_bitstring\",\"is_boolean\",\"is_float\",\n \"is_function\",\"is_integer\",\"is_list\",\"is_number\",\"is_pid\",\n \"is_port\",\"is_record\",\"is_reference\",\"is_tuple\",\n \"atom\",\"binary\",\"bitstring\",\"boolean\",\"function\",\"integer\",\"list\",\n \"number\",\"pid\",\"port\",\"record\",\"reference\",\"tuple\"];\n\nvar bifWords = [\n \"abs\",\"adler32\",\"adler32_combine\",\"alive\",\"apply\",\"atom_to_binary\",\n \"atom_to_list\",\"binary_to_atom\",\"binary_to_existing_atom\",\n \"binary_to_list\",\"binary_to_term\",\"bit_size\",\"bitstring_to_list\",\n \"byte_size\",\"check_process_code\",\"contact_binary\",\"crc32\",\n \"crc32_combine\",\"date\",\"decode_packet\",\"delete_module\",\n \"disconnect_node\",\"element\",\"erase\",\"exit\",\"float\",\"float_to_list\",\n \"garbage_collect\",\"get\",\"get_keys\",\"group_leader\",\"halt\",\"hd\",\n \"integer_to_list\",\"internal_bif\",\"iolist_size\",\"iolist_to_binary\",\n \"is_alive\",\"is_atom\",\"is_binary\",\"is_bitstring\",\"is_boolean\",\n \"is_float\",\"is_function\",\"is_integer\",\"is_list\",\"is_number\",\"is_pid\",\n \"is_port\",\"is_process_alive\",\"is_record\",\"is_reference\",\"is_tuple\",\n \"length\",\"link\",\"list_to_atom\",\"list_to_binary\",\"list_to_bitstring\",\n \"list_to_existing_atom\",\"list_to_float\",\"list_to_integer\",\n \"list_to_pid\",\"list_to_tuple\",\"load_module\",\"make_ref\",\"module_loaded\",\n \"monitor_node\",\"node\",\"node_link\",\"node_unlink\",\"nodes\",\"notalive\",\n \"now\",\"open_port\",\"pid_to_list\",\"port_close\",\"port_command\",\n \"port_connect\",\"port_control\",\"pre_loaded\",\"process_flag\",\n \"process_info\",\"processes\",\"purge_module\",\"put\",\"register\",\n \"registered\",\"round\",\"self\",\"setelement\",\"size\",\"spawn\",\"spawn_link\",\n \"spawn_monitor\",\"spawn_opt\",\"split_binary\",\"statistics\",\n \"term_to_binary\",\"time\",\"throw\",\"tl\",\"trunc\",\"tuple_size\",\n \"tuple_to_list\",\"unlink\",\"unregister\",\"whereis\"];\n\n// upper case: [A-Z] [\u00D8-\u00DE] [\u00C0-\u00D6]\n// lower case: [a-z] [\u00DF-\u00F6] [\u00F8-\u00FF]\nvar anumRE = /[\\w@\u00D8-\u00DE\u00C0-\u00D6\u00DF-\u00F6\u00F8-\u00FF]/;\nvar escapesRE =\n /[0-7]{1,3}|[bdefnrstv\\\\\"']|\\^[a-zA-Z]|x[0-9a-zA-Z]{2}|x{[0-9a-zA-Z]+}/;\n\n/////////////////////////////////////////////////////////////////////////////\n// tokenizer\n\nfunction tokenizer(stream,state) {\n // in multi-line string\n if (state.in_string) {\n state.in_string = (!doubleQuote(stream));\n return rval(state,stream,\"string\");\n }\n\n // in multi-line atom\n if (state.in_atom) {\n state.in_atom = (!singleQuote(stream));\n return rval(state,stream,\"atom\");\n }\n\n // whitespace\n if (stream.eatSpace()) {\n return rval(state,stream,\"whitespace\");\n }\n\n // attributes and type specs\n if (!peekToken(state) &&\n stream.match(/-\\s*[a-z\u00DF-\u00F6\u00F8-\u00FF][\\w\u00D8-\u00DE\u00C0-\u00D6\u00DF-\u00F6\u00F8-\u00FF]*/)) {\n if (is_member(stream.current(),typeWords)) {\n return rval(state,stream,\"type\");\n }else{\n return rval(state,stream,\"attribute\");\n }\n }\n\n var ch = stream.next();\n\n // comment\n if (ch == '%') {\n stream.skipToEnd();\n return rval(state,stream,\"comment\");\n }\n\n // colon\n if (ch == \":\") {\n return rval(state,stream,\"colon\");\n }\n\n // macro\n if (ch == '?') {\n stream.eatSpace();\n stream.eatWhile(anumRE);\n return rval(state,stream,\"macro\");\n }\n\n // record\n if (ch == \"#\") {\n stream.eatSpace();\n stream.eatWhile(anumRE);\n return rval(state,stream,\"record\");\n }\n\n // dollar escape\n if (ch == \"$\") {\n if (stream.next() == \"\\\\\" && !stream.match(escapesRE)) {\n return rval(state,stream,\"error\");\n }\n return rval(state,stream,\"number\");\n }\n\n // dot\n if (ch == \".\") {\n return rval(state,stream,\"dot\");\n }\n\n // quoted atom\n if (ch == '\\'') {\n if (!(state.in_atom = (!singleQuote(stream)))) {\n if (stream.match(/\\s*\\/\\s*[0-9]/,false)) {\n stream.match(/\\s*\\/\\s*[0-9]/,true);\n return rval(state,stream,\"fun\"); // 'f'/0 style fun\n }\n if (stream.match(/\\s*\\(/,false) || stream.match(/\\s*:/,false)) {\n return rval(state,stream,\"function\");\n }\n }\n return rval(state,stream,\"atom\");\n }\n\n // string\n if (ch == '\"') {\n state.in_string = (!doubleQuote(stream));\n return rval(state,stream,\"string\");\n }\n\n // variable\n if (/[A-Z_\u00D8-\u00DE\u00C0-\u00D6]/.test(ch)) {\n stream.eatWhile(anumRE);\n return rval(state,stream,\"variable\");\n }\n\n // atom/keyword/BIF/function\n if (/[a-z_\u00DF-\u00F6\u00F8-\u00FF]/.test(ch)) {\n stream.eatWhile(anumRE);\n\n if (stream.match(/\\s*\\/\\s*[0-9]/,false)) {\n stream.match(/\\s*\\/\\s*[0-9]/,true);\n return rval(state,stream,\"fun\"); // f/0 style fun\n }\n\n var w = stream.current();\n\n if (is_member(w,keywordWords)) {\n return rval(state,stream,\"keyword\");\n }else if (is_member(w,operatorAtomWords)) {\n return rval(state,stream,\"operator\");\n }else if (stream.match(/\\s*\\(/,false)) {\n // 'put' and 'erlang:put' are bifs, 'foo:put' is not\n if (is_member(w,bifWords) &&\n ((peekToken(state).token != \":\") ||\n (peekToken(state,2).token == \"erlang\"))) {\n return rval(state,stream,\"builtin\");\n }else if (is_member(w,guardWords)) {\n return rval(state,stream,\"guard\");\n }else{\n return rval(state,stream,\"function\");\n }\n }else if (lookahead(stream) == \":\") {\n if (w == \"erlang\") {\n return rval(state,stream,\"builtin\");\n } else {\n return rval(state,stream,\"function\");\n }\n }else if (is_member(w,[\"true\",\"false\"])) {\n return rval(state,stream,\"boolean\");\n }else{\n return rval(state,stream,\"atom\");\n }\n }\n\n // number\n var digitRE = /[0-9]/;\n var radixRE = /[0-9a-zA-Z]/; // 36#zZ style int\n if (digitRE.test(ch)) {\n stream.eatWhile(digitRE);\n if (stream.eat('#')) { // 36#aZ style integer\n if (!stream.eatWhile(radixRE)) {\n stream.backUp(1); //\"36#\" - syntax error\n }\n } else if (stream.eat('.')) { // float\n if (!stream.eatWhile(digitRE)) {\n stream.backUp(1); // \"3.\" - probably end of function\n } else {\n if (stream.eat(/[eE]/)) { // float with exponent\n if (stream.eat(/[-+]/)) {\n if (!stream.eatWhile(digitRE)) {\n stream.backUp(2); // \"2e-\" - syntax error\n }\n } else {\n if (!stream.eatWhile(digitRE)) {\n stream.backUp(1); // \"2e\" - syntax error\n }\n }\n }\n }\n }\n return rval(state,stream,\"number\"); // normal integer\n }\n\n // open parens\n if (nongreedy(stream,openParenRE,openParenWords)) {\n return rval(state,stream,\"open_paren\");\n }\n\n // close parens\n if (nongreedy(stream,closeParenRE,closeParenWords)) {\n return rval(state,stream,\"close_paren\");\n }\n\n // separators\n if (greedy(stream,separatorRE,separatorWords)) {\n return rval(state,stream,\"separator\");\n }\n\n // operators\n if (greedy(stream,operatorSymbolRE,operatorSymbolWords)) {\n return rval(state,stream,\"operator\");\n }\n\n return rval(state,stream,null);\n}\n\n/////////////////////////////////////////////////////////////////////////////\n// utilities\nfunction nongreedy(stream,re,words) {\n if (stream.current().length == 1 && re.test(stream.current())) {\n stream.backUp(1);\n while (re.test(stream.peek())) {\n stream.next();\n if (is_member(stream.current(),words)) {\n return true;\n }\n }\n stream.backUp(stream.current().length-1);\n }\n return false;\n}\n\nfunction greedy(stream,re,words) {\n if (stream.current().length == 1 && re.test(stream.current())) {\n while (re.test(stream.peek())) {\n stream.next();\n }\n while (0 < stream.current().length) {\n if (is_member(stream.current(),words)) {\n return true;\n }else{\n stream.backUp(1);\n }\n }\n stream.next();\n }\n return false;\n}\n\nfunction doubleQuote(stream) {\n return quote(stream, '\"', '\\\\');\n}\n\nfunction singleQuote(stream) {\n return quote(stream,'\\'','\\\\');\n}\n\nfunction quote(stream,quoteChar,escapeChar) {\n while (!stream.eol()) {\n var ch = stream.next();\n if (ch == quoteChar) {\n return true;\n }else if (ch == escapeChar) {\n stream.next();\n }\n }\n return false;\n}\n\nfunction lookahead(stream) {\n var m = stream.match(/^\\s*([^\\s%])/, false)\n return m ? m[1] : \"\";\n}\n\nfunction is_member(element,list) {\n return (-1 < list.indexOf(element));\n}\n\nfunction rval(state,stream,type) {\n\n // parse stack\n pushToken(state,realToken(type,stream));\n\n // map erlang token type to CodeMirror style class\n // erlang -> CodeMirror tag\n switch (type) {\n case \"atom\": return \"atom\";\n case \"attribute\": return \"attribute\";\n case \"boolean\": return \"atom\";\n case \"builtin\": return \"builtin\";\n case \"close_paren\": return null;\n case \"colon\": return null;\n case \"comment\": return \"comment\";\n case \"dot\": return null;\n case \"error\": return \"error\";\n case \"fun\": return \"meta\";\n case \"function\": return \"tag\";\n case \"guard\": return \"property\";\n case \"keyword\": return \"keyword\";\n case \"macro\": return \"macroName\";\n case \"number\": return \"number\";\n case \"open_paren\": return null;\n case \"operator\": return \"operator\";\n case \"record\": return \"bracket\";\n case \"separator\": return null;\n case \"string\": return \"string\";\n case \"type\": return \"def\";\n case \"variable\": return \"variable\";\n default: return null;\n }\n}\n\nfunction aToken(tok,col,ind,typ) {\n return {token: tok,\n column: col,\n indent: ind,\n type: typ};\n}\n\nfunction realToken(type,stream) {\n return aToken(stream.current(),\n stream.column(),\n stream.indentation(),\n type);\n}\n\nfunction fakeToken(type) {\n return aToken(type,0,0,type);\n}\n\nfunction peekToken(state,depth) {\n var len = state.tokenStack.length;\n var dep = (depth ? depth : 1);\n\n if (len < dep) {\n return false;\n }else{\n return state.tokenStack[len-dep];\n }\n}\n\nfunction pushToken(state,token) {\n\n if (!(token.type == \"comment\" || token.type == \"whitespace\")) {\n state.tokenStack = maybe_drop_pre(state.tokenStack,token);\n state.tokenStack = maybe_drop_post(state.tokenStack);\n }\n}\n\nfunction maybe_drop_pre(s,token) {\n var last = s.length-1;\n\n if (0 < last && s[last].type === \"record\" && token.type === \"dot\") {\n s.pop();\n }else if (0 < last && s[last].type === \"group\") {\n s.pop();\n s.push(token);\n }else{\n s.push(token);\n }\n return s;\n}\n\nfunction maybe_drop_post(s) {\n if (!s.length) return s\n var last = s.length-1;\n\n if (s[last].type === \"dot\") {\n return [];\n }\n if (last > 1 && s[last].type === \"fun\" && s[last-1].token === \"fun\") {\n return s.slice(0,last-1);\n }\n switch (s[last].token) {\n case \"}\": return d(s,{g:[\"{\"]});\n case \"]\": return d(s,{i:[\"[\"]});\n case \")\": return d(s,{i:[\"(\"]});\n case \">>\": return d(s,{i:[\"<<\"]});\n case \"end\": return d(s,{i:[\"begin\",\"case\",\"fun\",\"if\",\"receive\",\"try\"]});\n case \",\": return d(s,{e:[\"begin\",\"try\",\"when\",\"->\",\n \",\",\"(\",\"[\",\"{\",\"<<\"]});\n case \"->\": return d(s,{r:[\"when\"],\n m:[\"try\",\"if\",\"case\",\"receive\"]});\n case \";\": return d(s,{E:[\"case\",\"fun\",\"if\",\"receive\",\"try\",\"when\"]});\n case \"catch\":return d(s,{e:[\"try\"]});\n case \"of\": return d(s,{e:[\"case\"]});\n case \"after\":return d(s,{e:[\"receive\",\"try\"]});\n default: return s;\n }\n}\n\nfunction d(stack,tt) {\n // stack is a stack of Token objects.\n // tt is an object; {type:tokens}\n // type is a char, tokens is a list of token strings.\n // The function returns (possibly truncated) stack.\n // It will descend the stack, looking for a Token such that Token.token\n // is a member of tokens. If it does not find that, it will normally (but\n // see \"E\" below) return stack. If it does find a match, it will remove\n // all the Tokens between the top and the matched Token.\n // If type is \"m\", that is all it does.\n // If type is \"i\", it will also remove the matched Token and the top Token.\n // If type is \"g\", like \"i\", but add a fake \"group\" token at the top.\n // If type is \"r\", it will remove the matched Token, but not the top Token.\n // If type is \"e\", it will keep the matched Token but not the top Token.\n // If type is \"E\", it behaves as for type \"e\", except if there is no match,\n // in which case it will return an empty stack.\n\n for (var type in tt) {\n var len = stack.length-1;\n var tokens = tt[type];\n for (var i = len-1; -1 < i ; i--) {\n if (is_member(stack[i].token,tokens)) {\n var ss = stack.slice(0,i);\n switch (type) {\n case \"m\": return ss.concat(stack[i]).concat(stack[len]);\n case \"r\": return ss.concat(stack[len]);\n case \"i\": return ss;\n case \"g\": return ss.concat(fakeToken(\"group\"));\n case \"E\": return ss.concat(stack[i]);\n case \"e\": return ss.concat(stack[i]);\n }\n }\n }\n }\n return (type == \"E\" ? [] : stack);\n}\n\n/////////////////////////////////////////////////////////////////////////////\n// indenter\n\nfunction indenter(state, textAfter, cx) {\n var t;\n var wordAfter = wordafter(textAfter);\n var currT = peekToken(state,1);\n var prevT = peekToken(state,2);\n\n if (state.in_string || state.in_atom) {\n return null;\n }else if (!prevT) {\n return 0;\n }else if (currT.token == \"when\") {\n return currT.column + cx.unit;\n }else if (wordAfter === \"when\" && prevT.type === \"function\") {\n return prevT.indent+cx.unit;\n }else if (wordAfter === \"(\" && currT.token === \"fun\") {\n return currT.column+3;\n }else if (wordAfter === \"catch\" && (t = getToken(state,[\"try\"]))) {\n return t.column;\n }else if (is_member(wordAfter,[\"end\",\"after\",\"of\"])) {\n t = getToken(state,[\"begin\",\"case\",\"fun\",\"if\",\"receive\",\"try\"]);\n return t ? t.column : null;\n }else if (is_member(wordAfter,closeParenWords)) {\n t = getToken(state,openParenWords);\n return t ? t.column : null;\n }else if (is_member(currT.token,[\",\",\"|\",\"||\"]) ||\n is_member(wordAfter,[\",\",\"|\",\"||\"])) {\n t = postcommaToken(state);\n return t ? t.column+t.token.length : cx.unit;\n }else if (currT.token == \"->\") {\n if (is_member(prevT.token, [\"receive\",\"case\",\"if\",\"try\"])) {\n return prevT.column+cx.unit+cx.unit;\n }else{\n return prevT.column+cx.unit;\n }\n }else if (is_member(currT.token,openParenWords)) {\n return currT.column+currT.token.length;\n }else{\n t = defaultToken(state);\n return truthy(t) ? t.column+cx.unit : 0;\n }\n}\n\nfunction wordafter(str) {\n var m = str.match(/,|[a-z]+|\\}|\\]|\\)|>>|\\|+|\\(/);\n\n return truthy(m) && (m.index === 0) ? m[0] : \"\";\n}\n\nfunction postcommaToken(state) {\n var objs = state.tokenStack.slice(0,-1);\n var i = getTokenIndex(objs,\"type\",[\"open_paren\"]);\n\n return truthy(objs[i]) ? objs[i] : false;\n}\n\nfunction defaultToken(state) {\n var objs = state.tokenStack;\n var stop = getTokenIndex(objs,\"type\",[\"open_paren\",\"separator\",\"keyword\"]);\n var oper = getTokenIndex(objs,\"type\",[\"operator\"]);\n\n if (truthy(stop) && truthy(oper) && stop < oper) {\n return objs[stop+1];\n } else if (truthy(stop)) {\n return objs[stop];\n } else {\n return false;\n }\n}\n\nfunction getToken(state,tokens) {\n var objs = state.tokenStack;\n var i = getTokenIndex(objs,\"token\",tokens);\n\n return truthy(objs[i]) ? objs[i] : false;\n}\n\nfunction getTokenIndex(objs,propname,propvals) {\n\n for (var i = objs.length-1; -1 < i ; i--) {\n if (is_member(objs[i][propname],propvals)) {\n return i;\n }\n }\n return false;\n}\n\nfunction truthy(x) {\n return (x !== false) && (x != null);\n}\n\n/////////////////////////////////////////////////////////////////////////////\n// this object defines the mode\n\nexport const erlang = {\n name: \"erlang\",\n startState() {\n return {tokenStack: [],\n in_string: false,\n in_atom: false};\n },\n\n token: tokenizer,\n\n indent: indenter,\n\n languageData: {\n commentTokens: {line: \"%\"}\n }\n};\n\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,325 +0,0 @@
1
- // src/extensions/embed.ts
2
- import {
3
- EditorView as EditorView2,
4
- Decoration,
5
- WidgetType,
6
- ViewPlugin
7
- } from "@codemirror/view";
8
- import {
9
- isValidDocumentId,
10
- parseAutomergeUrl
11
- } from "@automerge/automerge-repo";
12
-
13
- // src/themes/embed.ts
14
- import { EditorView } from "@codemirror/view";
15
- var embedTheme = EditorView.baseTheme({
16
- ".cm-embed": {
17
- display: "block",
18
- border: "1px solid",
19
- borderRadius: "4px",
20
- overflow: "hidden"
21
- },
22
- "&light .cm-embed": {
23
- borderColor: "#ddd"
24
- },
25
- "&dark .cm-embed": {
26
- borderColor: "#333"
27
- },
28
- ".cm-embed-label": {
29
- fontFamily: "monospace",
30
- padding: "4px 8px",
31
- borderBottom: "1px solid",
32
- whiteSpace: "nowrap",
33
- overflow: "hidden",
34
- textOverflow: "ellipsis",
35
- cursor: "text",
36
- display: "flex",
37
- alignItems: "center",
38
- gap: "8px"
39
- },
40
- ".cm-embed-label-text": {
41
- flex: "1",
42
- minWidth: "0",
43
- overflow: "hidden",
44
- textOverflow: "ellipsis",
45
- opacity: 0.7,
46
- "&:hover": {
47
- opacity: 1
48
- }
49
- },
50
- ".cm-embed-open-link": {
51
- display: "inline-flex",
52
- alignItems: "center",
53
- justifyContent: "center",
54
- width: "16px",
55
- height: "16px",
56
- cursor: "pointer",
57
- flexShrink: "0",
58
- border: "none",
59
- background: "none",
60
- padding: "0",
61
- color: "inherit",
62
- opacity: 0.7,
63
- "&:hover": {
64
- opacity: 1
65
- }
66
- },
67
- "&light .cm-embed-label": {
68
- borderBottomColor: "#ddd"
69
- },
70
- "&dark .cm-embed-label": {
71
- borderBottomColor: "#333"
72
- },
73
- ".cm-embed patchwork-view": {
74
- display: "block",
75
- height: "500px",
76
- width: "100%"
77
- },
78
- ".cm-embed patchwork-view > *": {
79
- height: "100%",
80
- width: "100%"
81
- }
82
- });
83
-
84
- // src/extensions/icons.ts
85
- var openLinkIcon = `<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
86
- <path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path>
87
- <polyline points="15 3 21 3 21 9"></polyline>
88
- <line x1="10" y1="14" x2="21" y2="3"></line>
89
- </svg>`;
90
-
91
- // src/extensions/embed.ts
92
- var EmbedWidget = class extends WidgetType {
93
- docId;
94
- // `null` means "no explicit tool": <patchwork-view> falls back to the
95
- // default tool registered for the document's datatype.
96
- toolId;
97
- embedText;
98
- constructor(docId, toolId, embedText) {
99
- super();
100
- this.docId = docId;
101
- this.toolId = toolId;
102
- this.embedText = embedText;
103
- }
104
- eq(other) {
105
- return other.docId === this.docId && other.toolId === this.toolId;
106
- }
107
- toDOM() {
108
- const container = document.createElement("div");
109
- container.className = "cm-embed";
110
- const label = document.createElement("div");
111
- label.className = "cm-embed-label";
112
- const labelText = document.createElement("span");
113
- labelText.className = "cm-embed-label-text";
114
- labelText.textContent = this.embedText;
115
- labelText.title = "Click to edit";
116
- const openLink = document.createElement("button");
117
- openLink.className = "cm-embed-open-link";
118
- openLink.title = "Open document";
119
- openLink.innerHTML = openLinkIcon;
120
- openLink.onclick = (e) => {
121
- e.preventDefault();
122
- e.stopPropagation();
123
- const params = new URLSearchParams();
124
- params.set("doc", this.docId);
125
- if (this.toolId) params.set("tool", this.toolId);
126
- window.location.hash = params.toString();
127
- };
128
- label.appendChild(labelText);
129
- label.appendChild(openLink);
130
- const view = document.createElement("patchwork-view");
131
- view.setAttribute("doc-url", `automerge:${this.docId}`);
132
- if (this.toolId) view.setAttribute("tool-id", this.toolId);
133
- view.style.display = "block";
134
- view.style.height = "500px";
135
- view.style.width = "100%";
136
- container.appendChild(label);
137
- container.appendChild(view);
138
- return container;
139
- }
140
- ignoreEvent(e) {
141
- if (e.type === "mousedown" && e.target instanceof Element) {
142
- if (e.target.classList.contains("cm-embed-label-text")) {
143
- return false;
144
- }
145
- if (e.target.classList.contains("cm-embed-open-link") || e.target.closest(".cm-embed-open-link")) {
146
- return true;
147
- }
148
- }
149
- return true;
150
- }
151
- };
152
- var EMBED_PATTERN = /\[patchwork:([^/\]]+)(?:\/([^\]]+))?\]/g;
153
- function getEmbedLinks(view) {
154
- const widgets = [];
155
- const { state } = view;
156
- const selection = state.selection.main;
157
- for (const { from, to } of view.visibleRanges) {
158
- const text = state.doc.sliceString(from, to);
159
- EMBED_PATTERN.lastIndex = 0;
160
- let m;
161
- while ((m = EMBED_PATTERN.exec(text)) !== null) {
162
- const matchFrom = from + m.index;
163
- const matchTo = matchFrom + m[0].length;
164
- const [matchText, docId, toolId] = m;
165
- const cursorInLink = selection.from >= matchFrom && selection.from <= matchTo;
166
- const selectionSpansLink = selection.from < matchFrom && selection.to > matchTo;
167
- if (cursorInLink || selectionSpansLink) continue;
168
- if (!isValidDocumentId(docId)) continue;
169
- const embed = Decoration.replace({
170
- widget: new EmbedWidget(docId, toolId ?? null, matchText)
171
- });
172
- widgets.push(embed.range(matchFrom, matchTo));
173
- }
174
- }
175
- return Decoration.set(widgets, true);
176
- }
177
- var PATCHWORK_DND = "text/x-patchwork-dnd";
178
- var PATCHWORK_URLS = "text/x-patchwork-urls";
179
- function urlToDocId(raw) {
180
- const trimmed = raw.trim();
181
- if (!trimmed) return null;
182
- const am = trimmed.match(/automerge:([a-zA-Z0-9]+)/);
183
- if (am && isValidDocumentId(am[1])) return am[1];
184
- const web = trimmed.match(/[#&?]doc=([a-zA-Z0-9]+)/);
185
- if (web && isValidDocumentId(web[1])) return web[1];
186
- return null;
187
- }
188
- function extractDocRefs(dt) {
189
- const refs = [];
190
- const seen = /* @__PURE__ */ new Set();
191
- const push = (docId, toolId) => {
192
- if (!docId || seen.has(docId)) return;
193
- seen.add(docId);
194
- refs.push({ docId, toolId });
195
- };
196
- const dnd = dt.getData(PATCHWORK_DND);
197
- if (dnd) {
198
- try {
199
- const parsed = JSON.parse(dnd);
200
- for (const item of parsed?.items ?? []) {
201
- if (item?.url) push(urlToDocId(item.url), item.toolId ?? null);
202
- }
203
- } catch {
204
- }
205
- }
206
- if (refs.length > 0) return refs;
207
- const urls = dt.getData(PATCHWORK_URLS);
208
- if (urls) {
209
- try {
210
- const parsed = JSON.parse(urls);
211
- if (Array.isArray(parsed)) {
212
- for (const u of parsed) push(urlToDocId(String(u)), null);
213
- }
214
- } catch {
215
- }
216
- }
217
- if (refs.length > 0) return refs;
218
- const text = dt.getData("text/uri-list") || dt.getData("text/plain");
219
- if (text) {
220
- for (const line of text.split(/\r?\n/)) {
221
- if (line.startsWith("#")) continue;
222
- push(urlToDocId(line), null);
223
- }
224
- }
225
- return refs;
226
- }
227
- function embedSyntax({ docId, toolId }) {
228
- return toolId ? `[patchwork:${docId}/${toolId}]` : `[patchwork:${docId}]`;
229
- }
230
- async function fileDropRefs(files) {
231
- const repo = window.repo;
232
- if (!repo) {
233
- console.warn(
234
- "[codemirror-embed] window.repo unavailable; ignoring dropped files"
235
- );
236
- return [];
237
- }
238
- const refs = [];
239
- for (const file of Array.from(files)) {
240
- try {
241
- const mimeType = file.type || "application/octet-stream";
242
- const isText = mimeType.startsWith("text/") || mimeType === "application/json";
243
- const content = isText ? await file.text() : new Uint8Array(await file.arrayBuffer());
244
- const parts = file.name.split(".");
245
- const extension = parts.length > 1 ? parts.pop() : "";
246
- const handle = repo.create();
247
- handle.change((d) => {
248
- d["@patchwork"] = { type: "file" };
249
- d.content = content;
250
- d.mimeType = mimeType;
251
- d.extension = extension;
252
- d.name = file.name;
253
- });
254
- const { documentId } = parseAutomergeUrl(handle.url);
255
- if (isValidDocumentId(documentId)) {
256
- refs.push({ docId: documentId, toolId: null });
257
- }
258
- } catch (err) {
259
- console.warn(
260
- "[codemirror-embed] failed to import dropped file",
261
- file.name,
262
- err
263
- );
264
- }
265
- }
266
- return refs;
267
- }
268
- function insertRefs(view, pos, refs) {
269
- if (refs.length === 0) return;
270
- const text = refs.map(embedSyntax).join("\n\n");
271
- view.dispatch({
272
- changes: { from: pos, insert: text },
273
- selection: { anchor: pos + text.length }
274
- });
275
- }
276
- function embedDropHandlers() {
277
- const wantsDragover = (dt) => !!dt && (dt.types.includes("Files") || dt.types.includes(PATCHWORK_DND) || dt.types.includes(PATCHWORK_URLS));
278
- return EditorView2.domEventHandlers({
279
- dragover(event) {
280
- if (!wantsDragover(event.dataTransfer)) return false;
281
- event.preventDefault();
282
- if (event.dataTransfer) event.dataTransfer.dropEffect = "copy";
283
- return true;
284
- },
285
- drop(event, view) {
286
- const dt = event.dataTransfer;
287
- if (!dt) return false;
288
- const pos = view.posAtCoords({ x: event.clientX, y: event.clientY });
289
- if (pos == null) return false;
290
- if (dt.files && dt.files.length > 0) {
291
- event.preventDefault();
292
- void fileDropRefs(dt.files).then((refs2) => insertRefs(view, pos, refs2));
293
- return true;
294
- }
295
- const refs = extractDocRefs(dt);
296
- if (refs.length === 0) return false;
297
- event.preventDefault();
298
- insertRefs(view, pos, refs);
299
- return true;
300
- }
301
- });
302
- }
303
- var embedPlugin = ViewPlugin.fromClass(
304
- class {
305
- decorations;
306
- constructor(view) {
307
- this.decorations = getEmbedLinks(view);
308
- }
309
- update(update) {
310
- if (update.docChanged || update.selectionSet || update.viewportChanged) {
311
- this.decorations = getEmbedLinks(update.view);
312
- }
313
- }
314
- },
315
- {
316
- decorations: (v) => v.decorations
317
- }
318
- );
319
- function markdownEmbed() {
320
- return [embedPlugin, embedTheme, embedDropHandlers()];
321
- }
322
- export {
323
- markdownEmbed
324
- };
325
- //# sourceMappingURL=embed.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/extensions/embed.ts", "../../src/themes/embed.ts", "../../src/extensions/icons.ts"],
4
- "sourcesContent": ["import {\n EditorView,\n Decoration,\n WidgetType,\n ViewPlugin,\n ViewUpdate,\n type DecorationSet,\n} from \"@codemirror/view\";\nimport { Range } from \"@codemirror/state\";\nimport {\n type AutomergeUrl,\n type DocumentId,\n isValidDocumentId,\n parseAutomergeUrl,\n} from \"@automerge/automerge-repo\";\nimport { embedTheme } from \"../themes/embed.ts\";\nimport { openLinkIcon } from \"./icons.ts\";\n\n/**\n * Widget to render an embedded <patchwork-view> element in a CodeMirror editor.\n */\nclass EmbedWidget extends WidgetType {\n readonly docId: DocumentId;\n // `null` means \"no explicit tool\": <patchwork-view> falls back to the\n // default tool registered for the document's datatype.\n readonly toolId: string | null;\n readonly embedText: string;\n\n constructor(docId: DocumentId, toolId: string | null, embedText: string) {\n super();\n this.docId = docId;\n this.toolId = toolId;\n this.embedText = embedText;\n }\n\n eq(other: EmbedWidget) {\n return other.docId === this.docId && other.toolId === this.toolId;\n }\n\n toDOM() {\n const container = document.createElement(\"div\");\n container.className = \"cm-embed\";\n\n const label = document.createElement(\"div\");\n label.className = \"cm-embed-label\";\n\n const labelText = document.createElement(\"span\");\n labelText.className = \"cm-embed-label-text\";\n labelText.textContent = this.embedText;\n labelText.title = \"Click to edit\";\n\n const openLink = document.createElement(\"button\");\n openLink.className = \"cm-embed-open-link\";\n openLink.title = \"Open document\";\n openLink.innerHTML = openLinkIcon;\n\n openLink.onclick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n const params = new URLSearchParams();\n params.set(\"doc\", this.docId);\n // Tool-less embeds open with the datatype's default tool.\n if (this.toolId) params.set(\"tool\", this.toolId);\n window.location.hash = params.toString();\n };\n\n label.appendChild(labelText);\n label.appendChild(openLink);\n\n const view = document.createElement(\"patchwork-view\");\n // Name the doc without heads. Resolution (OverlayRepo + the drafts\n // `repo:handle-descriptor` answer) pins it to the active checkpoint when one\n // is checked out, so the embed freezes with the document it lives in;\n // otherwise it renders live.\n view.setAttribute(\"doc-url\", `automerge:${this.docId}`);\n if (this.toolId) view.setAttribute(\"tool-id\", this.toolId);\n // The <patchwork-view> needs an explicit, non-zero height set inline:\n // without it the element collapses to 0px and the embedded tool never\n // renders. (The stylesheet rule isn't reliably applied here, so we set it\n // directly on the element.)\n view.style.display = \"block\";\n view.style.height = \"500px\";\n view.style.width = \"100%\";\n\n container.appendChild(label);\n container.appendChild(view);\n\n return container;\n }\n\n ignoreEvent(e: Event) {\n if (e.type === \"mousedown\" && e.target instanceof Element) {\n // Allow clicks on the label text to pass through for editing\n if (e.target.classList.contains(\"cm-embed-label-text\")) {\n return false; // Let the editor handle it\n }\n // Block clicks on the open link button (let button handle it)\n if (\n e.target.classList.contains(\"cm-embed-open-link\") ||\n e.target.closest(\".cm-embed-open-link\")\n ) {\n return true; // Block from editor\n }\n }\n // Block other events from reaching the editor (let patchwork-view handle them)\n return true;\n }\n}\n\n// Embed marker syntax: [patchwork:docId] or [patchwork:docId/toolId]. The tool\n// id is optional; when absent the embed falls back to the datatype's default\n// tool. The doc id / tool id cannot contain `/` or `]`.\n//\n// We scan the document text directly rather than walking the markdown syntax\n// tree on purpose: `@codemirror/language` is not a shared singleton across\n// patchwork's separately-bundled CodeMirror extensions, so `syntaxTree(state)`\n// here reads a different `Language` facet than the markdown tool populates and\n// always comes back empty. Plain-text scanning keeps this extension\n// self-contained and free of any `@codemirror/language` dependency.\nconst EMBED_PATTERN = /\\[patchwork:([^/\\]]+)(?:\\/([^\\]]+))?\\]/g;\n\nfunction getEmbedLinks(view: EditorView) {\n const widgets: Range<Decoration>[] = [];\n const { state } = view;\n const selection = state.selection.main;\n\n // Scan only the visible ranges. Markers never span a line break, and\n // CodeMirror's visible ranges are line-aligned, so a marker is either fully\n // inside a range or fully outside it.\n for (const { from, to } of view.visibleRanges) {\n const text = state.doc.sliceString(from, to);\n EMBED_PATTERN.lastIndex = 0;\n let m: RegExpExecArray | null;\n while ((m = EMBED_PATTERN.exec(text)) !== null) {\n const matchFrom = from + m.index;\n const matchTo = matchFrom + m[0].length;\n const [matchText, docId, toolId] = m;\n\n // Show raw text (no widget) while the cursor is on the marker or a\n // selection spans it, so it can be edited.\n const cursorInLink =\n selection.from >= matchFrom && selection.from <= matchTo;\n const selectionSpansLink =\n selection.from < matchFrom && selection.to > matchTo;\n if (cursorInLink || selectionSpansLink) continue;\n\n if (!isValidDocumentId(docId)) continue;\n\n const embed = Decoration.replace({\n widget: new EmbedWidget(docId as DocumentId, toolId ?? null, matchText),\n });\n widgets.push(embed.range(matchFrom, matchTo));\n }\n }\n\n // `true` lets CodeMirror sort the ranges defensively (matches are already in\n // document order, but this is cheap insurance).\n return Decoration.set(widgets, true);\n}\n\n// MIME types we accept document drags from. Mirrors the sideboard's convention\n// (duplicated on purpose \u2014 see the DnD notes; a shared package is a later step).\nconst PATCHWORK_DND = \"text/x-patchwork-dnd\";\nconst PATCHWORK_URLS = \"text/x-patchwork-urls\";\n\ntype DocRef = { docId: DocumentId; toolId: string | null };\n\n/** Turn an automerge url or a patchwork web link into a DocumentId, or null. */\nfunction urlToDocId(raw: string): DocumentId | null {\n const trimmed = raw.trim();\n if (!trimmed) return null;\n // Plain automerge url (optionally carrying heads/query/subpath).\n const am = trimmed.match(/automerge:([a-zA-Z0-9]+)/);\n if (am && isValidDocumentId(am[1])) return am[1] as DocumentId;\n // Patchwork web link: #doc=<documentId> (also &doc= / ?doc=).\n const web = trimmed.match(/[#&?]doc=([a-zA-Z0-9]+)/);\n if (web && isValidDocumentId(web[1])) return web[1] as DocumentId;\n return null;\n}\n\n/**\n * Read dragged documents out of a drop event, in order of format preference.\n * Only an *explicit* `toolId` on a structured item pins the tool; otherwise we\n * embed tool-less and let the view fall back to the datatype's default tool.\n * (The previous code mis-read `item.type` \u2014 a datatype \u2014 as a tool id, so any\n * source whose datatype != tool id produced a broken embed, and sources that\n * set only urls were dropped entirely.)\n */\nfunction extractDocRefs(dt: DataTransfer): DocRef[] {\n const refs: DocRef[] = [];\n const seen = new Set<string>();\n const push = (docId: DocumentId | null, toolId: string | null) => {\n if (!docId || seen.has(docId)) return;\n seen.add(docId);\n refs.push({ docId, toolId });\n };\n\n const dnd = dt.getData(PATCHWORK_DND);\n if (dnd) {\n try {\n const parsed = JSON.parse(dnd) as {\n items?: Array<{ url?: string; toolId?: string }>;\n };\n for (const item of parsed?.items ?? []) {\n if (item?.url) push(urlToDocId(item.url), item.toolId ?? null);\n }\n } catch {\n // fall through to the other formats\n }\n }\n if (refs.length > 0) return refs;\n\n const urls = dt.getData(PATCHWORK_URLS);\n if (urls) {\n try {\n const parsed: unknown = JSON.parse(urls);\n if (Array.isArray(parsed)) {\n for (const u of parsed) push(urlToDocId(String(u)), null);\n }\n } catch {\n // fall through\n }\n }\n if (refs.length > 0) return refs;\n\n const text = dt.getData(\"text/uri-list\") || dt.getData(\"text/plain\");\n if (text) {\n for (const line of text.split(/\\r?\\n/)) {\n if (line.startsWith(\"#\")) continue; // uri-list comments\n push(urlToDocId(line), null);\n }\n }\n return refs;\n}\n\nfunction embedSyntax({ docId, toolId }: DocRef): string {\n return toolId ? `[patchwork:${docId}/${toolId}]` : `[patchwork:${docId}]`;\n}\n\n/**\n * Import each OS file dropped from the desktop as a Patchwork `file` document,\n * returning tool-less refs to embed. Uses the realm-local `window.repo` (the\n * documented global) \u2014 fine for creating brand-new docs, which aren't subject\n * to draft remapping.\n */\nasync function fileDropRefs(files: FileList): Promise<DocRef[]> {\n const repo = (window as unknown as { repo?: any }).repo;\n if (!repo) {\n console.warn(\n \"[codemirror-embed] window.repo unavailable; ignoring dropped files\"\n );\n return [];\n }\n const refs: DocRef[] = [];\n for (const file of Array.from(files)) {\n try {\n const mimeType = file.type || \"application/octet-stream\";\n const isText =\n mimeType.startsWith(\"text/\") || mimeType === \"application/json\";\n const content = isText\n ? await file.text()\n : new Uint8Array(await file.arrayBuffer());\n const parts = file.name.split(\".\");\n const extension = parts.length > 1 ? parts.pop()! : \"\";\n const handle = repo.create();\n handle.change((d: any) => {\n d[\"@patchwork\"] = { type: \"file\" };\n d.content = content;\n d.mimeType = mimeType;\n d.extension = extension;\n d.name = file.name;\n });\n const { documentId } = parseAutomergeUrl(handle.url as AutomergeUrl);\n if (isValidDocumentId(documentId)) {\n refs.push({ docId: documentId as DocumentId, toolId: null });\n }\n } catch (err) {\n console.warn(\n \"[codemirror-embed] failed to import dropped file\",\n file.name,\n err\n );\n }\n }\n return refs;\n}\n\nfunction insertRefs(view: EditorView, pos: number, refs: DocRef[]): void {\n if (refs.length === 0) return;\n const text = refs.map(embedSyntax).join(\"\\n\\n\");\n view.dispatch({\n changes: { from: pos, insert: text },\n selection: { anchor: pos + text.length },\n });\n}\n\n/**\n * Drop handler that accepts:\n * - documents dragged from the sidebar / canvases / other tools\n * (`text/x-patchwork-dnd`, `text/x-patchwork-urls`, `text/uri-list`, and\n * `text/plain` patchwork links), and\n * - files dragged in from the operating system (imported as `file` docs).\n * Inserts `[patchwork:docId]` (or `[patchwork:docId/toolId]`) at the drop point.\n */\nfunction embedDropHandlers() {\n // Only claim the *dragover* for unambiguous patchwork/OS drags \u2014 plain\n // text/uri-list can be an ordinary in-editor text drag, which we must not\n // swallow. (`Files` covers OS drags, whose `dt.files` is empty until drop.)\n const wantsDragover = (dt: DataTransfer | null): boolean =>\n !!dt &&\n (dt.types.includes(\"Files\") ||\n dt.types.includes(PATCHWORK_DND) ||\n dt.types.includes(PATCHWORK_URLS));\n\n return EditorView.domEventHandlers({\n dragover(event) {\n if (!wantsDragover(event.dataTransfer)) return false;\n event.preventDefault();\n if (event.dataTransfer) event.dataTransfer.dropEffect = \"copy\";\n return true;\n },\n drop(event, view) {\n const dt = event.dataTransfer;\n if (!dt) return false;\n const pos = view.posAtCoords({ x: event.clientX, y: event.clientY });\n if (pos == null) return false;\n\n // OS files import asynchronously; insert once the docs exist.\n if (dt.files && dt.files.length > 0) {\n event.preventDefault();\n void fileDropRefs(dt.files).then((refs) => insertRefs(view, pos, refs));\n return true;\n }\n\n // Otherwise only handle the drop if it actually resolves to patchwork\n // docs (dnd/urls always do; uri-list/plain only for patchwork links).\n // If not, let CodeMirror handle it as a normal text drop.\n const refs = extractDocRefs(dt);\n if (refs.length === 0) return false;\n event.preventDefault();\n insertRefs(view, pos, refs);\n return true;\n },\n });\n}\n\nconst embedPlugin = ViewPlugin.fromClass(\n class {\n decorations: DecorationSet;\n\n constructor(view: EditorView) {\n this.decorations = getEmbedLinks(view);\n }\n\n update(update: ViewUpdate) {\n // Recompute when the document changes, the selection moves, or the\n // viewport scrolls (so newly-visible markers get decorated).\n if (update.docChanged || update.selectionSet || update.viewportChanged) {\n this.decorations = getEmbedLinks(update.view);\n }\n }\n },\n {\n decorations: (v) => v.decorations,\n }\n);\n\nexport function markdownEmbed() {\n return [embedPlugin, embedTheme, embedDropHandlers()];\n}\n", "import { EditorView } from \"@codemirror/view\";\n\nexport const embedTheme = EditorView.baseTheme({\n \".cm-embed\": {\n display: \"block\",\n border: \"1px solid\",\n borderRadius: \"4px\",\n overflow: \"hidden\",\n },\n \"&light .cm-embed\": {\n borderColor: \"#ddd\",\n },\n \"&dark .cm-embed\": {\n borderColor: \"#333\",\n },\n \".cm-embed-label\": {\n fontFamily: \"monospace\",\n padding: \"4px 8px\",\n borderBottom: \"1px solid\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n cursor: \"text\",\n display: \"flex\",\n alignItems: \"center\",\n gap: \"8px\",\n },\n \".cm-embed-label-text\": {\n flex: \"1\",\n minWidth: \"0\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n opacity: 0.7,\n \"&:hover\": {\n opacity: 1,\n },\n },\n \".cm-embed-open-link\": {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"16px\",\n height: \"16px\",\n cursor: \"pointer\",\n flexShrink: \"0\",\n border: \"none\",\n background: \"none\",\n padding: \"0\",\n color: \"inherit\",\n opacity: 0.7,\n \"&:hover\": {\n opacity: 1,\n },\n },\n \"&light .cm-embed-label\": {\n borderBottomColor: \"#ddd\",\n },\n \"&dark .cm-embed-label\": {\n borderBottomColor: \"#333\",\n },\n \".cm-embed patchwork-view\": {\n display: \"block\",\n height: \"500px\",\n width: \"100%\",\n },\n \".cm-embed patchwork-view > *\": {\n height: \"100%\",\n width: \"100%\",\n },\n});\n", "export const openLinkIcon = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path>\n <polyline points=\"15 3 21 3 21 9\"></polyline>\n <line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"></line>\n</svg>`;\n"],
5
- "mappings": "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",
6
- "names": ["EditorView", "EditorView", "refs"]
7
- }
@@ -1,118 +0,0 @@
1
- import {
2
- syntaxTree
3
- } from "../chunk-MAW6NPUW.js";
4
-
5
- // src/extensions/links.ts
6
- import {
7
- Decoration,
8
- WidgetType,
9
- ViewPlugin
10
- } from "@codemirror/view";
11
- import { isValidAutomergeUrl } from "@automerge/automerge-repo";
12
-
13
- // src/themes/links.ts
14
- import { EditorView } from "@codemirror/view";
15
- var linkTheme = EditorView.baseTheme({
16
- ".cm-link": {
17
- textDecoration: "underline",
18
- cursor: "pointer",
19
- fontFamily: '"Merriweather Sans", sans-serif',
20
- color: "var(--syntax-link, #0066cc)",
21
- "&:hover": {
22
- color: "inherit"
23
- }
24
- }
25
- });
26
-
27
- // src/extensions/links.ts
28
- var LinkWidget = class extends WidgetType {
29
- url;
30
- text;
31
- constructor(url, text) {
32
- super();
33
- this.url = url;
34
- this.text = text;
35
- }
36
- eq(other) {
37
- return other.url === this.url && other.text === this.text;
38
- }
39
- toDOM() {
40
- const link = document.createElement("a");
41
- link.href = this.url;
42
- link.textContent = this.text;
43
- link.className = "cm-link";
44
- link.title = this.url;
45
- link.onclick = (e) => {
46
- e.preventDefault();
47
- if (isValidAutomergeUrl(this.url)) {
48
- link.dispatchEvent(
49
- new CustomEvent("patchwork:open-document", {
50
- detail: { url: this.url },
51
- bubbles: true,
52
- composed: true
53
- })
54
- );
55
- } else {
56
- window.open(this.url, "_blank noopener noreferrer");
57
- }
58
- };
59
- return link;
60
- }
61
- ignoreEvent(e) {
62
- return e.type !== "click";
63
- }
64
- };
65
- function getLinks(view) {
66
- const widgets = [];
67
- const { state } = view;
68
- const selection = state.selection.main;
69
- for (let { from, to } of view.visibleRanges) {
70
- syntaxTree(state).iterate({
71
- from,
72
- to,
73
- enter: (node) => {
74
- if (node.name === "Link") {
75
- const linkFrom = node.from;
76
- const linkTo = node.to;
77
- const cursorInLink = selection.from >= linkFrom && selection.from <= linkTo;
78
- const selectionSpansLink = selection.from < linkFrom && selection.to > linkTo;
79
- if (!cursorInLink && !selectionSpansLink) {
80
- const linkText = state.doc.sliceString(linkFrom, linkTo);
81
- const match = linkText.match(/\[([^\]]+)\]\(([^)]+)\)/);
82
- if (match) {
83
- const [, text, url] = match;
84
- const deco = Decoration.replace({
85
- widget: new LinkWidget(url, text)
86
- });
87
- widgets.push(deco.range(linkFrom, linkTo));
88
- }
89
- }
90
- }
91
- }
92
- });
93
- }
94
- return Decoration.set(widgets);
95
- }
96
- var linkPlugin = ViewPlugin.fromClass(
97
- class {
98
- decorations;
99
- constructor(view) {
100
- this.decorations = getLinks(view);
101
- }
102
- update(update) {
103
- if (update.docChanged || update.selectionSet || update.viewportChanged || syntaxTree(update.startState) !== syntaxTree(update.state)) {
104
- this.decorations = getLinks(update.view);
105
- }
106
- }
107
- },
108
- {
109
- decorations: (v) => v.decorations
110
- }
111
- );
112
- function markdownLinks() {
113
- return [linkPlugin, linkTheme];
114
- }
115
- export {
116
- markdownLinks
117
- };
118
- //# sourceMappingURL=links.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/extensions/links.ts", "../../src/themes/links.ts"],
4
- "sourcesContent": ["import {\n EditorView,\n Decoration,\n WidgetType,\n ViewPlugin,\n ViewUpdate,\n type DecorationSet,\n} from \"@codemirror/view\";\nimport { Range } from \"@codemirror/state\";\nimport { syntaxTree } from \"@codemirror/language\";\nimport { isValidAutomergeUrl } from \"@automerge/automerge-repo\";\nimport { linkTheme } from \"../themes/links.ts\";\n\n/**\n * Widget to render a clickable link in the editor\n */\nclass LinkWidget extends WidgetType {\n readonly url: string;\n readonly text: string;\n\n constructor(url: string, text: string) {\n super();\n this.url = url;\n this.text = text;\n }\n\n eq(other: LinkWidget) {\n return other.url === this.url && other.text === this.text;\n }\n\n toDOM() {\n const link = document.createElement(\"a\");\n link.href = this.url;\n link.textContent = this.text;\n link.className = \"cm-link\";\n link.title = this.url;\n\n link.onclick = (e) => {\n e.preventDefault();\n if (isValidAutomergeUrl(this.url)) {\n // Open the document inside Patchwork rather than as a browser URL\n // (automerge: isn't navigable). bubbles/composed so the event escapes\n // the editor and any shadow root up to whoever drives selection.\n link.dispatchEvent(\n new CustomEvent(\"patchwork:open-document\", {\n detail: { url: this.url },\n bubbles: true,\n composed: true,\n }),\n );\n } else {\n window.open(this.url, \"_blank noopener noreferrer\");\n }\n };\n\n return link;\n }\n\n ignoreEvent(e: Event) {\n // Let click events through to our widget\n return e.type !== \"click\";\n }\n}\n\nfunction getLinks(view: EditorView) {\n const widgets: Range<Decoration>[] = [];\n const { state } = view;\n const selection = state.selection.main;\n\n for (let { from, to } of view.visibleRanges) {\n syntaxTree(state).iterate({\n from,\n to,\n enter: (node) => {\n // Match markdown link syntax\n if (node.name === \"Link\") {\n const linkFrom = node.from;\n const linkTo = node.to;\n\n // Check if cursor is inside this link\n const cursorInLink =\n selection.from >= linkFrom && selection.from <= linkTo;\n // Check if the link is inside the selection\n const selectionSpansLink =\n selection.from < linkFrom && selection.to > linkTo;\n\n // Replace if cursor is outside the link and there's no selection across the link\n if (!cursorInLink && !selectionSpansLink) {\n const linkText = state.doc.sliceString(linkFrom, linkTo);\n const match = linkText.match(/\\[([^\\]]+)\\]\\(([^)]+)\\)/);\n\n if (match) {\n const [, text, url] = match;\n\n // Replace the entire [text](url) with just the link widget\n const deco = Decoration.replace({\n widget: new LinkWidget(url, text),\n });\n\n widgets.push(deco.range(linkFrom, linkTo));\n }\n }\n }\n },\n });\n }\n\n return Decoration.set(widgets);\n}\n\nconst linkPlugin = ViewPlugin.fromClass(\n class {\n decorations: DecorationSet;\n\n constructor(view: EditorView) {\n this.decorations = getLinks(view);\n }\n\n update(update: ViewUpdate) {\n // Recompute when doc changes, selection moves, or viewport changes\n if (\n update.docChanged ||\n update.selectionSet ||\n update.viewportChanged ||\n syntaxTree(update.startState) !== syntaxTree(update.state)\n ) {\n this.decorations = getLinks(update.view);\n }\n }\n },\n {\n decorations: (v) => v.decorations,\n }\n);\n\nexport function markdownLinks() {\n return [linkPlugin, linkTheme];\n}\n", "import { EditorView } from \"@codemirror/view\";\n\nexport const linkTheme = EditorView.baseTheme({\n \".cm-link\": {\n textDecoration: \"underline\",\n cursor: \"pointer\",\n fontFamily: '\"Merriweather Sans\", sans-serif',\n color: \"var(--syntax-link, #0066cc)\",\n \"&:hover\": {\n color: \"inherit\",\n },\n },\n});\n"],
5
- "mappings": "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",
6
- "names": []
7
- }