@milkdown/crepe 7.5.1 → 7.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/{index-udZSknd8.js → index-TGmNEvsj.js} +7 -7
- package/lib/cjs/index-TGmNEvsj.js.map +1 -0
- package/lib/cjs/index-fhKBUFkq.js +46 -0
- package/lib/cjs/index-fhKBUFkq.js.map +1 -0
- package/lib/cjs/{index-tqAbVyds.js → index-rLAgJeYn.js} +4 -4
- package/lib/cjs/index-rLAgJeYn.js.map +1 -0
- package/lib/cjs/index.js +3 -3
- package/lib/cjs/index.js.map +1 -1
- package/lib/esm/{index-v3rvbocl.js → index-amuALmzU.js} +2 -2
- package/lib/esm/{index-v3rvbocl.js.map → index-amuALmzU.js.map} +1 -1
- package/lib/esm/index-jU_6odT9.js +44 -0
- package/lib/esm/index-jU_6odT9.js.map +1 -0
- package/lib/esm/{index-lm00PM0y.js → index-w69wbtEZ.js} +2 -2
- package/lib/esm/{index-lm00PM0y.js.map → index-w69wbtEZ.js.map} +1 -1
- package/lib/esm/index.js +3 -3
- package/lib/esm/index.js.map +1 -1
- package/package.json +3 -5
- package/lib/cjs/apl-99bWvYTf.js +0 -145
- package/lib/cjs/apl-99bWvYTf.js.map +0 -1
- package/lib/cjs/asciiarmor-cf0JLIr_.js +0 -59
- package/lib/cjs/asciiarmor-cf0JLIr_.js.map +0 -1
- package/lib/cjs/asn1-H4XzAvBS.js +0 -195
- package/lib/cjs/asn1-H4XzAvBS.js.map +0 -1
- package/lib/cjs/asterisk-0FgJEfZB.js +0 -190
- package/lib/cjs/asterisk-0FgJEfZB.js.map +0 -1
- package/lib/cjs/brainfuck-JX7vRZy7.js +0 -73
- package/lib/cjs/brainfuck-JX7vRZy7.js.map +0 -1
- package/lib/cjs/clike-ueXlMQy5.js +0 -1034
- package/lib/cjs/clike-ueXlMQy5.js.map +0 -1
- package/lib/cjs/clojure-6iDAG5oi.js +0 -277
- package/lib/cjs/clojure-6iDAG5oi.js.map +0 -1
- package/lib/cjs/clsx-dASsG01A.js +0 -6
- package/lib/cjs/clsx-dASsG01A.js.map +0 -1
- package/lib/cjs/cmake-L0RIBnfc.js +0 -84
- package/lib/cjs/cmake-L0RIBnfc.js.map +0 -1
- package/lib/cjs/cobol-oxkMh1GJ.js +0 -238
- package/lib/cjs/cobol-oxkMh1GJ.js.map +0 -1
- package/lib/cjs/coffeescript--eauIeRQ.js +0 -332
- package/lib/cjs/coffeescript--eauIeRQ.js.map +0 -1
- package/lib/cjs/commonlisp-pgSu-q6f.js +0 -111
- package/lib/cjs/commonlisp-pgSu-q6f.js.map +0 -1
- package/lib/cjs/crystal-2y3I5ibZ.js +0 -422
- package/lib/cjs/crystal-2y3I5ibZ.js.map +0 -1
- package/lib/cjs/css-WH69cXzo.js +0 -855
- package/lib/cjs/css-WH69cXzo.js.map +0 -1
- package/lib/cjs/cypher-da-dqVyQ.js +0 -125
- package/lib/cjs/cypher-da-dqVyQ.js.map +0 -1
- package/lib/cjs/d-58J7EOkP.js +0 -208
- package/lib/cjs/d-58J7EOkP.js.map +0 -1
- package/lib/cjs/diff-437Hfzqm.js +0 -33
- package/lib/cjs/diff-437Hfzqm.js.map +0 -1
- package/lib/cjs/dockerfile-7i0OoaQe.js +0 -202
- package/lib/cjs/dockerfile-7i0OoaQe.js.map +0 -1
- package/lib/cjs/dtd-AKekCPPB.js +0 -124
- package/lib/cjs/dtd-AKekCPPB.js.map +0 -1
- package/lib/cjs/dylan-DLEmvz1I.js +0 -340
- package/lib/cjs/dylan-DLEmvz1I.js.map +0 -1
- package/lib/cjs/ebnf-36cJWqxB.js +0 -154
- package/lib/cjs/ebnf-36cJWqxB.js.map +0 -1
- package/lib/cjs/ecl-UWr5vJKJ.js +0 -193
- package/lib/cjs/ecl-UWr5vJKJ.js.map +0 -1
- package/lib/cjs/eiffel-Su-C9LAY.js +0 -149
- package/lib/cjs/eiffel-Su-C9LAY.js.map +0 -1
- package/lib/cjs/elm-vNNfVJj7.js +0 -233
- package/lib/cjs/elm-vNNfVJj7.js.map +0 -1
- package/lib/cjs/erlang-NM9dgYaS.js +0 -584
- package/lib/cjs/erlang-NM9dgYaS.js.map +0 -1
- package/lib/cjs/factor-RWs-4aWg.js +0 -68
- package/lib/cjs/factor-RWs-4aWg.js.map +0 -1
- package/lib/cjs/fcl-acUhGCfs.js +0 -157
- package/lib/cjs/fcl-acUhGCfs.js.map +0 -1
- package/lib/cjs/forth-sDkE6z3A.js +0 -167
- package/lib/cjs/forth-sDkE6z3A.js.map +0 -1
- package/lib/cjs/fortran-gkb4yvdk.js +0 -175
- package/lib/cjs/fortran-gkb4yvdk.js.map +0 -1
- package/lib/cjs/gas-mNA0qvkv.js +0 -347
- package/lib/cjs/gas-mNA0qvkv.js.map +0 -1
- package/lib/cjs/gherkin-5uyKpXXh.js +0 -150
- package/lib/cjs/gherkin-5uyKpXXh.js.map +0 -1
- package/lib/cjs/go-5XitXoIZ.js +0 -167
- package/lib/cjs/go-5XitXoIZ.js.map +0 -1
- package/lib/cjs/groovy-mz3pWMKN.js +0 -233
- package/lib/cjs/groovy-mz3pWMKN.js.map +0 -1
- package/lib/cjs/haskell-9KaSS7kb.js +0 -242
- package/lib/cjs/haskell-9KaSS7kb.js.map +0 -1
- package/lib/cjs/haxe-L8h6Pvni.js +0 -494
- package/lib/cjs/haxe-L8h6Pvni.js.map +0 -1
- package/lib/cjs/http-BFQQnRR-.js +0 -92
- package/lib/cjs/http-BFQQnRR-.js.map +0 -1
- package/lib/cjs/idl-29T-AzAy.js +0 -277
- package/lib/cjs/idl-29T-AzAy.js.map +0 -1
- package/lib/cjs/index--2zEz40J.js +0 -93
- package/lib/cjs/index--2zEz40J.js.map +0 -1
- package/lib/cjs/index-5n9R-QCl.js +0 -390
- package/lib/cjs/index-5n9R-QCl.js.map +0 -1
- package/lib/cjs/index-HEdBw63r.js +0 -428
- package/lib/cjs/index-HEdBw63r.js.map +0 -1
- package/lib/cjs/index-Hlt9dRH5.js +0 -113
- package/lib/cjs/index-Hlt9dRH5.js.map +0 -1
- package/lib/cjs/index-KCW2CzRk.js +0 -2504
- package/lib/cjs/index-KCW2CzRk.js.map +0 -1
- package/lib/cjs/index-KSZhahYb.js +0 -146
- package/lib/cjs/index-KSZhahYb.js.map +0 -1
- package/lib/cjs/index-NNo_VSEA.js +0 -684
- package/lib/cjs/index-NNo_VSEA.js.map +0 -1
- package/lib/cjs/index-O1bDbloo.js +0 -383
- package/lib/cjs/index-O1bDbloo.js.map +0 -1
- package/lib/cjs/index-OPh9naof.js +0 -141
- package/lib/cjs/index-OPh9naof.js.map +0 -1
- package/lib/cjs/index-PAhfZtcH.js +0 -517
- package/lib/cjs/index-PAhfZtcH.js.map +0 -1
- package/lib/cjs/index-PeRHVz4A.js +0 -759
- package/lib/cjs/index-PeRHVz4A.js.map +0 -1
- package/lib/cjs/index-U7GWrg-w.js +0 -25251
- package/lib/cjs/index-U7GWrg-w.js.map +0 -1
- package/lib/cjs/index-UTb0Az5e.js +0 -1877
- package/lib/cjs/index-UTb0Az5e.js.map +0 -1
- package/lib/cjs/index-UnEAyH8X.js +0 -194
- package/lib/cjs/index-UnEAyH8X.js.map +0 -1
- package/lib/cjs/index-VCkq0ru1.js +0 -188
- package/lib/cjs/index-VCkq0ru1.js.map +0 -1
- package/lib/cjs/index-WQl7Du53.js +0 -248
- package/lib/cjs/index-WQl7Du53.js.map +0 -1
- package/lib/cjs/index-ahL5MvrQ.js +0 -1014
- package/lib/cjs/index-ahL5MvrQ.js.map +0 -1
- package/lib/cjs/index-bpgWLeRY.js +0 -104
- package/lib/cjs/index-bpgWLeRY.js.map +0 -1
- package/lib/cjs/index-fZupvR_f.js +0 -341
- package/lib/cjs/index-fZupvR_f.js.map +0 -1
- package/lib/cjs/index-gSM-jgti.js +0 -449
- package/lib/cjs/index-gSM-jgti.js.map +0 -1
- package/lib/cjs/index-jlPr_A_N.js +0 -66
- package/lib/cjs/index-jlPr_A_N.js.map +0 -1
- package/lib/cjs/index-tqAbVyds.js.map +0 -1
- package/lib/cjs/index-udZSknd8.js.map +0 -1
- package/lib/cjs/index-urB-WDqA.js +0 -1030
- package/lib/cjs/index-urB-WDqA.js.map +0 -1
- package/lib/cjs/index-xWgWtxUR.js +0 -347
- package/lib/cjs/index-xWgWtxUR.js.map +0 -1
- package/lib/cjs/javascript-5-BTydbD.js +0 -928
- package/lib/cjs/javascript-5-BTydbD.js.map +0 -1
- package/lib/cjs/jinja2-BWMz4gPk.js +0 -174
- package/lib/cjs/jinja2-BWMz4gPk.js.map +0 -1
- package/lib/cjs/julia-dtR9J3KZ.js +0 -372
- package/lib/cjs/julia-dtR9J3KZ.js.map +0 -1
- package/lib/cjs/livescript-YxT0INe3.js +0 -262
- package/lib/cjs/livescript-YxT0INe3.js.map +0 -1
- package/lib/cjs/lua-h7_AXjy9.js +0 -140
- package/lib/cjs/lua-h7_AXjy9.js.map +0 -1
- package/lib/cjs/mathematica-Zc57fOr3.js +0 -156
- package/lib/cjs/mathematica-Zc57fOr3.js.map +0 -1
- package/lib/cjs/mbox-ltKsKgJd.js +0 -117
- package/lib/cjs/mbox-ltKsKgJd.js.map +0 -1
- package/lib/cjs/mirc-xTLeWqmy.js +0 -179
- package/lib/cjs/mirc-xTLeWqmy.js.map +0 -1
- package/lib/cjs/mllike-xukl-Kjp.js +0 -351
- package/lib/cjs/mllike-xukl-Kjp.js.map +0 -1
- package/lib/cjs/modelica-LsXtAawk.js +0 -195
- package/lib/cjs/modelica-LsXtAawk.js.map +0 -1
- package/lib/cjs/mscgen-9HooYIVW.js +0 -154
- package/lib/cjs/mscgen-9HooYIVW.js.map +0 -1
- package/lib/cjs/mumps-VXqGp84f.js +0 -132
- package/lib/cjs/mumps-VXqGp84f.js.map +0 -1
- package/lib/cjs/nginx-UrubUbn1.js +0 -166
- package/lib/cjs/nginx-UrubUbn1.js.map +0 -1
- package/lib/cjs/nsis-c2AYwqyy.js +0 -83
- package/lib/cjs/nsis-c2AYwqyy.js.map +0 -1
- package/lib/cjs/ntriples-N1nwiheD.js +0 -144
- package/lib/cjs/ntriples-N1nwiheD.js.map +0 -1
- package/lib/cjs/octave-ElonStfZ.js +0 -115
- package/lib/cjs/octave-ElonStfZ.js.map +0 -1
- package/lib/cjs/oz-7VQTnCfu.js +0 -238
- package/lib/cjs/oz-7VQTnCfu.js.map +0 -1
- package/lib/cjs/pascal-yq2Cb88Q.js +0 -127
- package/lib/cjs/pascal-yq2Cb88Q.js.map +0 -1
- package/lib/cjs/perl-hJq4byS9.js +0 -822
- package/lib/cjs/perl-hJq4byS9.js.map +0 -1
- package/lib/cjs/pig-2syuOlAa.js +0 -152
- package/lib/cjs/pig-2syuOlAa.js.map +0 -1
- package/lib/cjs/powershell-NDwxuSDg.js +0 -384
- package/lib/cjs/powershell-NDwxuSDg.js.map +0 -1
- package/lib/cjs/properties-wacODxDJ.js +0 -65
- package/lib/cjs/properties-wacODxDJ.js.map +0 -1
- package/lib/cjs/protobuf-zVHZwskk.js +0 -57
- package/lib/cjs/protobuf-zVHZwskk.js.map +0 -1
- package/lib/cjs/puppet-koQikqO-.js +0 -208
- package/lib/cjs/puppet-koQikqO-.js.map +0 -1
- package/lib/cjs/python-P3UsKHbj.js +0 -394
- package/lib/cjs/python-P3UsKHbj.js.map +0 -1
- package/lib/cjs/q-Z_d2uXoA.js +0 -126
- package/lib/cjs/q-Z_d2uXoA.js.map +0 -1
- package/lib/cjs/r-J6Jl9z1i.js +0 -177
- package/lib/cjs/r-J6Jl9z1i.js.map +0 -1
- package/lib/cjs/rpm-6C0Omumu.js +0 -93
- package/lib/cjs/rpm-6C0Omumu.js.map +0 -1
- package/lib/cjs/ruby-POVyUmsb.js +0 -290
- package/lib/cjs/ruby-POVyUmsb.js.map +0 -1
- package/lib/cjs/sas-vDtpSmFr.js +0 -271
- package/lib/cjs/sas-vDtpSmFr.js.map +0 -1
- package/lib/cjs/scheme-5AA5BH7S.js +0 -266
- package/lib/cjs/scheme-5AA5BH7S.js.map +0 -1
- package/lib/cjs/shell-_ztDMiW6.js +0 -148
- package/lib/cjs/shell-_ztDMiW6.js.map +0 -1
- package/lib/cjs/sieve-R_vzlbvH.js +0 -181
- package/lib/cjs/sieve-R_vzlbvH.js.map +0 -1
- package/lib/cjs/simple-mode-ZwmNbV0h.js +0 -138
- package/lib/cjs/simple-mode-ZwmNbV0h.js.map +0 -1
- package/lib/cjs/smalltalk-dWLp5zN8.js +0 -156
- package/lib/cjs/smalltalk-dWLp5zN8.js.map +0 -1
- package/lib/cjs/solr-wSmvjKI8.js +0 -83
- package/lib/cjs/solr-wSmvjKI8.js.map +0 -1
- package/lib/cjs/sparql-GNU_0xKB.js +0 -173
- package/lib/cjs/sparql-GNU_0xKB.js.map +0 -1
- package/lib/cjs/spreadsheet-BiqYLk6M.js +0 -101
- package/lib/cjs/spreadsheet-BiqYLk6M.js.map +0 -1
- package/lib/cjs/sql-9GpHBPsC.js +0 -497
- package/lib/cjs/sql-9GpHBPsC.js.map +0 -1
- package/lib/cjs/stex-1V41CNLk.js +0 -250
- package/lib/cjs/stex-1V41CNLk.js.map +0 -1
- package/lib/cjs/stylus-H6hn9z_G.js +0 -753
- package/lib/cjs/stylus-H6hn9z_G.js.map +0 -1
- package/lib/cjs/swift-Xv5f8zgN.js +0 -205
- package/lib/cjs/swift-Xv5f8zgN.js.map +0 -1
- package/lib/cjs/tcl-LI-LOw_t.js +0 -128
- package/lib/cjs/tcl-LI-LOw_t.js.map +0 -1
- package/lib/cjs/textile-3NvRPUgg.js +0 -444
- package/lib/cjs/textile-3NvRPUgg.js.map +0 -1
- package/lib/cjs/tiddlywiki-PkMzy8_R.js +0 -281
- package/lib/cjs/tiddlywiki-PkMzy8_R.js.map +0 -1
- package/lib/cjs/tiki-Zk_GnEC8.js +0 -292
- package/lib/cjs/tiki-Zk_GnEC8.js.map +0 -1
- package/lib/cjs/toml-36gJ0YCq.js +0 -78
- package/lib/cjs/toml-36gJ0YCq.js.map +0 -1
- package/lib/cjs/troff-RLZ_o61o.js +0 -67
- package/lib/cjs/troff-RLZ_o61o.js.map +0 -1
- package/lib/cjs/ttcn-cfg-twaoJYvf.js +0 -204
- package/lib/cjs/ttcn-cfg-twaoJYvf.js.map +0 -1
- package/lib/cjs/ttcn-kGwvGb2v.js +0 -260
- package/lib/cjs/ttcn-kGwvGb2v.js.map +0 -1
- package/lib/cjs/turtle-nnevat7b.js +0 -144
- package/lib/cjs/turtle-nnevat7b.js.map +0 -1
- package/lib/cjs/vb-fO_I9s3s.js +0 -252
- package/lib/cjs/vb-fO_I9s3s.js.map +0 -1
- package/lib/cjs/vbscript-HXnn40y4.js +0 -324
- package/lib/cjs/vbscript-HXnn40y4.js.map +0 -1
- package/lib/cjs/velocity-Wn-ZfFzr.js +0 -189
- package/lib/cjs/velocity-Wn-ZfFzr.js.map +0 -1
- package/lib/cjs/verilog-y1ev34z6.js +0 -569
- package/lib/cjs/verilog-y1ev34z6.js.map +0 -1
- package/lib/cjs/vhdl-LF0oeXxc.js +0 -177
- package/lib/cjs/vhdl-LF0oeXxc.js.map +0 -1
- package/lib/cjs/webidl-6kI5KbeC.js +0 -182
- package/lib/cjs/webidl-6kI5KbeC.js.map +0 -1
- package/lib/cjs/xquery-BavrmwsO.js +0 -428
- package/lib/cjs/xquery-BavrmwsO.js.map +0 -1
- package/lib/cjs/yacas-1g_AbTrl.js +0 -185
- package/lib/cjs/yacas-1g_AbTrl.js.map +0 -1
- package/lib/cjs/z80-QYzKAAp7.js +0 -106
- package/lib/cjs/z80-QYzKAAp7.js.map +0 -1
- package/lib/esm/apl-eHQxyJFn.js +0 -143
- package/lib/esm/apl-eHQxyJFn.js.map +0 -1
- package/lib/esm/asciiarmor-Z-IGYCI4.js +0 -57
- package/lib/esm/asciiarmor-Z-IGYCI4.js.map +0 -1
- package/lib/esm/asn1-gF7x-q1y.js +0 -193
- package/lib/esm/asn1-gF7x-q1y.js.map +0 -1
- package/lib/esm/asterisk-swk20ftp.js +0 -188
- package/lib/esm/asterisk-swk20ftp.js.map +0 -1
- package/lib/esm/brainfuck-IFQdiQoR.js +0 -71
- package/lib/esm/brainfuck-IFQdiQoR.js.map +0 -1
- package/lib/esm/clike-q3hUF2Cx.js +0 -1019
- package/lib/esm/clike-q3hUF2Cx.js.map +0 -1
- package/lib/esm/clojure-I2Krbr2M.js +0 -275
- package/lib/esm/clojure-I2Krbr2M.js.map +0 -1
- package/lib/esm/clsx-RxCLxYpD.js +0 -4
- package/lib/esm/clsx-RxCLxYpD.js.map +0 -1
- package/lib/esm/cmake-ewwXLeuZ.js +0 -82
- package/lib/esm/cmake-ewwXLeuZ.js.map +0 -1
- package/lib/esm/cobol-fpN1nAnR.js +0 -236
- package/lib/esm/cobol-fpN1nAnR.js.map +0 -1
- package/lib/esm/coffeescript--eTFR-bH.js +0 -330
- package/lib/esm/coffeescript--eTFR-bH.js.map +0 -1
- package/lib/esm/commonlisp-XLSwVdLc.js +0 -109
- package/lib/esm/commonlisp-XLSwVdLc.js.map +0 -1
- package/lib/esm/crystal-_r3Aa1_a.js +0 -420
- package/lib/esm/crystal-_r3Aa1_a.js.map +0 -1
- package/lib/esm/css-hgwYGMKZ.js +0 -848
- package/lib/esm/css-hgwYGMKZ.js.map +0 -1
- package/lib/esm/cypher-bbJyAa-4.js +0 -123
- package/lib/esm/cypher-bbJyAa-4.js.map +0 -1
- package/lib/esm/d-5MyulviS.js +0 -206
- package/lib/esm/d-5MyulviS.js.map +0 -1
- package/lib/esm/diff-neOaT_vk.js +0 -31
- package/lib/esm/diff-neOaT_vk.js.map +0 -1
- package/lib/esm/dockerfile-lzx42-zz.js +0 -200
- package/lib/esm/dockerfile-lzx42-zz.js.map +0 -1
- package/lib/esm/dtd-FmzPLZcQ.js +0 -122
- package/lib/esm/dtd-FmzPLZcQ.js.map +0 -1
- package/lib/esm/dylan-1HtRK4GO.js +0 -338
- package/lib/esm/dylan-1HtRK4GO.js.map +0 -1
- package/lib/esm/ebnf-Nz-pnLHy.js +0 -152
- package/lib/esm/ebnf-Nz-pnLHy.js.map +0 -1
- package/lib/esm/ecl-lQsZhQz0.js +0 -191
- package/lib/esm/ecl-lQsZhQz0.js.map +0 -1
- package/lib/esm/eiffel-R_HiEkhx.js +0 -147
- package/lib/esm/eiffel-R_HiEkhx.js.map +0 -1
- package/lib/esm/elm-KYv4VTDg.js +0 -231
- package/lib/esm/elm-KYv4VTDg.js.map +0 -1
- package/lib/esm/erlang-7YaHCBIe.js +0 -582
- package/lib/esm/erlang-7YaHCBIe.js.map +0 -1
- package/lib/esm/factor-opBU9aTK.js +0 -66
- package/lib/esm/factor-opBU9aTK.js.map +0 -1
- package/lib/esm/fcl-jm31FmFz.js +0 -155
- package/lib/esm/fcl-jm31FmFz.js.map +0 -1
- package/lib/esm/forth-5NKbjnWh.js +0 -165
- package/lib/esm/forth-5NKbjnWh.js.map +0 -1
- package/lib/esm/fortran-dXm_-cb9.js +0 -173
- package/lib/esm/fortran-dXm_-cb9.js.map +0 -1
- package/lib/esm/gas-nsYVnsy-.js +0 -344
- package/lib/esm/gas-nsYVnsy-.js.map +0 -1
- package/lib/esm/gherkin-fzKpjm3M.js +0 -148
- package/lib/esm/gherkin-fzKpjm3M.js.map +0 -1
- package/lib/esm/go-Pn1qh7yl.js +0 -165
- package/lib/esm/go-Pn1qh7yl.js.map +0 -1
- package/lib/esm/groovy-DZY-8keZ.js +0 -231
- package/lib/esm/groovy-DZY-8keZ.js.map +0 -1
- package/lib/esm/haskell-JGh2upDd.js +0 -240
- package/lib/esm/haskell-JGh2upDd.js.map +0 -1
- package/lib/esm/haxe-1hvVK-Fy.js +0 -491
- package/lib/esm/haxe-1hvVK-Fy.js.map +0 -1
- package/lib/esm/http-mY1M77wn.js +0 -90
- package/lib/esm/http-mY1M77wn.js.map +0 -1
- package/lib/esm/idl-dy_653wH.js +0 -275
- package/lib/esm/idl-dy_653wH.js.map +0 -1
- package/lib/esm/index-1NetiFdJ.js +0 -90
- package/lib/esm/index-1NetiFdJ.js.map +0 -1
- package/lib/esm/index-2I_xbjAZ.js +0 -1012
- package/lib/esm/index-2I_xbjAZ.js.map +0 -1
- package/lib/esm/index-2huXYfuJ.js +0 -138
- package/lib/esm/index-2huXYfuJ.js.map +0 -1
- package/lib/esm/index-4x6_TVZv.js +0 -100
- package/lib/esm/index-4x6_TVZv.js.map +0 -1
- package/lib/esm/index-A-dNwMMf.js +0 -1872
- package/lib/esm/index-A-dNwMMf.js.map +0 -1
- package/lib/esm/index-AV99ipmP.js +0 -446
- package/lib/esm/index-AV99ipmP.js.map +0 -1
- package/lib/esm/index-PC2bahtq.js +0 -110
- package/lib/esm/index-PC2bahtq.js.map +0 -1
- package/lib/esm/index-QBYz82jZ.js +0 -378
- package/lib/esm/index-QBYz82jZ.js.map +0 -1
- package/lib/esm/index-W1pAMr_8.js +0 -142
- package/lib/esm/index-W1pAMr_8.js.map +0 -1
- package/lib/esm/index-Xzdc2jbA.js +0 -25207
- package/lib/esm/index-Xzdc2jbA.js.map +0 -1
- package/lib/esm/index-ZAtZWqJQ.js +0 -191
- package/lib/esm/index-ZAtZWqJQ.js.map +0 -1
- package/lib/esm/index-bnSKBrbD.js +0 -386
- package/lib/esm/index-bnSKBrbD.js.map +0 -1
- package/lib/esm/index-ftnOhuRS.js +0 -244
- package/lib/esm/index-ftnOhuRS.js.map +0 -1
- package/lib/esm/index-iQPB0Rdl.js +0 -343
- package/lib/esm/index-iQPB0Rdl.js.map +0 -1
- package/lib/esm/index-kPj3-TKp.js +0 -63
- package/lib/esm/index-kPj3-TKp.js.map +0 -1
- package/lib/esm/index-kgOR7SZ6.js +0 -336
- package/lib/esm/index-kgOR7SZ6.js.map +0 -1
- package/lib/esm/index-m49Bj3q7.js +0 -185
- package/lib/esm/index-m49Bj3q7.js.map +0 -1
- package/lib/esm/index-sWVjGw-3.js +0 -2497
- package/lib/esm/index-sWVjGw-3.js.map +0 -1
- package/lib/esm/index-twh8lL5o.js +0 -671
- package/lib/esm/index-twh8lL5o.js.map +0 -1
- package/lib/esm/index-v02MCz4_.js +0 -744
- package/lib/esm/index-v02MCz4_.js.map +0 -1
- package/lib/esm/index-wEXT8mbN.js +0 -512
- package/lib/esm/index-wEXT8mbN.js.map +0 -1
- package/lib/esm/index-wFIac5Kw.js +0 -1023
- package/lib/esm/index-wFIac5Kw.js.map +0 -1
- package/lib/esm/index-wg94ewRo.js +0 -425
- package/lib/esm/index-wg94ewRo.js.map +0 -1
- package/lib/esm/javascript-TMTz-YQH.js +0 -923
- package/lib/esm/javascript-TMTz-YQH.js.map +0 -1
- package/lib/esm/jinja2-sRIdliZK.js +0 -172
- package/lib/esm/jinja2-sRIdliZK.js.map +0 -1
- package/lib/esm/julia-fK0wmpGL.js +0 -370
- package/lib/esm/julia-fK0wmpGL.js.map +0 -1
- package/lib/esm/livescript-FRbAot3D.js +0 -260
- package/lib/esm/livescript-FRbAot3D.js.map +0 -1
- package/lib/esm/lua-t4FHEjvK.js +0 -138
- package/lib/esm/lua-t4FHEjvK.js.map +0 -1
- package/lib/esm/mathematica-sn_KGlYj.js +0 -154
- package/lib/esm/mathematica-sn_KGlYj.js.map +0 -1
- package/lib/esm/mbox-KvVC319E.js +0 -115
- package/lib/esm/mbox-KvVC319E.js.map +0 -1
- package/lib/esm/mirc-PzJ0zKSk.js +0 -177
- package/lib/esm/mirc-PzJ0zKSk.js.map +0 -1
- package/lib/esm/mllike-ZK411xkN.js +0 -347
- package/lib/esm/mllike-ZK411xkN.js.map +0 -1
- package/lib/esm/modelica-ZaHlRCbp.js +0 -193
- package/lib/esm/modelica-ZaHlRCbp.js.map +0 -1
- package/lib/esm/mscgen-Kkq4o4Zm.js +0 -150
- package/lib/esm/mscgen-Kkq4o4Zm.js.map +0 -1
- package/lib/esm/mumps-M8a87-rl.js +0 -130
- package/lib/esm/mumps-M8a87-rl.js.map +0 -1
- package/lib/esm/nginx-2LJIX23E.js +0 -164
- package/lib/esm/nginx-2LJIX23E.js.map +0 -1
- package/lib/esm/nsis-zvfFgMLi.js +0 -81
- package/lib/esm/nsis-zvfFgMLi.js.map +0 -1
- package/lib/esm/ntriples-tVkHy5bk.js +0 -142
- package/lib/esm/ntriples-tVkHy5bk.js.map +0 -1
- package/lib/esm/octave-mE4T5MF5.js +0 -113
- package/lib/esm/octave-mE4T5MF5.js.map +0 -1
- package/lib/esm/oz-q-LCsuVg.js +0 -236
- package/lib/esm/oz-q-LCsuVg.js.map +0 -1
- package/lib/esm/pascal-0IgUAn4C.js +0 -125
- package/lib/esm/pascal-0IgUAn4C.js.map +0 -1
- package/lib/esm/perl-AqxdYGac.js +0 -820
- package/lib/esm/perl-AqxdYGac.js.map +0 -1
- package/lib/esm/pig-ESM-IjQj.js +0 -150
- package/lib/esm/pig-ESM-IjQj.js.map +0 -1
- package/lib/esm/powershell-CLFP0L55.js +0 -382
- package/lib/esm/powershell-CLFP0L55.js.map +0 -1
- package/lib/esm/properties-oWHNzvb9.js +0 -63
- package/lib/esm/properties-oWHNzvb9.js.map +0 -1
- package/lib/esm/protobuf-c7eMmdcc.js +0 -55
- package/lib/esm/protobuf-c7eMmdcc.js.map +0 -1
- package/lib/esm/puppet-FjzvdRJr.js +0 -206
- package/lib/esm/puppet-FjzvdRJr.js.map +0 -1
- package/lib/esm/python-3Pv0tnvt.js +0 -390
- package/lib/esm/python-3Pv0tnvt.js.map +0 -1
- package/lib/esm/q-IImW8da6.js +0 -124
- package/lib/esm/q-IImW8da6.js.map +0 -1
- package/lib/esm/r-CnEkTvR0.js +0 -175
- package/lib/esm/r-CnEkTvR0.js.map +0 -1
- package/lib/esm/rpm-Q55-fEHj.js +0 -90
- package/lib/esm/rpm-Q55-fEHj.js.map +0 -1
- package/lib/esm/ruby-zhaGB3Kh.js +0 -288
- package/lib/esm/ruby-zhaGB3Kh.js.map +0 -1
- package/lib/esm/sas-Ur9jZIOV.js +0 -269
- package/lib/esm/sas-Ur9jZIOV.js.map +0 -1
- package/lib/esm/scheme-daT5-Rya.js +0 -264
- package/lib/esm/scheme-daT5-Rya.js.map +0 -1
- package/lib/esm/shell-cwFL0AYP.js +0 -146
- package/lib/esm/shell-cwFL0AYP.js.map +0 -1
- package/lib/esm/sieve-MlNXFFUq.js +0 -179
- package/lib/esm/sieve-MlNXFFUq.js.map +0 -1
- package/lib/esm/simple-mode-m1rsX7Gw.js +0 -136
- package/lib/esm/simple-mode-m1rsX7Gw.js.map +0 -1
- package/lib/esm/smalltalk-xrQICp9e.js +0 -154
- package/lib/esm/smalltalk-xrQICp9e.js.map +0 -1
- package/lib/esm/solr-PU3oPgQz.js +0 -81
- package/lib/esm/solr-PU3oPgQz.js.map +0 -1
- package/lib/esm/sparql--u8NRBii.js +0 -171
- package/lib/esm/sparql--u8NRBii.js.map +0 -1
- package/lib/esm/spreadsheet-QCp0LifX.js +0 -99
- package/lib/esm/spreadsheet-QCp0LifX.js.map +0 -1
- package/lib/esm/sql-dsGfl64h.js +0 -482
- package/lib/esm/sql-dsGfl64h.js.map +0 -1
- package/lib/esm/stex-WcLBzvkD.js +0 -247
- package/lib/esm/stex-WcLBzvkD.js.map +0 -1
- package/lib/esm/stylus--A5XAqOX.js +0 -751
- package/lib/esm/stylus--A5XAqOX.js.map +0 -1
- package/lib/esm/swift-qAm73i7G.js +0 -203
- package/lib/esm/swift-qAm73i7G.js.map +0 -1
- package/lib/esm/tcl-Kdc7qxc-.js +0 -126
- package/lib/esm/tcl-Kdc7qxc-.js.map +0 -1
- package/lib/esm/textile--sz8UrIz.js +0 -442
- package/lib/esm/textile--sz8UrIz.js.map +0 -1
- package/lib/esm/tiddlywiki-xNXTeBlQ.js +0 -279
- package/lib/esm/tiddlywiki-xNXTeBlQ.js.map +0 -1
- package/lib/esm/tiki-LCXjrNH3.js +0 -290
- package/lib/esm/tiki-LCXjrNH3.js.map +0 -1
- package/lib/esm/toml-Ac4tlBMn.js +0 -76
- package/lib/esm/toml-Ac4tlBMn.js.map +0 -1
- package/lib/esm/troff-LLW1x1Yz.js +0 -65
- package/lib/esm/troff-LLW1x1Yz.js.map +0 -1
- package/lib/esm/ttcn-ZYZ9FS3u.js +0 -258
- package/lib/esm/ttcn-ZYZ9FS3u.js.map +0 -1
- package/lib/esm/ttcn-cfg-qsvf3MfB.js +0 -202
- package/lib/esm/ttcn-cfg-qsvf3MfB.js.map +0 -1
- package/lib/esm/turtle-wq3TqOth.js +0 -142
- package/lib/esm/turtle-wq3TqOth.js.map +0 -1
- package/lib/esm/vb-86M_JuNP.js +0 -250
- package/lib/esm/vb-86M_JuNP.js.map +0 -1
- package/lib/esm/vbscript-GueAeVug.js +0 -321
- package/lib/esm/vbscript-GueAeVug.js.map +0 -1
- package/lib/esm/velocity-7PW9GXO2.js +0 -187
- package/lib/esm/velocity-7PW9GXO2.js.map +0 -1
- package/lib/esm/verilog-PXtXH14C.js +0 -566
- package/lib/esm/verilog-PXtXH14C.js.map +0 -1
- package/lib/esm/vhdl-I8eyK83X.js +0 -175
- package/lib/esm/vhdl-I8eyK83X.js.map +0 -1
- package/lib/esm/webidl-1f8ATJ66.js +0 -180
- package/lib/esm/webidl-1f8ATJ66.js.map +0 -1
- package/lib/esm/xquery-IYp28Wx6.js +0 -426
- package/lib/esm/xquery-IYp28Wx6.js.map +0 -1
- package/lib/esm/yacas-wkENB05f.js +0 -183
- package/lib/esm/yacas-wkENB05f.js.map +0 -1
- package/lib/esm/z80-GaXiLdiV.js +0 -103
- package/lib/esm/z80-GaXiLdiV.js.map +0 -1
|
@@ -6,7 +6,7 @@ var index = require('./index-z6pe2alg.js');
|
|
|
6
6
|
var atomico = require('atomico');
|
|
7
7
|
var core = require('@milkdown/kit/core');
|
|
8
8
|
var commonmark = require('@milkdown/kit/preset/commonmark');
|
|
9
|
-
var clsx = require('
|
|
9
|
+
var clsx = require('clsx');
|
|
10
10
|
var linkTooltip = require('@milkdown/kit/component/link-tooltip');
|
|
11
11
|
var gfm = require('@milkdown/kit/preset/gfm');
|
|
12
12
|
var todoList = require('./todoList-YYRQo7wG.js');
|
|
@@ -36,7 +36,7 @@ const toolbarComponent = ({
|
|
|
36
36
|
};
|
|
37
37
|
return atomico.html`<host>
|
|
38
38
|
<button
|
|
39
|
-
class=${clsx
|
|
39
|
+
class=${clsx("toolbar-item", ctx && isActive(commonmark.strongSchema.type(ctx)) && "active")}
|
|
40
40
|
onmousedown=${onClick((ctx2) => {
|
|
41
41
|
const commands = ctx2.get(core.commandsCtx);
|
|
42
42
|
commands.call(commonmark.toggleStrongCommand.key);
|
|
@@ -45,7 +45,7 @@ const toolbarComponent = ({
|
|
|
45
45
|
${(_b = (_a = config == null ? void 0 : config.boldIcon) == null ? void 0 : _a.call(config)) != null ? _b : todoList.boldIcon}
|
|
46
46
|
</button>
|
|
47
47
|
<button
|
|
48
|
-
class=${clsx
|
|
48
|
+
class=${clsx("toolbar-item", ctx && isActive(commonmark.emphasisSchema.type(ctx)) && "active")}
|
|
49
49
|
onmousedown=${onClick((ctx2) => {
|
|
50
50
|
const commands = ctx2.get(core.commandsCtx);
|
|
51
51
|
commands.call(commonmark.toggleEmphasisCommand.key);
|
|
@@ -54,7 +54,7 @@ const toolbarComponent = ({
|
|
|
54
54
|
${(_d = (_c = config == null ? void 0 : config.italicIcon) == null ? void 0 : _c.call(config)) != null ? _d : todoList.italicIcon}
|
|
55
55
|
</button>
|
|
56
56
|
<button
|
|
57
|
-
class=${clsx
|
|
57
|
+
class=${clsx("toolbar-item", ctx && isActive(gfm.strikethroughSchema.type(ctx)) && "active")}
|
|
58
58
|
onmousedown=${onClick((ctx2) => {
|
|
59
59
|
const commands = ctx2.get(core.commandsCtx);
|
|
60
60
|
commands.call(gfm.toggleStrikethroughCommand.key);
|
|
@@ -64,7 +64,7 @@ const toolbarComponent = ({
|
|
|
64
64
|
</button>
|
|
65
65
|
<div class="divider"></div>
|
|
66
66
|
<button
|
|
67
|
-
class=${clsx
|
|
67
|
+
class=${clsx("toolbar-item", ctx && isActive(commonmark.inlineCodeSchema.type(ctx)) && "active")}
|
|
68
68
|
onmousedown=${onClick((ctx2) => {
|
|
69
69
|
const commands = ctx2.get(core.commandsCtx);
|
|
70
70
|
commands.call(commonmark.toggleInlineCodeCommand.key);
|
|
@@ -73,7 +73,7 @@ const toolbarComponent = ({
|
|
|
73
73
|
${(_h = (_g = config == null ? void 0 : config.codeIcon) == null ? void 0 : _g.call(config)) != null ? _h : todoList.codeIcon}
|
|
74
74
|
</button>
|
|
75
75
|
<button
|
|
76
|
-
class=${clsx
|
|
76
|
+
class=${clsx("toolbar-item", ctx && isActive(commonmark.linkSchema.type(ctx)) && "active")}
|
|
77
77
|
onmousedown=${onClick((ctx2) => {
|
|
78
78
|
const view = ctx2.get(core.editorViewCtx);
|
|
79
79
|
const { selection } = view.state;
|
|
@@ -164,4 +164,4 @@ const defineFeature = (editor, config) => {
|
|
|
164
164
|
};
|
|
165
165
|
|
|
166
166
|
exports.defineFeature = defineFeature;
|
|
167
|
-
//# sourceMappingURL=index-
|
|
167
|
+
//# sourceMappingURL=index-TGmNEvsj.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-TGmNEvsj.js","sources":["../../src/feature/toolbar/component.ts","../../src/feature/toolbar/index.ts"],"sourcesContent":["import type { Component } from 'atomico'\nimport { c, html, useEffect, useUpdate } from 'atomico'\nimport type { Ctx } from '@milkdown/kit/ctx'\nimport { commandsCtx, editorViewCtx } from '@milkdown/kit/core'\nimport {\n emphasisSchema,\n inlineCodeSchema,\n linkSchema,\n strongSchema,\n toggleEmphasisCommand,\n toggleInlineCodeCommand,\n toggleStrongCommand,\n} from '@milkdown/kit/preset/commonmark'\nimport type { MarkType } from '@milkdown/kit/prose/model'\nimport clsx from 'clsx'\nimport { linkTooltipAPI } from '@milkdown/kit/component/link-tooltip'\nimport { strikethroughSchema, toggleStrikethroughCommand } from '@milkdown/kit/preset/gfm'\nimport { boldIcon, codeIcon, italicIcon, linkIcon, strikethroughIcon } from '../../icons'\nimport type { ToolbarFeatureConfig } from './index'\n\nexport interface ToolbarProps {\n ctx: Ctx\n hide: () => void\n show: boolean\n config?: ToolbarFeatureConfig\n}\n\nexport const toolbarComponent: Component<ToolbarProps> = ({\n ctx,\n hide,\n show,\n config,\n}) => {\n const update = useUpdate()\n useEffect(() => {\n update()\n }, [show])\n\n const onClick = (fn: (ctx: Ctx) => void) => (e: MouseEvent) => {\n e.preventDefault()\n ctx && fn(ctx)\n update()\n }\n\n const isActive = (mark: MarkType) => {\n if (!ctx)\n return false\n const view = ctx.get(editorViewCtx)\n const { state: { doc, selection } } = view\n return doc.rangeHasMark(selection.from, selection.to, mark)\n }\n\n return html`<host>\n <button\n class=${clsx('toolbar-item', ctx && isActive(strongSchema.type(ctx)) && 'active')}\n onmousedown=${onClick((ctx) => {\n const commands = ctx.get(commandsCtx)\n commands.call(toggleStrongCommand.key)\n })}\n >\n ${config?.boldIcon?.() ?? boldIcon}\n </button>\n <button\n class=${clsx('toolbar-item', ctx && isActive(emphasisSchema.type(ctx)) && 'active')}\n onmousedown=${onClick((ctx) => {\n const commands = ctx.get(commandsCtx)\n commands.call(toggleEmphasisCommand.key)\n })}\n >\n ${config?.italicIcon?.() ?? italicIcon}\n </button>\n <button\n class=${clsx('toolbar-item', ctx && isActive(strikethroughSchema.type(ctx)) && 'active')}\n onmousedown=${onClick((ctx) => {\n const commands = ctx.get(commandsCtx)\n commands.call(toggleStrikethroughCommand.key)\n })}\n >\n ${config?.strikethroughIcon?.() ?? strikethroughIcon}\n </button>\n <div class=\"divider\"></div>\n <button\n class=${clsx('toolbar-item', ctx && isActive(inlineCodeSchema.type(ctx)) && 'active')}\n onmousedown=${onClick((ctx) => {\n const commands = ctx.get(commandsCtx)\n commands.call(toggleInlineCodeCommand.key)\n })}\n >\n ${config?.codeIcon?.() ?? codeIcon}\n </button>\n <button\n class=${clsx('toolbar-item', ctx && isActive(linkSchema.type(ctx)) && 'active')}\n onmousedown=${onClick((ctx) => {\n const view = ctx.get(editorViewCtx)\n const { selection } = view.state\n\n if (isActive(linkSchema.type(ctx))) {\n ctx.get(linkTooltipAPI.key).removeLink(selection.from, selection.to)\n return\n }\n\n ctx.get(linkTooltipAPI.key).addLink(selection.from, selection.to)\n hide?.()\n })}\n >\n ${config?.linkIcon?.() ?? linkIcon}\n </button>\n </host>`\n}\n\ntoolbarComponent.props = {\n ctx: Object,\n hide: Function,\n show: Boolean,\n config: Object,\n}\n\nexport const ToolbarElement = c(toolbarComponent)\n","import { TooltipProvider, tooltipFactory } from '@milkdown/kit/plugin/tooltip'\nimport type { EditorState, PluginView } from '@milkdown/kit/prose/state'\nimport { TextSelection } from '@milkdown/kit/prose/state'\nimport type { Ctx } from '@milkdown/kit/ctx'\nimport type { EditorView } from '@milkdown/kit/prose/view'\nimport type { AtomicoThis } from 'atomico/types/dom'\nimport type { DefineFeature, Icon } from '../shared'\nimport { defIfNotExists } from '../../utils'\nimport type { ToolbarProps } from './component'\nimport { ToolbarElement } from './component'\n\ninterface ToolbarConfig {\n boldIcon: Icon\n codeIcon: Icon\n italicIcon: Icon\n linkIcon: Icon\n strikethroughIcon: Icon\n}\n\nexport type ToolbarFeatureConfig = Partial<ToolbarConfig>\n\nconst toolbar = tooltipFactory('CREPE_TOOLBAR')\n\nclass ToolbarView implements PluginView {\n #tooltipProvider: TooltipProvider\n #content: AtomicoThis<ToolbarProps>\n constructor(ctx: Ctx, view: EditorView, config?: ToolbarFeatureConfig) {\n const content = new ToolbarElement()\n this.#content = content\n this.#content.ctx = ctx\n this.#content.hide = this.hide\n this.#content.config = config\n\n this.#tooltipProvider = new TooltipProvider({\n content: this.#content,\n debounce: 20,\n offset: 10,\n shouldShow(view: EditorView) {\n const { doc, selection } = view.state\n const { empty, from, to } = selection\n\n const isEmptyTextBlock = !doc.textBetween(from, to).length && selection instanceof TextSelection\n\n const isNotTextBlock = !(selection instanceof TextSelection)\n\n const activeElement = (view.dom.getRootNode() as ShadowRoot | Document).activeElement\n const isTooltipChildren = content.contains(activeElement)\n\n const notHasFocus = !view.hasFocus() && !isTooltipChildren\n\n const isReadonly = !view.editable\n\n if (\n notHasFocus\n || isNotTextBlock\n || empty\n || isEmptyTextBlock\n || isReadonly\n )\n return false\n\n return true\n },\n })\n this.#tooltipProvider.onShow = () => {\n this.#content.show = true\n }\n this.#tooltipProvider.onHide = () => {\n this.#content.show = false\n }\n this.update(view)\n }\n\n update = (view: EditorView, prevState?: EditorState) => {\n this.#tooltipProvider.update(view, prevState)\n }\n\n destroy = () => {\n this.#tooltipProvider.destroy()\n this.#content.remove()\n }\n\n hide = () => {\n this.#tooltipProvider.hide()\n }\n}\n\ndefIfNotExists('milkdown-toolbar', ToolbarElement)\nexport const defineFeature: DefineFeature<ToolbarFeatureConfig> = (editor, config) => {\n editor\n .config((ctx) => {\n ctx.set(toolbar.key, {\n view: view => new ToolbarView(ctx, view, config),\n })\n })\n .use(toolbar)\n}\n"],"names":["useUpdate","useEffect","editorViewCtx","html","strongSchema","ctx","commandsCtx","toggleStrongCommand","boldIcon","emphasisSchema","toggleEmphasisCommand","italicIcon","strikethroughSchema","toggleStrikethroughCommand","strikethroughIcon","inlineCodeSchema","toggleInlineCodeCommand","codeIcon","linkSchema","linkTooltipAPI","linkIcon","c","tooltipFactory","TooltipProvider","view","TextSelection","defIfNotExists"],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var codeBlock = require('@milkdown/kit/component/code-block');
|
|
4
|
+
var codemirror = require('codemirror');
|
|
5
|
+
var view = require('@codemirror/view');
|
|
6
|
+
var commands = require('@codemirror/commands');
|
|
7
|
+
var todoList = require('./todoList-YYRQo7wG.js');
|
|
8
|
+
require('atomico');
|
|
9
|
+
|
|
10
|
+
const defineFeature = (editor, config = {}) => {
|
|
11
|
+
editor.config(async (ctx) => {
|
|
12
|
+
let {
|
|
13
|
+
languages,
|
|
14
|
+
theme
|
|
15
|
+
} = config;
|
|
16
|
+
if (!languages) {
|
|
17
|
+
const { languages: langList } = await import('@codemirror/language-data');
|
|
18
|
+
languages = langList;
|
|
19
|
+
}
|
|
20
|
+
if (!theme) {
|
|
21
|
+
const { nord } = await import('@uiw/codemirror-theme-nord');
|
|
22
|
+
theme = nord;
|
|
23
|
+
}
|
|
24
|
+
ctx.update(codeBlock.codeBlockConfig.key, (defaultConfig) => {
|
|
25
|
+
var _a;
|
|
26
|
+
return {
|
|
27
|
+
extensions: [
|
|
28
|
+
view.keymap.of(commands.defaultKeymap.concat(commands.indentWithTab)),
|
|
29
|
+
codemirror.basicSetup,
|
|
30
|
+
theme,
|
|
31
|
+
...(_a = config == null ? void 0 : config.extensions) != null ? _a : []
|
|
32
|
+
],
|
|
33
|
+
languages,
|
|
34
|
+
expandIcon: config.expandIcon || (() => todoList.chevronDownIcon),
|
|
35
|
+
searchIcon: config.searchIcon || (() => todoList.searchIcon),
|
|
36
|
+
clearSearchIcon: config.clearSearchIcon || (() => todoList.clearIcon),
|
|
37
|
+
searchPlaceholder: config.searchPlaceholder || "Search language",
|
|
38
|
+
noResultText: config.noResultText || "No result",
|
|
39
|
+
renderLanguage: config.renderLanguage || defaultConfig.renderLanguage
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
}).use(codeBlock.codeBlockComponent);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
exports.defineFeature = defineFeature;
|
|
46
|
+
//# sourceMappingURL=index-fhKBUFkq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-fhKBUFkq.js","sources":["../../src/feature/code-mirror/index.ts"],"sourcesContent":["import { codeBlockComponent, codeBlockConfig } from '@milkdown/kit/component/code-block'\nimport type { LanguageDescription } from '@codemirror/language'\nimport type { Extension } from '@codemirror/state'\nimport { basicSetup } from 'codemirror'\nimport { keymap } from '@codemirror/view'\nimport { defaultKeymap, indentWithTab } from '@codemirror/commands'\nimport type { html } from 'atomico'\nimport type { DefineFeature, Icon } from '../shared'\nimport { chevronDownIcon, clearIcon, searchIcon } from '../../icons'\n\ninterface CodeMirrorConfig {\n extensions: Extension[]\n languages: LanguageDescription[]\n theme: Extension\n\n expandIcon: Icon\n searchIcon: Icon\n clearSearchIcon: Icon\n\n searchPlaceholder: string\n noResultText: string\n\n renderLanguage: (language: string, selected: boolean) => ReturnType<typeof html> | string | HTMLElement\n}\nexport type CodeMirrorFeatureConfig = Partial<CodeMirrorConfig>\n\nexport const defineFeature: DefineFeature<CodeMirrorFeatureConfig> = (editor, config = {}) => {\n editor\n .config(async (ctx) => {\n let {\n languages,\n theme,\n } = config\n if (!languages) {\n const { languages: langList } = await import('@codemirror/language-data')\n languages = langList\n }\n if (!theme) {\n const { nord } = await import('@uiw/codemirror-theme-nord')\n theme = nord\n }\n ctx.update(codeBlockConfig.key, defaultConfig => ({\n extensions: [\n keymap.of(defaultKeymap.concat(indentWithTab)),\n basicSetup,\n theme,\n ...config?.extensions ?? [],\n ],\n languages,\n\n expandIcon: config.expandIcon || (() => chevronDownIcon),\n searchIcon: config.searchIcon || (() => searchIcon),\n clearSearchIcon: config.clearSearchIcon || (() => clearIcon),\n searchPlaceholder: config.searchPlaceholder || 'Search language',\n noResultText: config.noResultText || 'No result',\n renderLanguage: config.renderLanguage || defaultConfig.renderLanguage,\n }))\n })\n .use(codeBlockComponent)\n}\n"],"names":["codeBlockConfig","keymap","defaultKeymap","indentWithTab","basicSetup","chevronDownIcon","searchIcon","clearIcon","codeBlockComponent"],"mappings":";;;;;;;;;AA0BO,MAAM,aAAwD,GAAA,CAAC,MAAQ,EAAA,MAAA,GAAS,EAAO,KAAA;AAC5F,EACG,MAAA,CAAA,MAAA,CAAO,OAAO,GAAQ,KAAA;AACrB,IAAI,IAAA;AAAA,MACF,SAAA;AAAA,MACA,KAAA;AAAA,KACE,GAAA,MAAA,CAAA;AACJ,IAAA,IAAI,CAAC,SAAW,EAAA;AACd,MAAA,MAAM,EAAE,SAAW,EAAA,QAAA,EAAa,GAAA,MAAM,OAAO,2BAA2B,CAAA,CAAA;AACxE,MAAY,SAAA,GAAA,QAAA,CAAA;AAAA,KACd;AACA,IAAA,IAAI,CAAC,KAAO,EAAA;AACV,MAAA,MAAM,EAAE,IAAA,EAAS,GAAA,MAAM,OAAO,4BAA4B,CAAA,CAAA;AAC1D,MAAQ,KAAA,GAAA,IAAA,CAAA;AAAA,KACV;AACA,IAAI,GAAA,CAAA,MAAA,CAAOA,yBAAgB,CAAA,GAAA,EAAK,CAAc,aAAA,KAAA;AAzCpD,MAAA,IAAA,EAAA,CAAA;AAyCwD,MAAA,OAAA;AAAA,QAChD,UAAY,EAAA;AAAA,UACVC,WAAO,CAAA,EAAA,CAAGC,sBAAc,CAAA,MAAA,CAAOC,sBAAa,CAAC,CAAA;AAAA,UAC7CC,qBAAA;AAAA,UACA,KAAA;AAAA,UACA,GAAG,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAQ,UAAR,KAAA,IAAA,GAAA,EAAA,GAAsB,EAAC;AAAA,SAC5B;AAAA,QACA,SAAA;AAAA,QAEA,UAAA,EAAY,MAAO,CAAA,UAAA,KAAe,MAAMC,wBAAA,CAAA;AAAA,QACxC,UAAA,EAAY,MAAO,CAAA,UAAA,KAAe,MAAMC,mBAAA,CAAA;AAAA,QACxC,eAAA,EAAiB,MAAO,CAAA,eAAA,KAAoB,MAAMC,kBAAA,CAAA;AAAA,QAClD,iBAAA,EAAmB,OAAO,iBAAqB,IAAA,iBAAA;AAAA,QAC/C,YAAA,EAAc,OAAO,YAAgB,IAAA,WAAA;AAAA,QACrC,cAAA,EAAgB,MAAO,CAAA,cAAA,IAAkB,aAAc,CAAA,cAAA;AAAA,OACzD,CAAA;AAAA,KAAE,CAAA,CAAA;AAAA,GACH,CACA,CAAA,GAAA,CAAIC,4BAAkB,CAAA,CAAA;AAC3B;;;;"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var listItemBlock = require('@milkdown/kit/component/list-item-block');
|
|
4
4
|
var atomico = require('atomico');
|
|
5
|
-
var clsx = require('
|
|
5
|
+
var clsx = require('clsx');
|
|
6
6
|
var todoList = require('./todoList-YYRQo7wG.js');
|
|
7
7
|
|
|
8
8
|
function configureListItem(ctx, config) {
|
|
@@ -15,8 +15,8 @@ function configureListItem(ctx, config) {
|
|
|
15
15
|
return atomico.html`<span class='label'>${label}</span>`;
|
|
16
16
|
}
|
|
17
17
|
if (checked)
|
|
18
|
-
return atomico.html`<span class=${clsx
|
|
19
|
-
return atomico.html`<span class=${clsx
|
|
18
|
+
return atomico.html`<span class=${clsx("label checkbox", readonly && "readonly")}>${(_d = (_c = config == null ? void 0 : config.checkBoxCheckedIcon) == null ? void 0 : _c.call(config)) != null ? _d : todoList.checkBoxCheckedIcon}</span>`;
|
|
19
|
+
return atomico.html`<span class=${clsx("label checkbox", readonly && "readonly")}>${(_f = (_e = config == null ? void 0 : config.checkBoxUncheckedIcon) == null ? void 0 : _e.call(config)) != null ? _f : todoList.checkBoxUncheckedIcon}</span>`;
|
|
20
20
|
}
|
|
21
21
|
});
|
|
22
22
|
}
|
|
@@ -25,4 +25,4 @@ const defineFeature = (editor, config) => {
|
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
exports.defineFeature = defineFeature;
|
|
28
|
-
//# sourceMappingURL=index-
|
|
28
|
+
//# sourceMappingURL=index-rLAgJeYn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-rLAgJeYn.js","sources":["../../src/feature/list-item/index.ts"],"sourcesContent":["import type { Ctx } from '@milkdown/kit/ctx'\nimport { listItemBlockComponent, listItemBlockConfig } from '@milkdown/kit/component/list-item-block'\nimport { html } from 'atomico'\nimport clsx from 'clsx'\nimport type { DefineFeature, Icon } from '../shared'\nimport { bulletIcon, checkBoxCheckedIcon, checkBoxUncheckedIcon } from '../../icons'\n\nexport interface ListItemConfig {\n bulletIcon: Icon\n checkBoxCheckedIcon: Icon\n checkBoxUncheckedIcon: Icon\n}\n\nexport type ListItemFeatureConfig = Partial<ListItemConfig>\n\nfunction configureListItem(ctx: Ctx, config?: ListItemFeatureConfig) {\n ctx.set(listItemBlockConfig.key, {\n renderLabel: ({ label, listType, checked, readonly }) => {\n if (checked == null) {\n if (listType === 'bullet')\n return html`<span class='label'>${config?.bulletIcon?.() ?? bulletIcon}</span>`\n\n return html`<span class='label'>${label}</span>`\n }\n\n if (checked)\n return html`<span class=${clsx('label checkbox', readonly && 'readonly')}>${config?.checkBoxCheckedIcon?.() ?? checkBoxCheckedIcon}</span>`\n\n return html`<span class=${clsx('label checkbox', readonly && 'readonly')}>${config?.checkBoxUncheckedIcon?.() ?? checkBoxUncheckedIcon}</span>`\n },\n })\n}\n\nexport const defineFeature: DefineFeature<ListItemFeatureConfig> = (editor, config) => {\n editor\n .config(ctx => configureListItem(ctx, config))\n .use(listItemBlockComponent)\n}\n"],"names":["listItemBlockConfig","html","bulletIcon","checkBoxCheckedIcon","checkBoxUncheckedIcon","listItemBlockComponent"],"mappings":";;;;;;;AAeA,SAAS,iBAAA,CAAkB,KAAU,MAAgC,EAAA;AACnE,EAAI,GAAA,CAAA,GAAA,CAAIA,kCAAoB,GAAK,EAAA;AAAA,IAC/B,aAAa,CAAC,EAAE,OAAO,QAAU,EAAA,OAAA,EAAS,UAAe,KAAA;AAjB7D,MAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AAkBM,MAAA,IAAI,WAAW,IAAM,EAAA;AACnB,QAAA,IAAI,QAAa,KAAA,QAAA;AACf,UAAA,OAAOC,YAA2B,CAAA,oBAAA,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAQ,UAAR,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,CAAA,KAAA,IAAA,GAAA,EAAA,GAA0BC,mBAAU,CAAA,OAAA,CAAA,CAAA;AAExE,QAAA,OAAOD,mCAA2B,KAAK,CAAA,OAAA,CAAA,CAAA;AAAA,OACzC;AAEA,MAAI,IAAA,OAAA;AACF,QAAO,OAAAA,YAAA,CAAA,YAAA,EAAmB,IAAK,CAAA,gBAAA,EAAkB,QAAY,IAAA,UAAU,CAAC,CAAI,CAAA,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAQ,mBAAR,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,CAAA,KAAA,IAAA,GAAA,EAAA,GAAmCE,4BAAmB,CAAA,OAAA,CAAA,CAAA;AAEpI,MAAO,OAAAF,YAAA,CAAA,YAAA,EAAmB,IAAK,CAAA,gBAAA,EAAkB,QAAY,IAAA,UAAU,CAAC,CAAI,CAAA,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAQ,qBAAR,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,CAAA,KAAA,IAAA,GAAA,EAAA,GAAqCG,8BAAqB,CAAA,OAAA,CAAA,CAAA;AAAA,KACxI;AAAA,GACD,CAAA,CAAA;AACH,CAAA;AAEa,MAAA,aAAA,GAAsD,CAAC,MAAA,EAAQ,MAAW,KAAA;AACrF,EACG,MAAA,CAAA,MAAA,CAAO,SAAO,iBAAkB,CAAA,GAAA,EAAK,MAAM,CAAC,CAAA,CAC5C,IAAIC,oCAAsB,CAAA,CAAA;AAC/B;;;;"}
|
package/lib/cjs/index.js
CHANGED
|
@@ -36,11 +36,11 @@ const defaultFeatures = {
|
|
|
36
36
|
async function loadFeature(feature, editor, config) {
|
|
37
37
|
switch (feature) {
|
|
38
38
|
case "code-mirror" /* CodeMirror */: {
|
|
39
|
-
const { defineFeature } = await Promise.resolve().then(function () { return require('./index-
|
|
39
|
+
const { defineFeature } = await Promise.resolve().then(function () { return require('./index-fhKBUFkq.js'); });
|
|
40
40
|
return defineFeature(editor, config);
|
|
41
41
|
}
|
|
42
42
|
case "list-item" /* ListItem */: {
|
|
43
|
-
const { defineFeature } = await Promise.resolve().then(function () { return require('./index-
|
|
43
|
+
const { defineFeature } = await Promise.resolve().then(function () { return require('./index-rLAgJeYn.js'); });
|
|
44
44
|
return defineFeature(editor, config);
|
|
45
45
|
}
|
|
46
46
|
case "link-tooltip" /* LinkTooltip */: {
|
|
@@ -64,7 +64,7 @@ async function loadFeature(feature, editor, config) {
|
|
|
64
64
|
return defineFeature(editor, config);
|
|
65
65
|
}
|
|
66
66
|
case "toolbar" /* Toolbar */: {
|
|
67
|
-
const { defineFeature } = await Promise.resolve().then(function () { return require('./index-
|
|
67
|
+
const { defineFeature } = await Promise.resolve().then(function () { return require('./index-TGmNEvsj.js'); });
|
|
68
68
|
return defineFeature(editor, config);
|
|
69
69
|
}
|
|
70
70
|
case "table" /* Table */: {
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/feature/index.ts","../../src/core/slice.ts","../../src/core/crepe.ts"],"sourcesContent":["import type { Editor } from '@milkdown/kit/core'\nimport type { PlaceHolderFeatureConfig } from './placeholder'\nimport type { CodeMirrorFeatureConfig } from './code-mirror'\nimport type { BlockEditFeatureConfig } from './block-edit'\nimport type { CursorFeatureConfig } from './cursor'\nimport type { ImageBlockFeatureConfig } from './image-block'\nimport type { LinkTooltipFeatureConfig } from './link-tooltip'\nimport type { ListItemFeatureConfig } from './list-item'\nimport type { ToolbarFeatureConfig } from './toolbar'\nimport type { TableFeatureConfig } from './table'\n\nexport enum CrepeFeature {\n CodeMirror = 'code-mirror',\n ListItem = 'list-item',\n LinkTooltip = 'link-tooltip',\n Cursor = 'cursor',\n ImageBlock = 'image-block',\n BlockEdit = 'block-edit',\n Toolbar = 'toolbar',\n Placeholder = 'placeholder',\n Table = 'table',\n}\n\nexport interface CrepeFeatureConfig {\n [CrepeFeature.Cursor]?: CursorFeatureConfig\n [CrepeFeature.ListItem]?: ListItemFeatureConfig\n [CrepeFeature.LinkTooltip]?: LinkTooltipFeatureConfig\n [CrepeFeature.ImageBlock]?: ImageBlockFeatureConfig\n [CrepeFeature.BlockEdit]?: BlockEditFeatureConfig\n [CrepeFeature.Placeholder]?: PlaceHolderFeatureConfig\n [CrepeFeature.Toolbar]?: ToolbarFeatureConfig\n [CrepeFeature.CodeMirror]?: CodeMirrorFeatureConfig\n [CrepeFeature.Table]?: TableFeatureConfig\n}\n\nexport const defaultFeatures: Record<CrepeFeature, boolean> = {\n [CrepeFeature.Cursor]: true,\n [CrepeFeature.ListItem]: true,\n [CrepeFeature.LinkTooltip]: true,\n [CrepeFeature.ImageBlock]: true,\n [CrepeFeature.BlockEdit]: true,\n [CrepeFeature.Placeholder]: true,\n [CrepeFeature.Toolbar]: true,\n [CrepeFeature.CodeMirror]: true,\n [CrepeFeature.Table]: true,\n}\n\nexport async function loadFeature(feature: CrepeFeature, editor: Editor, config?: never) {\n switch (feature) {\n case CrepeFeature.CodeMirror: {\n const { defineFeature } = await import('./code-mirror')\n return defineFeature(editor, config)\n }\n case CrepeFeature.ListItem: {\n const { defineFeature } = await import('./list-item')\n return defineFeature(editor, config)\n }\n case CrepeFeature.LinkTooltip: {\n const { defineFeature } = await import('./link-tooltip')\n return defineFeature(editor, config)\n }\n case CrepeFeature.ImageBlock: {\n const { defineFeature } = await import('./image-block')\n return defineFeature(editor, config)\n }\n case CrepeFeature.Cursor: {\n const { defineFeature } = await import('./cursor')\n return defineFeature(editor, config)\n }\n case CrepeFeature.BlockEdit: {\n const { defineFeature } = await import('./block-edit')\n return defineFeature(editor, config)\n }\n case CrepeFeature.Placeholder: {\n const { defineFeature } = await import('./placeholder')\n return defineFeature(editor, config)\n }\n case CrepeFeature.Toolbar: {\n const { defineFeature } = await import('./toolbar')\n return defineFeature(editor, config)\n }\n case CrepeFeature.Table: {\n const { defineFeature } = await import('./table')\n return defineFeature(editor, config)\n }\n }\n}\n","import type { Ctx } from '@milkdown/kit/ctx'\nimport { createSlice } from '@milkdown/kit/ctx'\nimport type { CrepeFeature } from '../feature'\n\nexport const FeaturesCtx = createSlice([] as CrepeFeature[], 'FeaturesCtx')\n\nexport function configureFeatures(features: CrepeFeature[]) {\n return (ctx: Ctx) => {\n ctx.inject(FeaturesCtx, features)\n }\n}\n","import type { DefaultValue } from '@milkdown/kit/core'\nimport { Editor, defaultValueCtx, editorViewOptionsCtx, rootCtx } from '@milkdown/kit/core'\n\nimport { commonmark } from '@milkdown/kit/preset/commonmark'\nimport { gfm } from '@milkdown/kit/preset/gfm'\nimport { history } from '@milkdown/kit/plugin/history'\nimport { indent, indentConfig } from '@milkdown/kit/plugin/indent'\nimport { getMarkdown } from '@milkdown/kit/utils'\nimport { clipboard } from '@milkdown/kit/plugin/clipboard'\nimport { trailing } from '@milkdown/kit/plugin/trailing'\n\nimport type { CrepeFeatureConfig } from '../feature'\nimport { CrepeFeature, defaultFeatures, loadFeature } from '../feature'\nimport { configureFeatures } from './slice'\n\nexport interface CrepeConfig {\n features?: Partial<Record<CrepeFeature, boolean>>\n featureConfigs?: CrepeFeatureConfig\n root?: Node | string | null\n defaultValue?: DefaultValue\n}\n\nexport class Crepe {\n static Feature = CrepeFeature\n readonly #editor: Editor\n readonly #initPromise: Promise<unknown>\n readonly #rootElement: Node\n #editable = true\n\n constructor({\n root,\n features = {},\n featureConfigs = {},\n defaultValue = '',\n }: CrepeConfig) {\n const enabledFeatures = Object\n .entries({\n ...defaultFeatures,\n ...features,\n })\n .filter(([, enabled]) => enabled)\n .map(([feature]) => feature as CrepeFeature)\n\n this.#rootElement = (typeof root === 'string' ? document.querySelector(root) : root) ?? document.body\n this.#editor = Editor.make()\n .config(configureFeatures(enabledFeatures))\n .config((ctx) => {\n ctx.set(rootCtx, this.#rootElement)\n ctx.set(defaultValueCtx, defaultValue)\n ctx.set(editorViewOptionsCtx, {\n editable: () => this.#editable,\n })\n ctx.update(indentConfig.key, value => ({\n ...value,\n size: 4,\n }))\n })\n .use(commonmark)\n .use(history)\n .use(indent)\n .use(trailing)\n .use(clipboard)\n .use(gfm)\n\n const promiseList: Promise<unknown>[] = []\n\n enabledFeatures.forEach((feature) => {\n const config = (featureConfigs as Partial<Record<CrepeFeature, never>>)[feature]\n promiseList.push(\n loadFeature(feature, this.#editor, config),\n )\n })\n\n this.#initPromise = Promise.all(promiseList)\n }\n\n async create() {\n await this.#initPromise\n return this.#editor.create()\n }\n\n async destroy() {\n await this.#initPromise\n return this.#editor.destroy()\n }\n\n get editor(): Editor {\n return this.#editor\n }\n\n setReadonly(value: boolean) {\n this.#editable = !value\n return this\n }\n\n getMarkdown() {\n return this.#editor.action(getMarkdown())\n }\n}\n"],"names":["CrepeFeature","createSlice","Editor","rootCtx","defaultValueCtx","editorViewOptionsCtx","indentConfig","commonmark","history","indent","trailing","clipboard","gfm","getMarkdown"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/feature/index.ts","../../src/core/slice.ts","../../src/core/crepe.ts"],"sourcesContent":["import type { Editor } from '@milkdown/kit/core'\nimport type { PlaceHolderFeatureConfig } from './placeholder'\nimport type { CodeMirrorFeatureConfig } from './code-mirror'\nimport type { BlockEditFeatureConfig } from './block-edit'\nimport type { CursorFeatureConfig } from './cursor'\nimport type { ImageBlockFeatureConfig } from './image-block'\nimport type { LinkTooltipFeatureConfig } from './link-tooltip'\nimport type { ListItemFeatureConfig } from './list-item'\nimport type { ToolbarFeatureConfig } from './toolbar'\nimport type { TableFeatureConfig } from './table'\n\nexport enum CrepeFeature {\n CodeMirror = 'code-mirror',\n ListItem = 'list-item',\n LinkTooltip = 'link-tooltip',\n Cursor = 'cursor',\n ImageBlock = 'image-block',\n BlockEdit = 'block-edit',\n Toolbar = 'toolbar',\n Placeholder = 'placeholder',\n Table = 'table',\n}\n\nexport interface CrepeFeatureConfig {\n [CrepeFeature.Cursor]?: CursorFeatureConfig\n [CrepeFeature.ListItem]?: ListItemFeatureConfig\n [CrepeFeature.LinkTooltip]?: LinkTooltipFeatureConfig\n [CrepeFeature.ImageBlock]?: ImageBlockFeatureConfig\n [CrepeFeature.BlockEdit]?: BlockEditFeatureConfig\n [CrepeFeature.Placeholder]?: PlaceHolderFeatureConfig\n [CrepeFeature.Toolbar]?: ToolbarFeatureConfig\n [CrepeFeature.CodeMirror]?: CodeMirrorFeatureConfig\n [CrepeFeature.Table]?: TableFeatureConfig\n}\n\nexport const defaultFeatures: Record<CrepeFeature, boolean> = {\n [CrepeFeature.Cursor]: true,\n [CrepeFeature.ListItem]: true,\n [CrepeFeature.LinkTooltip]: true,\n [CrepeFeature.ImageBlock]: true,\n [CrepeFeature.BlockEdit]: true,\n [CrepeFeature.Placeholder]: true,\n [CrepeFeature.Toolbar]: true,\n [CrepeFeature.CodeMirror]: true,\n [CrepeFeature.Table]: true,\n}\n\nexport async function loadFeature(feature: CrepeFeature, editor: Editor, config?: never) {\n switch (feature) {\n case CrepeFeature.CodeMirror: {\n const { defineFeature } = await import('./code-mirror')\n return defineFeature(editor, config)\n }\n case CrepeFeature.ListItem: {\n const { defineFeature } = await import('./list-item')\n return defineFeature(editor, config)\n }\n case CrepeFeature.LinkTooltip: {\n const { defineFeature } = await import('./link-tooltip')\n return defineFeature(editor, config)\n }\n case CrepeFeature.ImageBlock: {\n const { defineFeature } = await import('./image-block')\n return defineFeature(editor, config)\n }\n case CrepeFeature.Cursor: {\n const { defineFeature } = await import('./cursor')\n return defineFeature(editor, config)\n }\n case CrepeFeature.BlockEdit: {\n const { defineFeature } = await import('./block-edit')\n return defineFeature(editor, config)\n }\n case CrepeFeature.Placeholder: {\n const { defineFeature } = await import('./placeholder')\n return defineFeature(editor, config)\n }\n case CrepeFeature.Toolbar: {\n const { defineFeature } = await import('./toolbar')\n return defineFeature(editor, config)\n }\n case CrepeFeature.Table: {\n const { defineFeature } = await import('./table')\n return defineFeature(editor, config)\n }\n }\n}\n","import type { Ctx } from '@milkdown/kit/ctx'\nimport { createSlice } from '@milkdown/kit/ctx'\nimport type { CrepeFeature } from '../feature'\n\nexport const FeaturesCtx = createSlice([] as CrepeFeature[], 'FeaturesCtx')\n\nexport function configureFeatures(features: CrepeFeature[]) {\n return (ctx: Ctx) => {\n ctx.inject(FeaturesCtx, features)\n }\n}\n","import type { DefaultValue } from '@milkdown/kit/core'\nimport { Editor, defaultValueCtx, editorViewOptionsCtx, rootCtx } from '@milkdown/kit/core'\n\nimport { commonmark } from '@milkdown/kit/preset/commonmark'\nimport { gfm } from '@milkdown/kit/preset/gfm'\nimport { history } from '@milkdown/kit/plugin/history'\nimport { indent, indentConfig } from '@milkdown/kit/plugin/indent'\nimport { getMarkdown } from '@milkdown/kit/utils'\nimport { clipboard } from '@milkdown/kit/plugin/clipboard'\nimport { trailing } from '@milkdown/kit/plugin/trailing'\n\nimport type { CrepeFeatureConfig } from '../feature'\nimport { CrepeFeature, defaultFeatures, loadFeature } from '../feature'\nimport { configureFeatures } from './slice'\n\nexport interface CrepeConfig {\n features?: Partial<Record<CrepeFeature, boolean>>\n featureConfigs?: CrepeFeatureConfig\n root?: Node | string | null\n defaultValue?: DefaultValue\n}\n\nexport class Crepe {\n static Feature = CrepeFeature\n readonly #editor: Editor\n readonly #initPromise: Promise<unknown>\n readonly #rootElement: Node\n #editable = true\n\n constructor({\n root,\n features = {},\n featureConfigs = {},\n defaultValue = '',\n }: CrepeConfig) {\n const enabledFeatures = Object\n .entries({\n ...defaultFeatures,\n ...features,\n })\n .filter(([, enabled]) => enabled)\n .map(([feature]) => feature as CrepeFeature)\n\n this.#rootElement = (typeof root === 'string' ? document.querySelector(root) : root) ?? document.body\n this.#editor = Editor.make()\n .config(configureFeatures(enabledFeatures))\n .config((ctx) => {\n ctx.set(rootCtx, this.#rootElement)\n ctx.set(defaultValueCtx, defaultValue)\n ctx.set(editorViewOptionsCtx, {\n editable: () => this.#editable,\n })\n ctx.update(indentConfig.key, value => ({\n ...value,\n size: 4,\n }))\n })\n .use(commonmark)\n .use(history)\n .use(indent)\n .use(trailing)\n .use(clipboard)\n .use(gfm)\n\n const promiseList: Promise<unknown>[] = []\n\n enabledFeatures.forEach((feature) => {\n const config = (featureConfigs as Partial<Record<CrepeFeature, never>>)[feature]\n promiseList.push(\n loadFeature(feature, this.#editor, config),\n )\n })\n\n this.#initPromise = Promise.all(promiseList)\n }\n\n async create() {\n await this.#initPromise\n return this.#editor.create()\n }\n\n async destroy() {\n await this.#initPromise\n return this.#editor.destroy()\n }\n\n get editor(): Editor {\n return this.#editor\n }\n\n setReadonly(value: boolean) {\n this.#editable = !value\n return this\n }\n\n getMarkdown() {\n return this.#editor.action(getMarkdown())\n }\n}\n"],"names":["CrepeFeature","createSlice","Editor","rootCtx","defaultValueCtx","editorViewOptionsCtx","indentConfig","commonmark","history","indent","trailing","clipboard","gfm","getMarkdown"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { listItemBlockComponent, listItemBlockConfig } from '@milkdown/kit/component/list-item-block';
|
|
2
2
|
import { html } from 'atomico';
|
|
3
|
-
import
|
|
3
|
+
import clsx from 'clsx';
|
|
4
4
|
import { b as bulletIcon, d as checkBoxCheckedIcon, e as checkBoxUncheckedIcon } from './todoList-9QsDDcmB.js';
|
|
5
5
|
|
|
6
6
|
function configureListItem(ctx, config) {
|
|
@@ -23,4 +23,4 @@ const defineFeature = (editor, config) => {
|
|
|
23
23
|
};
|
|
24
24
|
|
|
25
25
|
export { defineFeature };
|
|
26
|
-
//# sourceMappingURL=index-
|
|
26
|
+
//# sourceMappingURL=index-amuALmzU.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-amuALmzU.js","sources":["../../src/feature/list-item/index.ts"],"sourcesContent":["import type { Ctx } from '@milkdown/kit/ctx'\nimport { listItemBlockComponent, listItemBlockConfig } from '@milkdown/kit/component/list-item-block'\nimport { html } from 'atomico'\nimport clsx from 'clsx'\nimport type { DefineFeature, Icon } from '../shared'\nimport { bulletIcon, checkBoxCheckedIcon, checkBoxUncheckedIcon } from '../../icons'\n\nexport interface ListItemConfig {\n bulletIcon: Icon\n checkBoxCheckedIcon: Icon\n checkBoxUncheckedIcon: Icon\n}\n\nexport type ListItemFeatureConfig = Partial<ListItemConfig>\n\nfunction configureListItem(ctx: Ctx, config?: ListItemFeatureConfig) {\n ctx.set(listItemBlockConfig.key, {\n renderLabel: ({ label, listType, checked, readonly }) => {\n if (checked == null) {\n if (listType === 'bullet')\n return html`<span class='label'>${config?.bulletIcon?.() ?? bulletIcon}</span>`\n\n return html`<span class='label'>${label}</span>`\n }\n\n if (checked)\n return html`<span class=${clsx('label checkbox', readonly && 'readonly')}>${config?.checkBoxCheckedIcon?.() ?? checkBoxCheckedIcon}</span>`\n\n return html`<span class=${clsx('label checkbox', readonly && 'readonly')}>${config?.checkBoxUncheckedIcon?.() ?? checkBoxUncheckedIcon}</span>`\n },\n })\n}\n\nexport const defineFeature: DefineFeature<ListItemFeatureConfig> = (editor, config) => {\n editor\n .config(ctx => configureListItem(ctx, config))\n .use(listItemBlockComponent)\n}\n"],"names":[],"mappings":";;;;;AAeA,SAAS,iBAAA,CAAkB,KAAU,MAAgC,EAAA;AACnE,EAAI,GAAA,CAAA,GAAA,CAAI,oBAAoB,GAAK,EAAA;AAAA,IAC/B,aAAa,CAAC,EAAE,OAAO,QAAU,EAAA,OAAA,EAAS,UAAe,KAAA;AAjB7D,MAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AAkBM,MAAA,IAAI,WAAW,IAAM,EAAA;AACnB,QAAA,IAAI,QAAa,KAAA,QAAA;AACf,UAAA,OAAO,IAA2B,CAAA,oBAAA,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAQ,UAAR,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,CAAA,KAAA,IAAA,GAAA,EAAA,GAA0B,UAAU,CAAA,OAAA,CAAA,CAAA;AAExE,QAAA,OAAO,2BAA2B,KAAK,CAAA,OAAA,CAAA,CAAA;AAAA,OACzC;AAEA,MAAI,IAAA,OAAA;AACF,QAAO,OAAA,IAAA,CAAA,YAAA,EAAmB,IAAK,CAAA,gBAAA,EAAkB,QAAY,IAAA,UAAU,CAAC,CAAI,CAAA,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAQ,mBAAR,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,CAAA,KAAA,IAAA,GAAA,EAAA,GAAmC,mBAAmB,CAAA,OAAA,CAAA,CAAA;AAEpI,MAAO,OAAA,IAAA,CAAA,YAAA,EAAmB,IAAK,CAAA,gBAAA,EAAkB,QAAY,IAAA,UAAU,CAAC,CAAI,CAAA,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAQ,qBAAR,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,CAAA,KAAA,IAAA,GAAA,EAAA,GAAqC,qBAAqB,CAAA,OAAA,CAAA,CAAA;AAAA,KACxI;AAAA,GACD,CAAA,CAAA;AACH,CAAA;AAEa,MAAA,aAAA,GAAsD,CAAC,MAAA,EAAQ,MAAW,KAAA;AACrF,EACG,MAAA,CAAA,MAAA,CAAO,SAAO,iBAAkB,CAAA,GAAA,EAAK,MAAM,CAAC,CAAA,CAC5C,IAAI,sBAAsB,CAAA,CAAA;AAC/B;;;;"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { codeBlockConfig, codeBlockComponent } from '@milkdown/kit/component/code-block';
|
|
2
|
+
import { basicSetup } from 'codemirror';
|
|
3
|
+
import { keymap } from '@codemirror/view';
|
|
4
|
+
import { defaultKeymap, indentWithTab } from '@codemirror/commands';
|
|
5
|
+
import { c as chevronDownIcon, s as searchIcon, a as clearIcon } from './todoList-9QsDDcmB.js';
|
|
6
|
+
import 'atomico';
|
|
7
|
+
|
|
8
|
+
const defineFeature = (editor, config = {}) => {
|
|
9
|
+
editor.config(async (ctx) => {
|
|
10
|
+
let {
|
|
11
|
+
languages,
|
|
12
|
+
theme
|
|
13
|
+
} = config;
|
|
14
|
+
if (!languages) {
|
|
15
|
+
const { languages: langList } = await import('@codemirror/language-data');
|
|
16
|
+
languages = langList;
|
|
17
|
+
}
|
|
18
|
+
if (!theme) {
|
|
19
|
+
const { nord } = await import('@uiw/codemirror-theme-nord');
|
|
20
|
+
theme = nord;
|
|
21
|
+
}
|
|
22
|
+
ctx.update(codeBlockConfig.key, (defaultConfig) => {
|
|
23
|
+
var _a;
|
|
24
|
+
return {
|
|
25
|
+
extensions: [
|
|
26
|
+
keymap.of(defaultKeymap.concat(indentWithTab)),
|
|
27
|
+
basicSetup,
|
|
28
|
+
theme,
|
|
29
|
+
...(_a = config == null ? void 0 : config.extensions) != null ? _a : []
|
|
30
|
+
],
|
|
31
|
+
languages,
|
|
32
|
+
expandIcon: config.expandIcon || (() => chevronDownIcon),
|
|
33
|
+
searchIcon: config.searchIcon || (() => searchIcon),
|
|
34
|
+
clearSearchIcon: config.clearSearchIcon || (() => clearIcon),
|
|
35
|
+
searchPlaceholder: config.searchPlaceholder || "Search language",
|
|
36
|
+
noResultText: config.noResultText || "No result",
|
|
37
|
+
renderLanguage: config.renderLanguage || defaultConfig.renderLanguage
|
|
38
|
+
};
|
|
39
|
+
});
|
|
40
|
+
}).use(codeBlockComponent);
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export { defineFeature };
|
|
44
|
+
//# sourceMappingURL=index-jU_6odT9.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-jU_6odT9.js","sources":["../../src/feature/code-mirror/index.ts"],"sourcesContent":["import { codeBlockComponent, codeBlockConfig } from '@milkdown/kit/component/code-block'\nimport type { LanguageDescription } from '@codemirror/language'\nimport type { Extension } from '@codemirror/state'\nimport { basicSetup } from 'codemirror'\nimport { keymap } from '@codemirror/view'\nimport { defaultKeymap, indentWithTab } from '@codemirror/commands'\nimport type { html } from 'atomico'\nimport type { DefineFeature, Icon } from '../shared'\nimport { chevronDownIcon, clearIcon, searchIcon } from '../../icons'\n\ninterface CodeMirrorConfig {\n extensions: Extension[]\n languages: LanguageDescription[]\n theme: Extension\n\n expandIcon: Icon\n searchIcon: Icon\n clearSearchIcon: Icon\n\n searchPlaceholder: string\n noResultText: string\n\n renderLanguage: (language: string, selected: boolean) => ReturnType<typeof html> | string | HTMLElement\n}\nexport type CodeMirrorFeatureConfig = Partial<CodeMirrorConfig>\n\nexport const defineFeature: DefineFeature<CodeMirrorFeatureConfig> = (editor, config = {}) => {\n editor\n .config(async (ctx) => {\n let {\n languages,\n theme,\n } = config\n if (!languages) {\n const { languages: langList } = await import('@codemirror/language-data')\n languages = langList\n }\n if (!theme) {\n const { nord } = await import('@uiw/codemirror-theme-nord')\n theme = nord\n }\n ctx.update(codeBlockConfig.key, defaultConfig => ({\n extensions: [\n keymap.of(defaultKeymap.concat(indentWithTab)),\n basicSetup,\n theme,\n ...config?.extensions ?? [],\n ],\n languages,\n\n expandIcon: config.expandIcon || (() => chevronDownIcon),\n searchIcon: config.searchIcon || (() => searchIcon),\n clearSearchIcon: config.clearSearchIcon || (() => clearIcon),\n searchPlaceholder: config.searchPlaceholder || 'Search language',\n noResultText: config.noResultText || 'No result',\n renderLanguage: config.renderLanguage || defaultConfig.renderLanguage,\n }))\n })\n .use(codeBlockComponent)\n}\n"],"names":[],"mappings":";;;;;;;AA0BO,MAAM,aAAwD,GAAA,CAAC,MAAQ,EAAA,MAAA,GAAS,EAAO,KAAA;AAC5F,EACG,MAAA,CAAA,MAAA,CAAO,OAAO,GAAQ,KAAA;AACrB,IAAI,IAAA;AAAA,MACF,SAAA;AAAA,MACA,KAAA;AAAA,KACE,GAAA,MAAA,CAAA;AACJ,IAAA,IAAI,CAAC,SAAW,EAAA;AACd,MAAA,MAAM,EAAE,SAAW,EAAA,QAAA,EAAa,GAAA,MAAM,OAAO,2BAA2B,CAAA,CAAA;AACxE,MAAY,SAAA,GAAA,QAAA,CAAA;AAAA,KACd;AACA,IAAA,IAAI,CAAC,KAAO,EAAA;AACV,MAAA,MAAM,EAAE,IAAA,EAAS,GAAA,MAAM,OAAO,4BAA4B,CAAA,CAAA;AAC1D,MAAQ,KAAA,GAAA,IAAA,CAAA;AAAA,KACV;AACA,IAAI,GAAA,CAAA,MAAA,CAAO,eAAgB,CAAA,GAAA,EAAK,CAAc,aAAA,KAAA;AAzCpD,MAAA,IAAA,EAAA,CAAA;AAyCwD,MAAA,OAAA;AAAA,QAChD,UAAY,EAAA;AAAA,UACV,MAAO,CAAA,EAAA,CAAG,aAAc,CAAA,MAAA,CAAO,aAAa,CAAC,CAAA;AAAA,UAC7C,UAAA;AAAA,UACA,KAAA;AAAA,UACA,GAAG,CAAA,EAAA,GAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAQ,UAAR,KAAA,IAAA,GAAA,EAAA,GAAsB,EAAC;AAAA,SAC5B;AAAA,QACA,SAAA;AAAA,QAEA,UAAA,EAAY,MAAO,CAAA,UAAA,KAAe,MAAM,eAAA,CAAA;AAAA,QACxC,UAAA,EAAY,MAAO,CAAA,UAAA,KAAe,MAAM,UAAA,CAAA;AAAA,QACxC,eAAA,EAAiB,MAAO,CAAA,eAAA,KAAoB,MAAM,SAAA,CAAA;AAAA,QAClD,iBAAA,EAAmB,OAAO,iBAAqB,IAAA,iBAAA;AAAA,QAC/C,YAAA,EAAc,OAAO,YAAgB,IAAA,WAAA;AAAA,QACrC,cAAA,EAAgB,MAAO,CAAA,cAAA,IAAkB,aAAc,CAAA,cAAA;AAAA,OACzD,CAAA;AAAA,KAAE,CAAA,CAAA;AAAA,GACH,CACA,CAAA,GAAA,CAAI,kBAAkB,CAAA,CAAA;AAC3B;;;;"}
|
|
@@ -4,7 +4,7 @@ import { d as defIfNotExists } from './index-Jvxff1vU.js';
|
|
|
4
4
|
import { c, useUpdate, useEffect, html } from 'atomico';
|
|
5
5
|
import { editorViewCtx, commandsCtx } from '@milkdown/kit/core';
|
|
6
6
|
import { strongSchema, emphasisSchema, inlineCodeSchema, linkSchema, toggleStrongCommand, toggleEmphasisCommand, toggleInlineCodeCommand } from '@milkdown/kit/preset/commonmark';
|
|
7
|
-
import
|
|
7
|
+
import clsx from 'clsx';
|
|
8
8
|
import { linkTooltipAPI } from '@milkdown/kit/component/link-tooltip';
|
|
9
9
|
import { strikethroughSchema, toggleStrikethroughCommand } from '@milkdown/kit/preset/gfm';
|
|
10
10
|
import { C as boldIcon, D as italicIcon, E as strikethroughIcon, y as codeIcon, l as linkIcon } from './todoList-9QsDDcmB.js';
|
|
@@ -162,4 +162,4 @@ const defineFeature = (editor, config) => {
|
|
|
162
162
|
};
|
|
163
163
|
|
|
164
164
|
export { defineFeature };
|
|
165
|
-
//# sourceMappingURL=index-
|
|
165
|
+
//# sourceMappingURL=index-w69wbtEZ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-lm00PM0y.js","sources":["../../src/feature/toolbar/component.ts","../../src/feature/toolbar/index.ts"],"sourcesContent":["import type { Component } from 'atomico'\nimport { c, html, useEffect, useUpdate } from 'atomico'\nimport type { Ctx } from '@milkdown/kit/ctx'\nimport { commandsCtx, editorViewCtx } from '@milkdown/kit/core'\nimport {\n emphasisSchema,\n inlineCodeSchema,\n linkSchema,\n strongSchema,\n toggleEmphasisCommand,\n toggleInlineCodeCommand,\n toggleStrongCommand,\n} from '@milkdown/kit/preset/commonmark'\nimport type { MarkType } from '@milkdown/kit/prose/model'\nimport clsx from 'clsx'\nimport { linkTooltipAPI } from '@milkdown/kit/component/link-tooltip'\nimport { strikethroughSchema, toggleStrikethroughCommand } from '@milkdown/kit/preset/gfm'\nimport { boldIcon, codeIcon, italicIcon, linkIcon, strikethroughIcon } from '../../icons'\nimport type { ToolbarFeatureConfig } from './index'\n\nexport interface ToolbarProps {\n ctx: Ctx\n hide: () => void\n show: boolean\n config?: ToolbarFeatureConfig\n}\n\nexport const toolbarComponent: Component<ToolbarProps> = ({\n ctx,\n hide,\n show,\n config,\n}) => {\n const update = useUpdate()\n useEffect(() => {\n update()\n }, [show])\n\n const onClick = (fn: (ctx: Ctx) => void) => (e: MouseEvent) => {\n e.preventDefault()\n ctx && fn(ctx)\n update()\n }\n\n const isActive = (mark: MarkType) => {\n if (!ctx)\n return false\n const view = ctx.get(editorViewCtx)\n const { state: { doc, selection } } = view\n return doc.rangeHasMark(selection.from, selection.to, mark)\n }\n\n return html`<host>\n <button\n class=${clsx('toolbar-item', ctx && isActive(strongSchema.type(ctx)) && 'active')}\n onmousedown=${onClick((ctx) => {\n const commands = ctx.get(commandsCtx)\n commands.call(toggleStrongCommand.key)\n })}\n >\n ${config?.boldIcon?.() ?? boldIcon}\n </button>\n <button\n class=${clsx('toolbar-item', ctx && isActive(emphasisSchema.type(ctx)) && 'active')}\n onmousedown=${onClick((ctx) => {\n const commands = ctx.get(commandsCtx)\n commands.call(toggleEmphasisCommand.key)\n })}\n >\n ${config?.italicIcon?.() ?? italicIcon}\n </button>\n <button\n class=${clsx('toolbar-item', ctx && isActive(strikethroughSchema.type(ctx)) && 'active')}\n onmousedown=${onClick((ctx) => {\n const commands = ctx.get(commandsCtx)\n commands.call(toggleStrikethroughCommand.key)\n })}\n >\n ${config?.strikethroughIcon?.() ?? strikethroughIcon}\n </button>\n <div class=\"divider\"></div>\n <button\n class=${clsx('toolbar-item', ctx && isActive(inlineCodeSchema.type(ctx)) && 'active')}\n onmousedown=${onClick((ctx) => {\n const commands = ctx.get(commandsCtx)\n commands.call(toggleInlineCodeCommand.key)\n })}\n >\n ${config?.codeIcon?.() ?? codeIcon}\n </button>\n <button\n class=${clsx('toolbar-item', ctx && isActive(linkSchema.type(ctx)) && 'active')}\n onmousedown=${onClick((ctx) => {\n const view = ctx.get(editorViewCtx)\n const { selection } = view.state\n\n if (isActive(linkSchema.type(ctx))) {\n ctx.get(linkTooltipAPI.key).removeLink(selection.from, selection.to)\n return\n }\n\n ctx.get(linkTooltipAPI.key).addLink(selection.from, selection.to)\n hide?.()\n })}\n >\n ${config?.linkIcon?.() ?? linkIcon}\n </button>\n </host>`\n}\n\ntoolbarComponent.props = {\n ctx: Object,\n hide: Function,\n show: Boolean,\n config: Object,\n}\n\nexport const ToolbarElement = c(toolbarComponent)\n","import { TooltipProvider, tooltipFactory } from '@milkdown/kit/plugin/tooltip'\nimport type { EditorState, PluginView } from '@milkdown/kit/prose/state'\nimport { TextSelection } from '@milkdown/kit/prose/state'\nimport type { Ctx } from '@milkdown/kit/ctx'\nimport type { EditorView } from '@milkdown/kit/prose/view'\nimport type { AtomicoThis } from 'atomico/types/dom'\nimport type { DefineFeature, Icon } from '../shared'\nimport { defIfNotExists } from '../../utils'\nimport type { ToolbarProps } from './component'\nimport { ToolbarElement } from './component'\n\ninterface ToolbarConfig {\n boldIcon: Icon\n codeIcon: Icon\n italicIcon: Icon\n linkIcon: Icon\n strikethroughIcon: Icon\n}\n\nexport type ToolbarFeatureConfig = Partial<ToolbarConfig>\n\nconst toolbar = tooltipFactory('CREPE_TOOLBAR')\n\nclass ToolbarView implements PluginView {\n #tooltipProvider: TooltipProvider\n #content: AtomicoThis<ToolbarProps>\n constructor(ctx: Ctx, view: EditorView, config?: ToolbarFeatureConfig) {\n const content = new ToolbarElement()\n this.#content = content\n this.#content.ctx = ctx\n this.#content.hide = this.hide\n this.#content.config = config\n\n this.#tooltipProvider = new TooltipProvider({\n content: this.#content,\n debounce: 20,\n offset: 10,\n shouldShow(view: EditorView) {\n const { doc, selection } = view.state\n const { empty, from, to } = selection\n\n const isEmptyTextBlock = !doc.textBetween(from, to).length && selection instanceof TextSelection\n\n const isNotTextBlock = !(selection instanceof TextSelection)\n\n const activeElement = (view.dom.getRootNode() as ShadowRoot | Document).activeElement\n const isTooltipChildren = content.contains(activeElement)\n\n const notHasFocus = !view.hasFocus() && !isTooltipChildren\n\n const isReadonly = !view.editable\n\n if (\n notHasFocus\n || isNotTextBlock\n || empty\n || isEmptyTextBlock\n || isReadonly\n )\n return false\n\n return true\n },\n })\n this.#tooltipProvider.onShow = () => {\n this.#content.show = true\n }\n this.#tooltipProvider.onHide = () => {\n this.#content.show = false\n }\n this.update(view)\n }\n\n update = (view: EditorView, prevState?: EditorState) => {\n this.#tooltipProvider.update(view, prevState)\n }\n\n destroy = () => {\n this.#tooltipProvider.destroy()\n this.#content.remove()\n }\n\n hide = () => {\n this.#tooltipProvider.hide()\n }\n}\n\ndefIfNotExists('milkdown-toolbar', ToolbarElement)\nexport const defineFeature: DefineFeature<ToolbarFeatureConfig> = (editor, config) => {\n editor\n .config((ctx) => {\n ctx.set(toolbar.key, {\n view: view => new ToolbarView(ctx, view, config),\n })\n })\n .use(toolbar)\n}\n"],"names":["ctx","view"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-w69wbtEZ.js","sources":["../../src/feature/toolbar/component.ts","../../src/feature/toolbar/index.ts"],"sourcesContent":["import type { Component } from 'atomico'\nimport { c, html, useEffect, useUpdate } from 'atomico'\nimport type { Ctx } from '@milkdown/kit/ctx'\nimport { commandsCtx, editorViewCtx } from '@milkdown/kit/core'\nimport {\n emphasisSchema,\n inlineCodeSchema,\n linkSchema,\n strongSchema,\n toggleEmphasisCommand,\n toggleInlineCodeCommand,\n toggleStrongCommand,\n} from '@milkdown/kit/preset/commonmark'\nimport type { MarkType } from '@milkdown/kit/prose/model'\nimport clsx from 'clsx'\nimport { linkTooltipAPI } from '@milkdown/kit/component/link-tooltip'\nimport { strikethroughSchema, toggleStrikethroughCommand } from '@milkdown/kit/preset/gfm'\nimport { boldIcon, codeIcon, italicIcon, linkIcon, strikethroughIcon } from '../../icons'\nimport type { ToolbarFeatureConfig } from './index'\n\nexport interface ToolbarProps {\n ctx: Ctx\n hide: () => void\n show: boolean\n config?: ToolbarFeatureConfig\n}\n\nexport const toolbarComponent: Component<ToolbarProps> = ({\n ctx,\n hide,\n show,\n config,\n}) => {\n const update = useUpdate()\n useEffect(() => {\n update()\n }, [show])\n\n const onClick = (fn: (ctx: Ctx) => void) => (e: MouseEvent) => {\n e.preventDefault()\n ctx && fn(ctx)\n update()\n }\n\n const isActive = (mark: MarkType) => {\n if (!ctx)\n return false\n const view = ctx.get(editorViewCtx)\n const { state: { doc, selection } } = view\n return doc.rangeHasMark(selection.from, selection.to, mark)\n }\n\n return html`<host>\n <button\n class=${clsx('toolbar-item', ctx && isActive(strongSchema.type(ctx)) && 'active')}\n onmousedown=${onClick((ctx) => {\n const commands = ctx.get(commandsCtx)\n commands.call(toggleStrongCommand.key)\n })}\n >\n ${config?.boldIcon?.() ?? boldIcon}\n </button>\n <button\n class=${clsx('toolbar-item', ctx && isActive(emphasisSchema.type(ctx)) && 'active')}\n onmousedown=${onClick((ctx) => {\n const commands = ctx.get(commandsCtx)\n commands.call(toggleEmphasisCommand.key)\n })}\n >\n ${config?.italicIcon?.() ?? italicIcon}\n </button>\n <button\n class=${clsx('toolbar-item', ctx && isActive(strikethroughSchema.type(ctx)) && 'active')}\n onmousedown=${onClick((ctx) => {\n const commands = ctx.get(commandsCtx)\n commands.call(toggleStrikethroughCommand.key)\n })}\n >\n ${config?.strikethroughIcon?.() ?? strikethroughIcon}\n </button>\n <div class=\"divider\"></div>\n <button\n class=${clsx('toolbar-item', ctx && isActive(inlineCodeSchema.type(ctx)) && 'active')}\n onmousedown=${onClick((ctx) => {\n const commands = ctx.get(commandsCtx)\n commands.call(toggleInlineCodeCommand.key)\n })}\n >\n ${config?.codeIcon?.() ?? codeIcon}\n </button>\n <button\n class=${clsx('toolbar-item', ctx && isActive(linkSchema.type(ctx)) && 'active')}\n onmousedown=${onClick((ctx) => {\n const view = ctx.get(editorViewCtx)\n const { selection } = view.state\n\n if (isActive(linkSchema.type(ctx))) {\n ctx.get(linkTooltipAPI.key).removeLink(selection.from, selection.to)\n return\n }\n\n ctx.get(linkTooltipAPI.key).addLink(selection.from, selection.to)\n hide?.()\n })}\n >\n ${config?.linkIcon?.() ?? linkIcon}\n </button>\n </host>`\n}\n\ntoolbarComponent.props = {\n ctx: Object,\n hide: Function,\n show: Boolean,\n config: Object,\n}\n\nexport const ToolbarElement = c(toolbarComponent)\n","import { TooltipProvider, tooltipFactory } from '@milkdown/kit/plugin/tooltip'\nimport type { EditorState, PluginView } from '@milkdown/kit/prose/state'\nimport { TextSelection } from '@milkdown/kit/prose/state'\nimport type { Ctx } from '@milkdown/kit/ctx'\nimport type { EditorView } from '@milkdown/kit/prose/view'\nimport type { AtomicoThis } from 'atomico/types/dom'\nimport type { DefineFeature, Icon } from '../shared'\nimport { defIfNotExists } from '../../utils'\nimport type { ToolbarProps } from './component'\nimport { ToolbarElement } from './component'\n\ninterface ToolbarConfig {\n boldIcon: Icon\n codeIcon: Icon\n italicIcon: Icon\n linkIcon: Icon\n strikethroughIcon: Icon\n}\n\nexport type ToolbarFeatureConfig = Partial<ToolbarConfig>\n\nconst toolbar = tooltipFactory('CREPE_TOOLBAR')\n\nclass ToolbarView implements PluginView {\n #tooltipProvider: TooltipProvider\n #content: AtomicoThis<ToolbarProps>\n constructor(ctx: Ctx, view: EditorView, config?: ToolbarFeatureConfig) {\n const content = new ToolbarElement()\n this.#content = content\n this.#content.ctx = ctx\n this.#content.hide = this.hide\n this.#content.config = config\n\n this.#tooltipProvider = new TooltipProvider({\n content: this.#content,\n debounce: 20,\n offset: 10,\n shouldShow(view: EditorView) {\n const { doc, selection } = view.state\n const { empty, from, to } = selection\n\n const isEmptyTextBlock = !doc.textBetween(from, to).length && selection instanceof TextSelection\n\n const isNotTextBlock = !(selection instanceof TextSelection)\n\n const activeElement = (view.dom.getRootNode() as ShadowRoot | Document).activeElement\n const isTooltipChildren = content.contains(activeElement)\n\n const notHasFocus = !view.hasFocus() && !isTooltipChildren\n\n const isReadonly = !view.editable\n\n if (\n notHasFocus\n || isNotTextBlock\n || empty\n || isEmptyTextBlock\n || isReadonly\n )\n return false\n\n return true\n },\n })\n this.#tooltipProvider.onShow = () => {\n this.#content.show = true\n }\n this.#tooltipProvider.onHide = () => {\n this.#content.show = false\n }\n this.update(view)\n }\n\n update = (view: EditorView, prevState?: EditorState) => {\n this.#tooltipProvider.update(view, prevState)\n }\n\n destroy = () => {\n this.#tooltipProvider.destroy()\n this.#content.remove()\n }\n\n hide = () => {\n this.#tooltipProvider.hide()\n }\n}\n\ndefIfNotExists('milkdown-toolbar', ToolbarElement)\nexport const defineFeature: DefineFeature<ToolbarFeatureConfig> = (editor, config) => {\n editor\n .config((ctx) => {\n ctx.set(toolbar.key, {\n view: view => new ToolbarView(ctx, view, config),\n })\n })\n .use(toolbar)\n}\n"],"names":["ctx","view"],"mappings":"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"}
|
package/lib/esm/index.js
CHANGED
|
@@ -34,11 +34,11 @@ const defaultFeatures = {
|
|
|
34
34
|
async function loadFeature(feature, editor, config) {
|
|
35
35
|
switch (feature) {
|
|
36
36
|
case "code-mirror" /* CodeMirror */: {
|
|
37
|
-
const { defineFeature } = await import('./index-
|
|
37
|
+
const { defineFeature } = await import('./index-jU_6odT9.js');
|
|
38
38
|
return defineFeature(editor, config);
|
|
39
39
|
}
|
|
40
40
|
case "list-item" /* ListItem */: {
|
|
41
|
-
const { defineFeature } = await import('./index-
|
|
41
|
+
const { defineFeature } = await import('./index-amuALmzU.js');
|
|
42
42
|
return defineFeature(editor, config);
|
|
43
43
|
}
|
|
44
44
|
case "link-tooltip" /* LinkTooltip */: {
|
|
@@ -62,7 +62,7 @@ async function loadFeature(feature, editor, config) {
|
|
|
62
62
|
return defineFeature(editor, config);
|
|
63
63
|
}
|
|
64
64
|
case "toolbar" /* Toolbar */: {
|
|
65
|
-
const { defineFeature } = await import('./index-
|
|
65
|
+
const { defineFeature } = await import('./index-w69wbtEZ.js');
|
|
66
66
|
return defineFeature(editor, config);
|
|
67
67
|
}
|
|
68
68
|
case "table" /* Table */: {
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/feature/index.ts","../../src/core/slice.ts","../../src/core/crepe.ts"],"sourcesContent":["import type { Editor } from '@milkdown/kit/core'\nimport type { PlaceHolderFeatureConfig } from './placeholder'\nimport type { CodeMirrorFeatureConfig } from './code-mirror'\nimport type { BlockEditFeatureConfig } from './block-edit'\nimport type { CursorFeatureConfig } from './cursor'\nimport type { ImageBlockFeatureConfig } from './image-block'\nimport type { LinkTooltipFeatureConfig } from './link-tooltip'\nimport type { ListItemFeatureConfig } from './list-item'\nimport type { ToolbarFeatureConfig } from './toolbar'\nimport type { TableFeatureConfig } from './table'\n\nexport enum CrepeFeature {\n CodeMirror = 'code-mirror',\n ListItem = 'list-item',\n LinkTooltip = 'link-tooltip',\n Cursor = 'cursor',\n ImageBlock = 'image-block',\n BlockEdit = 'block-edit',\n Toolbar = 'toolbar',\n Placeholder = 'placeholder',\n Table = 'table',\n}\n\nexport interface CrepeFeatureConfig {\n [CrepeFeature.Cursor]?: CursorFeatureConfig\n [CrepeFeature.ListItem]?: ListItemFeatureConfig\n [CrepeFeature.LinkTooltip]?: LinkTooltipFeatureConfig\n [CrepeFeature.ImageBlock]?: ImageBlockFeatureConfig\n [CrepeFeature.BlockEdit]?: BlockEditFeatureConfig\n [CrepeFeature.Placeholder]?: PlaceHolderFeatureConfig\n [CrepeFeature.Toolbar]?: ToolbarFeatureConfig\n [CrepeFeature.CodeMirror]?: CodeMirrorFeatureConfig\n [CrepeFeature.Table]?: TableFeatureConfig\n}\n\nexport const defaultFeatures: Record<CrepeFeature, boolean> = {\n [CrepeFeature.Cursor]: true,\n [CrepeFeature.ListItem]: true,\n [CrepeFeature.LinkTooltip]: true,\n [CrepeFeature.ImageBlock]: true,\n [CrepeFeature.BlockEdit]: true,\n [CrepeFeature.Placeholder]: true,\n [CrepeFeature.Toolbar]: true,\n [CrepeFeature.CodeMirror]: true,\n [CrepeFeature.Table]: true,\n}\n\nexport async function loadFeature(feature: CrepeFeature, editor: Editor, config?: never) {\n switch (feature) {\n case CrepeFeature.CodeMirror: {\n const { defineFeature } = await import('./code-mirror')\n return defineFeature(editor, config)\n }\n case CrepeFeature.ListItem: {\n const { defineFeature } = await import('./list-item')\n return defineFeature(editor, config)\n }\n case CrepeFeature.LinkTooltip: {\n const { defineFeature } = await import('./link-tooltip')\n return defineFeature(editor, config)\n }\n case CrepeFeature.ImageBlock: {\n const { defineFeature } = await import('./image-block')\n return defineFeature(editor, config)\n }\n case CrepeFeature.Cursor: {\n const { defineFeature } = await import('./cursor')\n return defineFeature(editor, config)\n }\n case CrepeFeature.BlockEdit: {\n const { defineFeature } = await import('./block-edit')\n return defineFeature(editor, config)\n }\n case CrepeFeature.Placeholder: {\n const { defineFeature } = await import('./placeholder')\n return defineFeature(editor, config)\n }\n case CrepeFeature.Toolbar: {\n const { defineFeature } = await import('./toolbar')\n return defineFeature(editor, config)\n }\n case CrepeFeature.Table: {\n const { defineFeature } = await import('./table')\n return defineFeature(editor, config)\n }\n }\n}\n","import type { Ctx } from '@milkdown/kit/ctx'\nimport { createSlice } from '@milkdown/kit/ctx'\nimport type { CrepeFeature } from '../feature'\n\nexport const FeaturesCtx = createSlice([] as CrepeFeature[], 'FeaturesCtx')\n\nexport function configureFeatures(features: CrepeFeature[]) {\n return (ctx: Ctx) => {\n ctx.inject(FeaturesCtx, features)\n }\n}\n","import type { DefaultValue } from '@milkdown/kit/core'\nimport { Editor, defaultValueCtx, editorViewOptionsCtx, rootCtx } from '@milkdown/kit/core'\n\nimport { commonmark } from '@milkdown/kit/preset/commonmark'\nimport { gfm } from '@milkdown/kit/preset/gfm'\nimport { history } from '@milkdown/kit/plugin/history'\nimport { indent, indentConfig } from '@milkdown/kit/plugin/indent'\nimport { getMarkdown } from '@milkdown/kit/utils'\nimport { clipboard } from '@milkdown/kit/plugin/clipboard'\nimport { trailing } from '@milkdown/kit/plugin/trailing'\n\nimport type { CrepeFeatureConfig } from '../feature'\nimport { CrepeFeature, defaultFeatures, loadFeature } from '../feature'\nimport { configureFeatures } from './slice'\n\nexport interface CrepeConfig {\n features?: Partial<Record<CrepeFeature, boolean>>\n featureConfigs?: CrepeFeatureConfig\n root?: Node | string | null\n defaultValue?: DefaultValue\n}\n\nexport class Crepe {\n static Feature = CrepeFeature\n readonly #editor: Editor\n readonly #initPromise: Promise<unknown>\n readonly #rootElement: Node\n #editable = true\n\n constructor({\n root,\n features = {},\n featureConfigs = {},\n defaultValue = '',\n }: CrepeConfig) {\n const enabledFeatures = Object\n .entries({\n ...defaultFeatures,\n ...features,\n })\n .filter(([, enabled]) => enabled)\n .map(([feature]) => feature as CrepeFeature)\n\n this.#rootElement = (typeof root === 'string' ? document.querySelector(root) : root) ?? document.body\n this.#editor = Editor.make()\n .config(configureFeatures(enabledFeatures))\n .config((ctx) => {\n ctx.set(rootCtx, this.#rootElement)\n ctx.set(defaultValueCtx, defaultValue)\n ctx.set(editorViewOptionsCtx, {\n editable: () => this.#editable,\n })\n ctx.update(indentConfig.key, value => ({\n ...value,\n size: 4,\n }))\n })\n .use(commonmark)\n .use(history)\n .use(indent)\n .use(trailing)\n .use(clipboard)\n .use(gfm)\n\n const promiseList: Promise<unknown>[] = []\n\n enabledFeatures.forEach((feature) => {\n const config = (featureConfigs as Partial<Record<CrepeFeature, never>>)[feature]\n promiseList.push(\n loadFeature(feature, this.#editor, config),\n )\n })\n\n this.#initPromise = Promise.all(promiseList)\n }\n\n async create() {\n await this.#initPromise\n return this.#editor.create()\n }\n\n async destroy() {\n await this.#initPromise\n return this.#editor.destroy()\n }\n\n get editor(): Editor {\n return this.#editor\n }\n\n setReadonly(value: boolean) {\n this.#editable = !value\n return this\n }\n\n getMarkdown() {\n return this.#editor.action(getMarkdown())\n }\n}\n"],"names":["CrepeFeature"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/feature/index.ts","../../src/core/slice.ts","../../src/core/crepe.ts"],"sourcesContent":["import type { Editor } from '@milkdown/kit/core'\nimport type { PlaceHolderFeatureConfig } from './placeholder'\nimport type { CodeMirrorFeatureConfig } from './code-mirror'\nimport type { BlockEditFeatureConfig } from './block-edit'\nimport type { CursorFeatureConfig } from './cursor'\nimport type { ImageBlockFeatureConfig } from './image-block'\nimport type { LinkTooltipFeatureConfig } from './link-tooltip'\nimport type { ListItemFeatureConfig } from './list-item'\nimport type { ToolbarFeatureConfig } from './toolbar'\nimport type { TableFeatureConfig } from './table'\n\nexport enum CrepeFeature {\n CodeMirror = 'code-mirror',\n ListItem = 'list-item',\n LinkTooltip = 'link-tooltip',\n Cursor = 'cursor',\n ImageBlock = 'image-block',\n BlockEdit = 'block-edit',\n Toolbar = 'toolbar',\n Placeholder = 'placeholder',\n Table = 'table',\n}\n\nexport interface CrepeFeatureConfig {\n [CrepeFeature.Cursor]?: CursorFeatureConfig\n [CrepeFeature.ListItem]?: ListItemFeatureConfig\n [CrepeFeature.LinkTooltip]?: LinkTooltipFeatureConfig\n [CrepeFeature.ImageBlock]?: ImageBlockFeatureConfig\n [CrepeFeature.BlockEdit]?: BlockEditFeatureConfig\n [CrepeFeature.Placeholder]?: PlaceHolderFeatureConfig\n [CrepeFeature.Toolbar]?: ToolbarFeatureConfig\n [CrepeFeature.CodeMirror]?: CodeMirrorFeatureConfig\n [CrepeFeature.Table]?: TableFeatureConfig\n}\n\nexport const defaultFeatures: Record<CrepeFeature, boolean> = {\n [CrepeFeature.Cursor]: true,\n [CrepeFeature.ListItem]: true,\n [CrepeFeature.LinkTooltip]: true,\n [CrepeFeature.ImageBlock]: true,\n [CrepeFeature.BlockEdit]: true,\n [CrepeFeature.Placeholder]: true,\n [CrepeFeature.Toolbar]: true,\n [CrepeFeature.CodeMirror]: true,\n [CrepeFeature.Table]: true,\n}\n\nexport async function loadFeature(feature: CrepeFeature, editor: Editor, config?: never) {\n switch (feature) {\n case CrepeFeature.CodeMirror: {\n const { defineFeature } = await import('./code-mirror')\n return defineFeature(editor, config)\n }\n case CrepeFeature.ListItem: {\n const { defineFeature } = await import('./list-item')\n return defineFeature(editor, config)\n }\n case CrepeFeature.LinkTooltip: {\n const { defineFeature } = await import('./link-tooltip')\n return defineFeature(editor, config)\n }\n case CrepeFeature.ImageBlock: {\n const { defineFeature } = await import('./image-block')\n return defineFeature(editor, config)\n }\n case CrepeFeature.Cursor: {\n const { defineFeature } = await import('./cursor')\n return defineFeature(editor, config)\n }\n case CrepeFeature.BlockEdit: {\n const { defineFeature } = await import('./block-edit')\n return defineFeature(editor, config)\n }\n case CrepeFeature.Placeholder: {\n const { defineFeature } = await import('./placeholder')\n return defineFeature(editor, config)\n }\n case CrepeFeature.Toolbar: {\n const { defineFeature } = await import('./toolbar')\n return defineFeature(editor, config)\n }\n case CrepeFeature.Table: {\n const { defineFeature } = await import('./table')\n return defineFeature(editor, config)\n }\n }\n}\n","import type { Ctx } from '@milkdown/kit/ctx'\nimport { createSlice } from '@milkdown/kit/ctx'\nimport type { CrepeFeature } from '../feature'\n\nexport const FeaturesCtx = createSlice([] as CrepeFeature[], 'FeaturesCtx')\n\nexport function configureFeatures(features: CrepeFeature[]) {\n return (ctx: Ctx) => {\n ctx.inject(FeaturesCtx, features)\n }\n}\n","import type { DefaultValue } from '@milkdown/kit/core'\nimport { Editor, defaultValueCtx, editorViewOptionsCtx, rootCtx } from '@milkdown/kit/core'\n\nimport { commonmark } from '@milkdown/kit/preset/commonmark'\nimport { gfm } from '@milkdown/kit/preset/gfm'\nimport { history } from '@milkdown/kit/plugin/history'\nimport { indent, indentConfig } from '@milkdown/kit/plugin/indent'\nimport { getMarkdown } from '@milkdown/kit/utils'\nimport { clipboard } from '@milkdown/kit/plugin/clipboard'\nimport { trailing } from '@milkdown/kit/plugin/trailing'\n\nimport type { CrepeFeatureConfig } from '../feature'\nimport { CrepeFeature, defaultFeatures, loadFeature } from '../feature'\nimport { configureFeatures } from './slice'\n\nexport interface CrepeConfig {\n features?: Partial<Record<CrepeFeature, boolean>>\n featureConfigs?: CrepeFeatureConfig\n root?: Node | string | null\n defaultValue?: DefaultValue\n}\n\nexport class Crepe {\n static Feature = CrepeFeature\n readonly #editor: Editor\n readonly #initPromise: Promise<unknown>\n readonly #rootElement: Node\n #editable = true\n\n constructor({\n root,\n features = {},\n featureConfigs = {},\n defaultValue = '',\n }: CrepeConfig) {\n const enabledFeatures = Object\n .entries({\n ...defaultFeatures,\n ...features,\n })\n .filter(([, enabled]) => enabled)\n .map(([feature]) => feature as CrepeFeature)\n\n this.#rootElement = (typeof root === 'string' ? document.querySelector(root) : root) ?? document.body\n this.#editor = Editor.make()\n .config(configureFeatures(enabledFeatures))\n .config((ctx) => {\n ctx.set(rootCtx, this.#rootElement)\n ctx.set(defaultValueCtx, defaultValue)\n ctx.set(editorViewOptionsCtx, {\n editable: () => this.#editable,\n })\n ctx.update(indentConfig.key, value => ({\n ...value,\n size: 4,\n }))\n })\n .use(commonmark)\n .use(history)\n .use(indent)\n .use(trailing)\n .use(clipboard)\n .use(gfm)\n\n const promiseList: Promise<unknown>[] = []\n\n enabledFeatures.forEach((feature) => {\n const config = (featureConfigs as Partial<Record<CrepeFeature, never>>)[feature]\n promiseList.push(\n loadFeature(feature, this.#editor, config),\n )\n })\n\n this.#initPromise = Promise.all(promiseList)\n }\n\n async create() {\n await this.#initPromise\n return this.#editor.create()\n }\n\n async destroy() {\n await this.#initPromise\n return this.#editor.destroy()\n }\n\n get editor(): Editor {\n return this.#editor\n }\n\n setReadonly(value: boolean) {\n this.#editable = !value\n return this\n }\n\n getMarkdown() {\n return this.#editor.action(getMarkdown())\n }\n}\n"],"names":["CrepeFeature"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@milkdown/crepe",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "7.5.
|
|
4
|
+
"version": "7.5.3",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -35,20 +35,18 @@
|
|
|
35
35
|
"src"
|
|
36
36
|
],
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"atomico": "^1.75.1"
|
|
39
|
-
},
|
|
40
|
-
"devDependencies": {
|
|
41
38
|
"@codemirror/commands": "^6.2.4",
|
|
42
39
|
"@codemirror/language": "^6.10.1",
|
|
43
40
|
"@codemirror/language-data": "^6.3.1",
|
|
44
41
|
"@codemirror/state": "^6.4.1",
|
|
45
42
|
"@codemirror/view": "^6.16.0",
|
|
46
43
|
"@uiw/codemirror-theme-nord": "^4.22.1",
|
|
44
|
+
"atomico": "^1.75.1",
|
|
47
45
|
"clsx": "^2.0.0",
|
|
48
46
|
"codemirror": "^6.0.1",
|
|
49
47
|
"nanoid": "^5.0.0",
|
|
50
48
|
"tslib": "^2.5.0",
|
|
51
|
-
"@milkdown/kit": "7.5.
|
|
49
|
+
"@milkdown/kit": "7.5.3"
|
|
52
50
|
},
|
|
53
51
|
"nx": {
|
|
54
52
|
"targets": {
|