@inkandswitch/patchwork-pkg-base 0.0.15 → 0.0.17
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.
- package/init.js +1 -0
- package/modules.json +11 -1
- package/package.json +1 -1
- package/packages/account-picker/dist/AccountPicker-7VBUJTTB.js +8860 -0
- package/packages/account-picker/dist/AccountPicker-7VBUJTTB.js.map +7 -0
- package/packages/account-picker/dist/AccountPicker-CN73XGEW.css +371 -0
- package/packages/account-picker/dist/AccountPicker-CN73XGEW.css.map +7 -0
- package/packages/account-picker/dist/chunk-5WRI5ZAA.js +31 -0
- package/packages/account-picker/dist/chunk-5WRI5ZAA.js.map +7 -0
- package/packages/account-picker/dist/tool.css +371 -0
- package/packages/account-picker/dist/tool.css.map +7 -0
- package/packages/account-picker/dist/tool.js +19 -0
- package/packages/account-picker/dist/tool.js.map +7 -0
- package/packages/account-picker/package.json +39 -0
- package/packages/codemirror-base/dist/chunk-KMEIRH3R.js +490 -0
- package/packages/codemirror-base/dist/chunk-KMEIRH3R.js.map +7 -0
- package/packages/codemirror-base/dist/lib/codemirror.js +7 -0
- package/packages/codemirror-base/dist/lib/codemirror.js.map +7 -0
- package/packages/codemirror-base/dist/main.js +17 -0
- package/packages/codemirror-base/dist/main.js.map +7 -0
- package/packages/codemirror-base/dist/tool.js +1799 -0
- package/packages/codemirror-base/dist/tool.js.map +7 -0
- package/packages/codemirror-base/package.json +55 -0
- package/packages/codemirror-markdown/dist/apl-QAIM2KBM.js +142 -0
- package/packages/codemirror-markdown/dist/apl-QAIM2KBM.js.map +7 -0
- package/packages/codemirror-markdown/dist/asciiarmor-G7UKQURA.js +58 -0
- package/packages/codemirror-markdown/dist/asciiarmor-G7UKQURA.js.map +7 -0
- package/packages/codemirror-markdown/dist/asn1-JTUXKWKT.js +144 -0
- package/packages/codemirror-markdown/dist/asn1-JTUXKWKT.js.map +7 -0
- package/packages/codemirror-markdown/dist/asterisk-NM6JCXOL.js +351 -0
- package/packages/codemirror-markdown/dist/asterisk-NM6JCXOL.js.map +7 -0
- package/packages/codemirror-markdown/dist/brainfuck-X7FFM55E.js +55 -0
- package/packages/codemirror-markdown/dist/brainfuck-X7FFM55E.js.map +7 -0
- package/packages/codemirror-markdown/dist/chunk-46Z6CXSY.js +1062 -0
- package/packages/codemirror-markdown/dist/chunk-46Z6CXSY.js.map +7 -0
- package/packages/codemirror-markdown/dist/chunk-6JT2ASRP.js +1111 -0
- package/packages/codemirror-markdown/dist/chunk-6JT2ASRP.js.map +7 -0
- package/packages/codemirror-markdown/dist/chunk-CSJO4DNL.js +1424 -0
- package/packages/codemirror-markdown/dist/chunk-CSJO4DNL.js.map +7 -0
- package/packages/codemirror-markdown/dist/chunk-FLC3A4DL.js +133 -0
- package/packages/codemirror-markdown/dist/chunk-FLC3A4DL.js.map +7 -0
- package/packages/codemirror-markdown/dist/chunk-M3X2FRO3.js +998 -0
- package/packages/codemirror-markdown/dist/chunk-M3X2FRO3.js.map +7 -0
- package/packages/codemirror-markdown/dist/chunk-MAW6NPUW.js +4930 -0
- package/packages/codemirror-markdown/dist/chunk-MAW6NPUW.js.map +7 -0
- package/packages/codemirror-markdown/dist/chunk-MBTMKYFQ.js +1779 -0
- package/packages/codemirror-markdown/dist/chunk-MBTMKYFQ.js.map +7 -0
- package/packages/codemirror-markdown/dist/chunk-NEI7FGV4.js +697 -0
- package/packages/codemirror-markdown/dist/chunk-NEI7FGV4.js.map +7 -0
- package/packages/codemirror-markdown/dist/chunk-PPGERYN5.js +2528 -0
- package/packages/codemirror-markdown/dist/chunk-PPGERYN5.js.map +7 -0
- package/packages/codemirror-markdown/dist/clike-DOBZTBQN.js +808 -0
- package/packages/codemirror-markdown/dist/clike-DOBZTBQN.js.map +7 -0
- package/packages/codemirror-markdown/dist/clojure-PTADSDNF.js +851 -0
- package/packages/codemirror-markdown/dist/clojure-PTADSDNF.js.map +7 -0
- package/packages/codemirror-markdown/dist/cmake-5HAC7YMH.js +73 -0
- package/packages/codemirror-markdown/dist/cmake-5HAC7YMH.js.map +7 -0
- package/packages/codemirror-markdown/dist/cobol-HAM4C42S.js +131 -0
- package/packages/codemirror-markdown/dist/cobol-HAM4C42S.js.map +7 -0
- package/packages/codemirror-markdown/dist/coffeescript-IBRKASSJ.js +310 -0
- package/packages/codemirror-markdown/dist/coffeescript-IBRKASSJ.js.map +7 -0
- package/packages/codemirror-markdown/dist/commonlisp-KMRPB5EW.js +132 -0
- package/packages/codemirror-markdown/dist/commonlisp-KMRPB5EW.js.map +7 -0
- package/packages/codemirror-markdown/dist/crystal-2MDF4EKJ.js +400 -0
- package/packages/codemirror-markdown/dist/crystal-2MDF4EKJ.js.map +7 -0
- package/packages/codemirror-markdown/dist/css-VQQXA3AY.js +1795 -0
- package/packages/codemirror-markdown/dist/css-VQQXA3AY.js.map +7 -0
- package/packages/codemirror-markdown/dist/cypher-ZZEGDGDJ.js +123 -0
- package/packages/codemirror-markdown/dist/cypher-ZZEGDGDJ.js.map +7 -0
- package/packages/codemirror-markdown/dist/d-5S6PJOOT.js +187 -0
- package/packages/codemirror-markdown/dist/d-5S6PJOOT.js.map +7 -0
- package/packages/codemirror-markdown/dist/datatype.js +48 -0
- package/packages/codemirror-markdown/dist/datatype.js.map +7 -0
- package/packages/codemirror-markdown/dist/diff-S77XBOWF.js +27 -0
- package/packages/codemirror-markdown/dist/diff-S77XBOWF.js.map +7 -0
- package/packages/codemirror-markdown/dist/dist-2C6IPJHB.js +98 -0
- package/packages/codemirror-markdown/dist/dist-2C6IPJHB.js.map +7 -0
- package/packages/codemirror-markdown/dist/dist-2H653DKD.js +170 -0
- package/packages/codemirror-markdown/dist/dist-2H653DKD.js.map +7 -0
- package/packages/codemirror-markdown/dist/dist-2O4EI6YQ.js +140 -0
- package/packages/codemirror-markdown/dist/dist-2O4EI6YQ.js.map +7 -0
- package/packages/codemirror-markdown/dist/dist-2UJRV4FH.js +75 -0
- package/packages/codemirror-markdown/dist/dist-2UJRV4FH.js.map +7 -0
- package/packages/codemirror-markdown/dist/dist-52S6W6Z3.js +15 -0
- package/packages/codemirror-markdown/dist/dist-52S6W6Z3.js.map +7 -0
- package/packages/codemirror-markdown/dist/dist-5KN6ODPO.js +340 -0
- package/packages/codemirror-markdown/dist/dist-5KN6ODPO.js.map +7 -0
- package/packages/codemirror-markdown/dist/dist-BOGB4NCA.js +20 -0
- package/packages/codemirror-markdown/dist/dist-BOGB4NCA.js.map +7 -0
- package/packages/codemirror-markdown/dist/dist-DZ4PW5HP.js +318 -0
- package/packages/codemirror-markdown/dist/dist-DZ4PW5HP.js.map +7 -0
- package/packages/codemirror-markdown/dist/dist-FDBKXKIA.js +100 -0
- package/packages/codemirror-markdown/dist/dist-FDBKXKIA.js.map +7 -0
- package/packages/codemirror-markdown/dist/dist-G2KVVLNT.js +381 -0
- package/packages/codemirror-markdown/dist/dist-G2KVVLNT.js.map +7 -0
- package/packages/codemirror-markdown/dist/dist-HHNZE2GE.js +193 -0
- package/packages/codemirror-markdown/dist/dist-HHNZE2GE.js.map +7 -0
- package/packages/codemirror-markdown/dist/dist-HNH74YPL.js +32 -0
- package/packages/codemirror-markdown/dist/dist-HNH74YPL.js.map +7 -0
- package/packages/codemirror-markdown/dist/dist-LBQUKRIG.js +27 -0
- package/packages/codemirror-markdown/dist/dist-LBQUKRIG.js.map +7 -0
- package/packages/codemirror-markdown/dist/dist-MFKCWPLQ.js +416 -0
- package/packages/codemirror-markdown/dist/dist-MFKCWPLQ.js.map +7 -0
- package/packages/codemirror-markdown/dist/dist-NISFJM3T.js +423 -0
- package/packages/codemirror-markdown/dist/dist-NISFJM3T.js.map +7 -0
- package/packages/codemirror-markdown/dist/dist-Q7P6VH6H.js +786 -0
- package/packages/codemirror-markdown/dist/dist-Q7P6VH6H.js.map +7 -0
- package/packages/codemirror-markdown/dist/dist-RWF5A5GN.js +451 -0
- package/packages/codemirror-markdown/dist/dist-RWF5A5GN.js.map +7 -0
- package/packages/codemirror-markdown/dist/dist-UHUU7KLC.js +748 -0
- package/packages/codemirror-markdown/dist/dist-UHUU7KLC.js.map +7 -0
- package/packages/codemirror-markdown/dist/dist-WJMBFK7W.js +360 -0
- package/packages/codemirror-markdown/dist/dist-WJMBFK7W.js.map +7 -0
- package/packages/codemirror-markdown/dist/dist-XJYSXJ7H.js +115 -0
- package/packages/codemirror-markdown/dist/dist-XJYSXJ7H.js.map +7 -0
- package/packages/codemirror-markdown/dist/dist-YY24ZXZD.js +212 -0
- package/packages/codemirror-markdown/dist/dist-YY24ZXZD.js.map +7 -0
- package/packages/codemirror-markdown/dist/dockerfile-JECCOJWP.js +209 -0
- package/packages/codemirror-markdown/dist/dockerfile-JECCOJWP.js.map +7 -0
- package/packages/codemirror-markdown/dist/dtd-MNDWTW4Z.js +116 -0
- package/packages/codemirror-markdown/dist/dtd-MNDWTW4Z.js.map +7 -0
- package/packages/codemirror-markdown/dist/dylan-VQ4IHJDS.js +317 -0
- package/packages/codemirror-markdown/dist/dylan-VQ4IHJDS.js.map +7 -0
- package/packages/codemirror-markdown/dist/ebnf-IDZBFTCG.js +142 -0
- package/packages/codemirror-markdown/dist/ebnf-IDZBFTCG.js.map +7 -0
- package/packages/codemirror-markdown/dist/ecl-X3ROY7E6.js +180 -0
- package/packages/codemirror-markdown/dist/ecl-X3ROY7E6.js.map +7 -0
- package/packages/codemirror-markdown/dist/eiffel-WB3M7Y2E.js +136 -0
- package/packages/codemirror-markdown/dist/eiffel-WB3M7Y2E.js.map +7 -0
- package/packages/codemirror-markdown/dist/elm-VHXR6ZA3.js +178 -0
- package/packages/codemirror-markdown/dist/elm-VHXR6ZA3.js.map +7 -0
- package/packages/codemirror-markdown/dist/erlang-7ZBDDQDV.js +676 -0
- package/packages/codemirror-markdown/dist/erlang-7ZBDDQDV.js.map +7 -0
- package/packages/codemirror-markdown/dist/extensions/embed.js +325 -0
- package/packages/codemirror-markdown/dist/extensions/embed.js.map +7 -0
- package/packages/codemirror-markdown/dist/extensions/links.js +118 -0
- package/packages/codemirror-markdown/dist/extensions/links.js.map +7 -0
- package/packages/codemirror-markdown/dist/extensions/markdown.js +3476 -0
- package/packages/codemirror-markdown/dist/extensions/markdown.js.map +7 -0
- package/packages/codemirror-markdown/dist/factor-IKT2GQE2.js +70 -0
- package/packages/codemirror-markdown/dist/factor-IKT2GQE2.js.map +7 -0
- package/packages/codemirror-markdown/dist/fcl-CNBUVGUC.js +143 -0
- package/packages/codemirror-markdown/dist/fcl-CNBUVGUC.js.map +7 -0
- package/packages/codemirror-markdown/dist/forth-4BTPWSFZ.js +118 -0
- package/packages/codemirror-markdown/dist/forth-4BTPWSFZ.js.map +7 -0
- package/packages/codemirror-markdown/dist/fortran-V6F5DQPK.js +469 -0
- package/packages/codemirror-markdown/dist/fortran-V6F5DQPK.js.map +7 -0
- package/packages/codemirror-markdown/dist/gas-4DLP6BC4.js +296 -0
- package/packages/codemirror-markdown/dist/gas-4DLP6BC4.js.map +7 -0
- package/packages/codemirror-markdown/dist/gherkin-OSGPX6HI.js +117 -0
- package/packages/codemirror-markdown/dist/gherkin-OSGPX6HI.js.map +7 -0
- package/packages/codemirror-markdown/dist/groovy-R2JW63QF.js +225 -0
- package/packages/codemirror-markdown/dist/groovy-R2JW63QF.js.map +7 -0
- package/packages/codemirror-markdown/dist/haskell-GG7T4J6H.js +461 -0
- package/packages/codemirror-markdown/dist/haskell-GG7T4J6H.js.map +7 -0
- package/packages/codemirror-markdown/dist/haxe-ESFUJKSE.js +521 -0
- package/packages/codemirror-markdown/dist/haxe-ESFUJKSE.js.map +7 -0
- package/packages/codemirror-markdown/dist/http-SZLSACOW.js +81 -0
- package/packages/codemirror-markdown/dist/http-SZLSACOW.js.map +7 -0
- package/packages/codemirror-markdown/dist/idl-V7UH35RP.js +987 -0
- package/packages/codemirror-markdown/dist/idl-V7UH35RP.js.map +7 -0
- package/packages/codemirror-markdown/dist/javascript-MGRPKFDN.js +13 -0
- package/packages/codemirror-markdown/dist/javascript-MGRPKFDN.js.map +7 -0
- package/packages/codemirror-markdown/dist/julia-CWCVZVPG.js +409 -0
- package/packages/codemirror-markdown/dist/julia-CWCVZVPG.js.map +7 -0
- package/packages/codemirror-markdown/dist/livescript-IGKT2FL7.js +303 -0
- package/packages/codemirror-markdown/dist/livescript-IGKT2FL7.js.map +7 -0
- package/packages/codemirror-markdown/dist/lua-GHK7GCTS.js +258 -0
- package/packages/codemirror-markdown/dist/lua-GHK7GCTS.js.map +7 -0
- package/packages/codemirror-markdown/dist/main.js +58 -0
- package/packages/codemirror-markdown/dist/main.js.map +7 -0
- package/packages/codemirror-markdown/dist/mathematica-W5LMQI3M.js +112 -0
- package/packages/codemirror-markdown/dist/mathematica-W5LMQI3M.js.map +7 -0
- package/packages/codemirror-markdown/dist/mbox-A7CXJ4HZ.js +119 -0
- package/packages/codemirror-markdown/dist/mbox-A7CXJ4HZ.js.map +7 -0
- package/packages/codemirror-markdown/dist/mirc-WYJEQUBY.js +109 -0
- package/packages/codemirror-markdown/dist/mirc-WYJEQUBY.js.map +7 -0
- package/packages/codemirror-markdown/dist/mllike-C2YS6SJI.js +340 -0
- package/packages/codemirror-markdown/dist/mllike-C2YS6SJI.js.map +7 -0
- package/packages/codemirror-markdown/dist/modelica-BMJSLZS7.js +149 -0
- package/packages/codemirror-markdown/dist/modelica-BMJSLZS7.js.map +7 -0
- package/packages/codemirror-markdown/dist/mscgen-5BORDYHW.js +137 -0
- package/packages/codemirror-markdown/dist/mscgen-5BORDYHW.js.map +7 -0
- package/packages/codemirror-markdown/dist/mumps-BYE6H7ZX.js +95 -0
- package/packages/codemirror-markdown/dist/mumps-BYE6H7ZX.js.map +7 -0
- package/packages/codemirror-markdown/dist/nginx-Y54HR7MQ.js +143 -0
- package/packages/codemirror-markdown/dist/nginx-Y54HR7MQ.js.map +7 -0
- package/packages/codemirror-markdown/dist/nsis-UZLPE2DL.js +67 -0
- package/packages/codemirror-markdown/dist/nsis-UZLPE2DL.js.map +7 -0
- package/packages/codemirror-markdown/dist/ntriples-SAI3J2VH.js +155 -0
- package/packages/codemirror-markdown/dist/ntriples-SAI3J2VH.js.map +7 -0
- package/packages/codemirror-markdown/dist/octave-TLUBYOUX.js +213 -0
- package/packages/codemirror-markdown/dist/octave-TLUBYOUX.js.map +7 -0
- package/packages/codemirror-markdown/dist/oz-F6LNIR6Q.js +233 -0
- package/packages/codemirror-markdown/dist/oz-F6LNIR6Q.js.map +7 -0
- package/packages/codemirror-markdown/dist/pascal-WINE2FE6.js +107 -0
- package/packages/codemirror-markdown/dist/pascal-WINE2FE6.js.map +7 -0
- package/packages/codemirror-markdown/dist/perl-NZG3EIBE.js +1107 -0
- package/packages/codemirror-markdown/dist/perl-NZG3EIBE.js.map +7 -0
- package/packages/codemirror-markdown/dist/pig-U7OFLRCV.js +105 -0
- package/packages/codemirror-markdown/dist/pig-U7OFLRCV.js.map +7 -0
- package/packages/codemirror-markdown/dist/powershell-ZSUS7P6D.js +330 -0
- package/packages/codemirror-markdown/dist/powershell-ZSUS7P6D.js.map +7 -0
- package/packages/codemirror-markdown/dist/properties-IJRU6UJW.js +60 -0
- package/packages/codemirror-markdown/dist/properties-IJRU6UJW.js.map +7 -0
- package/packages/codemirror-markdown/dist/protobuf-2KETQIQ5.js +80 -0
- package/packages/codemirror-markdown/dist/protobuf-2KETQIQ5.js.map +7 -0
- package/packages/codemirror-markdown/dist/pug-IQCJJAZU.js +410 -0
- package/packages/codemirror-markdown/dist/pug-IQCJJAZU.js.map +7 -0
- package/packages/codemirror-markdown/dist/puppet-YIIDDH6A.js +139 -0
- package/packages/codemirror-markdown/dist/puppet-YIIDDH6A.js.map +7 -0
- package/packages/codemirror-markdown/dist/python-A6P3XTMX.js +429 -0
- package/packages/codemirror-markdown/dist/python-A6P3XTMX.js.map +7 -0
- package/packages/codemirror-markdown/dist/q-2KXN5RX7.js +135 -0
- package/packages/codemirror-markdown/dist/q-2KXN5RX7.js.map +7 -0
- package/packages/codemirror-markdown/dist/r-BB4MIIBH.js +174 -0
- package/packages/codemirror-markdown/dist/r-BB4MIIBH.js.map +7 -0
- package/packages/codemirror-markdown/dist/rpm-LMR25AQ3.js +111 -0
- package/packages/codemirror-markdown/dist/rpm-LMR25AQ3.js.map +7 -0
- package/packages/codemirror-markdown/dist/ruby-TSD6FT73.js +333 -0
- package/packages/codemirror-markdown/dist/ruby-TSD6FT73.js.map +7 -0
- package/packages/codemirror-markdown/dist/sas-6X4WWIGV.js +209 -0
- package/packages/codemirror-markdown/dist/sas-6X4WWIGV.js.map +7 -0
- package/packages/codemirror-markdown/dist/scheme-E3I46HBL.js +230 -0
- package/packages/codemirror-markdown/dist/scheme-E3I46HBL.js.map +7 -0
- package/packages/codemirror-markdown/dist/shell-GX3PRI4I.js +224 -0
- package/packages/codemirror-markdown/dist/shell-GX3PRI4I.js.map +7 -0
- package/packages/codemirror-markdown/dist/sieve-V65ZPL4F.js +137 -0
- package/packages/codemirror-markdown/dist/sieve-V65ZPL4F.js.map +7 -0
- package/packages/codemirror-markdown/dist/smalltalk-OVKP2CVW.js +123 -0
- package/packages/codemirror-markdown/dist/smalltalk-OVKP2CVW.js.map +7 -0
- package/packages/codemirror-markdown/dist/solr-C4DLQJCF.js +71 -0
- package/packages/codemirror-markdown/dist/solr-C4DLQJCF.js.map +7 -0
- package/packages/codemirror-markdown/dist/sparql-REKUW7B3.js +251 -0
- package/packages/codemirror-markdown/dist/sparql-REKUW7B3.js.map +7 -0
- package/packages/codemirror-markdown/dist/spreadsheet-S7NN2YTQ.js +89 -0
- package/packages/codemirror-markdown/dist/spreadsheet-S7NN2YTQ.js.map +7 -0
- package/packages/codemirror-markdown/dist/sql-ML2Q43YF.js +358 -0
- package/packages/codemirror-markdown/dist/sql-ML2Q43YF.js.map +7 -0
- package/packages/codemirror-markdown/dist/stex-TCOGKBT4.js +233 -0
- package/packages/codemirror-markdown/dist/stex-TCOGKBT4.js.map +7 -0
- package/packages/codemirror-markdown/dist/stylus-3ONNYZOM.js +591 -0
- package/packages/codemirror-markdown/dist/stylus-3ONNYZOM.js.map +7 -0
- package/packages/codemirror-markdown/dist/swift-CNWGZ22Y.js +293 -0
- package/packages/codemirror-markdown/dist/swift-CNWGZ22Y.js.map +7 -0
- package/packages/codemirror-markdown/dist/tcl-77IMAZYE.js +116 -0
- package/packages/codemirror-markdown/dist/tcl-77IMAZYE.js.map +7 -0
- package/packages/codemirror-markdown/dist/textile-6IWIIKFM.js +416 -0
- package/packages/codemirror-markdown/dist/textile-6IWIIKFM.js.map +7 -0
- package/packages/codemirror-markdown/dist/tiddlywiki-IJSZMUSA.js +231 -0
- package/packages/codemirror-markdown/dist/tiddlywiki-IJSZMUSA.js.map +7 -0
- package/packages/codemirror-markdown/dist/tiki-HG37JJIT.js +276 -0
- package/packages/codemirror-markdown/dist/tiki-HG37JJIT.js.map +7 -0
- package/packages/codemirror-markdown/dist/toml-NINU2IMM.js +78 -0
- package/packages/codemirror-markdown/dist/toml-NINU2IMM.js.map +7 -0
- package/packages/codemirror-markdown/dist/troff-AOQJ4Q4C.js +63 -0
- package/packages/codemirror-markdown/dist/troff-AOQJ4Q4C.js.map +7 -0
- package/packages/codemirror-markdown/dist/ttcn-TLOZ3FX3.js +211 -0
- package/packages/codemirror-markdown/dist/ttcn-TLOZ3FX3.js.map +7 -0
- package/packages/codemirror-markdown/dist/ttcn-cfg-3B6QY7QE.js +141 -0
- package/packages/codemirror-markdown/dist/ttcn-cfg-3B6QY7QE.js.map +7 -0
- package/packages/codemirror-markdown/dist/turtle-3N5KCGXP.js +132 -0
- package/packages/codemirror-markdown/dist/turtle-3N5KCGXP.js.map +7 -0
- package/packages/codemirror-markdown/dist/vb-I7M5DRLP.js +204 -0
- package/packages/codemirror-markdown/dist/vb-I7M5DRLP.js.map +7 -0
- package/packages/codemirror-markdown/dist/vbscript-U2ARSJLD.js +482 -0
- package/packages/codemirror-markdown/dist/vbscript-U2ARSJLD.js.map +7 -0
- package/packages/codemirror-markdown/dist/velocity-R3AYP5XJ.js +151 -0
- package/packages/codemirror-markdown/dist/velocity-R3AYP5XJ.js.map +7 -0
- package/packages/codemirror-markdown/dist/verilog-7VEWVDW6.js +456 -0
- package/packages/codemirror-markdown/dist/verilog-7VEWVDW6.js.map +7 -0
- package/packages/codemirror-markdown/dist/vhdl-JZUPPGBA.js +162 -0
- package/packages/codemirror-markdown/dist/vhdl-JZUPPGBA.js.map +7 -0
- package/packages/codemirror-markdown/dist/webidl-SLQFEELK.js +206 -0
- package/packages/codemirror-markdown/dist/webidl-SLQFEELK.js.map +7 -0
- package/packages/codemirror-markdown/dist/xquery-VXP5KJ6N.js +532 -0
- package/packages/codemirror-markdown/dist/xquery-VXP5KJ6N.js.map +7 -0
- package/packages/codemirror-markdown/dist/yacas-JRBC4BEV.js +132 -0
- package/packages/codemirror-markdown/dist/yacas-JRBC4BEV.js.map +7 -0
- package/packages/codemirror-markdown/dist/z80-AJF6WLUV.js +95 -0
- package/packages/codemirror-markdown/dist/z80-AJF6WLUV.js.map +7 -0
- package/packages/codemirror-markdown/example.js +46 -0
- package/packages/codemirror-markdown/package.json +62 -0
- package/packages/commands/dist/main.js +504 -0
- package/packages/commands/dist/main.js.map +7 -0
- package/packages/commands/package.json +28 -0
- package/packages/contact/dist/ContactAvatar-FP32ZZH2.js +161 -0
- package/packages/contact/dist/ContactAvatar-FP32ZZH2.js.map +7 -0
- package/packages/contact/dist/ContactViewer-ZHEE6INW.js +60 -0
- package/packages/contact/dist/ContactViewer-ZHEE6INW.js.map +7 -0
- package/packages/contact/dist/InlineContactAvatar-VZDPEZV2.js +46 -0
- package/packages/contact/dist/InlineContactAvatar-VZDPEZV2.js.map +7 -0
- package/packages/contact/dist/chunk-MOZI4Y4O.js +54 -0
- package/packages/contact/dist/chunk-MOZI4Y4O.js.map +7 -0
- package/packages/contact/dist/datatype-ABVDVPWS.js +27 -0
- package/packages/contact/dist/datatype-ABVDVPWS.js.map +7 -0
- package/packages/contact/dist/tool.css +81 -0
- package/packages/contact/dist/tool.css.map +7 -0
- package/packages/contact/dist/tool.js +70 -0
- package/packages/contact/dist/tool.js.map +7 -0
- package/packages/contact/package.json +46 -0
- package/packages/folder/dist/datatype-HWGUFBTQ.js +27 -0
- package/packages/folder/dist/datatype-HWGUFBTQ.js.map +7 -0
- package/packages/folder/dist/index.js +27 -0
- package/packages/folder/dist/index.js.map +7 -0
- package/packages/folder/dist/tool-62JZAZRP.js +366 -0
- package/packages/folder/dist/tool-62JZAZRP.js.map +7 -0
- package/packages/folder/package.json +32 -0
- package/packages/sideboard/dist/account-bar-OJQC3J6W.js +2 -0
- package/packages/sideboard/dist/account-bar-OJQC3J6W.js.map +7 -0
- package/packages/sideboard/dist/chunk-32FICX7K.js +26 -0
- package/packages/sideboard/dist/chunk-32FICX7K.js.map +7 -0
- package/packages/sideboard/dist/chunk-3OYP6TVA.js +2 -0
- package/packages/sideboard/dist/chunk-3OYP6TVA.js.map +7 -0
- package/packages/sideboard/dist/chunk-FW4363Y4.js +2 -0
- package/packages/sideboard/dist/chunk-FW4363Y4.js.map +7 -0
- package/packages/sideboard/dist/chunk-QKYKEZU4.js +2 -0
- package/packages/sideboard/dist/chunk-QKYKEZU4.js.map +7 -0
- package/packages/sideboard/dist/document-list-panel-42LSXXCO.js +2 -0
- package/packages/sideboard/dist/document-list-panel-42LSXXCO.js.map +7 -0
- package/packages/sideboard/dist/index.css +2 -0
- package/packages/sideboard/dist/index.css.map +7 -0
- package/packages/sideboard/dist/index.js +2 -0
- package/packages/sideboard/dist/index.js.map +7 -0
- package/packages/sideboard/dist/sideboard/sideboard.js +2 -0
- package/packages/sideboard/dist/sideboard/sideboard.js.map +7 -0
- package/packages/sideboard/package.json +56 -0
- package/packages/theming/dist/active-theme-K27UXDBG.js +26 -0
- package/packages/theming/dist/active-theme-K27UXDBG.js.map +7 -0
- package/packages/theming/dist/chunk-K4OOO2TK.js +281 -0
- package/packages/theming/dist/chunk-K4OOO2TK.js.map +7 -0
- package/packages/theming/dist/chunk-RATW7VZI.js +11 -0
- package/packages/theming/dist/chunk-RATW7VZI.js.map +7 -0
- package/packages/theming/dist/chunk-U7SC4JPE.js +86 -0
- package/packages/theming/dist/chunk-U7SC4JPE.js.map +7 -0
- package/packages/theming/dist/codemirror-theme.js +2415 -0
- package/packages/theming/dist/codemirror-theme.js.map +7 -0
- package/packages/theming/dist/datatype-UUJVIZM7.js +16 -0
- package/packages/theming/dist/datatype-UUJVIZM7.js.map +7 -0
- package/packages/theming/dist/gloom-JYQPEOHI.css +102 -0
- package/packages/theming/dist/lychee-BMLMUNP6.css +114 -0
- package/packages/theming/dist/main.js +112 -0
- package/packages/theming/dist/main.js.map +7 -0
- package/packages/theming/dist/theme-RC7MV6WP.css +691 -0
- package/packages/theming/dist/theme-editor-datatype-CIXRKEFF.js +11 -0
- package/packages/theming/dist/theme-editor-datatype-CIXRKEFF.js.map +7 -0
- package/packages/theming/dist/theme-editor.js +576 -0
- package/packages/theming/dist/theme-editor.js.map +7 -0
- package/packages/theming/dist/theme-titlebar-P2CODQGF.js +21 -0
- package/packages/theming/dist/theme-titlebar-P2CODQGF.js.map +7 -0
- package/packages/theming/dist/theme-tray-5L2KGCGD.js +351 -0
- package/packages/theming/dist/theme-tray-5L2KGCGD.js.map +7 -0
- package/packages/theming/dist/tool.js +405 -0
- package/packages/theming/dist/tool.js.map +7 -0
- package/packages/theming/package.json +48 -0
- package/packages/threepane/dist/IsolatedDocumentArea-LFSDWMIY.js +2 -0
- package/packages/threepane/dist/IsolatedDocumentArea-LFSDWMIY.js.map +7 -0
- package/packages/threepane/dist/PatchworkFrame-JTNZ6365.js +2 -0
- package/packages/threepane/dist/PatchworkFrame-JTNZ6365.js.map +7 -0
- package/packages/threepane/dist/chunk-7YXO2YGV.js +2 -0
- package/packages/threepane/dist/chunk-7YXO2YGV.js.map +7 -0
- package/packages/threepane/dist/chunk-FOMAU6H2.js +972 -0
- package/packages/threepane/dist/chunk-FOMAU6H2.js.map +7 -0
- package/packages/threepane/dist/chunk-FW4363Y4.js +2 -0
- package/packages/threepane/dist/chunk-FW4363Y4.js.map +7 -0
- package/packages/threepane/dist/datatypes-FKBTWAO7.js +2 -0
- package/packages/threepane/dist/datatypes-FKBTWAO7.js.map +7 -0
- package/packages/threepane/dist/index.js +2 -0
- package/packages/threepane/dist/index.js.map +7 -0
- package/packages/threepane/package.json +42 -0
- package/packages/tldraw4/dist/chunk-IKZWERSR.js +38 -0
- package/packages/tldraw4/dist/chunk-IKZWERSR.js.map +7 -0
- package/packages/tldraw4/dist/chunk-VF5CY24G.js +140894 -0
- package/packages/tldraw4/dist/chunk-VF5CY24G.js.map +7 -0
- package/packages/tldraw4/dist/datatype.js +46 -0
- package/packages/tldraw4/dist/datatype.js.map +7 -0
- package/packages/tldraw4/dist/main.css +3202 -0
- package/packages/tldraw4/dist/main.css.map +7 -0
- package/packages/tldraw4/dist/main.js +42 -0
- package/packages/tldraw4/dist/main.js.map +7 -0
- package/packages/tldraw4/dist/tool.js +8767 -0
- package/packages/tldraw4/dist/tool.js.map +7 -0
- package/packages/tldraw4/package.json +62 -0
|
@@ -0,0 +1,490 @@
|
|
|
1
|
+
// src/lib/codemirror.tsx
|
|
2
|
+
import { onCleanup, createEffect as createEffect6 } from "solid-js";
|
|
3
|
+
import { EditorView as EditorView5 } from "@codemirror/view";
|
|
4
|
+
import { EditorState as EditorState2, Compartment as Compartment3 } from "@codemirror/state";
|
|
5
|
+
|
|
6
|
+
// src/lib/extensions/decorations.ts
|
|
7
|
+
import { createEffect } from "solid-js";
|
|
8
|
+
import { Decoration, EditorView } from "@codemirror/view";
|
|
9
|
+
import { StateEffect, StateField } from "@codemirror/state";
|
|
10
|
+
function createDecorationsExtension(decorations) {
|
|
11
|
+
const setDecorations = StateEffect.define();
|
|
12
|
+
const decorationsField = StateField.define({
|
|
13
|
+
create() {
|
|
14
|
+
return Decoration.none;
|
|
15
|
+
},
|
|
16
|
+
update(value, tr) {
|
|
17
|
+
for (const e of tr.effects) {
|
|
18
|
+
if (e.is(setDecorations)) return e.value;
|
|
19
|
+
}
|
|
20
|
+
if (tr.docChanged) return value.map(tr.changes);
|
|
21
|
+
return value;
|
|
22
|
+
},
|
|
23
|
+
provide: (f) => EditorView.decorations.from(f)
|
|
24
|
+
});
|
|
25
|
+
const createDecorationsEffect = (view) => createEffect(() => {
|
|
26
|
+
decorations() && view.dispatch({
|
|
27
|
+
effects: setDecorations.of(decorations())
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
return [decorationsField, createDecorationsEffect];
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// src/lib/extensions/readOnly.ts
|
|
34
|
+
import { createEffect as createEffect2 } from "solid-js";
|
|
35
|
+
import { EditorView as EditorView2 } from "@codemirror/view";
|
|
36
|
+
import { Compartment, EditorState } from "@codemirror/state";
|
|
37
|
+
function createReadOnlyExtension(readOnly) {
|
|
38
|
+
const readOnlyCompartment = new Compartment();
|
|
39
|
+
const readOnlyExtensions = () => readOnly() ? [EditorState.readOnly.of(true), EditorView2.editable.of(false)] : [];
|
|
40
|
+
const createReconfigureEffect = (view) => createEffect2(() => {
|
|
41
|
+
view.dispatch({
|
|
42
|
+
effects: readOnlyCompartment.reconfigure(readOnlyExtensions())
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
return [
|
|
46
|
+
readOnlyCompartment.of(readOnlyExtensions()),
|
|
47
|
+
createReconfigureEffect
|
|
48
|
+
];
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// src/lib/extensions/automergeSync.ts
|
|
52
|
+
import { createEffect as createEffect3 } from "solid-js";
|
|
53
|
+
import { Compartment as Compartment2 } from "@codemirror/state";
|
|
54
|
+
|
|
55
|
+
// ../node_modules/.pnpm/@automerge+automerge-codemirror@0.2.0/node_modules/@automerge/automerge-codemirror/dist/plugin.js
|
|
56
|
+
import * as A2 from "@automerge/automerge";
|
|
57
|
+
import { ViewPlugin } from "@codemirror/view";
|
|
58
|
+
import { Annotation } from "@codemirror/state";
|
|
59
|
+
|
|
60
|
+
// ../node_modules/.pnpm/@automerge+automerge-codemirror@0.2.0/node_modules/@automerge/automerge-codemirror/dist/codeMirrorToAm.js
|
|
61
|
+
import * as A from "@automerge/automerge";
|
|
62
|
+
var applyCmTransactionsToAmHandle = (handle, path, transactions) => {
|
|
63
|
+
const transactionsWithChanges = transactions.filter((tr) => !isReconcileTx(tr) && !tr.changes.empty);
|
|
64
|
+
if (transactionsWithChanges.length === 0) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
handle.change((doc) => {
|
|
68
|
+
transactionsWithChanges.forEach((tr) => {
|
|
69
|
+
tr.changes.iterChanges((fromA, toA, fromB, _toB, inserted) => {
|
|
70
|
+
A.splice(doc, path.slice(), fromB, toA - fromA, inserted.toString());
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
return A.getHeads(handle.doc());
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
// ../node_modules/.pnpm/@automerge+automerge-codemirror@0.2.0/node_modules/@automerge/automerge-codemirror/dist/amToCodemirror.js
|
|
78
|
+
import { ChangeSet } from "@codemirror/state";
|
|
79
|
+
var applyAmPatchesToCm = (view, target, patches) => {
|
|
80
|
+
let selection = view.state.selection;
|
|
81
|
+
for (const patch of patches) {
|
|
82
|
+
const changeSpec = handlePatch(patch, target, view.state);
|
|
83
|
+
if (changeSpec != null) {
|
|
84
|
+
const changeSet = ChangeSet.of(changeSpec, view.state.doc.length, "\n");
|
|
85
|
+
selection = selection.map(changeSet, 1);
|
|
86
|
+
view.dispatch({
|
|
87
|
+
changes: changeSet,
|
|
88
|
+
annotations: reconcileAnnotationType.of({})
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
view.dispatch({
|
|
93
|
+
selection,
|
|
94
|
+
annotations: reconcileAnnotationType.of({})
|
|
95
|
+
});
|
|
96
|
+
};
|
|
97
|
+
function handlePatch(patch, target, state) {
|
|
98
|
+
if (patch.action === "insert") {
|
|
99
|
+
return handleInsert(target, patch);
|
|
100
|
+
} else if (patch.action === "splice") {
|
|
101
|
+
return handleSplice(target, patch);
|
|
102
|
+
} else if (patch.action === "del") {
|
|
103
|
+
return handleDel(target, patch);
|
|
104
|
+
} else if (patch.action === "put") {
|
|
105
|
+
return handlePut(target, patch, state);
|
|
106
|
+
} else {
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
function handleInsert(target, patch) {
|
|
111
|
+
const index = charPath(target, patch.path);
|
|
112
|
+
if (index == null) {
|
|
113
|
+
return [];
|
|
114
|
+
}
|
|
115
|
+
const text = patch.values.map((v) => v ? v.toString() : "").join("");
|
|
116
|
+
return [{ from: index, to: index, insert: text }];
|
|
117
|
+
}
|
|
118
|
+
function handleSplice(target, patch) {
|
|
119
|
+
const index = charPath(target, patch.path);
|
|
120
|
+
if (index == null) {
|
|
121
|
+
return [];
|
|
122
|
+
}
|
|
123
|
+
return [{ from: index, insert: patch.value }];
|
|
124
|
+
}
|
|
125
|
+
function handleDel(target, patch) {
|
|
126
|
+
const index = charPath(target, patch.path);
|
|
127
|
+
if (index == null) {
|
|
128
|
+
return [];
|
|
129
|
+
}
|
|
130
|
+
const length = patch.length || 1;
|
|
131
|
+
return [{ from: index, to: index + length }];
|
|
132
|
+
}
|
|
133
|
+
function handlePut(target, patch, state) {
|
|
134
|
+
const index = charPath(target, [...patch.path, 0]);
|
|
135
|
+
if (index == null) {
|
|
136
|
+
return [];
|
|
137
|
+
}
|
|
138
|
+
const length = state.doc.length;
|
|
139
|
+
if (typeof patch.value !== "string") {
|
|
140
|
+
return [];
|
|
141
|
+
}
|
|
142
|
+
return [{ from: 0, to: length, insert: patch.value }];
|
|
143
|
+
}
|
|
144
|
+
function charPath(textPath, candidatePath) {
|
|
145
|
+
if (candidatePath.length !== textPath.length + 1)
|
|
146
|
+
return null;
|
|
147
|
+
for (let i = 0; i < textPath.length; i++) {
|
|
148
|
+
if (textPath[i] !== candidatePath[i])
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
const index = candidatePath[candidatePath.length - 1];
|
|
152
|
+
if (typeof index === "number")
|
|
153
|
+
return index;
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// ../node_modules/.pnpm/@automerge+automerge-codemirror@0.2.0/node_modules/@automerge/automerge-codemirror/dist/plugin.js
|
|
158
|
+
var reconcileAnnotationType = Annotation.define();
|
|
159
|
+
var isReconcileTx = (tr) => !!tr.annotation(reconcileAnnotationType);
|
|
160
|
+
var automergeSyncPlugin = ({ handle, path }) => {
|
|
161
|
+
if (!handle.isReady()) {
|
|
162
|
+
throw new Error("ensure the handle is ready before initializing the automergeSyncPlugin");
|
|
163
|
+
}
|
|
164
|
+
return ViewPlugin.fromClass(class {
|
|
165
|
+
view;
|
|
166
|
+
reconciledHeads = A2.getHeads(handle.doc());
|
|
167
|
+
isProcessingCmTransaction = false;
|
|
168
|
+
constructor(view) {
|
|
169
|
+
this.view = view;
|
|
170
|
+
this.onChange = this.onChange.bind(this);
|
|
171
|
+
handle.on("change", this.onChange);
|
|
172
|
+
}
|
|
173
|
+
update(update) {
|
|
174
|
+
this.isProcessingCmTransaction = true;
|
|
175
|
+
const newHeads = applyCmTransactionsToAmHandle(handle, path, update.transactions);
|
|
176
|
+
if (newHeads) {
|
|
177
|
+
this.reconciledHeads = newHeads;
|
|
178
|
+
}
|
|
179
|
+
this.isProcessingCmTransaction = false;
|
|
180
|
+
}
|
|
181
|
+
onChange = () => {
|
|
182
|
+
if (this.isProcessingCmTransaction) {
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
const currentHeads = A2.getHeads(handle.doc());
|
|
186
|
+
if (A2.equals(currentHeads, this.reconciledHeads)) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
const patches = A2.diff(handle.doc(), this.reconciledHeads, currentHeads);
|
|
190
|
+
applyAmPatchesToCm(this.view, path, patches);
|
|
191
|
+
this.reconciledHeads = currentHeads;
|
|
192
|
+
};
|
|
193
|
+
destroy() {
|
|
194
|
+
handle.off("change", this.onChange);
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
// src/lib/extensions/automergeSync.ts
|
|
200
|
+
function createSyncExtension(handle, path, initialDoc) {
|
|
201
|
+
const sync = new Compartment2();
|
|
202
|
+
const syncExtension = () => handle() && path() ? automergeSyncPlugin({
|
|
203
|
+
handle: handle(),
|
|
204
|
+
// typescript is confused by different version of doc handle
|
|
205
|
+
path: path()
|
|
206
|
+
}) : [];
|
|
207
|
+
const createReconfigureEffect = (view) => createEffect3(() => {
|
|
208
|
+
view.dispatch({
|
|
209
|
+
effects: sync.reconfigure(syncExtension()),
|
|
210
|
+
changes: {
|
|
211
|
+
from: 0,
|
|
212
|
+
to: view.state.doc.length,
|
|
213
|
+
insert: initialDoc()
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
});
|
|
217
|
+
return [sync.of(syncExtension()), createReconfigureEffect];
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
// src/lib/extensions/diff.ts
|
|
221
|
+
import { createEffect as createEffect4 } from "solid-js";
|
|
222
|
+
import {
|
|
223
|
+
Decoration as Decoration2,
|
|
224
|
+
ViewPlugin as ViewPlugin2,
|
|
225
|
+
WidgetType
|
|
226
|
+
} from "@codemirror/view";
|
|
227
|
+
import { RangeSet, StateEffect as StateEffect2 } from "@codemirror/state";
|
|
228
|
+
import { next as Automerge } from "@automerge/automerge";
|
|
229
|
+
import {
|
|
230
|
+
decodeHeads
|
|
231
|
+
} from "@automerge/automerge-repo";
|
|
232
|
+
var setBaseline = StateEffect2.define();
|
|
233
|
+
function createDiffExtension(handle, path, baseline) {
|
|
234
|
+
const plugin = ViewPlugin2.fromClass(
|
|
235
|
+
class {
|
|
236
|
+
baseline = null;
|
|
237
|
+
decorations = Decoration2.none;
|
|
238
|
+
update(update) {
|
|
239
|
+
let baselineChanged = false;
|
|
240
|
+
for (const tr of update.transactions) {
|
|
241
|
+
for (const effect of tr.effects) {
|
|
242
|
+
if (effect.is(setBaseline)) {
|
|
243
|
+
this.baseline = effect.value;
|
|
244
|
+
baselineChanged = true;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
if (update.docChanged || baselineChanged) {
|
|
249
|
+
this.decorations = this.build();
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
build() {
|
|
253
|
+
const heads = this.baseline;
|
|
254
|
+
const doc = handle()?.doc();
|
|
255
|
+
if (!heads || !doc) return Decoration2.none;
|
|
256
|
+
return RangeSet.of(
|
|
257
|
+
buildDiffDecorations(
|
|
258
|
+
diffContent(doc, heads, path()),
|
|
259
|
+
prefersDarkMode()
|
|
260
|
+
),
|
|
261
|
+
true
|
|
262
|
+
// sort ranges
|
|
263
|
+
);
|
|
264
|
+
}
|
|
265
|
+
},
|
|
266
|
+
{ decorations: (v) => v.decorations }
|
|
267
|
+
);
|
|
268
|
+
const createReconfigureEffect = (view) => createEffect4(() => {
|
|
269
|
+
view.dispatch({ effects: setBaseline.of(baseline()) });
|
|
270
|
+
});
|
|
271
|
+
return [plugin, createReconfigureEffect];
|
|
272
|
+
}
|
|
273
|
+
function diffContent(doc, baselineHeads, path) {
|
|
274
|
+
const before = decodeHeads(baselineHeads);
|
|
275
|
+
const beforeContent = lookupString(Automerge.view(doc, before), path);
|
|
276
|
+
const patches = Automerge.diff(doc, before, Automerge.getHeads(doc));
|
|
277
|
+
const out = [];
|
|
278
|
+
let offset = 0;
|
|
279
|
+
for (const patch of patches) {
|
|
280
|
+
if (!isIndexedChildOf(patch.path, path)) continue;
|
|
281
|
+
const pos = patch.path[path.length];
|
|
282
|
+
if (patch.action === "splice") {
|
|
283
|
+
const len = patch.value.length;
|
|
284
|
+
out.push({ type: "added", from: pos, to: pos + len });
|
|
285
|
+
offset -= len;
|
|
286
|
+
} else if (patch.action === "del") {
|
|
287
|
+
const len = patch.length ?? 1;
|
|
288
|
+
const original = pos + offset;
|
|
289
|
+
out.push({
|
|
290
|
+
type: "deleted",
|
|
291
|
+
at: pos,
|
|
292
|
+
text: beforeContent.substring(original, original + len)
|
|
293
|
+
});
|
|
294
|
+
offset += len;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
return out;
|
|
298
|
+
}
|
|
299
|
+
function buildDiffDecorations(diffs, dark) {
|
|
300
|
+
const out = [];
|
|
301
|
+
for (const diff2 of diffs) {
|
|
302
|
+
if (diff2.type === "deleted") {
|
|
303
|
+
out.push(
|
|
304
|
+
Decoration2.widget({
|
|
305
|
+
widget: new DeletionMarker(diff2.text, false),
|
|
306
|
+
side: 1
|
|
307
|
+
}).range(diff2.at)
|
|
308
|
+
);
|
|
309
|
+
continue;
|
|
310
|
+
}
|
|
311
|
+
if (diff2.from === diff2.to) continue;
|
|
312
|
+
out.push(
|
|
313
|
+
Decoration2.mark({
|
|
314
|
+
attributes: { style: addedDiffStyle(dark) }
|
|
315
|
+
}).range(diff2.from, diff2.to)
|
|
316
|
+
);
|
|
317
|
+
}
|
|
318
|
+
return out;
|
|
319
|
+
}
|
|
320
|
+
function isIndexedChildOf(patchPath, path) {
|
|
321
|
+
if (patchPath.length !== path.length + 1) return false;
|
|
322
|
+
for (let i = 0; i < path.length; i++) {
|
|
323
|
+
if (patchPath[i] !== path[i]) return false;
|
|
324
|
+
}
|
|
325
|
+
return typeof patchPath[path.length] === "number";
|
|
326
|
+
}
|
|
327
|
+
function lookupString(doc, path) {
|
|
328
|
+
let current = doc;
|
|
329
|
+
for (const key of path) {
|
|
330
|
+
if (current == null) return "";
|
|
331
|
+
current = current[key];
|
|
332
|
+
}
|
|
333
|
+
return typeof current === "string" ? current : "";
|
|
334
|
+
}
|
|
335
|
+
function addedDiffStyle(dark) {
|
|
336
|
+
return `
|
|
337
|
+
border-bottom: 2px solid ${dark ? "#4ade80" : "#22c55e"};
|
|
338
|
+
background-color: ${dark ? "#14532d" : "#dcfce7"};
|
|
339
|
+
`;
|
|
340
|
+
}
|
|
341
|
+
function prefersDarkMode() {
|
|
342
|
+
return window.matchMedia("(prefers-color-scheme: dark)").matches;
|
|
343
|
+
}
|
|
344
|
+
var DeletionMarker = class extends WidgetType {
|
|
345
|
+
deletedText;
|
|
346
|
+
isActive;
|
|
347
|
+
constructor(deletedText, isActive) {
|
|
348
|
+
super();
|
|
349
|
+
this.deletedText = deletedText;
|
|
350
|
+
this.isActive = isActive;
|
|
351
|
+
}
|
|
352
|
+
toDOM() {
|
|
353
|
+
const box = document.createElement("div");
|
|
354
|
+
box.style.display = "inline-block";
|
|
355
|
+
box.style.position = "relative";
|
|
356
|
+
box.style.lineHeight = "1";
|
|
357
|
+
box.style.verticalAlign = "middle";
|
|
358
|
+
box.style.boxSizing = "border-box";
|
|
359
|
+
box.style.padding = "2px 3px";
|
|
360
|
+
box.style.color = "rgb(239 68 68)";
|
|
361
|
+
box.style.margin = "0 4px";
|
|
362
|
+
box.style.fontSize = "1.2em";
|
|
363
|
+
box.style.whiteSpace = "nowrap";
|
|
364
|
+
box.style.backgroundColor = this.isActive ? "rgb(239 68 68 / 20%)" : "rgb(239 68 68 / 10%)";
|
|
365
|
+
box.style.borderRadius = "3px";
|
|
366
|
+
box.style.cursor = "default";
|
|
367
|
+
box.innerText = "\u232B";
|
|
368
|
+
const hoverText = document.createElement("div");
|
|
369
|
+
hoverText.style.position = "absolute";
|
|
370
|
+
hoverText.style.top = "100%";
|
|
371
|
+
hoverText.style.left = "0";
|
|
372
|
+
hoverText.style.zIndex = "1";
|
|
373
|
+
hoverText.style.padding = "5px";
|
|
374
|
+
hoverText.style.backgroundColor = "rgb(254 242 242)";
|
|
375
|
+
hoverText.style.fontSize = "15px";
|
|
376
|
+
hoverText.style.color = "rgb(17 24 39)";
|
|
377
|
+
hoverText.style.border = "1px solid rgb(185 28 28)";
|
|
378
|
+
hoverText.style.boxShadow = "0px 0px 6px rgba(0, 0, 0, 0.1)";
|
|
379
|
+
hoverText.style.borderRadius = "3px";
|
|
380
|
+
hoverText.style.visibility = "hidden";
|
|
381
|
+
hoverText.innerText = this.deletedText;
|
|
382
|
+
const isDarkMode = document.documentElement.classList.contains("dark") || window.matchMedia("(prefers-color-scheme: dark)").matches;
|
|
383
|
+
if (isDarkMode) {
|
|
384
|
+
box.style.color = "rgb(248 113 113)";
|
|
385
|
+
box.style.backgroundColor = this.isActive ? "rgb(248 113 113 / 20%)" : "rgb(248 113 113 / 10%)";
|
|
386
|
+
hoverText.style.backgroundColor = "rgb(69 10 10)";
|
|
387
|
+
hoverText.style.color = "rgb(254 226 226)";
|
|
388
|
+
hoverText.style.border = "1px solid rgb(153 27 27)";
|
|
389
|
+
}
|
|
390
|
+
box.appendChild(hoverText);
|
|
391
|
+
box.onmouseover = function() {
|
|
392
|
+
hoverText.style.visibility = "visible";
|
|
393
|
+
};
|
|
394
|
+
box.onmouseout = function() {
|
|
395
|
+
hoverText.style.visibility = "hidden";
|
|
396
|
+
};
|
|
397
|
+
return box;
|
|
398
|
+
}
|
|
399
|
+
eq(other) {
|
|
400
|
+
return other.deletedText === this.deletedText && other.isActive === this.isActive;
|
|
401
|
+
}
|
|
402
|
+
ignoreEvent() {
|
|
403
|
+
return true;
|
|
404
|
+
}
|
|
405
|
+
};
|
|
406
|
+
|
|
407
|
+
// src/lib/extensions/scrollHighlightIntoView.ts
|
|
408
|
+
import { createEffect as createEffect5 } from "solid-js";
|
|
409
|
+
import { EditorView as EditorView4 } from "@codemirror/view";
|
|
410
|
+
import { EditorSelection } from "@codemirror/state";
|
|
411
|
+
function createScrollHighlightIntoViewExtension(target) {
|
|
412
|
+
const extension = [];
|
|
413
|
+
const createScrollHighlightIntoViewEffect = (view) => createEffect5(() => {
|
|
414
|
+
const range = target();
|
|
415
|
+
if (!range) return;
|
|
416
|
+
const docLength = view.state.doc.length;
|
|
417
|
+
const from = Math.min(range[0], docLength);
|
|
418
|
+
const to = Math.min(range[1], docLength);
|
|
419
|
+
view.dispatch({
|
|
420
|
+
effects: EditorView4.scrollIntoView(EditorSelection.range(from, to), {
|
|
421
|
+
x: "nearest",
|
|
422
|
+
y: "nearest"
|
|
423
|
+
})
|
|
424
|
+
});
|
|
425
|
+
});
|
|
426
|
+
return [extension, createScrollHighlightIntoViewEffect];
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
// src/lib/codemirror.tsx
|
|
430
|
+
var lookup = (doc, path) => {
|
|
431
|
+
let current = doc;
|
|
432
|
+
for (const key of path) {
|
|
433
|
+
current = current[key];
|
|
434
|
+
if (current === void 0) {
|
|
435
|
+
return void 0;
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
return current;
|
|
439
|
+
};
|
|
440
|
+
function CodeMirror(props) {
|
|
441
|
+
const initialDoc = () => props.handle && lookup(props.handle.doc(), props.path) || "";
|
|
442
|
+
const [syncExtension, createEffectReconfigureSync] = createSyncExtension(() => props.handle, () => props.path, initialDoc);
|
|
443
|
+
const [readOnlyExtension, createEffectReconfigureReadOnly] = createReadOnlyExtension(() => !!props.readOnly);
|
|
444
|
+
const [decorationsExtension, createEffectReconfigureDecorations] = createDecorationsExtension(() => props.decorations?.());
|
|
445
|
+
const [diffExtension, createEffectReconfigureDiff] = createDiffExtension(() => props.handle, () => props.path, () => props.baseline?.() ?? null);
|
|
446
|
+
const [scrollHighlightIntoViewExtension, createEffectScrollHighlightIntoView] = createScrollHighlightIntoViewExtension(() => props.scrollTarget?.() ?? null);
|
|
447
|
+
const userExtensionsCompartment = new Compartment3();
|
|
448
|
+
const selectionExtension = EditorView5.updateListener.of((update) => {
|
|
449
|
+
if (!props.onChangeSelection) return;
|
|
450
|
+
if (update.selectionSet) {
|
|
451
|
+
const sel = update.state.selection.main;
|
|
452
|
+
props.onChangeSelection(sel.from, sel.to);
|
|
453
|
+
}
|
|
454
|
+
});
|
|
455
|
+
const extensions = [
|
|
456
|
+
selectionExtension,
|
|
457
|
+
decorationsExtension,
|
|
458
|
+
// syncExtension must come before diffExtension so diff stays in sync with edits.
|
|
459
|
+
syncExtension,
|
|
460
|
+
diffExtension,
|
|
461
|
+
scrollHighlightIntoViewExtension,
|
|
462
|
+
userExtensionsCompartment.of(props.extensions || []),
|
|
463
|
+
readOnlyExtension
|
|
464
|
+
].filter(Boolean);
|
|
465
|
+
const state = EditorState2.create({
|
|
466
|
+
doc: initialDoc(),
|
|
467
|
+
extensions
|
|
468
|
+
});
|
|
469
|
+
const view = new EditorView5({
|
|
470
|
+
state
|
|
471
|
+
});
|
|
472
|
+
props.withView?.(view);
|
|
473
|
+
createEffectReconfigureSync(view);
|
|
474
|
+
createEffectReconfigureReadOnly(view);
|
|
475
|
+
createEffectReconfigureDecorations?.(view);
|
|
476
|
+
createEffectReconfigureDiff(view);
|
|
477
|
+
createEffectScrollHighlightIntoView(view);
|
|
478
|
+
createEffect6(() => {
|
|
479
|
+
view.dispatch({
|
|
480
|
+
effects: userExtensionsCompartment.reconfigure(props.extensions || [])
|
|
481
|
+
});
|
|
482
|
+
});
|
|
483
|
+
onCleanup(() => view.destroy());
|
|
484
|
+
return view.dom;
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
export {
|
|
488
|
+
CodeMirror
|
|
489
|
+
};
|
|
490
|
+
//# sourceMappingURL=chunk-KMEIRH3R.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/lib/codemirror.tsx", "../src/lib/extensions/decorations.ts", "../src/lib/extensions/readOnly.ts", "../src/lib/extensions/automergeSync.ts", "../../node_modules/.pnpm/@automerge+automerge-codemirror@0.2.0/node_modules/@automerge/automerge-codemirror/dist/plugin.js", "../../node_modules/.pnpm/@automerge+automerge-codemirror@0.2.0/node_modules/@automerge/automerge-codemirror/dist/codeMirrorToAm.js", "../../node_modules/.pnpm/@automerge+automerge-codemirror@0.2.0/node_modules/@automerge/automerge-codemirror/dist/amToCodemirror.js", "../src/lib/extensions/diff.ts", "../src/lib/extensions/scrollHighlightIntoView.ts"],
|
|
4
|
+
"sourcesContent": ["import { onCleanup, createEffect } from \"solid-js\";\nimport { EditorView } from \"@codemirror/view\";\nimport { EditorState, Compartment } from \"@codemirror/state\";\nimport { createSyncExtension, createReadOnlyExtension, createDecorationsExtension, createDiffExtension, createScrollHighlightIntoViewExtension } from \"./extensions\";\nconst lookup = (doc, path) => {\n let current = doc;\n for (const key of path) {\n current = current[key];\n if (current === void 0) {\n return void 0;\n }\n }\n return current;\n};\nexport function CodeMirror(props) {\n const initialDoc = () => props.handle && lookup(props.handle.doc(), props.path) || \"\";\n const [syncExtension, createEffectReconfigureSync] = createSyncExtension(() => props.handle, () => props.path, initialDoc);\n const [readOnlyExtension, createEffectReconfigureReadOnly] = createReadOnlyExtension(() => !!props.readOnly);\n const [decorationsExtension, createEffectReconfigureDecorations] = createDecorationsExtension(() => props.decorations?.());\n const [diffExtension, createEffectReconfigureDiff] = createDiffExtension(() => props.handle, () => props.path, () => props.baseline?.() ?? null);\n const [scrollHighlightIntoViewExtension, createEffectScrollHighlightIntoView] = createScrollHighlightIntoViewExtension(() => props.scrollTarget?.() ?? null);\n const userExtensionsCompartment = new Compartment();\n const selectionExtension = EditorView.updateListener.of(update => {\n if (!props.onChangeSelection) return;\n if (update.selectionSet) {\n const sel = update.state.selection.main;\n props.onChangeSelection(sel.from, sel.to);\n }\n });\n const extensions = [selectionExtension, decorationsExtension,\n // syncExtension must come before diffExtension so diff stays in sync with edits.\n syncExtension, diffExtension, scrollHighlightIntoViewExtension, userExtensionsCompartment.of(props.extensions || []), readOnlyExtension].filter(Boolean);\n const state = EditorState.create({\n doc: initialDoc(),\n extensions\n });\n const view = new EditorView({\n state\n });\n props.withView?.(view);\n createEffectReconfigureSync(view);\n createEffectReconfigureReadOnly(view);\n createEffectReconfigureDecorations?.(view);\n createEffectReconfigureDiff(view);\n createEffectScrollHighlightIntoView(view);\n createEffect(() => {\n view.dispatch({\n effects: userExtensionsCompartment.reconfigure(props.extensions || [])\n });\n });\n onCleanup(() => view.destroy());\n return view.dom;\n}", "import { createEffect } from \"solid-js\";\n\n/** CodeMirror */\nimport { Decoration, EditorView, type DecorationSet } from \"@codemirror/view\";\nimport { StateEffect, StateField } from \"@codemirror/state\";\n\n/**\n * Create a CodeMirror extension for managing decorations.\n * @param decorations An accessor function that returns the decorations (for reactivity).\n * @returns A tuple containing the extension and a function to create an effect for updating the\n decorations.\n */\nexport function createDecorationsExtension(decorations: () => DecorationSet) {\n const setDecorations = StateEffect.define<DecorationSet>();\n const decorationsField = StateField.define<DecorationSet>({\n create() {\n return Decoration.none;\n },\n update(value, tr) {\n for (const e of tr.effects) {\n if (e.is(setDecorations)) return e.value;\n }\n if (tr.docChanged) return value.map(tr.changes);\n return value;\n },\n provide: (f) => EditorView.decorations.from(f),\n });\n\n const createDecorationsEffect = (view: EditorView) =>\n createEffect(() => {\n decorations() &&\n view.dispatch({\n effects: setDecorations.of(decorations!()),\n });\n });\n\n return [decorationsField, createDecorationsEffect] as const;\n}\n", "import { createEffect } from \"solid-js\";\n\n/** CodeMirror */\nimport { EditorView } from \"@codemirror/view\";\nimport { Compartment, EditorState } from \"@codemirror/state\";\n\n/**\n * Create a CodeMirror extension for controlling read-only mode using a CodeMirror Compartment.\n * @param readOnly Whether the editor should be read-only.\n * @returns A tuple containing the extension and a function to create an effect for reconfiguring\n the extension when the readOnly prop changes.\n */\nexport function createReadOnlyExtension(readOnly: () => boolean) {\n const readOnlyCompartment = new Compartment();\n\n // Function to get the desired state of the read-only extensions based on the readOnly parameter\n const readOnlyExtensions = () =>\n readOnly()\n ? [EditorState.readOnly.of(true), EditorView.editable.of(false)]\n : [];\n\n // Function to create an effect that reconfigures the read-only compartment\n const createReconfigureEffect = (view: EditorView) =>\n createEffect(() => {\n view.dispatch({\n effects: readOnlyCompartment.reconfigure(readOnlyExtensions()),\n });\n });\n\n return [\n readOnlyCompartment.of(readOnlyExtensions()),\n createReconfigureEffect,\n ] as const;\n}\n", "import { createEffect } from \"solid-js\";\n\n/** CodeMirror */\nimport { EditorView } from \"@codemirror/view\";\nimport { Compartment } from \"@codemirror/state\";\n\n/** Automerge */\nimport type { Prop as AutomergeProp } from \"@automerge/automerge\";\nimport { automergeSyncPlugin } from \"@automerge/automerge-codemirror\";\nimport type { DocHandle } from \"@automerge/automerge-repo\";\n\n/**\n * Create a CodeMirror extension for synchronizing with an Automerge document using a CodeMirror\n Compartment.\n * @param handle The Automerge document handle.\n * @param path The path to the specific document property to synchronize.\n * @returns A tuple containing the extension and a function to create an effect for reconfiguring the extension when the handle or path change.\n */\nexport function createSyncExtension<T>(\n handle: () => DocHandle<T>,\n path: () => AutomergeProp[],\n initialDoc: () => string\n) {\n const sync = new Compartment();\n\n const syncExtension = () =>\n handle() && path()\n ? automergeSyncPlugin({\n handle: handle() as any, // typescript is confused by different version of doc handle\n path: path(),\n })\n : [];\n\n // Reconfiguring the compartment replaces the sync plugin wholesale (the old\n // instance is destroyed without seeing this transaction, so the full-doc\n // reset below is not echoed back into the automerge doc) and the fresh\n // plugin re-seeds its reconciled heads from the current doc.\n const createReconfigureEffect = (view: EditorView) =>\n createEffect(() => {\n // The `handle()`/`path()` reads inside `syncExtension` are tracked, so a\n // reactive prop change re-runs this and rebuilds the plugin.\n view.dispatch({\n effects: sync.reconfigure(syncExtension()),\n changes: {\n from: 0,\n to: view.state.doc.length,\n insert: initialDoc(),\n },\n });\n });\n\n return [sync.of(syncExtension()), createReconfigureEffect] as const;\n}\n", "import * as A from \"@automerge/automerge\";\nimport { ViewPlugin } from \"@codemirror/view\";\nimport { Annotation } from \"@codemirror/state\";\nimport { applyCmTransactionsToAmHandle } from \"./codeMirrorToAm.js\";\nimport { applyAmPatchesToCm } from \"./amToCodemirror.js\";\nexport const reconcileAnnotationType = Annotation.define();\nexport const isReconcileTx = (tr) => !!tr.annotation(reconcileAnnotationType);\nexport const automergeSyncPlugin = ({ handle, path, }) => {\n if (!handle.isReady()) {\n throw new Error(\"ensure the handle is ready before initializing the automergeSyncPlugin\");\n }\n return ViewPlugin.fromClass(class {\n view;\n reconciledHeads = A.getHeads(handle.doc());\n isProcessingCmTransaction = false;\n constructor(view) {\n this.view = view;\n this.onChange = this.onChange.bind(this);\n handle.on(\"change\", this.onChange);\n }\n update(update) {\n // start processing codemirror transaction\n // changes that are created through the transaction are ignored in the change listener on the handle\n this.isProcessingCmTransaction = true;\n const newHeads = applyCmTransactionsToAmHandle(handle, path, update.transactions);\n if (newHeads) {\n this.reconciledHeads = newHeads;\n }\n // finish processing transaction\n this.isProcessingCmTransaction = false;\n }\n onChange = () => {\n // ignore changes that where triggered while processing a codemirror transaction\n if (this.isProcessingCmTransaction) {\n return;\n }\n const currentHeads = A.getHeads(handle.doc());\n if (A.equals(currentHeads, this.reconciledHeads)) {\n return;\n }\n // get the diff between the reconciled heads and the new heads\n // and apply that to the codemirror doc\n const patches = A.diff(handle.doc(), this.reconciledHeads, currentHeads);\n applyAmPatchesToCm(this.view, path, patches);\n this.reconciledHeads = currentHeads;\n };\n destroy() {\n handle.off(\"change\", this.onChange);\n }\n });\n};\n//# sourceMappingURL=plugin.js.map", "import * as A from \"@automerge/automerge\";\nimport { isReconcileTx } from \"./plugin.js\";\nexport const applyCmTransactionsToAmHandle = (handle, path, transactions) => {\n const transactionsWithChanges = transactions.filter(tr => !isReconcileTx(tr) && !tr.changes.empty);\n if (transactionsWithChanges.length === 0) {\n return;\n }\n handle.change((doc) => {\n transactionsWithChanges.forEach(tr => {\n tr.changes.iterChanges((fromA, toA, fromB, _toB, inserted) => {\n // We are cloning the path as `am.splice` calls `.unshift` on it, modifying it in place,\n // causing the path to be broken on subsequent changes\n A.splice(doc, path.slice(), fromB, toA - fromA, inserted.toString());\n });\n });\n });\n return A.getHeads(handle.doc());\n};\n//# sourceMappingURL=codeMirrorToAm.js.map", "import { ChangeSet } from \"@codemirror/state\";\nimport { reconcileAnnotationType } from \"./plugin.js\";\nexport const applyAmPatchesToCm = (view, target, patches) => {\n let selection = view.state.selection;\n for (const patch of patches) {\n const changeSpec = handlePatch(patch, target, view.state);\n if (changeSpec != null) {\n const changeSet = ChangeSet.of(changeSpec, view.state.doc.length, \"\\n\");\n selection = selection.map(changeSet, 1);\n view.dispatch({\n changes: changeSet,\n annotations: reconcileAnnotationType.of({}),\n });\n }\n }\n view.dispatch({\n selection,\n annotations: reconcileAnnotationType.of({}),\n });\n};\nfunction handlePatch(patch, target, state) {\n if (patch.action === \"insert\") {\n return handleInsert(target, patch);\n }\n else if (patch.action === \"splice\") {\n return handleSplice(target, patch);\n }\n else if (patch.action === \"del\") {\n return handleDel(target, patch);\n }\n else if (patch.action === \"put\") {\n return handlePut(target, patch, state);\n }\n else {\n return null;\n }\n}\nfunction handleInsert(target, patch) {\n const index = charPath(target, patch.path);\n if (index == null) {\n return [];\n }\n const text = patch.values.map(v => (v ? v.toString() : \"\")).join(\"\");\n return [{ from: index, to: index, insert: text }];\n}\nfunction handleSplice(target, patch) {\n const index = charPath(target, patch.path);\n if (index == null) {\n return [];\n }\n return [{ from: index, insert: patch.value }];\n}\nfunction handleDel(target, patch) {\n const index = charPath(target, patch.path);\n if (index == null) {\n return [];\n }\n const length = patch.length || 1;\n return [{ from: index, to: index + length }];\n}\nfunction handlePut(target, patch, state) {\n const index = charPath(target, [...patch.path, 0]);\n if (index == null) {\n return [];\n }\n const length = state.doc.length;\n if (typeof patch.value !== \"string\") {\n return []; // TODO(dmaretskyi): How to handle non string values?\n }\n return [{ from: 0, to: length, insert: patch.value }];\n}\n// If the path of the patch is of the form [path, <index>] then we know this is\n// a path to a character within the sequence given by path\nfunction charPath(textPath, candidatePath) {\n if (candidatePath.length !== textPath.length + 1)\n return null;\n for (let i = 0; i < textPath.length; i++) {\n if (textPath[i] !== candidatePath[i])\n return null;\n }\n const index = candidatePath[candidatePath.length - 1];\n if (typeof index === \"number\")\n return index;\n return null;\n}\n//# sourceMappingURL=amToCodemirror.js.map", "import { createEffect } from \"solid-js\";\n\n/** CodeMirror */\nimport {\n Decoration,\n EditorView,\n ViewPlugin,\n WidgetType,\n type DecorationSet,\n type ViewUpdate,\n} from \"@codemirror/view\";\nimport { RangeSet, StateEffect, type Range } from \"@codemirror/state\";\n\n/** Automerge */\nimport { next as Automerge } from \"@automerge/automerge\";\nimport type { Prop as AutomergeProp } from \"@automerge/automerge\";\nimport {\n decodeHeads,\n type Doc,\n type DocHandle,\n type UrlHeads,\n} from \"@automerge/automerge-repo\";\n\n// Carries the diff baseline (fork-point heads) from the provider subscription\n// into the editor. Dispatched only when the baseline changes (i.e. on fork),\n// which is rare -- per-edit recomputation is driven by `docChanged`, not this.\nconst setBaseline = StateEffect.define<UrlHeads | null>();\n\n/**\n * CodeMirror extension that renders a diff of the synced `path` against the\n * `baseline` heads. It recomputes its decorations on every doc change -- the\n * automerge sync plugin reflects both local and remote changes as editor\n * transactions -- so no external \"tick\" is needed. The baseline is pushed in\n * via a Solid effect because the editor can't observe a fork on its own.\n *\n * @returns the extension and an effect factory that feeds baseline changes in.\n */\nexport function createDiffExtension(\n handle: () => DocHandle<unknown>,\n path: () => AutomergeProp[],\n baseline: () => UrlHeads | null\n) {\n const plugin = ViewPlugin.fromClass(\n class {\n baseline: UrlHeads | null = null;\n decorations: DecorationSet = Decoration.none;\n\n update(update: ViewUpdate) {\n let baselineChanged = false;\n for (const tr of update.transactions) {\n for (const effect of tr.effects) {\n if (effect.is(setBaseline)) {\n this.baseline = effect.value;\n baselineChanged = true;\n }\n }\n }\n if (update.docChanged || baselineChanged) {\n this.decorations = this.build();\n }\n }\n\n build(): DecorationSet {\n const heads = this.baseline;\n const doc = handle()?.doc();\n if (!heads || !doc) return Decoration.none;\n return RangeSet.of(\n buildDiffDecorations(\n diffContent(doc, heads, path()),\n prefersDarkMode()\n ),\n true // sort ranges\n );\n }\n },\n { decorations: (v) => v.decorations }\n );\n\n const createReconfigureEffect = (view: EditorView) =>\n createEffect(() => {\n view.dispatch({ effects: setBaseline.of(baseline()) });\n });\n\n return [plugin, createReconfigureEffect] as const;\n}\n\ntype ContentDiff =\n | { type: \"added\"; from: number; to: number }\n | { type: \"deleted\"; at: number; text: string };\n\n// Diff the text at `path` between the baseline heads and the live doc using\n// Automerge patches directly (no annotations layer). A string field only ever\n// produces `splice` (insert) and `del` (delete) patches on `[...path, idx]`,\n// and their positions are in live-doc coordinates -- so `added` ranges map\n// straight to CodeMirror offsets. For `del` the removed text isn't in the\n// patch, so we recover it from the baseline view, tracking a running offset to\n// convert the live position back to a baseline position.\nfunction diffContent(\n doc: Doc<unknown>,\n baselineHeads: UrlHeads,\n path: AutomergeProp[]\n): ContentDiff[] {\n const before = decodeHeads(baselineHeads);\n const beforeContent = lookupString(Automerge.view(doc, before), path);\n const patches = Automerge.diff(doc, before, Automerge.getHeads(doc));\n\n const out: ContentDiff[] = [];\n let offset = 0;\n for (const patch of patches) {\n if (!isIndexedChildOf(patch.path, path)) continue;\n const pos = patch.path[path.length] as number;\n if (patch.action === \"splice\") {\n const len = (patch.value as string).length;\n out.push({ type: \"added\", from: pos, to: pos + len });\n offset -= len;\n } else if (patch.action === \"del\") {\n const len = patch.length ?? 1;\n const original = pos + offset;\n out.push({\n type: \"deleted\",\n at: pos,\n text: beforeContent.substring(original, original + len),\n });\n offset += len;\n }\n }\n return out;\n}\n\nfunction buildDiffDecorations(\n diffs: ContentDiff[],\n dark: boolean\n): Range<Decoration>[] {\n const out: Range<Decoration>[] = [];\n for (const diff of diffs) {\n if (diff.type === \"deleted\") {\n out.push(\n Decoration.widget({\n widget: new DeletionMarker(diff.text, false),\n side: 1,\n }).range(diff.at)\n );\n continue;\n }\n // Skip zero-length added ranges.\n if (diff.from === diff.to) continue;\n out.push(\n Decoration.mark({\n attributes: { style: addedDiffStyle(dark) },\n }).range(diff.from, diff.to)\n );\n }\n return out;\n}\n\n// True when `patchPath` addresses a direct indexed child of `path`, e.g.\n// `[\"content\", 5]` is an indexed child of `[\"content\"]`.\nfunction isIndexedChildOf(\n patchPath: readonly AutomergeProp[],\n path: AutomergeProp[]\n): boolean {\n if (patchPath.length !== path.length + 1) return false;\n for (let i = 0; i < path.length; i++) {\n if (patchPath[i] !== path[i]) return false;\n }\n return typeof patchPath[path.length] === \"number\";\n}\n\nfunction lookupString(doc: unknown, path: AutomergeProp[]): string {\n let current: unknown = doc;\n for (const key of path) {\n if (current == null) return \"\";\n current = (current as Record<AutomergeProp, unknown>)[key];\n }\n return typeof current === \"string\" ? current : \"\";\n}\n\nfunction addedDiffStyle(dark: boolean): string {\n return `\n border-bottom: 2px solid ${dark ? \"#4ade80\" : \"#22c55e\"};\n background-color: ${dark ? \"#14532d\" : \"#dcfce7\"};\n `;\n}\n\nfunction prefersDarkMode(): boolean {\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n}\n\nclass DeletionMarker extends WidgetType {\n deletedText: string;\n isActive: boolean;\n\n constructor(deletedText: string, isActive: boolean) {\n super();\n this.deletedText = deletedText;\n this.isActive = isActive;\n }\n\n toDOM(): HTMLElement {\n const box = document.createElement(\"div\");\n // Pin the badge to its own metrics so a tall line-height (e.g. on heading\n // lines) can't stretch it into a vertical rectangle. `position: relative`\n // anchors the hover tooltip to the badge so it can left-align to it.\n box.style.display = \"inline-block\";\n box.style.position = \"relative\";\n box.style.lineHeight = \"1\";\n box.style.verticalAlign = \"middle\";\n box.style.boxSizing = \"border-box\";\n box.style.padding = \"2px 3px\";\n box.style.color = \"rgb(239 68 68)\"; // red-500\n box.style.margin = \"0 4px\";\n box.style.fontSize = \"1.2em\";\n box.style.whiteSpace = \"nowrap\";\n box.style.backgroundColor = this.isActive\n ? \"rgb(239 68 68 / 20%)\" // red-500 with opacity\n : \"rgb(239 68 68 / 10%)\";\n box.style.borderRadius = \"3px\";\n box.style.cursor = \"default\";\n box.innerText = \"\\u232b\";\n\n const hoverText = document.createElement(\"div\");\n hoverText.style.position = \"absolute\";\n hoverText.style.top = \"100%\";\n hoverText.style.left = \"0\";\n hoverText.style.zIndex = \"1\";\n hoverText.style.padding = \"5px\";\n hoverText.style.backgroundColor = \"rgb(254 242 242)\"; // red-50\n hoverText.style.fontSize = \"15px\";\n hoverText.style.color = \"rgb(17 24 39)\"; // gray-900\n hoverText.style.border = \"1px solid rgb(185 28 28)\"; // red-700\n hoverText.style.boxShadow = \"0px 0px 6px rgba(0, 0, 0, 0.1)\";\n hoverText.style.borderRadius = \"3px\";\n hoverText.style.visibility = \"hidden\";\n hoverText.innerText = this.deletedText;\n\n const isDarkMode =\n document.documentElement.classList.contains(\"dark\") ||\n window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n\n if (isDarkMode) {\n box.style.color = \"rgb(248 113 113)\"; // red-400 for dark mode\n box.style.backgroundColor = this.isActive\n ? \"rgb(248 113 113 / 20%)\"\n : \"rgb(248 113 113 / 10%)\";\n hoverText.style.backgroundColor = \"rgb(69 10 10)\"; // red-950\n hoverText.style.color = \"rgb(254 226 226)\"; // red-100\n hoverText.style.border = \"1px solid rgb(153 27 27)\"; // red-800\n }\n\n box.appendChild(hoverText);\n\n box.onmouseover = function () {\n hoverText.style.visibility = \"visible\";\n };\n box.onmouseout = function () {\n hoverText.style.visibility = \"hidden\";\n };\n\n return box;\n }\n\n eq(other: DeletionMarker) {\n return (\n other.deletedText === this.deletedText && other.isActive === this.isActive\n );\n }\n\n ignoreEvent() {\n return true;\n }\n}\n", "import { createEffect } from \"solid-js\";\n\n/** CodeMirror */\nimport { EditorView } from \"@codemirror/view\";\nimport { EditorSelection, type Extension } from \"@codemirror/state\";\n\n/**\n * Create a CodeMirror extension that scrolls the highlighted range into view\n * when it changes.\n *\n * Uses the \"nearest\" scroll strategy, so a highlight that's already on screen\n * is left untouched and an off-screen one is scrolled just into frame -- i.e.\n * \"scroll the highlight into view only if it isn't already there\". Handy for\n * following focus/selection driven by other views (e.g. picking a comment).\n *\n * @param target An accessor returning the [from, to] range to reveal, or null.\n * @returns A tuple of the extension and a function to create the scroll effect.\n */\nexport function createScrollHighlightIntoViewExtension(\n target: () => readonly [number, number] | null\n) {\n // Scrolling is a fire-and-forget transaction effect with no editor state to\n // hold, so there's nothing to add to the editor. The empty extension just\n // keeps the [extension, effectFactory] shape shared with the siblings.\n const extension: Extension = [];\n\n const createScrollHighlightIntoViewEffect = (view: EditorView) =>\n createEffect(() => {\n const range = target();\n if (!range) return;\n // Clamp to the live doc: a target resolved against a slightly different\n // doc revision could otherwise point past the end and throw.\n const docLength = view.state.doc.length;\n const from = Math.min(range[0], docLength);\n const to = Math.min(range[1], docLength);\n view.dispatch({\n effects: EditorView.scrollIntoView(EditorSelection.range(from, to), {\n x: \"nearest\",\n y: \"nearest\",\n }),\n });\n });\n\n return [extension, createScrollHighlightIntoViewEffect] as const;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["createEffect", "EditorView", "EditorState", "Compartment", "createEffect", "EditorView", "createEffect", "Compartment", "A", "Compartment", "createEffect", "createEffect", "Decoration", "ViewPlugin", "StateEffect", "diff", "createEffect", "EditorView", "Compartment", "EditorView", "EditorState", "createEffect"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// src/main.ts
|
|
2
|
+
var plugins = [
|
|
3
|
+
{
|
|
4
|
+
type: "patchwork:tool",
|
|
5
|
+
id: "codemirror",
|
|
6
|
+
name: "Text Editor",
|
|
7
|
+
supportedDatatypes: ["essay", "markdown"],
|
|
8
|
+
async load() {
|
|
9
|
+
const { mount } = await import("./tool.js");
|
|
10
|
+
return mount;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
];
|
|
14
|
+
export {
|
|
15
|
+
plugins
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=main.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/main.ts"],
|
|
4
|
+
"sourcesContent": ["export const plugins = [\n {\n type: \"patchwork:tool\",\n id: \"codemirror\",\n name: \"Text Editor\",\n supportedDatatypes: [\"essay\", \"markdown\"],\n async load() {\n const { mount } = await import(\"./tool.tsx\");\n return mount;\n },\n },\n];\n"],
|
|
5
|
+
"mappings": ";AAAO,IAAM,UAAU;AAAA,EACrB;AAAA,IACE,MAAM;AAAA,IACN,IAAI;AAAA,IACJ,MAAM;AAAA,IACN,oBAAoB,CAAC,SAAS,UAAU;AAAA,IACxC,MAAM,OAAO;AACX,YAAM,EAAE,MAAM,IAAI,MAAM,OAAO,WAAY;AAC3C,aAAO;AAAA,IACT;AAAA,EACF;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|