@milkdown/crepe 7.5.0 → 7.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/{index--tnUmqZ_.js → index--2zEz40J.js} +8 -23
- package/lib/cjs/{index--tnUmqZ_.js.map → index--2zEz40J.js.map} +1 -1
- package/lib/cjs/{index-92bwto5V.js → index-5n9R-QCl.js} +5 -20
- package/lib/cjs/{index-92bwto5V.js.map → index-5n9R-QCl.js.map} +1 -1
- package/lib/cjs/{index-HH5lPgpj.js → index-HEdBw63r.js} +8 -23
- package/lib/cjs/{index-HH5lPgpj.js.map → index-HEdBw63r.js.map} +1 -1
- package/lib/cjs/{index-J1-yHn7v.js → index-Hlt9dRH5.js} +5 -20
- package/lib/cjs/{index-J1-yHn7v.js.map → index-Hlt9dRH5.js.map} +1 -1
- package/lib/cjs/{index-cb-5m0vG.js → index-KCW2CzRk.js} +8 -23
- package/lib/cjs/index-KCW2CzRk.js.map +1 -0
- package/lib/cjs/{index-VYwHTL3F.js → index-KSZhahYb.js} +6 -21
- package/lib/cjs/{index-VYwHTL3F.js.map → index-KSZhahYb.js.map} +1 -1
- package/lib/cjs/index-N1cRxqdw.js +39 -0
- package/lib/cjs/index-N1cRxqdw.js.map +1 -0
- package/lib/cjs/{index-c_OzudR7.js → index-NNo_VSEA.js} +5 -20
- package/lib/{esm/index-DS7Z4Ach.js.map → cjs/index-NNo_VSEA.js.map} +1 -1
- package/lib/cjs/{index-Tjg8KyK7.js → index-O1bDbloo.js} +5 -20
- package/lib/{esm/index-eqd5wtjX.js.map → cjs/index-O1bDbloo.js.map} +1 -1
- package/lib/cjs/{index-55VIM-52.js → index-OPh9naof.js} +8 -23
- package/lib/cjs/{index-55VIM-52.js.map → index-OPh9naof.js.map} +1 -1
- package/lib/cjs/{index-E4Ist86Z.js → index-PAhfZtcH.js} +5 -20
- package/lib/cjs/{index-E4Ist86Z.js.map → index-PAhfZtcH.js.map} +1 -1
- package/lib/cjs/{index-vfzLCXfi.js → index-PeRHVz4A.js} +5 -20
- package/lib/{esm/index-3bDzhU6z.js.map → cjs/index-PeRHVz4A.js.map} +1 -1
- package/lib/cjs/{index-Jztk6JlP.js → index-U7GWrg-w.js} +9 -456
- package/lib/cjs/index-U7GWrg-w.js.map +1 -0
- package/lib/cjs/{index-zXSAHvAj.js → index-UTb0Az5e.js} +2 -2
- package/lib/cjs/{index-zXSAHvAj.js.map → index-UTb0Az5e.js.map} +1 -1
- package/lib/cjs/{index-lBumFRUQ.js → index-UnEAyH8X.js} +5 -20
- package/lib/cjs/{index-lBumFRUQ.js.map → index-UnEAyH8X.js.map} +1 -1
- package/lib/cjs/{index-1vHyMXH8.js → index-VCkq0ru1.js} +5 -20
- package/lib/{esm/index-g_3dzLYU.js.map → cjs/index-VCkq0ru1.js.map} +1 -1
- package/lib/cjs/{index-FbNqlZU8.js → index-WQl7Du53.js} +4 -19
- package/lib/cjs/index-WQl7Du53.js.map +1 -0
- package/lib/cjs/{index-nTfDKYYi.js → index-ahL5MvrQ.js} +28 -43
- package/lib/cjs/{index-nTfDKYYi.js.map → index-ahL5MvrQ.js.map} +1 -1
- package/lib/cjs/{index--sa4NMpW.js → index-bpgWLeRY.js} +5 -20
- package/lib/cjs/{index--sa4NMpW.js.map → index-bpgWLeRY.js.map} +1 -1
- package/lib/cjs/index-dEVmN_aj.js +26 -0
- package/lib/cjs/index-dEVmN_aj.js.map +1 -0
- package/lib/cjs/{index-von4W2LG.js → index-fZupvR_f.js} +8 -23
- package/lib/{esm/index-NZ5-xr5_.js.map → cjs/index-fZupvR_f.js.map} +1 -1
- package/lib/cjs/{index-mcxgNBq9.js → index-gSM-jgti.js} +5 -20
- package/lib/cjs/{index-mcxgNBq9.js.map → index-gSM-jgti.js.map} +1 -1
- package/lib/cjs/{index-lUNj3xuC.js → index-jlPr_A_N.js} +5 -20
- package/lib/cjs/{index-lUNj3xuC.js.map → index-jlPr_A_N.js.map} +1 -1
- package/lib/cjs/index-ocxd4A-M.js +675 -0
- package/lib/cjs/index-ocxd4A-M.js.map +1 -0
- package/lib/cjs/{index-J3XY9IPt.js → index-rFFAL9YA.js} +9 -17
- package/lib/cjs/{index-J3XY9IPt.js.map → index-rFFAL9YA.js.map} +1 -1
- package/lib/cjs/index-tlx25I_m.js +36 -0
- package/lib/cjs/index-tlx25I_m.js.map +1 -0
- package/lib/cjs/index-tqAbVyds.js +28 -0
- package/lib/cjs/index-tqAbVyds.js.map +1 -0
- package/lib/cjs/{index-cpC-j5Nt.js → index-udZSknd8.js} +30 -39
- package/lib/cjs/{index-cpC-j5Nt.js.map → index-udZSknd8.js.map} +1 -1
- package/lib/cjs/index-uleaJDBC.js +19 -0
- package/lib/cjs/index-uleaJDBC.js.map +1 -0
- package/lib/cjs/{index-jn036wuh.js → index-urB-WDqA.js} +7 -22
- package/lib/{esm/index-VoX_n1l_.js.map → cjs/index-urB-WDqA.js.map} +1 -1
- package/lib/cjs/{index-jlfsu92T.js → index-xWgWtxUR.js} +6 -21
- package/lib/cjs/{index-jlfsu92T.js.map → index-xWgWtxUR.js.map} +1 -1
- package/lib/cjs/index.js +150 -14
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/{todoList-Ze4FLMlx.js → todoList-YYRQo7wG.js} +1 -12
- package/lib/cjs/todoList-YYRQo7wG.js.map +1 -0
- package/lib/esm/{index-Yuj7sNhQ.js → index-1NetiFdJ.js} +8 -23
- package/lib/esm/{index-Yuj7sNhQ.js.map → index-1NetiFdJ.js.map} +1 -1
- package/lib/esm/{index-6GrVnloh.js → index-2I_xbjAZ.js} +28 -43
- package/lib/esm/{index-6GrVnloh.js.map → index-2I_xbjAZ.js.map} +1 -1
- package/lib/esm/{index-bexsWrgs.js → index-2huXYfuJ.js} +8 -23
- package/lib/esm/{index-bexsWrgs.js.map → index-2huXYfuJ.js.map} +1 -1
- package/lib/esm/{index-zrQXXSXm.js → index-4x6_TVZv.js} +5 -20
- package/lib/esm/{index-zrQXXSXm.js.map → index-4x6_TVZv.js.map} +1 -1
- package/lib/esm/index-6JoGWH2I.js +17 -0
- package/lib/esm/index-6JoGWH2I.js.map +1 -0
- package/lib/esm/{index-OpUb5xP6.js → index-A-dNwMMf.js} +2 -2
- package/lib/esm/{index-OpUb5xP6.js.map → index-A-dNwMMf.js.map} +1 -1
- package/lib/esm/{index-SDPCpsD5.js → index-AV99ipmP.js} +5 -20
- package/lib/esm/{index-SDPCpsD5.js.map → index-AV99ipmP.js.map} +1 -1
- package/lib/esm/{index-MB6wQe1U.js → index-CMGDOz11.js} +5 -13
- package/lib/esm/{index-MB6wQe1U.js.map → index-CMGDOz11.js.map} +1 -1
- package/lib/esm/index-HlPKwzLC.js +34 -0
- package/lib/esm/index-HlPKwzLC.js.map +1 -0
- package/lib/esm/{index-MxgqkRtj.js → index-PC2bahtq.js} +5 -20
- package/lib/esm/{index-MxgqkRtj.js.map → index-PC2bahtq.js.map} +1 -1
- package/lib/esm/{index-eqd5wtjX.js → index-QBYz82jZ.js} +5 -20
- package/lib/{cjs/index-Tjg8KyK7.js.map → esm/index-QBYz82jZ.js.map} +1 -1
- package/lib/esm/{index-VP76m4nW.js → index-W1pAMr_8.js} +6 -21
- package/lib/esm/{index-VP76m4nW.js.map → index-W1pAMr_8.js.map} +1 -1
- package/lib/esm/{index-i79QMXpJ.js → index-Xzdc2jbA.js} +7 -454
- package/lib/esm/index-Xzdc2jbA.js.map +1 -0
- package/lib/esm/{index-_4fWmRbN.js → index-ZAtZWqJQ.js} +5 -20
- package/lib/esm/{index-_4fWmRbN.js.map → index-ZAtZWqJQ.js.map} +1 -1
- package/lib/esm/index-_A9vu1ED.js +673 -0
- package/lib/esm/index-_A9vu1ED.js.map +1 -0
- package/lib/esm/{index-x8SyiPMC.js → index-bnSKBrbD.js} +5 -20
- package/lib/esm/{index-x8SyiPMC.js.map → index-bnSKBrbD.js.map} +1 -1
- package/lib/esm/index-fVrfHXda.js +24 -0
- package/lib/esm/index-fVrfHXda.js.map +1 -0
- package/lib/esm/{index-Vl0W0S3h.js → index-ftnOhuRS.js} +4 -19
- package/lib/esm/index-ftnOhuRS.js.map +1 -0
- package/lib/esm/{index-1l-61HI-.js → index-iQPB0Rdl.js} +6 -21
- package/lib/esm/{index-1l-61HI-.js.map → index-iQPB0Rdl.js.map} +1 -1
- package/lib/esm/{index-grT-Kuf2.js → index-kPj3-TKp.js} +5 -20
- package/lib/esm/{index-grT-Kuf2.js.map → index-kPj3-TKp.js.map} +1 -1
- package/lib/esm/{index-NZ5-xr5_.js → index-kgOR7SZ6.js} +8 -23
- package/lib/{cjs/index-von4W2LG.js.map → esm/index-kgOR7SZ6.js.map} +1 -1
- package/lib/esm/{index-A83StUe6.js → index-lm00PM0y.js} +8 -17
- package/lib/esm/{index-A83StUe6.js.map → index-lm00PM0y.js.map} +1 -1
- package/lib/esm/{index-g_3dzLYU.js → index-m49Bj3q7.js} +5 -20
- package/lib/{cjs/index-1vHyMXH8.js.map → esm/index-m49Bj3q7.js.map} +1 -1
- package/lib/esm/index-ohmbt6Ys.js +37 -0
- package/lib/esm/index-ohmbt6Ys.js.map +1 -0
- package/lib/esm/{index-rvOBAXap.js → index-sWVjGw-3.js} +8 -23
- package/lib/esm/index-sWVjGw-3.js.map +1 -0
- package/lib/esm/{index-DS7Z4Ach.js → index-twh8lL5o.js} +5 -20
- package/lib/{cjs/index-c_OzudR7.js.map → esm/index-twh8lL5o.js.map} +1 -1
- package/lib/esm/{index-3bDzhU6z.js → index-v02MCz4_.js} +5 -20
- package/lib/{cjs/index-vfzLCXfi.js.map → esm/index-v02MCz4_.js.map} +1 -1
- package/lib/esm/index-v3rvbocl.js +26 -0
- package/lib/esm/index-v3rvbocl.js.map +1 -0
- package/lib/esm/{index-XH7OnwZl.js → index-wEXT8mbN.js} +5 -20
- package/lib/esm/{index-XH7OnwZl.js.map → index-wEXT8mbN.js.map} +1 -1
- package/lib/esm/{index-VoX_n1l_.js → index-wFIac5Kw.js} +7 -22
- package/lib/{cjs/index-jn036wuh.js.map → esm/index-wFIac5Kw.js.map} +1 -1
- package/lib/esm/{index-3HeWs5rX.js → index-wg94ewRo.js} +8 -23
- package/lib/esm/{index-3HeWs5rX.js.map → index-wg94ewRo.js.map} +1 -1
- package/lib/esm/index.js +152 -12
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/{todoList-M-PGJKde.js → todoList-9QsDDcmB.js} +2 -12
- package/lib/esm/todoList-9QsDDcmB.js.map +1 -0
- package/package.json +1 -1
- package/lib/cjs/_view-N32ied53.js +0 -27
- package/lib/cjs/_view-N32ied53.js.map +0 -1
- package/lib/cjs/floating-ui.dom-2cjBpir5.js +0 -1134
- package/lib/cjs/floating-ui.dom-2cjBpir5.js.map +0 -1
- package/lib/cjs/helper-1aludV1Z.js +0 -15
- package/lib/cjs/helper-1aludV1Z.js.map +0 -1
- package/lib/cjs/index-28q261C7.js +0 -448
- package/lib/cjs/index-28q261C7.js.map +0 -1
- package/lib/cjs/index-Buu2tD9O.js +0 -534
- package/lib/cjs/index-Buu2tD9O.js.map +0 -1
- package/lib/cjs/index-FbNqlZU8.js.map +0 -1
- package/lib/cjs/index-Jztk6JlP.js.map +0 -1
- package/lib/cjs/index-N6pPZY61.js +0 -191
- package/lib/cjs/index-N6pPZY61.js.map +0 -1
- package/lib/cjs/index-TUJs6KKL.js +0 -472
- package/lib/cjs/index-TUJs6KKL.js.map +0 -1
- package/lib/cjs/index-_GOdKqUK.js +0 -1147
- package/lib/cjs/index-_GOdKqUK.js.map +0 -1
- package/lib/cjs/index-cKQcw-eu.js +0 -386
- package/lib/cjs/index-cKQcw-eu.js.map +0 -1
- package/lib/cjs/index-cb-5m0vG.js.map +0 -1
- package/lib/cjs/index-crv_k6dv.js +0 -1353
- package/lib/cjs/index-crv_k6dv.js.map +0 -1
- package/lib/cjs/index-kqz-P6o6.js +0 -55
- package/lib/cjs/index-kqz-P6o6.js.map +0 -1
- package/lib/cjs/index-tBw4NmwY.js +0 -33852
- package/lib/cjs/index-tBw4NmwY.js.map +0 -1
- package/lib/cjs/schema-RVrwDDcq.js +0 -74
- package/lib/cjs/schema-RVrwDDcq.js.map +0 -1
- package/lib/cjs/todoList-Ze4FLMlx.js.map +0 -1
- package/lib/cjs/tooltip-plugin--lhebztC.js +0 -191
- package/lib/cjs/tooltip-plugin--lhebztC.js.map +0 -1
- package/lib/esm/_view-IlZC8FA6.js +0 -25
- package/lib/esm/_view-IlZC8FA6.js.map +0 -1
- package/lib/esm/floating-ui.dom-CAYjY8Gv.js +0 -1130
- package/lib/esm/floating-ui.dom-CAYjY8Gv.js.map +0 -1
- package/lib/esm/helper-wZAtC67x.js +0 -13
- package/lib/esm/helper-wZAtC67x.js.map +0 -1
- package/lib/esm/index-0-j8Icms.js +0 -384
- package/lib/esm/index-0-j8Icms.js.map +0 -1
- package/lib/esm/index-8QJbxTYk.js +0 -1145
- package/lib/esm/index-8QJbxTYk.js.map +0 -1
- package/lib/esm/index-9w_hdnvb.js +0 -532
- package/lib/esm/index-9w_hdnvb.js.map +0 -1
- package/lib/esm/index-AOoFzBaK.js +0 -53
- package/lib/esm/index-AOoFzBaK.js.map +0 -1
- package/lib/esm/index-LAdX6LsO.js +0 -33805
- package/lib/esm/index-LAdX6LsO.js.map +0 -1
- package/lib/esm/index-Vl0W0S3h.js.map +0 -1
- package/lib/esm/index-chrnjY1D.js +0 -470
- package/lib/esm/index-chrnjY1D.js.map +0 -1
- package/lib/esm/index-hF04phbf.js +0 -189
- package/lib/esm/index-hF04phbf.js.map +0 -1
- package/lib/esm/index-i79QMXpJ.js.map +0 -1
- package/lib/esm/index-rvOBAXap.js.map +0 -1
- package/lib/esm/index-uP9BKsTM.js +0 -446
- package/lib/esm/index-uP9BKsTM.js.map +0 -1
- package/lib/esm/index-ueQQMSgm.js +0 -1351
- package/lib/esm/index-ueQQMSgm.js.map +0 -1
- package/lib/esm/schema-JWJqD9qa.js +0 -71
- package/lib/esm/schema-JWJqD9qa.js.map +0 -1
- package/lib/esm/todoList-M-PGJKde.js.map +0 -1
- package/lib/esm/tooltip-plugin-iw2EQWIG.js +0 -185
- package/lib/esm/tooltip-plugin-iw2EQWIG.js.map +0 -1
|
@@ -1,534 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var todoList = require('./todoList-Ze4FLMlx.js');
|
|
4
|
-
var atomico = require('atomico');
|
|
5
|
-
var index = require('./index-tBw4NmwY.js');
|
|
6
|
-
var schema = require('./schema-RVrwDDcq.js');
|
|
7
|
-
var helper = require('./helper-1aludV1Z.js');
|
|
8
|
-
var clsx = require('./clsx-dASsG01A.js');
|
|
9
|
-
var $view = require('./_view-N32ied53.js');
|
|
10
|
-
require('@milkdown/prose/model');
|
|
11
|
-
require('@milkdown/prose');
|
|
12
|
-
require('@milkdown/prose/commands');
|
|
13
|
-
require('@milkdown/prose/inputrules');
|
|
14
|
-
require('@milkdown/prose/keymap');
|
|
15
|
-
require('@milkdown/prose/state');
|
|
16
|
-
require('@milkdown/prose/view');
|
|
17
|
-
require('@milkdown/prose/schema-list');
|
|
18
|
-
require('@milkdown/prose/transform');
|
|
19
|
-
require('@milkdown/prose/history');
|
|
20
|
-
require('@milkdown/prose/tables');
|
|
21
|
-
|
|
22
|
-
function visitImage(ast) {
|
|
23
|
-
return index.visit(ast, "paragraph", (node, index, parent) => {
|
|
24
|
-
var _a, _b;
|
|
25
|
-
if (((_a = node.children) == null ? void 0 : _a.length) !== 1)
|
|
26
|
-
return;
|
|
27
|
-
const firstChild = (_b = node.children) == null ? void 0 : _b[0];
|
|
28
|
-
if (!firstChild || firstChild.type !== "image")
|
|
29
|
-
return;
|
|
30
|
-
const { url, alt, title } = firstChild;
|
|
31
|
-
const newNode = {
|
|
32
|
-
type: "image-block",
|
|
33
|
-
url,
|
|
34
|
-
alt,
|
|
35
|
-
title
|
|
36
|
-
};
|
|
37
|
-
parent.children.splice(index, 1, newNode);
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
const remarkImageBlockPlugin = index.$remark("remark-image-block", () => () => visitImage);
|
|
41
|
-
todoList.withMeta(remarkImageBlockPlugin.plugin, {
|
|
42
|
-
displayName: "Remark<remarkImageBlock>",
|
|
43
|
-
group: "ImageBlock"
|
|
44
|
-
});
|
|
45
|
-
todoList.withMeta(remarkImageBlockPlugin.options, {
|
|
46
|
-
displayName: "RemarkConfig<remarkImageBlock>",
|
|
47
|
-
group: "ImageBlock"
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
const defaultImageBlockConfig = {
|
|
51
|
-
imageIcon: () => "\u{1F30C}",
|
|
52
|
-
captionIcon: () => "\u{1F4AC}",
|
|
53
|
-
uploadButton: () => atomico.html`Upload file`,
|
|
54
|
-
confirmButton: () => atomico.html`Confirm ⏎`,
|
|
55
|
-
uploadPlaceholderText: "or paste the image link ...",
|
|
56
|
-
captionPlaceholderText: "Image caption",
|
|
57
|
-
onUpload: (file) => Promise.resolve(URL.createObjectURL(file))
|
|
58
|
-
};
|
|
59
|
-
const imageBlockConfig = index.$ctx(defaultImageBlockConfig, "imageBlockConfigCtx");
|
|
60
|
-
todoList.withMeta(imageBlockConfig, {
|
|
61
|
-
displayName: "Config<image-block>",
|
|
62
|
-
group: "ImageBlock"
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
function useBlockEffect({
|
|
66
|
-
image,
|
|
67
|
-
resizeHandle,
|
|
68
|
-
ratio,
|
|
69
|
-
setRatio,
|
|
70
|
-
src
|
|
71
|
-
}) {
|
|
72
|
-
const host = atomico.useHost();
|
|
73
|
-
const root = atomico.useMemo(() => host.current.getRootNode(), [host]);
|
|
74
|
-
atomico.useEffect(() => {
|
|
75
|
-
const imageRef = image.current;
|
|
76
|
-
if (!imageRef)
|
|
77
|
-
return;
|
|
78
|
-
delete imageRef.dataset.origin;
|
|
79
|
-
delete imageRef.dataset.height;
|
|
80
|
-
imageRef.style.height = "";
|
|
81
|
-
}, [src]);
|
|
82
|
-
atomico.useEffect(() => {
|
|
83
|
-
const resizeHandleRef = resizeHandle.current;
|
|
84
|
-
const imageRef = image.current;
|
|
85
|
-
if (!resizeHandleRef || !imageRef)
|
|
86
|
-
return;
|
|
87
|
-
const onMove = (e) => {
|
|
88
|
-
e.preventDefault();
|
|
89
|
-
const top = imageRef.getBoundingClientRect().top;
|
|
90
|
-
const height = e.clientY - top;
|
|
91
|
-
const h = Number(height < 100 ? 100 : height).toFixed(2);
|
|
92
|
-
imageRef.dataset.height = h;
|
|
93
|
-
imageRef.style.height = `${h}px`;
|
|
94
|
-
};
|
|
95
|
-
const pointerUp = () => {
|
|
96
|
-
root.removeEventListener("pointermove", onMove);
|
|
97
|
-
root.removeEventListener("pointerup", pointerUp);
|
|
98
|
-
const originHeight = Number(imageRef.dataset.origin);
|
|
99
|
-
const currentHeight = Number(imageRef.dataset.height);
|
|
100
|
-
const ratio2 = Number.parseFloat(Number(currentHeight / originHeight).toFixed(2));
|
|
101
|
-
if (Number.isNaN(ratio2))
|
|
102
|
-
return;
|
|
103
|
-
setRatio(ratio2);
|
|
104
|
-
};
|
|
105
|
-
const pointerDown = (e) => {
|
|
106
|
-
e.preventDefault();
|
|
107
|
-
root.addEventListener("pointermove", onMove);
|
|
108
|
-
root.addEventListener("pointerup", pointerUp);
|
|
109
|
-
};
|
|
110
|
-
const onLoad = (e) => {
|
|
111
|
-
const maxWidth = host.current.getBoundingClientRect().width;
|
|
112
|
-
if (!maxWidth)
|
|
113
|
-
return;
|
|
114
|
-
const target = e.target;
|
|
115
|
-
const height = target.height;
|
|
116
|
-
const width = target.width;
|
|
117
|
-
const transformedHeight = width < maxWidth ? height : maxWidth * (height / width);
|
|
118
|
-
const h = (transformedHeight * ratio).toFixed(2);
|
|
119
|
-
imageRef.dataset.origin = transformedHeight.toFixed(2);
|
|
120
|
-
imageRef.dataset.height = h;
|
|
121
|
-
imageRef.style.height = `${h}px`;
|
|
122
|
-
};
|
|
123
|
-
imageRef.addEventListener("load", onLoad);
|
|
124
|
-
resizeHandleRef.addEventListener("pointerdown", pointerDown);
|
|
125
|
-
return () => {
|
|
126
|
-
imageRef.removeEventListener("load", onLoad);
|
|
127
|
-
resizeHandleRef.removeEventListener("pointerdown", pointerDown);
|
|
128
|
-
};
|
|
129
|
-
}, []);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
let timer = 0;
|
|
133
|
-
const imageComponent = ({
|
|
134
|
-
src = "",
|
|
135
|
-
caption = "",
|
|
136
|
-
ratio = 1,
|
|
137
|
-
selected = false,
|
|
138
|
-
readonly = false,
|
|
139
|
-
setAttr,
|
|
140
|
-
config
|
|
141
|
-
}) => {
|
|
142
|
-
const image = atomico.useRef();
|
|
143
|
-
const resizeHandle = atomico.useRef();
|
|
144
|
-
const linkInput = atomico.useRef();
|
|
145
|
-
const [showCaption, setShowCaption] = atomico.useState(caption.length > 0);
|
|
146
|
-
const [hidePlaceholder, setHidePlaceholder] = atomico.useState(src.length !== 0);
|
|
147
|
-
const [uuid] = atomico.useState(crypto.randomUUID());
|
|
148
|
-
const [focusLinkInput, setFocusLinkInput] = atomico.useState(false);
|
|
149
|
-
const [currentLink, setCurrentLink] = atomico.useState(src);
|
|
150
|
-
useBlockEffect({
|
|
151
|
-
image,
|
|
152
|
-
resizeHandle,
|
|
153
|
-
ratio,
|
|
154
|
-
setRatio: (r) => setAttr == null ? void 0 : setAttr("ratio", r),
|
|
155
|
-
src
|
|
156
|
-
});
|
|
157
|
-
atomico.useEffect(() => {
|
|
158
|
-
if (selected)
|
|
159
|
-
return;
|
|
160
|
-
setShowCaption(caption.length > 0);
|
|
161
|
-
}, [selected]);
|
|
162
|
-
const onInput = (e) => {
|
|
163
|
-
const target = e.target;
|
|
164
|
-
const value = target.value;
|
|
165
|
-
if (timer)
|
|
166
|
-
window.clearTimeout(timer);
|
|
167
|
-
timer = window.setTimeout(() => {
|
|
168
|
-
setAttr == null ? void 0 : setAttr("caption", value);
|
|
169
|
-
}, 1e3);
|
|
170
|
-
};
|
|
171
|
-
const onBlurCaption = (e) => {
|
|
172
|
-
const target = e.target;
|
|
173
|
-
const value = target.value;
|
|
174
|
-
if (timer) {
|
|
175
|
-
window.clearTimeout(timer);
|
|
176
|
-
timer = 0;
|
|
177
|
-
}
|
|
178
|
-
setAttr == null ? void 0 : setAttr("caption", value);
|
|
179
|
-
};
|
|
180
|
-
const onEditLink = (e) => {
|
|
181
|
-
const target = e.target;
|
|
182
|
-
const value = target.value;
|
|
183
|
-
setHidePlaceholder(value.length !== 0);
|
|
184
|
-
setCurrentLink(value);
|
|
185
|
-
};
|
|
186
|
-
const onUpload = async (e) => {
|
|
187
|
-
var _a;
|
|
188
|
-
const file = (_a = e.target.files) == null ? void 0 : _a[0];
|
|
189
|
-
if (!file)
|
|
190
|
-
return;
|
|
191
|
-
const url = await (config == null ? void 0 : config.onUpload(file));
|
|
192
|
-
if (!url)
|
|
193
|
-
return;
|
|
194
|
-
setAttr == null ? void 0 : setAttr("src", url);
|
|
195
|
-
setHidePlaceholder(true);
|
|
196
|
-
};
|
|
197
|
-
const onToggleCaption = (e) => {
|
|
198
|
-
e.preventDefault();
|
|
199
|
-
e.stopPropagation();
|
|
200
|
-
if (readonly)
|
|
201
|
-
return;
|
|
202
|
-
setShowCaption((x) => !x);
|
|
203
|
-
};
|
|
204
|
-
const onConfirmLinkInput = () => {
|
|
205
|
-
var _a, _b;
|
|
206
|
-
setAttr == null ? void 0 : setAttr("src", (_b = (_a = linkInput.current) == null ? void 0 : _a.value) != null ? _b : "");
|
|
207
|
-
};
|
|
208
|
-
const onKeydown = (e) => {
|
|
209
|
-
if (e.key === "Enter")
|
|
210
|
-
onConfirmLinkInput();
|
|
211
|
-
};
|
|
212
|
-
const preventDrag = (e) => {
|
|
213
|
-
e.preventDefault();
|
|
214
|
-
e.stopPropagation();
|
|
215
|
-
};
|
|
216
|
-
const onClickUploader = (e) => {
|
|
217
|
-
e.stopPropagation();
|
|
218
|
-
e.preventDefault();
|
|
219
|
-
};
|
|
220
|
-
return atomico.html`<host class=${clsx.clsx(selected && "selected")}>
|
|
221
|
-
<div class=${clsx.clsx("image-edit", src.length > 0 && "hidden")}>
|
|
222
|
-
<div class="image-icon">
|
|
223
|
-
${config == null ? void 0 : config.imageIcon()}
|
|
224
|
-
</div>
|
|
225
|
-
<div class=${clsx.clsx("link-importer", focusLinkInput && "focus")}>
|
|
226
|
-
<input
|
|
227
|
-
ref=${linkInput}
|
|
228
|
-
draggable="true"
|
|
229
|
-
ondragstart=${preventDrag}
|
|
230
|
-
disabled=${readonly}
|
|
231
|
-
class="link-input-area"
|
|
232
|
-
value=${currentLink}
|
|
233
|
-
oninput=${onEditLink}
|
|
234
|
-
onkeydown=${onKeydown}
|
|
235
|
-
onfocus=${() => setFocusLinkInput(true)}
|
|
236
|
-
onblur=${() => setFocusLinkInput(false)}
|
|
237
|
-
/>
|
|
238
|
-
<div class=${clsx.clsx("placeholder", hidePlaceholder && "hidden")}>
|
|
239
|
-
<input disabled=${readonly} class="hidden" id=${uuid} type="file" accept="image/*" onchange=${onUpload} />
|
|
240
|
-
<label onpointerdown=${onClickUploader} class="uploader" for=${uuid}>
|
|
241
|
-
${config == null ? void 0 : config.uploadButton()}
|
|
242
|
-
</label>
|
|
243
|
-
<span class="text" onclick=${() => {
|
|
244
|
-
var _a;
|
|
245
|
-
return (_a = linkInput.current) == null ? void 0 : _a.focus();
|
|
246
|
-
}}>
|
|
247
|
-
${config == null ? void 0 : config.uploadPlaceholderText}
|
|
248
|
-
</span>
|
|
249
|
-
</div>
|
|
250
|
-
</div>
|
|
251
|
-
<div
|
|
252
|
-
class=${clsx.clsx("confirm", currentLink.length === 0 && "hidden")}
|
|
253
|
-
onclick=${() => onConfirmLinkInput()}
|
|
254
|
-
>
|
|
255
|
-
${config == null ? void 0 : config.confirmButton()}
|
|
256
|
-
</div>
|
|
257
|
-
</div>
|
|
258
|
-
<div class=${clsx.clsx("image-wrapper", src.length === 0 && "hidden")}>
|
|
259
|
-
<div class="operation">
|
|
260
|
-
<div class="operation-item" onpointerdown=${onToggleCaption}>${config == null ? void 0 : config.captionIcon()}</div>
|
|
261
|
-
</div>
|
|
262
|
-
<img ref=${image} data-type=${schema.IMAGE_DATA_TYPE} src=${src} alt=${caption} ratio=${ratio} />
|
|
263
|
-
<div ref=${resizeHandle} class="image-resize-handle"></div>
|
|
264
|
-
</div>
|
|
265
|
-
<input
|
|
266
|
-
draggable="true"
|
|
267
|
-
ondragstart=${preventDrag}
|
|
268
|
-
class=${clsx.clsx("caption-input", !showCaption && "hidden")}
|
|
269
|
-
placeholder=${config == null ? void 0 : config.captionPlaceholderText}
|
|
270
|
-
oninput=${onInput}
|
|
271
|
-
onblur=${onBlurCaption}
|
|
272
|
-
value=${caption}
|
|
273
|
-
/>
|
|
274
|
-
</host>`;
|
|
275
|
-
};
|
|
276
|
-
imageComponent.props = {
|
|
277
|
-
src: String,
|
|
278
|
-
caption: String,
|
|
279
|
-
ratio: Number,
|
|
280
|
-
selected: Boolean,
|
|
281
|
-
readonly: Boolean,
|
|
282
|
-
setAttr: Function,
|
|
283
|
-
config: Object
|
|
284
|
-
};
|
|
285
|
-
const ImageElement = atomico.c(imageComponent);
|
|
286
|
-
|
|
287
|
-
helper.defIfNotExists("milkdown-image-block", ImageElement);
|
|
288
|
-
const imageBlockView = $view.$view(schema.imageBlockSchema.node, (ctx) => {
|
|
289
|
-
return (initialNode, view, getPos) => {
|
|
290
|
-
const dom = document.createElement("milkdown-image-block");
|
|
291
|
-
const config = ctx.get(imageBlockConfig.key);
|
|
292
|
-
const bindAttrs = (node) => {
|
|
293
|
-
dom.src = node.attrs.src;
|
|
294
|
-
dom.ratio = node.attrs.ratio;
|
|
295
|
-
dom.caption = node.attrs.caption;
|
|
296
|
-
dom.readonly = !view.editable;
|
|
297
|
-
};
|
|
298
|
-
bindAttrs(initialNode);
|
|
299
|
-
dom.selected = false;
|
|
300
|
-
dom.setAttr = (attr, value) => {
|
|
301
|
-
const pos = getPos();
|
|
302
|
-
if (pos == null)
|
|
303
|
-
return;
|
|
304
|
-
view.dispatch(view.state.tr.setNodeAttribute(pos, attr, value));
|
|
305
|
-
};
|
|
306
|
-
dom.config = config;
|
|
307
|
-
return {
|
|
308
|
-
dom,
|
|
309
|
-
update: (updatedNode) => {
|
|
310
|
-
if (updatedNode.type !== initialNode.type)
|
|
311
|
-
return false;
|
|
312
|
-
bindAttrs(updatedNode);
|
|
313
|
-
return true;
|
|
314
|
-
},
|
|
315
|
-
stopEvent: (e) => {
|
|
316
|
-
if (e.target instanceof HTMLInputElement)
|
|
317
|
-
return true;
|
|
318
|
-
return false;
|
|
319
|
-
},
|
|
320
|
-
selectNode: () => {
|
|
321
|
-
dom.selected = true;
|
|
322
|
-
},
|
|
323
|
-
deselectNode: () => {
|
|
324
|
-
dom.selected = false;
|
|
325
|
-
},
|
|
326
|
-
destroy: () => {
|
|
327
|
-
dom.remove();
|
|
328
|
-
}
|
|
329
|
-
};
|
|
330
|
-
};
|
|
331
|
-
});
|
|
332
|
-
todoList.withMeta(imageBlockView, {
|
|
333
|
-
displayName: "NodeView<image-block>",
|
|
334
|
-
group: "ImageBlock"
|
|
335
|
-
});
|
|
336
|
-
|
|
337
|
-
const imageBlockComponent = [
|
|
338
|
-
remarkImageBlockPlugin,
|
|
339
|
-
schema.imageBlockSchema,
|
|
340
|
-
imageBlockView,
|
|
341
|
-
imageBlockConfig
|
|
342
|
-
].flat();
|
|
343
|
-
|
|
344
|
-
const defaultInlineImageConfig = {
|
|
345
|
-
imageIcon: () => "\u{1F30C}",
|
|
346
|
-
uploadButton: () => atomico.html`Upload`,
|
|
347
|
-
confirmButton: () => atomico.html`⏎`,
|
|
348
|
-
uploadPlaceholderText: "/Paste",
|
|
349
|
-
onUpload: (file) => Promise.resolve(URL.createObjectURL(file))
|
|
350
|
-
};
|
|
351
|
-
const inlineImageConfig = index.$ctx(defaultInlineImageConfig, "inlineImageConfigCtx");
|
|
352
|
-
todoList.withMeta(inlineImageConfig, {
|
|
353
|
-
displayName: "Config<image-inline>",
|
|
354
|
-
group: "ImageInline"
|
|
355
|
-
});
|
|
356
|
-
|
|
357
|
-
const inlineImageComponent = ({
|
|
358
|
-
src = "",
|
|
359
|
-
selected = false,
|
|
360
|
-
alt,
|
|
361
|
-
title,
|
|
362
|
-
setAttr,
|
|
363
|
-
config
|
|
364
|
-
}) => {
|
|
365
|
-
const linkInput = atomico.useRef();
|
|
366
|
-
const [uuid] = atomico.useState(crypto.randomUUID());
|
|
367
|
-
const [focusLinkInput, setFocusLinkInput] = atomico.useState(false);
|
|
368
|
-
const [hidePlaceholder, setHidePlaceholder] = atomico.useState(src.length !== 0);
|
|
369
|
-
const [currentLink, setCurrentLink] = atomico.useState(src);
|
|
370
|
-
const onEditLink = (e) => {
|
|
371
|
-
const target = e.target;
|
|
372
|
-
const value = target.value;
|
|
373
|
-
setHidePlaceholder(value.length !== 0);
|
|
374
|
-
setCurrentLink(value);
|
|
375
|
-
};
|
|
376
|
-
const onUpload = async (e) => {
|
|
377
|
-
var _a;
|
|
378
|
-
const file = (_a = e.target.files) == null ? void 0 : _a[0];
|
|
379
|
-
if (!file)
|
|
380
|
-
return;
|
|
381
|
-
const url = await (config == null ? void 0 : config.onUpload(file));
|
|
382
|
-
if (!url)
|
|
383
|
-
return;
|
|
384
|
-
setAttr == null ? void 0 : setAttr("src", url);
|
|
385
|
-
setHidePlaceholder(true);
|
|
386
|
-
};
|
|
387
|
-
const onConfirmLinkInput = () => {
|
|
388
|
-
var _a, _b;
|
|
389
|
-
setAttr == null ? void 0 : setAttr("src", (_b = (_a = linkInput.current) == null ? void 0 : _a.value) != null ? _b : "");
|
|
390
|
-
};
|
|
391
|
-
const onKeydown = (e) => {
|
|
392
|
-
if (e.key === "Enter")
|
|
393
|
-
onConfirmLinkInput();
|
|
394
|
-
};
|
|
395
|
-
const preventDrag = (e) => {
|
|
396
|
-
e.preventDefault();
|
|
397
|
-
e.stopPropagation();
|
|
398
|
-
};
|
|
399
|
-
const onClickUploader = (e) => {
|
|
400
|
-
e.stopPropagation();
|
|
401
|
-
e.preventDefault();
|
|
402
|
-
};
|
|
403
|
-
return atomico.html`<host class=${clsx.clsx(selected && "selected", !src && "empty")}>
|
|
404
|
-
${!src ? atomico.html`<div class="empty-image-inline">
|
|
405
|
-
<div class="image-icon">
|
|
406
|
-
${config == null ? void 0 : config.imageIcon()}
|
|
407
|
-
</div>
|
|
408
|
-
<div class=${clsx.clsx("link-importer", focusLinkInput && "focus")}>
|
|
409
|
-
<input
|
|
410
|
-
draggable="true"
|
|
411
|
-
ref=${linkInput}
|
|
412
|
-
ondragstart=${preventDrag}
|
|
413
|
-
class="link-input-area"
|
|
414
|
-
value=${currentLink}
|
|
415
|
-
oninput=${onEditLink}
|
|
416
|
-
onkeydown=${onKeydown}
|
|
417
|
-
onfocus=${() => setFocusLinkInput(true)}
|
|
418
|
-
onblur=${() => setFocusLinkInput(false)}
|
|
419
|
-
/>
|
|
420
|
-
<div class=${clsx.clsx("placeholder", hidePlaceholder && "hidden")}>
|
|
421
|
-
<input class="hidden" id=${uuid} type="file" accept="image/*" onchange=${onUpload} />
|
|
422
|
-
<label onpointerdown=${onClickUploader} class="uploader" for=${uuid}>
|
|
423
|
-
${config == null ? void 0 : config.uploadButton()}
|
|
424
|
-
</label>
|
|
425
|
-
<span class="text" onclick=${() => {
|
|
426
|
-
var _a;
|
|
427
|
-
return (_a = linkInput.current) == null ? void 0 : _a.focus();
|
|
428
|
-
}}>
|
|
429
|
-
${config == null ? void 0 : config.uploadPlaceholderText}
|
|
430
|
-
</span>
|
|
431
|
-
</div>
|
|
432
|
-
</div>
|
|
433
|
-
<div
|
|
434
|
-
class=${clsx.clsx("confirm", currentLink.length === 0 && "hidden")}
|
|
435
|
-
onclick=${() => onConfirmLinkInput()}
|
|
436
|
-
>
|
|
437
|
-
${config == null ? void 0 : config.confirmButton()}
|
|
438
|
-
</div>
|
|
439
|
-
</div>` : atomico.html`<img class="image-inline" src=${src} alt=${alt} title=${title} />`}
|
|
440
|
-
</host>`;
|
|
441
|
-
};
|
|
442
|
-
inlineImageComponent.props = {
|
|
443
|
-
src: String,
|
|
444
|
-
alt: String,
|
|
445
|
-
title: String,
|
|
446
|
-
selected: Boolean,
|
|
447
|
-
setAttr: Function,
|
|
448
|
-
config: Object
|
|
449
|
-
};
|
|
450
|
-
const InlineImageElement = atomico.c(inlineImageComponent);
|
|
451
|
-
|
|
452
|
-
helper.defIfNotExists("milkdown-image-inline", InlineImageElement);
|
|
453
|
-
const inlineImageView = $view.$view(index.imageSchema.node, (ctx) => {
|
|
454
|
-
return (initialNode, view, getPos) => {
|
|
455
|
-
const dom = document.createElement("milkdown-image-inline");
|
|
456
|
-
const config = ctx.get(inlineImageConfig.key);
|
|
457
|
-
const bindAttrs = (node) => {
|
|
458
|
-
dom.src = node.attrs.src;
|
|
459
|
-
dom.alt = node.attrs.alt;
|
|
460
|
-
dom.title = node.attrs.title;
|
|
461
|
-
};
|
|
462
|
-
bindAttrs(initialNode);
|
|
463
|
-
dom.selected = false;
|
|
464
|
-
dom.setAttr = (attr, value) => {
|
|
465
|
-
const pos = getPos();
|
|
466
|
-
if (pos == null)
|
|
467
|
-
return;
|
|
468
|
-
view.dispatch(view.state.tr.setNodeAttribute(pos, attr, value));
|
|
469
|
-
};
|
|
470
|
-
dom.config = config;
|
|
471
|
-
return {
|
|
472
|
-
dom,
|
|
473
|
-
update: (updatedNode) => {
|
|
474
|
-
if (updatedNode.type !== initialNode.type)
|
|
475
|
-
return false;
|
|
476
|
-
bindAttrs(updatedNode);
|
|
477
|
-
return true;
|
|
478
|
-
},
|
|
479
|
-
stopEvent: (e) => {
|
|
480
|
-
if (dom.selected && e.target instanceof HTMLInputElement)
|
|
481
|
-
return true;
|
|
482
|
-
return false;
|
|
483
|
-
},
|
|
484
|
-
selectNode: () => {
|
|
485
|
-
dom.selected = true;
|
|
486
|
-
},
|
|
487
|
-
deselectNode: () => {
|
|
488
|
-
dom.selected = false;
|
|
489
|
-
},
|
|
490
|
-
destroy: () => {
|
|
491
|
-
dom.remove();
|
|
492
|
-
}
|
|
493
|
-
};
|
|
494
|
-
};
|
|
495
|
-
});
|
|
496
|
-
todoList.withMeta(inlineImageView, {
|
|
497
|
-
displayName: "NodeView<image-inline>",
|
|
498
|
-
group: "ImageInline"
|
|
499
|
-
});
|
|
500
|
-
|
|
501
|
-
const imageInlineComponent = [
|
|
502
|
-
inlineImageConfig,
|
|
503
|
-
inlineImageView
|
|
504
|
-
];
|
|
505
|
-
|
|
506
|
-
const defineFeature = (editor, config) => {
|
|
507
|
-
editor.config((ctx) => {
|
|
508
|
-
ctx.update(inlineImageConfig.key, (value) => {
|
|
509
|
-
var _a, _b, _c, _d, _e, _f;
|
|
510
|
-
return {
|
|
511
|
-
uploadButton: (_a = config == null ? void 0 : config.inlineUploadButton) != null ? _a : () => "Upload",
|
|
512
|
-
imageIcon: (_b = config == null ? void 0 : config.inlineImageIcon) != null ? _b : () => todoList.imageIcon,
|
|
513
|
-
confirmButton: (_c = config == null ? void 0 : config.inlineConfirmButton) != null ? _c : () => todoList.confirmIcon,
|
|
514
|
-
uploadPlaceholderText: (_d = config == null ? void 0 : config.inlineUploadPlaceholderText) != null ? _d : "or paste link",
|
|
515
|
-
onUpload: (_f = (_e = config == null ? void 0 : config.inlineOnUpload) != null ? _e : config == null ? void 0 : config.onUpload) != null ? _f : value.onUpload
|
|
516
|
-
};
|
|
517
|
-
});
|
|
518
|
-
ctx.update(imageBlockConfig.key, (value) => {
|
|
519
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
520
|
-
return {
|
|
521
|
-
uploadButton: (_a = config == null ? void 0 : config.blockUploadButton) != null ? _a : () => "Upload file",
|
|
522
|
-
imageIcon: (_b = config == null ? void 0 : config.blockImageIcon) != null ? _b : () => todoList.imageIcon,
|
|
523
|
-
captionIcon: (_c = config == null ? void 0 : config.blockCaptionIcon) != null ? _c : () => todoList.captionIcon,
|
|
524
|
-
confirmButton: (_d = config == null ? void 0 : config.blockConfirmButton) != null ? _d : () => "Confirm",
|
|
525
|
-
captionPlaceholderText: (_e = config == null ? void 0 : config.blockCaptionPlaceholderText) != null ? _e : "Write Image Caption",
|
|
526
|
-
uploadPlaceholderText: (_f = config == null ? void 0 : config.blockUploadPlaceholderText) != null ? _f : "or paste link",
|
|
527
|
-
onUpload: (_h = (_g = config == null ? void 0 : config.blockOnUpload) != null ? _g : config == null ? void 0 : config.onUpload) != null ? _h : value.onUpload
|
|
528
|
-
};
|
|
529
|
-
});
|
|
530
|
-
}).use(imageBlockComponent).use(imageInlineComponent);
|
|
531
|
-
};
|
|
532
|
-
|
|
533
|
-
exports.defineFeature = defineFeature;
|
|
534
|
-
//# sourceMappingURL=index-Buu2tD9O.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-Buu2tD9O.js","sources":["../../../components/src/image-block/remark-plugin.ts","../../../components/src/image-block/config.ts","../../../components/src/image-block/view/event.ts","../../../components/src/image-block/view/component.ts","../../../components/src/image-block/view/index.ts","../../../components/src/image-block/index.ts","../../../components/src/image-inline/config.ts","../../../components/src/image-inline/component.ts","../../../components/src/image-inline/view.ts","../../../components/src/image-inline/index.ts","../../src/feature/image-block/index.ts"],"sourcesContent":["import type { Node } from '@milkdown/transformer'\nimport { visit } from 'unist-util-visit'\nimport { $remark } from '@milkdown/utils'\nimport { withMeta } from '../__internal__/meta'\n\nfunction visitImage(ast: Node) {\n return visit(ast, 'paragraph', (node: Node & { children?: Node[] }, index: number, parent: Node & { children: Node[] }) => {\n if (node.children?.length !== 1)\n return\n const firstChild = node.children?.[0]\n if (!firstChild || firstChild.type !== 'image')\n return\n\n const { url, alt, title } = firstChild as Node & { url: string, alt: string, title: string }\n const newNode = {\n type: 'image-block',\n url,\n alt,\n title,\n }\n\n parent.children.splice(index, 1, newNode)\n })\n}\n\nexport const remarkImageBlockPlugin = $remark('remark-image-block', () => () => visitImage)\n\nwithMeta(remarkImageBlockPlugin.plugin, {\n displayName: 'Remark<remarkImageBlock>',\n group: 'ImageBlock',\n})\n\nwithMeta(remarkImageBlockPlugin.options, {\n displayName: 'RemarkConfig<remarkImageBlock>',\n group: 'ImageBlock',\n})\n","import { $ctx } from '@milkdown/utils'\nimport { html } from 'atomico'\nimport { withMeta } from '../__internal__/meta'\n\nexport interface ImageBlockConfig {\n imageIcon: () => ReturnType<typeof html> | string | HTMLElement\n captionIcon: () => ReturnType<typeof html> | string | HTMLElement\n uploadButton: () => ReturnType<typeof html> | string | HTMLElement\n confirmButton: () => ReturnType<typeof html> | string | HTMLElement\n uploadPlaceholderText: string\n captionPlaceholderText: string\n onUpload: (file: File) => Promise<string>\n}\n\nexport const defaultImageBlockConfig: ImageBlockConfig = {\n imageIcon: () => '🌌',\n captionIcon: () => '💬',\n uploadButton: () => html`Upload file`,\n confirmButton: () => html`Confirm ⏎`,\n uploadPlaceholderText: 'or paste the image link ...',\n captionPlaceholderText: 'Image caption',\n onUpload: file => Promise.resolve(URL.createObjectURL(file)),\n}\n\nexport const imageBlockConfig = $ctx(defaultImageBlockConfig, 'imageBlockConfigCtx')\n\nwithMeta(imageBlockConfig, {\n displayName: 'Config<image-block>',\n group: 'ImageBlock',\n})\n","import { type Ref, useEffect, useHost, useMemo } from 'atomico'\n\ninterface Options {\n image: Ref<HTMLImageElement>\n resizeHandle: Ref<HTMLDivElement>\n ratio: number\n setRatio: (ratio: number) => void\n src: string\n}\n\nexport function useBlockEffect({\n image,\n resizeHandle,\n ratio,\n setRatio,\n src,\n}: Options) {\n const host = useHost()\n const root = useMemo(() => host.current.getRootNode() as HTMLElement, [host])\n\n useEffect(() => {\n const imageRef = image.current\n if (!imageRef)\n return\n\n delete imageRef.dataset.origin\n delete imageRef.dataset.height\n imageRef.style.height = ''\n }, [src])\n\n useEffect(() => {\n const resizeHandleRef = resizeHandle.current\n const imageRef = image.current\n if (!resizeHandleRef || !imageRef)\n return\n const onMove = (e: PointerEvent) => {\n e.preventDefault()\n const top = imageRef.getBoundingClientRect().top\n const height = e.clientY - top\n const h = Number(height < 100 ? 100 : height).toFixed(2)\n imageRef.dataset.height = h\n imageRef.style.height = `${h}px`\n }\n const pointerUp = () => {\n root.removeEventListener('pointermove', onMove)\n root.removeEventListener('pointerup', pointerUp)\n const originHeight = Number(imageRef.dataset.origin)\n const currentHeight = Number(imageRef.dataset.height)\n const ratio = Number.parseFloat(Number(currentHeight / originHeight).toFixed(2))\n if (Number.isNaN(ratio))\n return\n\n setRatio(ratio)\n }\n\n const pointerDown = (e: PointerEvent) => {\n e.preventDefault()\n root.addEventListener('pointermove', onMove)\n root.addEventListener('pointerup', pointerUp)\n }\n\n const onLoad = (e: Event) => {\n const maxWidth = host.current.getBoundingClientRect().width\n if (!maxWidth)\n return\n\n const target = e.target as HTMLImageElement\n const height = target.height\n const width = target.width\n const transformedHeight = width < maxWidth ? height : maxWidth * (height / width)\n const h = (transformedHeight * ratio).toFixed(2)\n imageRef.dataset.origin = transformedHeight.toFixed(2)\n imageRef.dataset.height = h\n imageRef.style.height = `${h}px`\n }\n\n imageRef.addEventListener('load', onLoad)\n resizeHandleRef.addEventListener('pointerdown', pointerDown)\n return () => {\n imageRef.removeEventListener('load', onLoad)\n resizeHandleRef.removeEventListener('pointerdown', pointerDown)\n }\n }, [])\n}\n","import type { Component } from 'atomico'\nimport { c, html, useEffect, useRef, useState } from 'atomico'\nimport clsx from 'clsx'\nimport type { ImageBlockConfig } from '../config'\nimport { IMAGE_DATA_TYPE } from '../schema'\nimport { useBlockEffect } from './event'\n\nexport interface Attrs {\n src: string\n caption: string\n ratio: number\n}\n\nexport type ImageComponentProps = Attrs & {\n config: ImageBlockConfig\n selected: boolean\n readonly: boolean\n setAttr: <T extends keyof Attrs>(attr: T, value: Attrs[T]) => void\n}\n\nlet timer: number = 0\n\nexport const imageComponent: Component<ImageComponentProps> = ({\n src = '',\n caption = '',\n ratio = 1,\n selected = false,\n readonly = false,\n setAttr,\n config,\n}) => {\n const image = useRef<HTMLImageElement>()\n const resizeHandle = useRef<HTMLDivElement>()\n const linkInput = useRef<HTMLInputElement>()\n const [showCaption, setShowCaption] = useState(caption.length > 0)\n const [hidePlaceholder, setHidePlaceholder] = useState(src.length !== 0)\n const [uuid] = useState(crypto.randomUUID())\n const [focusLinkInput, setFocusLinkInput] = useState(false)\n const [currentLink, setCurrentLink] = useState(src)\n\n useBlockEffect({\n image,\n resizeHandle,\n ratio,\n setRatio: r => setAttr?.('ratio', r),\n src,\n })\n\n useEffect(() => {\n if (selected)\n return\n\n setShowCaption(caption.length > 0)\n }, [selected])\n\n const onInput = (e: InputEvent) => {\n const target = e.target as HTMLInputElement\n const value = target.value\n if (timer)\n window.clearTimeout(timer)\n\n timer = window.setTimeout(() => {\n setAttr?.('caption', value)\n }, 1000)\n }\n\n const onBlurCaption = (e: InputEvent) => {\n const target = e.target as HTMLInputElement\n const value = target.value\n if (timer) {\n window.clearTimeout(timer)\n timer = 0\n }\n\n setAttr?.('caption', value)\n }\n\n const onEditLink = (e: InputEvent) => {\n const target = e.target as HTMLInputElement\n const value = target.value\n setHidePlaceholder(value.length !== 0)\n setCurrentLink(value)\n }\n\n const onUpload = async (e: InputEvent) => {\n const file = (e.target as HTMLInputElement).files?.[0]\n if (!file)\n return\n\n const url = await config?.onUpload(file)\n if (!url)\n return\n\n setAttr?.('src', url)\n setHidePlaceholder(true)\n }\n\n const onToggleCaption = (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n if (readonly)\n return\n setShowCaption(x => !x)\n }\n\n const onConfirmLinkInput = () => {\n setAttr?.('src', linkInput.current?.value ?? '')\n }\n\n const onKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Enter')\n onConfirmLinkInput()\n }\n\n const preventDrag = (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n }\n\n const onClickUploader = (e: PointerEvent) => {\n e.stopPropagation()\n e.preventDefault()\n }\n\n return html`<host class=${clsx(selected && 'selected')}>\n <div class=${clsx('image-edit', src.length > 0 && 'hidden')}>\n <div class=\"image-icon\">\n ${config?.imageIcon()}\n </div>\n <div class=${clsx('link-importer', focusLinkInput && 'focus')}>\n <input\n ref=${linkInput}\n draggable=\"true\"\n ondragstart=${preventDrag}\n disabled=${readonly}\n class=\"link-input-area\"\n value=${currentLink}\n oninput=${onEditLink}\n onkeydown=${onKeydown}\n onfocus=${() => setFocusLinkInput(true)}\n onblur=${() => setFocusLinkInput(false)}\n />\n <div class=${clsx('placeholder', hidePlaceholder && 'hidden')}>\n <input disabled=${readonly} class=\"hidden\" id=${uuid} type=\"file\" accept=\"image/*\" onchange=${onUpload} />\n <label onpointerdown=${onClickUploader} class=\"uploader\" for=${uuid}>\n ${config?.uploadButton()}\n </label>\n <span class=\"text\" onclick=${() => linkInput.current?.focus()}>\n ${config?.uploadPlaceholderText}\n </span>\n </div>\n </div>\n <div\n class=${clsx('confirm', currentLink.length === 0 && 'hidden')}\n onclick=${() => onConfirmLinkInput()}\n >\n ${config?.confirmButton()}\n </div>\n </div>\n <div class=${clsx('image-wrapper', src.length === 0 && 'hidden')}>\n <div class=\"operation\">\n <div class=\"operation-item\" onpointerdown=${onToggleCaption}>${config?.captionIcon()}</div>\n </div>\n <img ref=${image} data-type=${IMAGE_DATA_TYPE} src=${src} alt=${caption} ratio=${ratio} />\n <div ref=${resizeHandle} class=\"image-resize-handle\"></div>\n </div>\n <input\n draggable=\"true\"\n ondragstart=${preventDrag}\n class=${clsx('caption-input', !showCaption && 'hidden')}\n placeholder=${config?.captionPlaceholderText}\n oninput=${onInput}\n onblur=${onBlurCaption}\n value=${caption}\n />\n </host>`\n}\n\nimageComponent.props = {\n src: String,\n caption: String,\n ratio: Number,\n selected: Boolean,\n readonly: Boolean,\n setAttr: Function,\n config: Object,\n}\n\nexport const ImageElement = c(imageComponent)\n","import { $view } from '@milkdown/utils'\nimport type { NodeViewConstructor } from '@milkdown/prose/view'\nimport type { Node } from '@milkdown/prose/model'\nimport { imageBlockSchema } from '../schema'\nimport { imageBlockConfig } from '../config'\nimport { withMeta } from '../../__internal__/meta'\nimport { defIfNotExists } from '../../__internal__/helper'\nimport type { ImageComponentProps } from './component'\nimport { ImageElement } from './component'\n\ndefIfNotExists('milkdown-image-block', ImageElement)\nexport const imageBlockView = $view(imageBlockSchema.node, (ctx): NodeViewConstructor => {\n return (initialNode, view, getPos) => {\n const dom = document.createElement('milkdown-image-block') as HTMLElement & ImageComponentProps\n const config = ctx.get(imageBlockConfig.key)\n const bindAttrs = (node: Node) => {\n dom.src = node.attrs.src\n dom.ratio = node.attrs.ratio\n dom.caption = node.attrs.caption\n\n dom.readonly = !view.editable\n }\n\n bindAttrs(initialNode)\n dom.selected = false\n dom.setAttr = (attr, value) => {\n const pos = getPos()\n if (pos == null)\n return\n\n view.dispatch(view.state.tr.setNodeAttribute(pos, attr, value))\n }\n dom.config = config\n return {\n dom,\n update: (updatedNode) => {\n if (updatedNode.type !== initialNode.type)\n return false\n\n bindAttrs(updatedNode)\n return true\n },\n stopEvent: (e) => {\n if (e.target instanceof HTMLInputElement)\n return true\n\n return false\n },\n selectNode: () => {\n dom.selected = true\n },\n deselectNode: () => {\n dom.selected = false\n },\n destroy: () => {\n dom.remove()\n },\n }\n }\n})\n\nwithMeta(imageBlockView, {\n displayName: 'NodeView<image-block>',\n group: 'ImageBlock',\n})\n","import type { MilkdownPlugin } from '@milkdown/ctx'\nimport { imageBlockSchema } from './schema'\nimport { remarkImageBlockPlugin } from './remark-plugin'\nimport { imageBlockView } from './view'\nimport { imageBlockConfig } from './config'\n\nexport * from './schema'\nexport * from './remark-plugin'\nexport * from './config'\nexport * from './view'\n\nexport const imageBlockComponent: MilkdownPlugin[] = [\n remarkImageBlockPlugin,\n imageBlockSchema,\n imageBlockView,\n imageBlockConfig,\n].flat()\n","import { $ctx } from '@milkdown/utils'\nimport { html } from 'atomico'\nimport { withMeta } from '../__internal__/meta'\n\nexport interface InlineImageConfig {\n imageIcon: () => ReturnType<typeof html>\n uploadButton: () => ReturnType<typeof html>\n confirmButton: () => ReturnType<typeof html>\n uploadPlaceholderText: string\n onUpload: (file: File) => Promise<string>\n}\n\nexport const defaultInlineImageConfig: InlineImageConfig = {\n imageIcon: () => '🌌',\n uploadButton: () => html`Upload`,\n confirmButton: () => html`⏎`,\n uploadPlaceholderText: '/Paste',\n onUpload: file => Promise.resolve(URL.createObjectURL(file)),\n}\n\nexport const inlineImageConfig = $ctx(defaultInlineImageConfig, 'inlineImageConfigCtx')\n\nwithMeta(inlineImageConfig, {\n displayName: 'Config<image-inline>',\n group: 'ImageInline',\n})\n","import { c, html, useRef, useState } from 'atomico'\nimport type { Component } from 'atomico'\nimport clsx from 'clsx'\nimport type { InlineImageConfig } from './config'\n\nexport interface Attrs {\n src: string\n alt: string\n title: string\n}\n\nexport type InlineImageComponentProps = Attrs & {\n setAttr: <T extends keyof Attrs>(attr: T, value: Attrs[T]) => void\n selected: boolean\n config: InlineImageConfig\n}\n\nexport const inlineImageComponent: Component<InlineImageComponentProps> = ({\n src = '',\n selected = false,\n alt,\n title,\n setAttr,\n config,\n}) => {\n const linkInput = useRef<HTMLInputElement>()\n const [uuid] = useState(crypto.randomUUID())\n const [focusLinkInput, setFocusLinkInput] = useState(false)\n const [hidePlaceholder, setHidePlaceholder] = useState(src.length !== 0)\n const [currentLink, setCurrentLink] = useState(src)\n\n const onEditLink = (e: InputEvent) => {\n const target = e.target as HTMLInputElement\n const value = target.value\n setHidePlaceholder(value.length !== 0)\n setCurrentLink(value)\n }\n\n const onUpload = async (e: InputEvent) => {\n const file = (e.target as HTMLInputElement).files?.[0]\n if (!file)\n return\n\n const url = await config?.onUpload(file)\n if (!url)\n return\n\n setAttr?.('src', url)\n setHidePlaceholder(true)\n }\n\n const onConfirmLinkInput = () => {\n setAttr?.('src', linkInput.current?.value ?? '')\n }\n\n const onKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Enter')\n onConfirmLinkInput()\n }\n\n const preventDrag = (e: Event) => {\n e.preventDefault()\n e.stopPropagation()\n }\n\n const onClickUploader = (e: PointerEvent) => {\n e.stopPropagation()\n e.preventDefault()\n }\n\n return html`<host class=${clsx(selected && 'selected', !src && 'empty')}>\n ${!src\n ? html`<div class=\"empty-image-inline\">\n <div class=\"image-icon\">\n ${config?.imageIcon()}\n </div>\n <div class=${clsx('link-importer', focusLinkInput && 'focus')}>\n <input\n draggable=\"true\"\n ref=${linkInput}\n ondragstart=${preventDrag}\n class=\"link-input-area\"\n value=${currentLink}\n oninput=${onEditLink}\n onkeydown=${onKeydown}\n onfocus=${() => setFocusLinkInput(true)}\n onblur=${() => setFocusLinkInput(false)}\n />\n <div class=${clsx('placeholder', hidePlaceholder && 'hidden')}>\n <input class=\"hidden\" id=${uuid} type=\"file\" accept=\"image/*\" onchange=${onUpload} />\n <label onpointerdown=${onClickUploader} class=\"uploader\" for=${uuid}>\n ${config?.uploadButton()}\n </label>\n <span class=\"text\" onclick=${() => linkInput.current?.focus()}>\n ${config?.uploadPlaceholderText}\n </span>\n </div>\n </div>\n <div\n class=${clsx('confirm', currentLink.length === 0 && 'hidden')}\n onclick=${() => onConfirmLinkInput()}\n >\n ${config?.confirmButton()}\n </div>\n </div>`\n : html`<img class=\"image-inline\" src=${src} alt=${alt} title=${title} />`\n }\n </host>`\n}\n\ninlineImageComponent.props = {\n src: String,\n alt: String,\n title: String,\n selected: Boolean,\n setAttr: Function,\n config: Object,\n}\n\nexport const InlineImageElement = c(inlineImageComponent)\n","import { $view } from '@milkdown/utils'\nimport type { NodeViewConstructor } from '@milkdown/prose/view'\nimport { imageSchema } from '@milkdown/preset-commonmark'\nimport type { Node } from '@milkdown/prose/model'\nimport { withMeta } from '../__internal__/meta'\nimport { defIfNotExists } from '../__internal__/helper'\nimport type { InlineImageComponentProps } from './component'\nimport { InlineImageElement } from './component'\nimport { inlineImageConfig } from './config'\n\ndefIfNotExists('milkdown-image-inline', InlineImageElement)\nexport const inlineImageView = $view(imageSchema.node, (ctx): NodeViewConstructor => {\n return (initialNode, view, getPos) => {\n const dom = document.createElement('milkdown-image-inline') as HTMLElement & InlineImageComponentProps\n const config = ctx.get(inlineImageConfig.key)\n const bindAttrs = (node: Node) => {\n dom.src = node.attrs.src\n dom.alt = node.attrs.alt\n dom.title = node.attrs.title\n }\n bindAttrs(initialNode)\n dom.selected = false\n dom.setAttr = (attr, value) => {\n const pos = getPos()\n if (pos == null)\n return\n\n view.dispatch(view.state.tr.setNodeAttribute(pos, attr, value))\n }\n dom.config = config\n return {\n dom,\n update: (updatedNode) => {\n if (updatedNode.type !== initialNode.type)\n return false\n\n bindAttrs(updatedNode)\n return true\n },\n stopEvent: (e) => {\n if (dom.selected && e.target instanceof HTMLInputElement)\n return true\n\n return false\n },\n selectNode: () => {\n dom.selected = true\n },\n deselectNode: () => {\n dom.selected = false\n },\n destroy: () => {\n dom.remove()\n },\n }\n }\n})\n\nwithMeta(inlineImageView, {\n displayName: 'NodeView<image-inline>',\n group: 'ImageInline',\n})\n","import type { MilkdownPlugin } from '@milkdown/ctx'\nimport { inlineImageConfig } from './config'\nimport { inlineImageView } from './view'\n\nexport * from './config'\nexport * from './view'\n\nexport const imageInlineComponent: MilkdownPlugin[] = [\n inlineImageConfig,\n inlineImageView,\n]\n","import { imageBlockComponent, imageBlockConfig } from '@milkdown/kit/component/image-block'\nimport { imageInlineComponent, inlineImageConfig } from '@milkdown/kit/component/image-inline'\nimport type { DefineFeature, Icon } from '../shared'\nimport { captionIcon, confirmIcon, imageIcon } from '../../icons'\n\ninterface ImageBlockConfig {\n onUpload: (file: File) => Promise<string>\n\n inlineImageIcon: Icon\n inlineConfirmButton: Icon\n inlineUploadButton: Icon\n inlineUploadPlaceholderText: string\n inlineOnUpload: (file: File) => Promise<string>\n\n blockImageIcon: Icon\n blockConfirmButton: Icon\n blockCaptionIcon: Icon\n blockUploadButton: Icon\n blockCaptionPlaceholderText: string\n blockUploadPlaceholderText: string\n blockOnUpload: (file: File) => Promise<string>\n}\n\nexport type ImageBlockFeatureConfig = Partial<ImageBlockConfig>\n\nexport const defineFeature: DefineFeature<ImageBlockFeatureConfig> = (editor, config) => {\n editor\n .config((ctx) => {\n ctx.update(inlineImageConfig.key, value => ({\n uploadButton: config?.inlineUploadButton ?? (() => 'Upload'),\n imageIcon: config?.inlineImageIcon ?? (() => imageIcon),\n confirmButton: config?.inlineConfirmButton ?? (() => confirmIcon),\n uploadPlaceholderText: config?.inlineUploadPlaceholderText ?? 'or paste link',\n onUpload: config?.inlineOnUpload ?? config?.onUpload ?? value.onUpload,\n }))\n ctx.update(imageBlockConfig.key, value => ({\n uploadButton: config?.blockUploadButton ?? (() => 'Upload file'),\n imageIcon: config?.blockImageIcon ?? (() => imageIcon),\n captionIcon: config?.blockCaptionIcon ?? (() => captionIcon),\n confirmButton: config?.blockConfirmButton ?? (() => 'Confirm'),\n captionPlaceholderText: config?.blockCaptionPlaceholderText ?? 'Write Image Caption',\n uploadPlaceholderText: config?.blockUploadPlaceholderText ?? 'or paste link',\n onUpload: config?.blockOnUpload ?? config?.onUpload ?? value.onUpload,\n }))\n })\n .use(imageBlockComponent)\n .use(imageInlineComponent)\n}\n"],"names":["visit","$remark","withMeta","html","$ctx","useHost","useMemo","useEffect","ratio","useRef","useState","clsx","IMAGE_DATA_TYPE","c","defIfNotExists","$view","imageBlockSchema","imageSchema","imageIcon","confirmIcon","captionIcon"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-FbNqlZU8.js","sources":["../../../../node_modules/.pnpm/@babel+runtime@7.23.6/node_modules/@babel/runtime/helpers/esm/extends.js","../../../../node_modules/.pnpm/@uiw+codemirror-themes@4.22.1_@codemirror+language@6.10.1_@codemirror+state@6.4.1_@codemirror+view@6.26.0/node_modules/@uiw/codemirror-themes/esm/index.js","../../../../node_modules/.pnpm/@uiw+codemirror-theme-nord@4.22.1_@codemirror+language@6.10.1_@codemirror+state@6.4.1_@codemirror+view@6.26.0/node_modules/@uiw/codemirror-theme-nord/esm/index.js"],"sourcesContent":["export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","import { EditorView } from '@codemirror/view';\nimport { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nexport var createTheme = _ref => {\n var {\n theme,\n settings = {},\n styles = []\n } = _ref;\n var themeOptions = {\n '.cm-gutters': {}\n };\n var baseStyle = {};\n if (settings.background) {\n baseStyle.backgroundColor = settings.background;\n }\n if (settings.backgroundImage) {\n baseStyle.backgroundImage = settings.backgroundImage;\n }\n if (settings.foreground) {\n baseStyle.color = settings.foreground;\n }\n if (settings.fontSize) {\n baseStyle.fontSize = settings.fontSize;\n }\n if (settings.background || settings.foreground) {\n themeOptions['&'] = baseStyle;\n }\n if (settings.fontFamily) {\n themeOptions['&.cm-editor .cm-scroller'] = {\n fontFamily: settings.fontFamily\n };\n }\n if (settings.gutterBackground) {\n themeOptions['.cm-gutters'].backgroundColor = settings.gutterBackground;\n }\n if (settings.gutterForeground) {\n themeOptions['.cm-gutters'].color = settings.gutterForeground;\n }\n if (settings.gutterBorder) {\n themeOptions['.cm-gutters'].borderRightColor = settings.gutterBorder;\n }\n if (settings.caret) {\n themeOptions['.cm-content'] = {\n caretColor: settings.caret\n };\n themeOptions['.cm-cursor, .cm-dropCursor'] = {\n borderLeftColor: settings.caret\n };\n }\n var activeLineGutterStyle = {};\n if (settings.gutterActiveForeground) {\n activeLineGutterStyle.color = settings.gutterActiveForeground;\n }\n if (settings.lineHighlight) {\n themeOptions['.cm-activeLine'] = {\n backgroundColor: settings.lineHighlight\n };\n activeLineGutterStyle.backgroundColor = settings.lineHighlight;\n }\n themeOptions['.cm-activeLineGutter'] = activeLineGutterStyle;\n if (settings.selection) {\n themeOptions['&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection'] = {\n background: settings.selection + ' !important'\n };\n }\n if (settings.selectionMatch) {\n themeOptions['& .cm-selectionMatch'] = {\n backgroundColor: settings.selectionMatch\n };\n }\n var themeExtension = EditorView.theme(themeOptions, {\n dark: theme === 'dark'\n });\n var highlightStyle = HighlightStyle.define(styles);\n var extension = [themeExtension, syntaxHighlighting(highlightStyle)];\n return extension;\n};\nexport default createTheme;","import _extends from \"@babel/runtime/helpers/extends\";\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nexport var defaultSettingsNord = {\n background: '#2e3440',\n foreground: '#FFFFFF',\n caret: '#FFFFFF',\n selection: '#00000073',\n selectionMatch: '#00000073',\n gutterBackground: '#2e3440',\n gutterForeground: '#4c566a',\n gutterActiveForeground: '#d8dee9',\n lineHighlight: '#4c566a29'\n};\n\n// Colors from https://www.nordtheme.com/docs/colors-and-palettes\nexport var nordInit = options => {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsNord, settings),\n styles: [{\n tag: t.keyword,\n color: '#5e81ac'\n }, {\n tag: [t.name, t.deleted, t.character, t.propertyName, t.macroName],\n color: '#88c0d0'\n }, {\n tag: [t.variableName],\n color: '#8fbcbb'\n }, {\n tag: [t.function(t.variableName)],\n color: '#8fbcbb'\n }, {\n tag: [t.labelName],\n color: '#81a1c1'\n }, {\n tag: [t.color, t.constant(t.name), t.standard(t.name)],\n color: '#5e81ac'\n }, {\n tag: [t.definition(t.name), t.separator],\n color: '#a3be8c'\n }, {\n tag: [t.brace],\n color: '#8fbcbb'\n }, {\n tag: [t.annotation],\n color: '#d30102'\n }, {\n tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],\n color: '#b48ead'\n }, {\n tag: [t.typeName, t.className],\n color: '#ebcb8b'\n }, {\n tag: [t.operator, t.operatorKeyword],\n color: '#a3be8c'\n }, {\n tag: [t.tagName],\n color: '#b48ead'\n }, {\n tag: [t.squareBracket],\n color: '#bf616a'\n }, {\n tag: [t.angleBracket],\n color: '#d08770'\n }, {\n tag: [t.attributeName],\n color: '#ebcb8b'\n }, {\n tag: [t.regexp],\n color: '#5e81ac'\n }, {\n tag: [t.quote],\n color: '#b48ead'\n }, {\n tag: [t.string],\n color: '#a3be8c'\n }, {\n tag: t.link,\n color: '#a3be8c',\n textDecoration: 'underline',\n textUnderlinePosition: 'under'\n }, {\n tag: [t.url, t.escape, t.special(t.string)],\n color: '#8fbcbb'\n }, {\n tag: [t.meta],\n color: '#88c0d0'\n }, {\n tag: [t.monospace],\n color: '#d8dee9',\n fontStyle: 'italic'\n }, {\n tag: [t.comment],\n color: '#4c566a',\n fontStyle: 'italic'\n }, {\n tag: t.strong,\n fontWeight: 'bold',\n color: '#5e81ac'\n }, {\n tag: t.emphasis,\n fontStyle: 'italic',\n color: '#5e81ac'\n }, {\n tag: t.strikethrough,\n textDecoration: 'line-through'\n }, {\n tag: t.heading,\n fontWeight: 'bold',\n color: '#5e81ac'\n }, {\n tag: t.special(t.heading1),\n fontWeight: 'bold',\n color: '#5e81ac'\n }, {\n tag: t.heading1,\n fontWeight: 'bold',\n color: '#5e81ac'\n }, {\n tag: [t.heading2, t.heading3, t.heading4],\n fontWeight: 'bold',\n color: '#5e81ac'\n }, {\n tag: [t.heading5, t.heading6],\n color: '#5e81ac'\n }, {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: '#d08770'\n }, {\n tag: [t.processingInstruction, t.inserted],\n color: '#8fbcbb'\n }, {\n tag: [t.contentSeparator],\n color: '#ebcb8b'\n }, {\n tag: t.invalid,\n color: '#434c5e',\n borderBottom: \"1px dotted #d30102\"\n }, ...styles]\n });\n};\nexport var nord = nordInit();"],"names":["EditorView","HighlightStyle","syntaxHighlighting","t"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|