quoin-editor 1.0.0 → 1.0.2
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/CHANGELOG.md +58 -0
- package/dist/ai.cjs +135 -94
- package/dist/ai.cjs.map +1 -1
- package/dist/ai.d.cts +1 -1
- package/dist/ai.d.ts +1 -1
- package/dist/ai.js +62 -21
- package/dist/ai.js.map +1 -1
- package/dist/catalogue.cjs +25 -25
- package/dist/catalogue.d.cts +6 -6
- package/dist/catalogue.d.ts +6 -6
- package/dist/catalogue.js +17 -17
- package/dist/{chunk-ND5XJVK2.cjs → chunk-4SLJNZSM.cjs} +27 -23
- package/dist/chunk-4SLJNZSM.cjs.map +1 -0
- package/dist/{chunk-LCQSG4M6.js → chunk-4XFXB37X.js} +22 -18
- package/dist/chunk-4XFXB37X.js.map +1 -0
- package/dist/{chunk-AEJXZBVR.cjs → chunk-5MAYUGTE.cjs} +110 -103
- package/dist/chunk-5MAYUGTE.cjs.map +1 -0
- package/dist/{chunk-JDPTZUBW.js → chunk-623AOJM2.js} +4 -4
- package/dist/chunk-6NULZPVC.js +374 -0
- package/dist/chunk-6NULZPVC.js.map +1 -0
- package/dist/{chunk-2QCRZ7OL.cjs → chunk-6V6GGBDK.cjs} +12 -11
- package/dist/{chunk-2QCRZ7OL.cjs.map → chunk-6V6GGBDK.cjs.map} +1 -1
- package/dist/{chunk-WXMYDXPN.cjs → chunk-73653CJ4.cjs} +4 -3
- package/dist/chunk-73653CJ4.cjs.map +1 -0
- package/dist/{chunk-47MLKSI2.js → chunk-ADSJ42DO.js} +6 -6
- package/dist/{chunk-PWUEPDA3.cjs → chunk-AUOEM3SF.cjs} +44 -44
- package/dist/{chunk-PWUEPDA3.cjs.map → chunk-AUOEM3SF.cjs.map} +1 -1
- package/dist/{chunk-WQHV3MRE.cjs → chunk-BQANU5BH.cjs} +12 -12
- package/dist/{chunk-WQHV3MRE.cjs.map → chunk-BQANU5BH.cjs.map} +1 -1
- package/dist/{chunk-KXOBZGQO.js → chunk-C23RQVRK.js} +21 -14
- package/dist/chunk-C23RQVRK.js.map +1 -0
- package/dist/{chunk-2VDK27IF.cjs → chunk-CW3AFJBR.cjs} +312 -342
- package/dist/chunk-CW3AFJBR.cjs.map +1 -0
- package/dist/{chunk-MQ2XQ4MX.js → chunk-DUE3HCZD.js} +6 -6
- package/dist/chunk-DUE3HCZD.js.map +1 -0
- package/dist/{chunk-OMOBMXD5.cjs → chunk-EH5KXQXY.cjs} +7 -2
- package/dist/chunk-EH5KXQXY.cjs.map +1 -0
- package/dist/{chunk-ZS2WA357.js → chunk-EPARJI4V.js} +147 -129
- package/dist/chunk-EPARJI4V.js.map +1 -0
- package/dist/{chunk-HZSSEYJS.cjs → chunk-FDRUAL3Z.cjs} +30 -30
- package/dist/{chunk-HZSSEYJS.cjs.map → chunk-FDRUAL3Z.cjs.map} +1 -1
- package/dist/{chunk-T7SW6OWV.js → chunk-IQBMAE3F.js} +5 -5
- package/dist/{chunk-RUDWMKYX.js → chunk-JHQUHFLX.js} +8 -8
- package/dist/{chunk-HELJTLNC.cjs → chunk-KUYZMSMF.cjs} +12 -12
- package/dist/chunk-KUYZMSMF.cjs.map +1 -0
- package/dist/chunk-LE5XMIFJ.cjs +14 -0
- package/dist/chunk-LE5XMIFJ.cjs.map +1 -0
- package/dist/{chunk-EL2OEJQC.cjs → chunk-LLTEGXWZ.cjs} +56 -56
- package/dist/{chunk-EL2OEJQC.cjs.map → chunk-LLTEGXWZ.cjs.map} +1 -1
- package/dist/chunk-MQUCCSWG.js +14 -0
- package/dist/chunk-MQUCCSWG.js.map +1 -0
- package/dist/{chunk-NNDYYEW5.js → chunk-N4FGA3H4.js} +5 -5
- package/dist/{chunk-ZHOSSWUM.js → chunk-NEZJ7ZP5.js} +4 -3
- package/dist/chunk-NEZJ7ZP5.js.map +1 -0
- package/dist/{chunk-XEBWC7ZL.js → chunk-O4Z2WMFF.js} +7 -2
- package/dist/chunk-O4Z2WMFF.js.map +1 -0
- package/dist/{chunk-HJIQT3S5.js → chunk-OBMBSU2S.js} +100 -84
- package/dist/chunk-OBMBSU2S.js.map +1 -0
- package/dist/{chunk-KAVU6T6J.js → chunk-OSHZQR3W.js} +5 -5
- package/dist/{chunk-GTTPVJSD.cjs → chunk-P6KYXFZC.cjs} +265 -247
- package/dist/chunk-P6KYXFZC.cjs.map +1 -0
- package/dist/{chunk-CDELOHDY.cjs → chunk-R2BLBV43.cjs} +23 -23
- package/dist/{chunk-CDELOHDY.cjs.map → chunk-R2BLBV43.cjs.map} +1 -1
- package/dist/{chunk-NOKWNK2O.js → chunk-RJRX34BZ.js} +3 -2
- package/dist/{chunk-ZGZEJCRV.js → chunk-T43RZTUT.js} +166 -196
- package/dist/chunk-T43RZTUT.js.map +1 -0
- package/dist/chunk-TLGX43P6.cjs +374 -0
- package/dist/chunk-TLGX43P6.cjs.map +1 -0
- package/dist/{chunk-POBM7MGR.js → chunk-U3LOLYAU.js} +2 -2
- package/dist/{chunk-RDG4VI6E.cjs → chunk-UEKXVCKC.cjs} +103 -93
- package/dist/chunk-UEKXVCKC.cjs.map +1 -0
- package/dist/{chunk-PMWCQSQX.js → chunk-VCLL5C7J.js} +5 -5
- package/dist/{chunk-SG37UBDO.js → chunk-VRS6WCEK.js} +20 -10
- package/dist/chunk-VRS6WCEK.js.map +1 -0
- package/dist/{chunk-ZC24WB7Y.cjs → chunk-WEYDDIBQ.cjs} +14 -14
- package/dist/{chunk-ZC24WB7Y.cjs.map → chunk-WEYDDIBQ.cjs.map} +1 -1
- package/dist/{chunk-5DNCCN6X.cjs → chunk-X4HDKFW5.cjs} +27 -27
- package/dist/{chunk-5DNCCN6X.cjs.map → chunk-X4HDKFW5.cjs.map} +1 -1
- package/dist/{chunk-SLVDAHHK.cjs → chunk-X4P4TQXH.cjs} +5 -5
- package/dist/{chunk-SLVDAHHK.cjs.map → chunk-X4P4TQXH.cjs.map} +1 -1
- package/dist/{chunk-GLLXHMH2.cjs → chunk-XA3UEJIW.cjs} +3 -3
- package/dist/{chunk-GLLXHMH2.cjs.map → chunk-XA3UEJIW.cjs.map} +1 -1
- package/dist/{chunk-K574XHMM.js → chunk-YBMUEEM5.js} +2 -2
- package/dist/{chunk-PZ4GT5JO.cjs → chunk-ZKVOS57Q.cjs} +316 -300
- package/dist/chunk-ZKVOS57Q.cjs.map +1 -0
- package/dist/comments.cjs +113 -98
- package/dist/comments.cjs.map +1 -1
- package/dist/comments.d.cts +6 -1
- package/dist/comments.d.ts +6 -1
- package/dist/comments.js +32 -17
- package/dist/comments.js.map +1 -1
- package/dist/diff.cjs +44 -40
- package/dist/diff.cjs.map +1 -1
- package/dist/diff.js +17 -13
- package/dist/diff.js.map +1 -1
- package/dist/docx.cjs +60 -40
- package/dist/docx.cjs.map +1 -1
- package/dist/docx.d.cts +6 -0
- package/dist/docx.d.ts +6 -0
- package/dist/docx.js +32 -12
- package/dist/docx.js.map +1 -1
- package/dist/embed.cjs +9 -9
- package/dist/embed.d.cts +1 -1
- package/dist/embed.d.ts +1 -1
- package/dist/embed.js +8 -8
- package/dist/{emoji-extension-DpQ43HjE.d.ts → emoji-extension-CmPlRssm.d.ts} +1 -1
- package/dist/{emoji-extension-C12gDPm6.d.cts → emoji-extension-zJ6F7hW8.d.cts} +1 -1
- package/dist/emoji.cjs +8 -8
- package/dist/emoji.d.cts +3 -3
- package/dist/emoji.d.ts +3 -3
- package/dist/emoji.js +7 -7
- package/dist/engine.cjs +4 -4
- package/dist/engine.d.cts +2 -2
- package/dist/engine.d.ts +2 -2
- package/dist/engine.js +3 -3
- package/dist/{find-extension-_sbZEt3R.d.cts → find-extension-BcRyE9K4.d.cts} +1 -1
- package/dist/{find-extension-DKqLLSuP.d.ts → find-extension-CmFehyul.d.ts} +1 -1
- package/dist/find.cjs +8 -8
- package/dist/find.d.cts +2 -2
- package/dist/find.d.ts +2 -2
- package/dist/find.js +7 -7
- package/dist/headless.cjs +5 -5
- package/dist/headless.d.cts +4 -4
- package/dist/headless.d.ts +4 -4
- package/dist/headless.js +4 -4
- package/dist/{index-CgD72kHB.d.cts → index-CFPmCee4.d.cts} +5 -2
- package/dist/{index-DNYbTK3w.d.ts → index-DiCGV60d.d.ts} +5 -2
- package/dist/index.cjs +7 -7
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +6 -6
- package/dist/math.cjs +10 -10
- package/dist/math.d.cts +1 -1
- package/dist/math.d.ts +1 -1
- package/dist/math.js +9 -9
- package/dist/mention.cjs +10 -10
- package/dist/mention.d.cts +1 -1
- package/dist/mention.d.ts +1 -1
- package/dist/mention.js +9 -9
- package/dist/presence.cjs +98 -104
- package/dist/presence.cjs.map +1 -1
- package/dist/presence.d.cts +2 -2
- package/dist/presence.d.ts +2 -2
- package/dist/presence.js +66 -72
- package/dist/presence.js.map +1 -1
- package/dist/{stats-extension-Bly88uio.d.ts → stats-extension-DisOEbbI.d.ts} +1 -1
- package/dist/{stats-extension-CJPijvUb.d.cts → stats-extension-Dt1lgP3m.d.cts} +1 -1
- package/dist/stats.cjs +9 -9
- package/dist/stats.d.cts +3 -3
- package/dist/stats.d.ts +3 -3
- package/dist/stats.js +8 -8
- package/dist/styles.css +1 -1
- package/dist/{table-extension-Dzf4k6hI.d.ts → table-extension-BTMJnT7J.d.ts} +1 -1
- package/dist/{table-extension-BTLxFy2S.d.cts → table-extension-DxZz3jqp.d.cts} +1 -1
- package/dist/table.cjs +8 -8
- package/dist/table.d.cts +2 -2
- package/dist/table.d.ts +2 -2
- package/dist/table.js +7 -7
- package/dist/{toc-extension-DWm5alVj.d.ts → toc-extension-CR9U-l6j.d.ts} +1 -1
- package/dist/{toc-extension-B3-s6h2x.d.cts → toc-extension-DGHywOBv.d.cts} +1 -1
- package/dist/toc.cjs +8 -8
- package/dist/toc.d.cts +2 -2
- package/dist/toc.d.ts +2 -2
- package/dist/toc.js +7 -7
- package/dist/{types-a1CRBlEh.d.ts → types-C6_QkXzy.d.ts} +1 -9
- package/dist/{types-Cz7XJLaK.d.cts → types-CJ7Gq3GX.d.cts} +1 -9
- package/dist/{view-controller-DSHw0ltQ.d.cts → view-controller-BD1KwYfE.d.cts} +6 -19
- package/dist/{view-controller-UbpzblGl.d.ts → view-controller-y4cb60ue.d.ts} +6 -19
- package/dist/view.cjs +6 -6
- package/dist/view.js +3 -3
- package/dist/yjs.cjs +302 -412
- package/dist/yjs.cjs.map +1 -1
- package/dist/yjs.d.cts +3 -3
- package/dist/yjs.d.ts +3 -3
- package/dist/yjs.js +211 -321
- package/dist/yjs.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-2VDK27IF.cjs.map +0 -1
- package/dist/chunk-AEJXZBVR.cjs.map +0 -1
- package/dist/chunk-E75EHRPA.cjs +0 -175
- package/dist/chunk-E75EHRPA.cjs.map +0 -1
- package/dist/chunk-GTTPVJSD.cjs.map +0 -1
- package/dist/chunk-HELJTLNC.cjs.map +0 -1
- package/dist/chunk-HJIQT3S5.js.map +0 -1
- package/dist/chunk-JEIFJHEI.js +0 -14
- package/dist/chunk-JEIFJHEI.js.map +0 -1
- package/dist/chunk-KXOBZGQO.js.map +0 -1
- package/dist/chunk-LCQSG4M6.js.map +0 -1
- package/dist/chunk-MQ2XQ4MX.js.map +0 -1
- package/dist/chunk-ND5XJVK2.cjs.map +0 -1
- package/dist/chunk-OMOBMXD5.cjs.map +0 -1
- package/dist/chunk-PZ4GT5JO.cjs.map +0 -1
- package/dist/chunk-QAW5NH6S.cjs +0 -14
- package/dist/chunk-QAW5NH6S.cjs.map +0 -1
- package/dist/chunk-RDG4VI6E.cjs.map +0 -1
- package/dist/chunk-SG37UBDO.js.map +0 -1
- package/dist/chunk-TC4DARU2.js +0 -175
- package/dist/chunk-TC4DARU2.js.map +0 -1
- package/dist/chunk-WXMYDXPN.cjs.map +0 -1
- package/dist/chunk-XEBWC7ZL.js.map +0 -1
- package/dist/chunk-ZGZEJCRV.js.map +0 -1
- package/dist/chunk-ZHOSSWUM.js.map +0 -1
- package/dist/chunk-ZS2WA357.js.map +0 -1
- /package/dist/{chunk-JDPTZUBW.js.map → chunk-623AOJM2.js.map} +0 -0
- /package/dist/{chunk-47MLKSI2.js.map → chunk-ADSJ42DO.js.map} +0 -0
- /package/dist/{chunk-T7SW6OWV.js.map → chunk-IQBMAE3F.js.map} +0 -0
- /package/dist/{chunk-RUDWMKYX.js.map → chunk-JHQUHFLX.js.map} +0 -0
- /package/dist/{chunk-NNDYYEW5.js.map → chunk-N4FGA3H4.js.map} +0 -0
- /package/dist/{chunk-KAVU6T6J.js.map → chunk-OSHZQR3W.js.map} +0 -0
- /package/dist/{chunk-NOKWNK2O.js.map → chunk-RJRX34BZ.js.map} +0 -0
- /package/dist/{chunk-POBM7MGR.js.map → chunk-U3LOLYAU.js.map} +0 -0
- /package/dist/{chunk-PMWCQSQX.js.map → chunk-VCLL5C7J.js.map} +0 -0
- /package/dist/{chunk-K574XHMM.js.map → chunk-YBMUEEM5.js.map} +0 -0
|
@@ -25,16 +25,16 @@
|
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
var _chunkGTTPVJSDcjs = require('./chunk-GTTPVJSD.cjs');
|
|
29
28
|
|
|
29
|
+
var _chunkP6KYXFZCcjs = require('./chunk-P6KYXFZC.cjs');
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
var _chunkOMOBMXD5cjs = require('./chunk-OMOBMXD5.cjs');
|
|
36
35
|
|
|
37
36
|
|
|
37
|
+
var _chunkEH5KXQXYcjs = require('./chunk-EH5KXQXY.cjs');
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
|
|
@@ -98,12 +98,12 @@ var _chunkOMOBMXD5cjs = require('./chunk-OMOBMXD5.cjs');
|
|
|
98
98
|
|
|
99
99
|
|
|
100
100
|
|
|
101
|
-
var _chunkPZ4GT5JOcjs = require('./chunk-PZ4GT5JO.cjs');
|
|
102
101
|
|
|
103
102
|
|
|
104
|
-
var
|
|
103
|
+
var _chunkZKVOS57Qcjs = require('./chunk-ZKVOS57Q.cjs');
|
|
105
104
|
|
|
106
105
|
|
|
106
|
+
var _chunk6V6GGBDKcjs = require('./chunk-6V6GGBDK.cjs');
|
|
107
107
|
|
|
108
108
|
|
|
109
109
|
|
|
@@ -127,7 +127,9 @@ var _chunk2QCRZ7OLcjs = require('./chunk-2QCRZ7OL.cjs');
|
|
|
127
127
|
|
|
128
128
|
|
|
129
129
|
|
|
130
|
-
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
var _chunk4SLJNZSMcjs = require('./chunk-4SLJNZSM.cjs');
|
|
131
133
|
|
|
132
134
|
// src/canvas/BlockCanvas.tsx
|
|
133
135
|
var _react = require('react'); var React = _interopRequireWildcard(_react); var React2 = _interopRequireWildcard(_react); var React3 = _interopRequireWildcard(_react); var React4 = _interopRequireWildcard(_react); var React5 = _interopRequireWildcard(_react); var React6 = _interopRequireWildcard(_react); var React7 = _interopRequireWildcard(_react); var React8 = _interopRequireWildcard(_react); var React9 = _interopRequireWildcard(_react); var React10 = _interopRequireWildcard(_react);
|
|
@@ -387,17 +389,17 @@ function useLabels() {
|
|
|
387
389
|
}
|
|
388
390
|
|
|
389
391
|
// src/blocks/caption-markdown.ts
|
|
390
|
-
var captionText = (markdown) =>
|
|
392
|
+
var captionText = (markdown) => _chunk4SLJNZSMcjs.inlineText.call(void 0, _chunk4SLJNZSMcjs.parseInline.call(void 0, markdown), () => "");
|
|
391
393
|
|
|
392
394
|
// src/blocks/code/HighlightOverlay.tsx
|
|
393
395
|
|
|
394
396
|
|
|
395
397
|
function Token({ text: text2, color, className }) {
|
|
396
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { style: { color }, className, children: text2 });
|
|
398
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { style: { color: _chunkEH5KXQXYcjs.tokenColour.call(void 0, color) }, className, children: text2 });
|
|
397
399
|
}
|
|
398
400
|
function HighlightOverlay({ code, language: language2, drawnRef, ...props }) {
|
|
399
401
|
const { highlight } = useQuoin();
|
|
400
|
-
const lines = _react.useMemo.call(void 0, () =>
|
|
402
|
+
const lines = _react.useMemo.call(void 0, () => _chunkEH5KXQXYcjs.highlightedLines.call(void 0, highlight, code, language2), [highlight, code, language2]);
|
|
401
403
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "pre", { ...props, ref: drawnRef, className: "quoin-code-text", children: [
|
|
402
404
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "code", { children: lines === null ? code : lines.map((line, index) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react.Fragment, { children: [
|
|
403
405
|
index > 0 && "\n",
|
|
@@ -412,17 +414,17 @@ function assetHref(resolveAssetUrl, storageKey) {
|
|
|
412
414
|
if (storageKey === "") return null;
|
|
413
415
|
try {
|
|
414
416
|
const src = resolveAssetUrl(storageKey);
|
|
415
|
-
return typeof src === "string" &&
|
|
417
|
+
return typeof src === "string" && _chunk4SLJNZSMcjs.sanitizeAssetUrl.call(void 0, src) || null;
|
|
416
418
|
} catch (e2) {
|
|
417
419
|
return null;
|
|
418
420
|
}
|
|
419
421
|
}
|
|
420
422
|
|
|
421
423
|
// src/blocks/image/image-source.ts
|
|
422
|
-
var hasPicture = (attrs) =>
|
|
424
|
+
var hasPicture = (attrs) => _chunk4SLJNZSMcjs.str.call(void 0, attrs.url) !== "" || _chunk4SLJNZSMcjs.str.call(void 0, attrs.storageKey) !== "";
|
|
423
425
|
function imageSource(attrs, resolveAssetUrl) {
|
|
424
|
-
const url =
|
|
425
|
-
return url === "" ? assetHref(resolveAssetUrl,
|
|
426
|
+
const url = _chunk4SLJNZSMcjs.str.call(void 0, attrs.url);
|
|
427
|
+
return url === "" ? assetHref(resolveAssetUrl, _chunk4SLJNZSMcjs.str.call(void 0, attrs.storageKey)) : _chunk4SLJNZSMcjs.sanitizeHref.call(void 0, url);
|
|
426
428
|
}
|
|
427
429
|
|
|
428
430
|
// src/blocks/previews.tsx
|
|
@@ -437,69 +439,69 @@ var TONE = {
|
|
|
437
439
|
};
|
|
438
440
|
function MarkdownPreview({ data }) {
|
|
439
441
|
const labels = useLabels();
|
|
440
|
-
const markdown =
|
|
442
|
+
const markdown = _chunk4SLJNZSMcjs.str.call(void 0, data.markdown);
|
|
441
443
|
if (markdown.trim() === "") return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: HINT, children: labels.emptyMarkdown });
|
|
442
444
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "whitespace-pre-wrap text-base leading-7", children: markdown });
|
|
443
445
|
}
|
|
444
446
|
function CodePreview({ data }) {
|
|
445
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { dir: "ltr", className: "quoin-code quoin-code-scroll pt-3", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HighlightOverlay, { code:
|
|
447
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { dir: "ltr", className: "quoin-code quoin-code-scroll pt-3", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, HighlightOverlay, { code: _chunk4SLJNZSMcjs.str.call(void 0, data.code), language: _chunk4SLJNZSMcjs.str.call(void 0, data.language) }) });
|
|
446
448
|
}
|
|
447
449
|
function ImagePreview({ data }) {
|
|
448
450
|
const { resolveAssetUrl, labels } = useQuoin();
|
|
449
451
|
const src = imageSource(data, resolveAssetUrl);
|
|
450
452
|
if (src === null) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: HINT, children: labels.emptyImage });
|
|
451
|
-
const caption = captionText(
|
|
453
|
+
const caption = captionText(_chunk4SLJNZSMcjs.str.call(void 0, data.caption));
|
|
452
454
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "figure", { children: [
|
|
453
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "img", { src, alt:
|
|
455
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "img", { src, alt: _chunk4SLJNZSMcjs.str.call(void 0, data.alt) || labels.imageNoAlt, className: "max-w-full rounded-md" }),
|
|
454
456
|
caption && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "figcaption", { className: HINT, children: caption })
|
|
455
457
|
] });
|
|
456
458
|
}
|
|
457
459
|
function FilePreview({ data }) {
|
|
458
460
|
const labels = useLabels();
|
|
459
|
-
const name =
|
|
461
|
+
const name = _chunk4SLJNZSMcjs.str.call(void 0, data.filename);
|
|
460
462
|
if (name === "") return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: HINT, children: labels.emptyFile });
|
|
461
463
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-sm", children: name });
|
|
462
464
|
}
|
|
463
465
|
function CalloutPreview({ data }) {
|
|
464
466
|
const labels = useLabels();
|
|
465
|
-
const body =
|
|
467
|
+
const body = _chunk4SLJNZSMcjs.str.call(void 0, data.body);
|
|
466
468
|
if (body.trim() === "") return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: HINT, children: labels.emptyCallout });
|
|
467
|
-
const tone =
|
|
469
|
+
const tone = _chunk4SLJNZSMcjs.str.call(void 0, data.tone) || "info";
|
|
468
470
|
const paint = _nullishCoalesce(TONE[tone], () => ( "border-border bg-muted/50"));
|
|
469
471
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { "data-tone": tone, className: `rounded-md border-l-4 ${paint} p-3 text-sm`, children: body });
|
|
470
472
|
}
|
|
471
473
|
|
|
472
474
|
// src/blocks/core.ts
|
|
473
475
|
var coreBlocks = [
|
|
474
|
-
|
|
476
|
+
_chunkEH5KXQXYcjs.defineBlock.call(void 0, {
|
|
475
477
|
type: "MARKDOWN",
|
|
476
478
|
label: "Markdown",
|
|
477
479
|
icon: _lucidereact.FileText,
|
|
478
480
|
preview: MarkdownPreview,
|
|
479
481
|
initialData: () => ({ markdown: "" })
|
|
480
482
|
}),
|
|
481
|
-
|
|
483
|
+
_chunkEH5KXQXYcjs.defineBlock.call(void 0, {
|
|
482
484
|
type: "CALLOUT",
|
|
483
485
|
label: "Callout",
|
|
484
486
|
icon: _lucidereact.MessageSquare,
|
|
485
487
|
preview: CalloutPreview,
|
|
486
488
|
initialData: () => ({ tone: "info", body: "" })
|
|
487
489
|
}),
|
|
488
|
-
|
|
490
|
+
_chunkEH5KXQXYcjs.defineBlock.call(void 0, {
|
|
489
491
|
type: "CODE",
|
|
490
492
|
label: "Code",
|
|
491
493
|
icon: _lucidereact.Code,
|
|
492
494
|
preview: CodePreview,
|
|
493
495
|
initialData: () => ({ language: "", code: "" })
|
|
494
496
|
}),
|
|
495
|
-
|
|
497
|
+
_chunkEH5KXQXYcjs.defineBlock.call(void 0, {
|
|
496
498
|
type: "IMAGE",
|
|
497
499
|
label: "Image",
|
|
498
500
|
icon: _lucidereact.Image,
|
|
499
501
|
preview: ImagePreview,
|
|
500
502
|
initialData: () => ({ storageKey: "", alt: "" })
|
|
501
503
|
}),
|
|
502
|
-
|
|
504
|
+
_chunkEH5KXQXYcjs.defineBlock.call(void 0, {
|
|
503
505
|
type: "FILE",
|
|
504
506
|
label: "File",
|
|
505
507
|
icon: _lucidereact.Paperclip,
|
|
@@ -516,7 +518,7 @@ function selectNode(controller, blockId) {
|
|
|
516
518
|
const { editor } = controller;
|
|
517
519
|
const { selection } = editor.state;
|
|
518
520
|
if (_optionalChain([selection, 'optionalAccess', _2 => _2.kind]) === "node" && selection.block === blockId) return;
|
|
519
|
-
|
|
521
|
+
_chunkP6KYXFZCcjs.dispatchSelection.call(void 0, controller, _chunkZKVOS57Qcjs.nodeSelection.call(void 0, blockId));
|
|
520
522
|
}
|
|
521
523
|
function focusNode(controller, blockId) {
|
|
522
524
|
selectNode(controller, blockId);
|
|
@@ -546,8 +548,8 @@ var OPEN_EDITOR = "openEditor";
|
|
|
546
548
|
var ABOVE_CORE_KEYS = 200;
|
|
547
549
|
function turnedBlock(tr, { doc, selection }) {
|
|
548
550
|
if (_optionalChain([selection, 'optionalAccess', _3 => _3.kind]) !== "node" || tr.origin === "remote" || tr.origin === "reconcile") return void 0;
|
|
549
|
-
const before =
|
|
550
|
-
return before !== void 0 && before.type !== _optionalChain([
|
|
551
|
+
const before = _chunk4SLJNZSMcjs.blockById.call(void 0, tr.before.doc, selection.block);
|
|
552
|
+
return before !== void 0 && before.type !== _optionalChain([_chunk4SLJNZSMcjs.blockById.call(void 0, doc, selection.block), 'optionalAccess', _4 => _4.type]) ? selection.block : void 0;
|
|
551
553
|
}
|
|
552
554
|
function createVoidEditing() {
|
|
553
555
|
const starters = /* @__PURE__ */ new Map();
|
|
@@ -567,7 +569,7 @@ function createVoidEditing() {
|
|
|
567
569
|
_optionalChain([start, 'optionalCall', _6 => _6()]);
|
|
568
570
|
};
|
|
569
571
|
return {
|
|
570
|
-
extension:
|
|
572
|
+
extension: _chunkZKVOS57Qcjs.defineExtension.call(void 0, {
|
|
571
573
|
name: "void-editing",
|
|
572
574
|
priority: ABOVE_CORE_KEYS,
|
|
573
575
|
keymap: { Enter: openEditor },
|
|
@@ -864,32 +866,32 @@ function settle(tr, before) {
|
|
|
864
866
|
const { schema } = tr.before;
|
|
865
867
|
const result = tr.selection;
|
|
866
868
|
if (_optionalChain([result, 'optionalAccess', _21 => _21.kind]) !== "blocks" || _optionalChain([before, 'optionalAccess', _22 => _22.kind]) === "blocks") return result;
|
|
867
|
-
const ids =
|
|
868
|
-
const head =
|
|
869
|
-
if (head !== null && ids.includes(head) &&
|
|
870
|
-
return
|
|
869
|
+
const ids = _chunkZKVOS57Qcjs.selectedBlockIds.call(void 0, doc, result);
|
|
870
|
+
const head = _chunkZKVOS57Qcjs.headBlockId.call(void 0, before);
|
|
871
|
+
if (head !== null && ids.includes(head) && _chunkZKVOS57Qcjs.validateSelection.call(void 0, doc, schema, before) === before) return before;
|
|
872
|
+
return _chunkZKVOS57Qcjs.endOf.call(void 0, doc, schema, ids[0]);
|
|
871
873
|
}
|
|
872
874
|
function runOnBlocks(controller, blockIds, command) {
|
|
873
875
|
const { state } = controller.editor;
|
|
874
876
|
const ids = blockIds.filter((id) => state.doc.index.has(id));
|
|
875
877
|
if (ids.length === 0) return false;
|
|
876
878
|
const before = state.selection;
|
|
877
|
-
const exact =
|
|
878
|
-
const ran = exact ? before :
|
|
879
|
-
const { ok, tr } =
|
|
880
|
-
const result = ok && tr !== null ? tr : new (0,
|
|
879
|
+
const exact = _chunk4SLJNZSMcjs.sameItems.call(void 0, _chunkZKVOS57Qcjs.selectedBlockIds.call(void 0, state.doc, before), ids);
|
|
880
|
+
const ran = exact ? before : _chunkZKVOS57Qcjs.blockRangeSelection.call(void 0, ids[0], ids[ids.length - 1]);
|
|
881
|
+
const { ok, tr } = _chunkZKVOS57Qcjs.runCommands.call(void 0, state, [_chunkZKVOS57Qcjs.setSelection.call(void 0, ran), command]);
|
|
882
|
+
const result = ok && tr !== null ? tr : new (0, _chunkZKVOS57Qcjs.Transaction)(state).setSelection(ran);
|
|
881
883
|
const settled = exact ? result.selection : settle(result, before);
|
|
882
|
-
if (!
|
|
883
|
-
if (result.docChanged || !
|
|
884
|
+
if (!_chunkZKVOS57Qcjs.sameSelection.call(void 0, settled, result.selection)) result.setSelection(settled);
|
|
885
|
+
if (result.docChanged || !_chunkZKVOS57Qcjs.sameSelection.call(void 0, result.selection, before)) controller.dispatch(result);
|
|
884
886
|
return ok;
|
|
885
887
|
}
|
|
886
888
|
var noChange = () => true;
|
|
887
889
|
|
|
888
890
|
// src/gutter/block-menu-items.ts
|
|
889
|
-
var rangeOf = (blockIds) =>
|
|
891
|
+
var rangeOf = (blockIds) => _chunkZKVOS57Qcjs.blockRangeSelection.call(void 0, blockIds[0], blockIds[blockIds.length - 1]);
|
|
890
892
|
function selectedWith(state, blockId) {
|
|
891
893
|
const { doc, selection } = state;
|
|
892
|
-
const selected =
|
|
894
|
+
const selected = _chunkZKVOS57Qcjs.selectedBlockIds.call(void 0, doc, selection);
|
|
893
895
|
const ofBlocks = _optionalChain([selection, 'optionalAccess', _23 => _23.kind]) === "blocks" || _optionalChain([selection, 'optionalAccess', _24 => _24.kind]) === "text" && selected.length > 1;
|
|
894
896
|
return ofBlocks && selected.includes(blockId) ? selected : null;
|
|
895
897
|
}
|
|
@@ -897,8 +899,8 @@ function menuTargets(state, blockId) {
|
|
|
897
899
|
const selected = selectedWith(state, blockId);
|
|
898
900
|
if (selected !== null) return selected;
|
|
899
901
|
const { doc } = state;
|
|
900
|
-
const index =
|
|
901
|
-
return doc.blocks.slice(index,
|
|
902
|
+
const index = _chunk4SLJNZSMcjs.requireBlockIndex.call(void 0, doc, blockId);
|
|
903
|
+
return doc.blocks.slice(index, _chunkZKVOS57Qcjs.descendantsEnd.call(void 0, doc, index)).map((block) => block.id);
|
|
902
904
|
}
|
|
903
905
|
function styleTargets(state, blockId) {
|
|
904
906
|
return _nullishCoalesce(selectedWith(state, blockId), () => ( [blockId]));
|
|
@@ -908,12 +910,12 @@ function menuActions(core, extra = []) {
|
|
|
908
910
|
}
|
|
909
911
|
function markdownOf(editor, blockIds, resolveAssetUrl) {
|
|
910
912
|
const { doc } = editor.state;
|
|
911
|
-
const range =
|
|
913
|
+
const range = _chunkZKVOS57Qcjs.selectedBlockRange.call(void 0, doc, rangeOf(blockIds));
|
|
912
914
|
if (range === null) return "";
|
|
913
|
-
const blocks = editor.codec.blocksFromDoc(
|
|
914
|
-
return
|
|
915
|
+
const blocks = editor.codec.blocksFromDoc(_chunk4SLJNZSMcjs.createDoc.call(void 0, doc.blocks.slice(range.start, range.end)));
|
|
916
|
+
return _chunkZKVOS57Qcjs.toMarkdown.call(void 0, blocks, { schema: editor.schema, resolveAssetUrl, comments: false });
|
|
915
917
|
}
|
|
916
|
-
var applies = (command) => (state, blockIds) => blockIds.every((id) => state.doc.index.has(id)) &&
|
|
918
|
+
var applies = (command) => (state, blockIds) => blockIds.every((id) => state.doc.index.has(id)) && _chunkZKVOS57Qcjs.runCommands.call(void 0, state, [_chunkZKVOS57Qcjs.setSelection.call(void 0, rangeOf(blockIds)), command]).ok;
|
|
917
919
|
function coreBlockMenuActions(labels, options) {
|
|
918
920
|
const copy = (controller, blockIds, text2) => {
|
|
919
921
|
void copyText(text2).then((copied) => {
|
|
@@ -927,7 +929,7 @@ function coreBlockMenuActions(labels, options) {
|
|
|
927
929
|
label: labels.duplicate,
|
|
928
930
|
icon: _lucidereact.CopyPlus,
|
|
929
931
|
shortcut: "Mod-d",
|
|
930
|
-
run: (controller, blockIds) => runOnBlocks(controller, blockIds,
|
|
932
|
+
run: (controller, blockIds) => runOnBlocks(controller, blockIds, _chunkZKVOS57Qcjs.duplicateBlocks.call(void 0, ))
|
|
931
933
|
},
|
|
932
934
|
{
|
|
933
935
|
id: "copy",
|
|
@@ -946,23 +948,23 @@ function coreBlockMenuActions(labels, options) {
|
|
|
946
948
|
label: labels.moveUp,
|
|
947
949
|
icon: _lucidereact.ArrowUp,
|
|
948
950
|
shortcut: "Mod-Shift-ArrowUp",
|
|
949
|
-
run: (controller, blockIds) => runOnBlocks(controller, blockIds,
|
|
950
|
-
available: applies(
|
|
951
|
+
run: (controller, blockIds) => runOnBlocks(controller, blockIds, _chunkZKVOS57Qcjs.moveBlocksUp),
|
|
952
|
+
available: applies(_chunkZKVOS57Qcjs.moveBlocksUp)
|
|
951
953
|
},
|
|
952
954
|
{
|
|
953
955
|
id: "move-down",
|
|
954
956
|
label: labels.moveDown,
|
|
955
957
|
icon: _lucidereact.ArrowDown,
|
|
956
958
|
shortcut: "Mod-Shift-ArrowDown",
|
|
957
|
-
run: (controller, blockIds) => runOnBlocks(controller, blockIds,
|
|
958
|
-
available: applies(
|
|
959
|
+
run: (controller, blockIds) => runOnBlocks(controller, blockIds, _chunkZKVOS57Qcjs.moveBlocksDown),
|
|
960
|
+
available: applies(_chunkZKVOS57Qcjs.moveBlocksDown)
|
|
959
961
|
},
|
|
960
962
|
{
|
|
961
963
|
id: "delete",
|
|
962
964
|
label: labels.delete,
|
|
963
965
|
icon: _lucidereact.Trash,
|
|
964
966
|
destructive: true,
|
|
965
|
-
run: (controller, blockIds) => runOnBlocks(controller, blockIds,
|
|
967
|
+
run: (controller, blockIds) => runOnBlocks(controller, blockIds, _chunkZKVOS57Qcjs.deleteBlocks)
|
|
966
968
|
}
|
|
967
969
|
];
|
|
968
970
|
}
|
|
@@ -1020,7 +1022,7 @@ var sharedTone = (blocks) => {
|
|
|
1020
1022
|
function CalloutMenus({ kit, controller, blocks }) {
|
|
1021
1023
|
const labels = useLabels();
|
|
1022
1024
|
const blockIds = blocks.map((block) => block.id);
|
|
1023
|
-
const apply = (patch) => runOnBlocks(controller, blockIds,
|
|
1025
|
+
const apply = (patch) => runOnBlocks(controller, blockIds, _chunkZKVOS57Qcjs.setAttrs.call(void 0, patch));
|
|
1024
1026
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
1025
1027
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, kit.Sub, { children: [
|
|
1026
1028
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, kit.SubTrigger, { children: [
|
|
@@ -1045,7 +1047,7 @@ function CalloutMenus({ kit, controller, blocks }) {
|
|
|
1045
1047
|
|
|
1046
1048
|
function sharedColor(blocks, key) {
|
|
1047
1049
|
const coloured = blocks.filter((block) => block.type === "MARKDOWN");
|
|
1048
|
-
const colors = new Set(coloured.map((block) => _nullishCoalesce(
|
|
1050
|
+
const colors = new Set(coloured.map((block) => _nullishCoalesce(_chunk4SLJNZSMcjs.paletteOrUndefined.call(void 0, block.attrs[key]), () => ( "default"))));
|
|
1049
1051
|
return colors.size === 1 ? [...colors][0] : "";
|
|
1050
1052
|
}
|
|
1051
1053
|
var swatches = {
|
|
@@ -1058,7 +1060,7 @@ function ColorGroups({ kit, value, onPick }) {
|
|
|
1058
1060
|
const backgroundTitle = _react.useId.call(void 0, );
|
|
1059
1061
|
const group = (key, title, titleId) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
1060
1062
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, kit.Label, { id: titleId, children: title }),
|
|
1061
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, kit.RadioGroup, { "aria-labelledby": titleId, value: value[key], onValueChange: (name) => onPick(key, name), children:
|
|
1063
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, kit.RadioGroup, { "aria-labelledby": titleId, value: value[key], onValueChange: (name) => onPick(key, name), children: _chunk4SLJNZSMcjs.PALETTE.map((name) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, kit.RadioItem, { value: name, indicator: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CheckIcon, { className: "size-4" }), children: [
|
|
1062
1064
|
swatches[key](name),
|
|
1063
1065
|
labels.colors[name]
|
|
1064
1066
|
] }, name)) })
|
|
@@ -1073,7 +1075,7 @@ function ColorMenu({ kit, controller, blocks }) {
|
|
|
1073
1075
|
const labels = useLabels();
|
|
1074
1076
|
const blockIds = blocks.map((block) => block.id);
|
|
1075
1077
|
const value = { color: sharedColor(blocks, "color"), background: sharedColor(blocks, "background") };
|
|
1076
|
-
const pick = (key, name) => runOnBlocks(controller, blockIds,
|
|
1078
|
+
const pick = (key, name) => runOnBlocks(controller, blockIds, _chunkZKVOS57Qcjs.setBlockColor.call(void 0, { [key]: name === "default" ? null : name }));
|
|
1077
1079
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, kit.Sub, { children: [
|
|
1078
1080
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, kit.SubTrigger, { children: [
|
|
1079
1081
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, MenuIcon, { icon: _lucidereact.Palette }),
|
|
@@ -1104,7 +1106,7 @@ function modifierText(modifier, isMac, { keyNames }) {
|
|
|
1104
1106
|
return Object.hasOwn(MODIFIERS, name) ? keyNames[MODIFIERS[name]] : capitalized(modifier);
|
|
1105
1107
|
}
|
|
1106
1108
|
function formatShortcut(shortcut, platform = {}) {
|
|
1107
|
-
const { isMac =
|
|
1109
|
+
const { isMac = _chunkZKVOS57Qcjs.detectMac.call(void 0, ), labels = englishLabels } = platform;
|
|
1108
1110
|
const parts = shortcut.split(shortcut.includes("+") ? "+" : "-");
|
|
1109
1111
|
const key = _nullishCoalesce(parts.pop(), () => ( shortcut));
|
|
1110
1112
|
const written = [...parts.map((modifier) => modifierText(modifier, isMac, labels)), keyText(key, labels)];
|
|
@@ -1193,21 +1195,21 @@ function languageOptions(query, plainText) {
|
|
|
1193
1195
|
|
|
1194
1196
|
|
|
1195
1197
|
// src/blocks/insert-blocks.ts
|
|
1196
|
-
var isEmptyParagraph = (schema, block) =>
|
|
1198
|
+
var isEmptyParagraph = (schema, block) => _chunkZKVOS57Qcjs.isParagraph.call(void 0, block) && _chunkZKVOS57Qcjs.regionLength.call(void 0, block, _nullishCoalesce(_chunkZKVOS57Qcjs.primaryRegion.call(void 0, schema, block), () => ( ""))) === 0;
|
|
1197
1199
|
function fresh(schema, { id, type, attrs, regions }, indent3) {
|
|
1198
|
-
const block =
|
|
1200
|
+
const block = _chunkZKVOS57Qcjs.createBlock.call(void 0, schema, type, attrs, indent3, id);
|
|
1199
1201
|
return regions === void 0 ? block : { ...block, regions };
|
|
1200
1202
|
}
|
|
1201
1203
|
function landOnLine(tr, schema, index, indent3) {
|
|
1202
1204
|
const next = tr.doc.blocks[index];
|
|
1203
1205
|
const reused = next !== void 0 && next.indent === indent3 && isEmptyParagraph(schema, next);
|
|
1204
|
-
const line = reused ? next :
|
|
1205
|
-
if (!reused) tr.step(
|
|
1206
|
-
tr.setSelection(
|
|
1206
|
+
const line = reused ? next : _chunkZKVOS57Qcjs.createBlock.call(void 0, schema, schema.defaultTextBlock, {}, indent3);
|
|
1207
|
+
if (!reused) tr.step(_chunkZKVOS57Qcjs.insertBlocksStep.call(void 0, index, [line]));
|
|
1208
|
+
tr.setSelection(_chunkZKVOS57Qcjs.startOf.call(void 0, tr.doc, schema, line.id));
|
|
1207
1209
|
}
|
|
1208
1210
|
function land(tr, schema, landing, first, after) {
|
|
1209
|
-
if (landing === "text") tr.setSelection(
|
|
1210
|
-
if (landing === "editor") tr.setSelection(
|
|
1211
|
+
if (landing === "text") tr.setSelection(_chunkZKVOS57Qcjs.startOf.call(void 0, tr.doc, schema, first.id));
|
|
1212
|
+
if (landing === "editor") tr.setSelection(_chunkZKVOS57Qcjs.nodeSelection.call(void 0, first.id)).setMeta(OPEN_EDITOR, first.id);
|
|
1211
1213
|
if (landing === "line") landOnLine(tr, schema, after, first.indent);
|
|
1212
1214
|
}
|
|
1213
1215
|
function anchorIndex(doc, id) {
|
|
@@ -1217,24 +1219,24 @@ function anchorIndex(doc, id) {
|
|
|
1217
1219
|
function insertBlocks(blocks, landing, anchorId) {
|
|
1218
1220
|
return (state, dispatch) => {
|
|
1219
1221
|
const { doc, schema } = state;
|
|
1220
|
-
const id = anchorId === void 0 ?
|
|
1222
|
+
const id = anchorId === void 0 ? _chunkZKVOS57Qcjs.headBlockId.call(void 0, state.selection) : anchorId;
|
|
1221
1223
|
const index = anchorIndex(doc, id);
|
|
1222
1224
|
if (index === void 0 || blocks.length === 0) return false;
|
|
1223
1225
|
const anchor = id === null ? void 0 : doc.blocks[index];
|
|
1224
1226
|
const created2 = blocks.map((block) => fresh(schema, block, _nullishCoalesce(_optionalChain([anchor, 'optionalAccess', _33 => _33.indent]), () => ( 0))));
|
|
1225
|
-
const tr = new (0,
|
|
1227
|
+
const tr = new (0, _chunkZKVOS57Qcjs.Transaction)(state);
|
|
1226
1228
|
const empty = anchor !== void 0 && landing !== "stay" && isEmptyParagraph(schema, anchor);
|
|
1227
1229
|
if (empty && landing === "line") {
|
|
1228
|
-
tr.step(
|
|
1230
|
+
tr.step(_chunkZKVOS57Qcjs.insertBlocksStep.call(void 0, index, created2)).setSelection(_chunkZKVOS57Qcjs.startOf.call(void 0, tr.doc, schema, anchor.id));
|
|
1229
1231
|
} else if (empty) {
|
|
1230
1232
|
const [first, ...rest] = created2;
|
|
1231
1233
|
const filled = { ...first, id: anchor.id };
|
|
1232
|
-
tr.step(
|
|
1233
|
-
if (rest.length > 0) tr.step(
|
|
1234
|
+
tr.step(_chunkZKVOS57Qcjs.replaceBlockStep.call(void 0, filled));
|
|
1235
|
+
if (rest.length > 0) tr.step(_chunkZKVOS57Qcjs.insertBlocksStep.call(void 0, index + 1, rest));
|
|
1234
1236
|
land(tr, schema, landing, filled, index + created2.length);
|
|
1235
1237
|
} else {
|
|
1236
|
-
const at = anchor === void 0 ? 0 :
|
|
1237
|
-
tr.step(
|
|
1238
|
+
const at = anchor === void 0 ? 0 : _chunkZKVOS57Qcjs.descendantsEnd.call(void 0, doc, index);
|
|
1239
|
+
tr.step(_chunkZKVOS57Qcjs.insertBlocksStep.call(void 0, at, created2));
|
|
1238
1240
|
land(tr, schema, landing, created2[0], at + created2.length);
|
|
1239
1241
|
}
|
|
1240
1242
|
_optionalChain([dispatch, 'optionalCall', _34 => _34(tr)]);
|
|
@@ -1247,7 +1249,7 @@ function landingFor(flow, hasEditor) {
|
|
|
1247
1249
|
}
|
|
1248
1250
|
function insertBlockToWrite(block, hasEditor, anchorId) {
|
|
1249
1251
|
return (state, dispatch) => {
|
|
1250
|
-
const landing = landingFor(
|
|
1252
|
+
const landing = landingFor(_chunk4SLJNZSMcjs.specFor.call(void 0, state.schema, block.type).flow, hasEditor);
|
|
1251
1253
|
return insertBlocks([block], landing, anchorId)(state, dispatch);
|
|
1252
1254
|
};
|
|
1253
1255
|
}
|
|
@@ -1255,20 +1257,20 @@ function insertBlockToWrite(block, hasEditor, anchorId) {
|
|
|
1255
1257
|
// src/blocks/code/code-actions.ts
|
|
1256
1258
|
function writeCode(controller, blockId, code, group) {
|
|
1257
1259
|
const { editor } = controller;
|
|
1258
|
-
const block =
|
|
1260
|
+
const block = _chunk4SLJNZSMcjs.blockById.call(void 0, editor.state.doc, blockId);
|
|
1259
1261
|
if (block === void 0 || block.attrs.code === code) return;
|
|
1260
|
-
controller.dispatch(editor.createTransaction().step(
|
|
1262
|
+
controller.dispatch(editor.createTransaction().step(_chunkZKVOS57Qcjs.setAttrsStep.call(void 0, blockId, { code })).setMeta(_chunkZKVOS57Qcjs.HISTORY_GROUP, group));
|
|
1261
1263
|
}
|
|
1262
1264
|
function codeToParagraph(blockId) {
|
|
1263
1265
|
return (state, dispatch) => {
|
|
1264
|
-
const turn =
|
|
1265
|
-
const { ok, tr } =
|
|
1266
|
+
const turn = _chunkZKVOS57Qcjs.setBlockType.call(void 0, "MARKDOWN", { kind: "paragraph" });
|
|
1267
|
+
const { ok, tr } = _chunkZKVOS57Qcjs.runCommands.call(void 0, state, [_chunkZKVOS57Qcjs.setSelection.call(void 0, _chunkZKVOS57Qcjs.nodeSelection.call(void 0, blockId)), turn]);
|
|
1266
1268
|
if (ok && tr !== null) _optionalChain([dispatch, 'optionalCall', _35 => _35(tr)]);
|
|
1267
1269
|
return ok;
|
|
1268
1270
|
};
|
|
1269
1271
|
}
|
|
1270
1272
|
function leaveCode(controller, blockId, direction, addsLine = false) {
|
|
1271
|
-
const moved =
|
|
1273
|
+
const moved = _chunkP6KYXFZCcjs.moveToNeighbour.call(void 0, controller, blockId, direction);
|
|
1272
1274
|
if (!moved && !(addsLine && controller.run(insertBlocks([{ type: "MARKDOWN" }], "text", blockId)))) return false;
|
|
1273
1275
|
controller.focus();
|
|
1274
1276
|
return true;
|
|
@@ -1346,8 +1348,8 @@ var MOD_KEYS = [
|
|
|
1346
1348
|
["Mod-a", ({ value, start, end }) => start === 0 && end === value.length ? { kind: "selectAll" } : null]
|
|
1347
1349
|
];
|
|
1348
1350
|
function codeKeyAction(event, field, isMac) {
|
|
1349
|
-
const name =
|
|
1350
|
-
const modKey = MOD_KEYS.find(([key]) =>
|
|
1351
|
+
const name = _chunkZKVOS57Qcjs.keyName.call(void 0, event, isMac);
|
|
1352
|
+
const modKey = MOD_KEYS.find(([key]) => _chunkZKVOS57Qcjs.normalizeKey.call(void 0, key, isMac) === name);
|
|
1351
1353
|
const handler = _nullishCoalesce(_optionalChain([modKey, 'optionalAccess', _39 => _39[1]]), () => ( (Object.hasOwn(KEYS, name) ? KEYS[name] : void 0)));
|
|
1352
1354
|
return _nullishCoalesce(_optionalChain([handler, 'optionalCall', _40 => _40(field)]), () => ( null));
|
|
1353
1355
|
}
|
|
@@ -1393,7 +1395,7 @@ function travel({ controller, blockId, area }, command) {
|
|
|
1393
1395
|
const before = area.value;
|
|
1394
1396
|
controller.run(command);
|
|
1395
1397
|
const { selection } = controller.editor.state;
|
|
1396
|
-
const edit2 =
|
|
1398
|
+
const edit2 = _chunkP6KYXFZCcjs.textDiff.call(void 0, before, area.value);
|
|
1397
1399
|
if (_optionalChain([selection, 'optionalAccess', _44 => _44.kind]) !== "node" || selection.block !== blockId) controller.focus();
|
|
1398
1400
|
else if (edit2 !== null) area.setSelectionRange(edit2.from + edit2.insert.length, edit2.from + edit2.insert.length);
|
|
1399
1401
|
return true;
|
|
@@ -1409,13 +1411,13 @@ function runCodeAction(action, context) {
|
|
|
1409
1411
|
case "paragraph":
|
|
1410
1412
|
return selectAndFocus(context, codeToParagraph(blockId));
|
|
1411
1413
|
case "undo":
|
|
1412
|
-
return travel(context,
|
|
1414
|
+
return travel(context, _chunkZKVOS57Qcjs.undo);
|
|
1413
1415
|
case "redo":
|
|
1414
|
-
return travel(context,
|
|
1416
|
+
return travel(context, _chunkZKVOS57Qcjs.redo);
|
|
1415
1417
|
case "selectAll":
|
|
1416
|
-
return selectAndFocus(context,
|
|
1418
|
+
return selectAndFocus(context, _chunkZKVOS57Qcjs.selectAll);
|
|
1417
1419
|
case "escape":
|
|
1418
|
-
return selectAndFocus(context,
|
|
1420
|
+
return selectAndFocus(context, _chunkZKVOS57Qcjs.setSelection.call(void 0, _chunkZKVOS57Qcjs.blockRangeSelection.call(void 0, blockId)));
|
|
1419
1421
|
case "controls":
|
|
1420
1422
|
context.focusControls();
|
|
1421
1423
|
return true;
|
|
@@ -1484,18 +1486,18 @@ function CodeEditor({ block, controller, field, focusControls }) {
|
|
|
1484
1486
|
useTypeIntoCode(controller, blockId, field, edit2);
|
|
1485
1487
|
const onKeyDown = (event) => {
|
|
1486
1488
|
const area = event.currentTarget;
|
|
1487
|
-
if (
|
|
1489
|
+
if (_chunkP6KYXFZCcjs.isComposingKey.call(void 0, controller, event.nativeEvent)) return;
|
|
1488
1490
|
const action = codeKeyAction(event, fieldOf(area), controller.isMac);
|
|
1489
1491
|
if (action !== null && runCodeAction(action, { controller, blockId, area, edit: edit2, focusControls })) event.preventDefault();
|
|
1490
1492
|
};
|
|
1491
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ...{ [
|
|
1493
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ...{ [_chunkP6KYXFZCcjs.NATIVE_INTERACTION]: "" }, dir: "ltr", className: "quoin-code-scroll", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "quoin-code-lines", children: [
|
|
1492
1494
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1493
1495
|
HighlightOverlay,
|
|
1494
1496
|
{
|
|
1495
1497
|
"aria-hidden": "true",
|
|
1496
1498
|
drawnRef: drawn,
|
|
1497
|
-
code:
|
|
1498
|
-
language:
|
|
1499
|
+
code: _chunk4SLJNZSMcjs.str.call(void 0, block.attrs.code),
|
|
1500
|
+
language: _chunk4SLJNZSMcjs.str.call(void 0, block.attrs.language)
|
|
1499
1501
|
}
|
|
1500
1502
|
),
|
|
1501
1503
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { ref: mark, "aria-hidden": "true", className: "quoin-code-caret" }),
|
|
@@ -1505,7 +1507,7 @@ function CodeEditor({ block, controller, field, focusControls }) {
|
|
|
1505
1507
|
ref: field,
|
|
1506
1508
|
"aria-label": labels.codeText,
|
|
1507
1509
|
"aria-keyshortcuts": "Alt+F10",
|
|
1508
|
-
value:
|
|
1510
|
+
value: _chunk4SLJNZSMcjs.str.call(void 0, block.attrs.code),
|
|
1509
1511
|
wrap: "off",
|
|
1510
1512
|
tabIndex: -1,
|
|
1511
1513
|
spellCheck: false,
|
|
@@ -1570,7 +1572,7 @@ var Button = React3.forwardRef(function Button2({ className, variant = "default"
|
|
|
1570
1572
|
var COPIED_FOR_MS = 1500;
|
|
1571
1573
|
function CopyCodeButton({ code, controller }) {
|
|
1572
1574
|
const labels = useLabels();
|
|
1573
|
-
const readOnly =
|
|
1575
|
+
const readOnly = _chunkP6KYXFZCcjs.useReadOnly.call(void 0, controller);
|
|
1574
1576
|
const [copied, setCopied] = _react.useState.call(void 0, false);
|
|
1575
1577
|
_react.useEffect.call(void 0, () => {
|
|
1576
1578
|
if (!copied) return;
|
|
@@ -1664,7 +1666,7 @@ var preventDefault = (event) => event.preventDefault();
|
|
|
1664
1666
|
|
|
1665
1667
|
// src/blocks/text/set-block-attrs.ts
|
|
1666
1668
|
function setBlockAttrs(controller, blockId, patch) {
|
|
1667
|
-
if (!controller.readOnly) controller.run(
|
|
1669
|
+
if (!controller.readOnly) controller.run(_chunkP6KYXFZCcjs.onBlock.call(void 0, blockId, _chunkZKVOS57Qcjs.setAttrs.call(void 0, patch)));
|
|
1668
1670
|
}
|
|
1669
1671
|
|
|
1670
1672
|
// src/blocks/code/LanguageCombobox.tsx
|
|
@@ -1683,7 +1685,7 @@ function LanguageCombobox({ blockId, controller, language: language2, field, onD
|
|
|
1683
1685
|
const options = draft === null ? [] : languageOptions(draft === shown ? "" : draft, labels.plainText);
|
|
1684
1686
|
const open = options.length > 0;
|
|
1685
1687
|
const optionId = (index) => `${listboxId}-${index}`;
|
|
1686
|
-
|
|
1688
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
1687
1689
|
_optionalChain([list, 'access', _48 => _48.current, 'optionalAccess', _49 => _49.querySelector, 'call', _50 => _50('[aria-selected="true"]'), 'optionalAccess', _51 => _51.scrollIntoView, 'call', _52 => _52({ block: "nearest" })]);
|
|
1688
1690
|
}, [active]);
|
|
1689
1691
|
const close = () => {
|
|
@@ -1709,7 +1711,7 @@ function LanguageCombobox({ blockId, controller, language: language2, field, onD
|
|
|
1709
1711
|
onDone();
|
|
1710
1712
|
};
|
|
1711
1713
|
const onKeyDown = (event) => {
|
|
1712
|
-
if (
|
|
1714
|
+
if (_chunkP6KYXFZCcjs.isComposingKey.call(void 0, controller, event.nativeEvent)) return;
|
|
1713
1715
|
if (event.key === "ArrowDown" || event.key === "ArrowUp") {
|
|
1714
1716
|
event.preventDefault();
|
|
1715
1717
|
const step = event.key === "ArrowDown" ? 1 : -1;
|
|
@@ -1786,11 +1788,11 @@ function LanguageCombobox({ blockId, controller, language: language2, field, onD
|
|
|
1786
1788
|
|
|
1787
1789
|
var CodeBlock = ({ block, controller }) => {
|
|
1788
1790
|
const labels = useLabels();
|
|
1789
|
-
const readOnly =
|
|
1791
|
+
const readOnly = _chunkP6KYXFZCcjs.useReadOnly.call(void 0, controller);
|
|
1790
1792
|
const languageField = _react.useRef.call(void 0, null);
|
|
1791
1793
|
const codeField = _react.useRef.call(void 0, null);
|
|
1792
|
-
const code =
|
|
1793
|
-
const language2 =
|
|
1794
|
+
const code = _chunk4SLJNZSMcjs.str.call(void 0, block.attrs.code);
|
|
1795
|
+
const language2 = _chunk4SLJNZSMcjs.str.call(void 0, block.attrs.language);
|
|
1794
1796
|
const name = _nullishCoalesce(languageName(language2), () => ( language2));
|
|
1795
1797
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { role: "group", "aria-label": labels.blockNames.code, contentEditable: false, className: "quoin-code", children: [
|
|
1796
1798
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "quoin-code-header", children: [
|
|
@@ -1899,7 +1901,7 @@ function selectHandlers(controller, blockId, root, onSelect) {
|
|
|
1899
1901
|
return {
|
|
1900
1902
|
onKeyDown(event) {
|
|
1901
1903
|
const key = event.nativeEvent;
|
|
1902
|
-
if (
|
|
1904
|
+
if (_chunkP6KYXFZCcjs.isComposingKey.call(void 0, controller, key)) return;
|
|
1903
1905
|
if (event.key === "Escape") select();
|
|
1904
1906
|
else if (!(event.metaKey || event.ctrlKey) || event.target.matches("input:not([type=file])") || !controller.edit(() => controller.editor.handleKey(key)))
|
|
1905
1907
|
return;
|
|
@@ -2053,7 +2055,7 @@ var kindOf = (value) => _optionalChain([KINDS, 'access', _87 => _87.find, 'call'
|
|
|
2053
2055
|
var fileIcon = (mime, filename) => _nullishCoalesce(_nullishCoalesce(kindOf(mime), () => ( kindOf(_nullishCoalesce(_optionalChain([/\.([^.]+)$/, 'access', _90 => _90.exec, 'call', _91 => _91(filename), 'optionalAccess', _92 => _92[1], 'access', _93 => _93.toLowerCase, 'call', _94 => _94()]), () => ( ""))))), () => ( _lucidereact.FileIcon));
|
|
2054
2056
|
|
|
2055
2057
|
// src/blocks/file/file-source.ts
|
|
2056
|
-
var fileName = (attrs) =>
|
|
2058
|
+
var fileName = (attrs) => _chunk4SLJNZSMcjs.str.call(void 0, attrs.filename) || _chunk4SLJNZSMcjs.str.call(void 0, attrs.storageKey);
|
|
2057
2059
|
var hasFile = (attrs) => fileName(attrs) !== "";
|
|
2058
2060
|
|
|
2059
2061
|
// src/blocks/file/FileCard.tsx
|
|
@@ -2063,9 +2065,9 @@ function FileCard({ block, controller, readOnly }) {
|
|
|
2063
2065
|
const card = _react.useRef.call(void 0, null);
|
|
2064
2066
|
const { id, attrs } = block;
|
|
2065
2067
|
const name = fileName(attrs);
|
|
2066
|
-
const size =
|
|
2067
|
-
const href = assetHref(resolveAssetUrl,
|
|
2068
|
-
const Icon = fileIcon(
|
|
2068
|
+
const size = _chunk4SLJNZSMcjs.optionalNumber.call(void 0, attrs.size);
|
|
2069
|
+
const href = assetHref(resolveAssetUrl, _chunk4SLJNZSMcjs.str.call(void 0, attrs.storageKey));
|
|
2070
|
+
const Icon = fileIcon(_chunk4SLJNZSMcjs.str.call(void 0, attrs.mime), name);
|
|
2069
2071
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: card, className: "quoin-file-card", ...selectHandlers(controller, id, card), children: [
|
|
2070
2072
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, { "aria-hidden": "true", className: "quoin-file-icon" }),
|
|
2071
2073
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "quoin-file-name", children: name }),
|
|
@@ -2074,7 +2076,7 @@ function FileCard({ block, controller, readOnly }) {
|
|
|
2074
2076
|
"a",
|
|
2075
2077
|
{
|
|
2076
2078
|
href,
|
|
2077
|
-
download:
|
|
2079
|
+
download: _chunk4SLJNZSMcjs.str.call(void 0, attrs.filename),
|
|
2078
2080
|
target: "_blank",
|
|
2079
2081
|
rel: "noopener",
|
|
2080
2082
|
"aria-label": labels.downloadFile(name),
|
|
@@ -2100,14 +2102,14 @@ function claimUpload(controller, blockId) {
|
|
|
2100
2102
|
}
|
|
2101
2103
|
var isNewestUpload = (controller, blockId, token) => _optionalChain([newestUploads, 'access', _95 => _95.get, 'call', _96 => _96(controller), 'optionalAccess', _97 => _97.get, 'call', _98 => _98(blockId)]) === token;
|
|
2102
2104
|
function assetOf(controller, blockId, type) {
|
|
2103
|
-
const block =
|
|
2105
|
+
const block = _chunk4SLJNZSMcjs.blockById.call(void 0, controller.editor.state.doc, blockId);
|
|
2104
2106
|
if (_optionalChain([block, 'optionalAccess', _99 => _99.type]) !== type || controller.readOnly) return null;
|
|
2105
|
-
return { url:
|
|
2107
|
+
return { url: _chunk4SLJNZSMcjs.str.call(void 0, block.attrs.url), storageKey: _chunk4SLJNZSMcjs.str.call(void 0, block.attrs.storageKey) };
|
|
2106
2108
|
}
|
|
2107
2109
|
var sameAsset = (a, b) => a !== null && b !== null && a.url === b.url && a.storageKey === b.storageKey;
|
|
2108
2110
|
function writeAttrs(controller, blockId, patch, recorded) {
|
|
2109
2111
|
const { editor } = controller;
|
|
2110
|
-
const tr = editor.createTransaction().step(
|
|
2112
|
+
const tr = editor.createTransaction().step(_chunkZKVOS57Qcjs.setAttrsStep.call(void 0, blockId, patch));
|
|
2111
2113
|
editor.dispatch(recorded ? tr : tr.setMeta("addToHistory", false));
|
|
2112
2114
|
}
|
|
2113
2115
|
async function uploadInto(controller, blockId, file, { type, category }, { upload, onLand }, land2) {
|
|
@@ -2141,7 +2143,7 @@ var uploadFile = (controller, blockId, file, host) => uploadInto(
|
|
|
2141
2143
|
var anyFile = () => true;
|
|
2142
2144
|
var FileBlock = ({ block, controller }) => {
|
|
2143
2145
|
const labels = useLabels();
|
|
2144
|
-
const readOnly =
|
|
2146
|
+
const readOnly = _chunkP6KYXFZCcjs.useReadOnly.call(void 0, controller);
|
|
2145
2147
|
const root = _react.useRef.call(void 0, null);
|
|
2146
2148
|
const filled = hasFile(block.attrs);
|
|
2147
2149
|
useNodeKeys(controller, block.id, !readOnly, !filled, root);
|
|
@@ -2219,7 +2221,7 @@ var deleteItem = (blockId, title) => ({
|
|
|
2219
2221
|
title,
|
|
2220
2222
|
icon: _lucidereact.Trash,
|
|
2221
2223
|
run: (controller) => {
|
|
2222
|
-
runOnBlocks(controller, [blockId],
|
|
2224
|
+
runOnBlocks(controller, [blockId], _chunkZKVOS57Qcjs.deleteBlocks);
|
|
2223
2225
|
controller.focus();
|
|
2224
2226
|
}
|
|
2225
2227
|
});
|
|
@@ -2233,8 +2235,8 @@ function markItem(mark, title, icon) {
|
|
|
2233
2235
|
id: mark,
|
|
2234
2236
|
title,
|
|
2235
2237
|
icon,
|
|
2236
|
-
isActive: (state) =>
|
|
2237
|
-
run: (controller) => void controller.run(
|
|
2238
|
+
isActive: (state) => _chunkZKVOS57Qcjs.isActive.call(void 0, state, mark),
|
|
2239
|
+
run: (controller) => void controller.run(_chunkZKVOS57Qcjs.toggleMark.call(void 0, mark))
|
|
2238
2240
|
};
|
|
2239
2241
|
}
|
|
2240
2242
|
var linkItem = (labels, openLink) => ({
|
|
@@ -2307,7 +2309,7 @@ function useRovingFocus() {
|
|
|
2307
2309
|
},
|
|
2308
2310
|
[syncTabStop]
|
|
2309
2311
|
);
|
|
2310
|
-
|
|
2312
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, syncTabStop);
|
|
2311
2313
|
const onFocus = (event) => {
|
|
2312
2314
|
if (!owns(event.target)) return;
|
|
2313
2315
|
current.current = event.target;
|
|
@@ -2326,7 +2328,7 @@ function useRovingFocus() {
|
|
|
2326
2328
|
// src/menus/floating/use-focus-key.ts
|
|
2327
2329
|
var isFocusKey = (event) => event.key === "F10" && event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey;
|
|
2328
2330
|
function useFocusKey(controller, focus) {
|
|
2329
|
-
|
|
2331
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
2330
2332
|
const intercept = (event) => {
|
|
2331
2333
|
if (!isFocusKey(event)) return false;
|
|
2332
2334
|
event.preventDefault();
|
|
@@ -2341,11 +2343,11 @@ function useFocusKey(controller, focus) {
|
|
|
2341
2343
|
|
|
2342
2344
|
function NodeToolbar(props) {
|
|
2343
2345
|
const { blockId, controller, label, anchor, items, next, buttonRefs, children, popover } = props;
|
|
2344
|
-
const state =
|
|
2346
|
+
const state = _chunkP6KYXFZCcjs.useEditorState.call(void 0, controller, _chunkP6KYXFZCcjs.wholeState);
|
|
2345
2347
|
const roving = useRovingFocus();
|
|
2346
2348
|
useFocusKey(controller, roving.focusCurrent);
|
|
2347
2349
|
const onKeyDown = (event) => {
|
|
2348
|
-
if (!roving.owns(event.target) ||
|
|
2350
|
+
if (!roving.owns(event.target) || _chunkP6KYXFZCcjs.isComposingKey.call(void 0, controller, event.nativeEvent)) return;
|
|
2349
2351
|
const tab = event.key === "Tab" && !event.altKey && !event.ctrlKey && !event.metaKey;
|
|
2350
2352
|
const ahead = tab && !event.shiftKey && next !== void 0 ? blockPart(controller, blockId, next) : void 0;
|
|
2351
2353
|
if (ahead !== void 0) ahead.focus();
|
|
@@ -2425,12 +2427,12 @@ function useSelectionSettled(controller) {
|
|
|
2425
2427
|
|
|
2426
2428
|
// src/blocks/void/use-toolbar-block.ts
|
|
2427
2429
|
var selectedBlock = (type, filled) => ({ doc, selection }) => {
|
|
2428
|
-
const block = _optionalChain([selection, 'optionalAccess', _129 => _129.kind]) === "node" ?
|
|
2430
|
+
const block = _optionalChain([selection, 'optionalAccess', _129 => _129.kind]) === "node" ? _chunk4SLJNZSMcjs.blockById.call(void 0, doc, selection.block) : void 0;
|
|
2429
2431
|
return _optionalChain([block, 'optionalAccess', _130 => _130.type]) === type && filled(block.attrs) ? block.id : null;
|
|
2430
2432
|
};
|
|
2431
2433
|
function useToolbarBlock(controller, selected, keptFor = null) {
|
|
2432
|
-
const blockId =
|
|
2433
|
-
const readOnly =
|
|
2434
|
+
const blockId = _chunkP6KYXFZCcjs.useEditorState.call(void 0, controller, selected);
|
|
2435
|
+
const readOnly = _chunkP6KYXFZCcjs.useReadOnly.call(void 0, controller);
|
|
2434
2436
|
const settled = useSelectionSettled(controller);
|
|
2435
2437
|
return blockId !== null && !readOnly && (settled || keptFor === blockId) ? blockId : null;
|
|
2436
2438
|
}
|
|
@@ -2516,7 +2518,7 @@ function ResizeHandles({ blockId, controller, frame, percent, centred, onPreview
|
|
|
2516
2518
|
const value = _nullishCoalesce(percent, () => ( drawn));
|
|
2517
2519
|
const write = (widthPercent) => setBlockAttrs(controller, blockId, { widthPercent });
|
|
2518
2520
|
const onKeyDown = (event) => {
|
|
2519
|
-
if (
|
|
2521
|
+
if (_chunkP6KYXFZCcjs.isComposingKey.call(void 0, controller, event.nativeEvent)) return;
|
|
2520
2522
|
const next = keyedWidth(event.key, value);
|
|
2521
2523
|
if (event.key === "Escape") controller.focus();
|
|
2522
2524
|
else if (next === null) return;
|
|
@@ -2558,7 +2560,7 @@ function ResizeHandles({ blockId, controller, frame, percent, centred, onPreview
|
|
|
2558
2560
|
"aria-valuetext": labels.widthValue(value),
|
|
2559
2561
|
"data-side": side,
|
|
2560
2562
|
className: "quoin-image-handle",
|
|
2561
|
-
...{ [
|
|
2563
|
+
...{ [_chunkP6KYXFZCcjs.NATIVE_INTERACTION]: "" },
|
|
2562
2564
|
...bubblePart(controller),
|
|
2563
2565
|
onKeyDown,
|
|
2564
2566
|
onPointerDown: onPointerDown(side),
|
|
@@ -2582,9 +2584,9 @@ function ImageFigure({ block, controller, readOnly }) {
|
|
|
2582
2584
|
const [failed, setFailed] = _react.useState.call(void 0, null);
|
|
2583
2585
|
const { id, attrs, regions } = block;
|
|
2584
2586
|
const src = imageSource(attrs, resolveAssetUrl);
|
|
2585
|
-
const alt =
|
|
2587
|
+
const alt = _chunk4SLJNZSMcjs.str.call(void 0, attrs.alt);
|
|
2586
2588
|
const name = alt || labels.imageNoAlt;
|
|
2587
|
-
const percent =
|
|
2589
|
+
const percent = _chunk4SLJNZSMcjs.optionalNumber.call(void 0, attrs.widthPercent);
|
|
2588
2590
|
const width = _nullishCoalesce(preview, () => ( percent));
|
|
2589
2591
|
const select = () => focusNode(controller, id);
|
|
2590
2592
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
@@ -2594,8 +2596,8 @@ function ImageFigure({ block, controller, readOnly }) {
|
|
|
2594
2596
|
{
|
|
2595
2597
|
src,
|
|
2596
2598
|
alt: name,
|
|
2597
|
-
width:
|
|
2598
|
-
height:
|
|
2599
|
+
width: _chunk4SLJNZSMcjs.optionalNumber.call(void 0, attrs.width),
|
|
2600
|
+
height: _chunk4SLJNZSMcjs.optionalNumber.call(void 0, attrs.height),
|
|
2599
2601
|
draggable: false,
|
|
2600
2602
|
onError: () => setFailed(src),
|
|
2601
2603
|
onClick: select
|
|
@@ -2617,7 +2619,7 @@ function ImageFigure({ block, controller, readOnly }) {
|
|
|
2617
2619
|
)
|
|
2618
2620
|
] }),
|
|
2619
2621
|
(!readOnly || (_nullishCoalesce(_optionalChain([regions, 'access', _140 => _140.caption, 'optionalAccess', _141 => _141.length]), () => ( 0))) > 0) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2620
|
-
|
|
2622
|
+
_chunkP6KYXFZCcjs.EditableRegion,
|
|
2621
2623
|
{
|
|
2622
2624
|
block: id,
|
|
2623
2625
|
region: "caption",
|
|
@@ -2643,8 +2645,8 @@ var WHITESPACE = /\s/;
|
|
|
2643
2645
|
function linkAddress(typed2) {
|
|
2644
2646
|
const address = typed2.trim();
|
|
2645
2647
|
if (WHITESPACE.test(address)) return null;
|
|
2646
|
-
const completed = !
|
|
2647
|
-
const href =
|
|
2648
|
+
const completed = !_chunk4SLJNZSMcjs.SCHEME.test(address) && BARE_DOMAIN.test(address) ? `https://${address}` : address;
|
|
2649
|
+
const href = _chunk4SLJNZSMcjs.sanitizeHref.call(void 0, completed);
|
|
2648
2650
|
return href || null;
|
|
2649
2651
|
}
|
|
2650
2652
|
|
|
@@ -2764,8 +2766,8 @@ function ImageUploadArea({ blockId, controller }) {
|
|
|
2764
2766
|
// src/blocks/image/use-image-keys.ts
|
|
2765
2767
|
|
|
2766
2768
|
function captionEnd(controller, blockId) {
|
|
2767
|
-
const caption = _nullishCoalesce(_optionalChain([
|
|
2768
|
-
return { block: blockId, region: "caption", offset:
|
|
2769
|
+
const caption = _nullishCoalesce(_optionalChain([_chunk4SLJNZSMcjs.blockById.call(void 0, controller.editor.state.doc, blockId), 'optionalAccess', _142 => _142.regions, 'access', _143 => _143.caption]), () => ( []));
|
|
2770
|
+
return { block: blockId, region: "caption", offset: _chunk4SLJNZSMcjs.inlineLength.call(void 0, caption) };
|
|
2769
2771
|
}
|
|
2770
2772
|
var plainEnter = (event) => event.key === "Enter" && !event.shiftKey && !event.altKey && !event.ctrlKey && !event.metaKey;
|
|
2771
2773
|
var menuOpenOn = (host) => _optionalChain([host, 'optionalAccess', _144 => _144.getAttribute, 'call', _145 => _145("aria-expanded")]) === "true";
|
|
@@ -2777,7 +2779,7 @@ function useImageKeys(controller, blockId, picture, editable, root) {
|
|
|
2777
2779
|
// then follows.
|
|
2778
2780
|
enter() {
|
|
2779
2781
|
const { editor } = controller;
|
|
2780
|
-
editor.dispatch(editor.createTransaction().setSelection(
|
|
2782
|
+
editor.dispatch(editor.createTransaction().setSelection(_chunkZKVOS57Qcjs.textSelection.call(void 0, captionEnd(controller, blockId))));
|
|
2781
2783
|
controller.focus();
|
|
2782
2784
|
},
|
|
2783
2785
|
type(key) {
|
|
@@ -2805,7 +2807,7 @@ function useImageKeys(controller, blockId, picture, editable, root) {
|
|
|
2805
2807
|
|
|
2806
2808
|
var ImageBlock = ({ block, controller }) => {
|
|
2807
2809
|
const labels = useLabels();
|
|
2808
|
-
const readOnly =
|
|
2810
|
+
const readOnly = _chunkP6KYXFZCcjs.useReadOnly.call(void 0, controller);
|
|
2809
2811
|
const root = _react.useRef.call(void 0, null);
|
|
2810
2812
|
const picture = hasPicture(block.attrs);
|
|
2811
2813
|
useImageKeys(controller, block.id, picture, !readOnly, root);
|
|
@@ -2818,7 +2820,7 @@ var ImageBlock = ({ block, controller }) => {
|
|
|
2818
2820
|
"aria-label": labels.blockNames.image,
|
|
2819
2821
|
contentEditable: false,
|
|
2820
2822
|
className: "quoin-image",
|
|
2821
|
-
...picture ? { [
|
|
2823
|
+
...picture ? { [_chunkP6KYXFZCcjs.NODE_ENTRY]: "" } : void 0,
|
|
2822
2824
|
children: picture ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ImageFigure, { block, controller, readOnly }) : empty
|
|
2823
2825
|
}
|
|
2824
2826
|
);
|
|
@@ -2834,10 +2836,10 @@ var ImageBlock = ({ block, controller }) => {
|
|
|
2834
2836
|
|
|
2835
2837
|
function useOutsidePress(element, ownerDocument, onPress) {
|
|
2836
2838
|
const latest = _react.useRef.call(void 0, onPress);
|
|
2837
|
-
|
|
2839
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
2838
2840
|
latest.current = onPress;
|
|
2839
2841
|
});
|
|
2840
|
-
|
|
2842
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
2841
2843
|
const doc = ownerDocument();
|
|
2842
2844
|
const inside = (target) => _optionalChain([element, 'access', _147 => _147.current, 'optionalAccess', _148 => _148.contains, 'call', _149 => _149(target)]) === true;
|
|
2843
2845
|
let touched = null;
|
|
@@ -2852,12 +2854,7 @@ function useOutsidePress(element, ownerDocument, onPress) {
|
|
|
2852
2854
|
if (touched !== null && !inside(event.target)) latest.current(touched);
|
|
2853
2855
|
touched = null;
|
|
2854
2856
|
};
|
|
2855
|
-
|
|
2856
|
-
doc.addEventListener("click", click, true);
|
|
2857
|
-
return () => {
|
|
2858
|
-
doc.removeEventListener("pointerdown", down, true);
|
|
2859
|
-
doc.removeEventListener("click", click, true);
|
|
2860
|
-
};
|
|
2857
|
+
return _chunkP6KYXFZCcjs.listen.call(void 0, doc, { pointerdown: down, click }, true);
|
|
2861
2858
|
}, [element, ownerDocument]);
|
|
2862
2859
|
}
|
|
2863
2860
|
|
|
@@ -2865,9 +2862,9 @@ function useOutsidePress(element, ownerDocument, onPress) {
|
|
|
2865
2862
|
|
|
2866
2863
|
function storeAlt(controller, blockId, opened, alt) {
|
|
2867
2864
|
const { editor } = controller;
|
|
2868
|
-
const current = _optionalChain([
|
|
2869
|
-
if (controller.readOnly || controller.root === null ||
|
|
2870
|
-
|
|
2865
|
+
const current = _optionalChain([_chunk4SLJNZSMcjs.blockById.call(void 0, editor.state.doc, blockId), 'optionalAccess', _150 => _150.attrs, 'access', _151 => _151.alt]);
|
|
2866
|
+
if (controller.readOnly || controller.root === null || _chunk4SLJNZSMcjs.str.call(void 0, current) !== opened) return;
|
|
2867
|
+
_chunkP6KYXFZCcjs.onBlock.call(void 0, blockId, _chunkZKVOS57Qcjs.setAttrs.call(void 0, { alt }))(editor.state, (tr) => editor.dispatch(tr));
|
|
2871
2868
|
}
|
|
2872
2869
|
function AltTextPopover({ blockId, controller, anchor, opener, alt, onClose }) {
|
|
2873
2870
|
const labels = useLabels();
|
|
@@ -2907,7 +2904,7 @@ function AltTextPopover({ blockId, controller, anchor, opener, alt, onClose }) {
|
|
|
2907
2904
|
close(true);
|
|
2908
2905
|
};
|
|
2909
2906
|
const onKeyDown = (event) => {
|
|
2910
|
-
if (event.key !== "Tab" ||
|
|
2907
|
+
if (event.key !== "Tab" || _chunkP6KYXFZCcjs.isComposingKey.call(void 0, controller, event.nativeEvent)) return;
|
|
2911
2908
|
const [field, save2] = event.currentTarget.elements;
|
|
2912
2909
|
const fromField = event.target === field;
|
|
2913
2910
|
event.preventDefault();
|
|
@@ -2935,7 +2932,7 @@ function AltTextPopover({ blockId, controller, anchor, opener, alt, onClose }) {
|
|
|
2935
2932
|
onCloseAutoFocus: preventDefault,
|
|
2936
2933
|
onEscapeKeyDown: (event) => {
|
|
2937
2934
|
event.preventDefault();
|
|
2938
|
-
if (!
|
|
2935
|
+
if (!_chunkP6KYXFZCcjs.isComposingKey.call(void 0, controller, event)) close(false);
|
|
2939
2936
|
},
|
|
2940
2937
|
...bubblePart(controller),
|
|
2941
2938
|
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "form", { noValidate: true, className: "quoin-image-alt", onSubmit: save, onKeyDown, children: [
|
|
@@ -2973,7 +2970,7 @@ function imageToolbarItems(blockId, labels, actions) {
|
|
|
2973
2970
|
id: align,
|
|
2974
2971
|
title: labels[label],
|
|
2975
2972
|
icon,
|
|
2976
|
-
isActive: (state) => (_nullishCoalesce(
|
|
2973
|
+
isActive: (state) => (_nullishCoalesce(_chunk4SLJNZSMcjs.alignOrUndefined.call(void 0, _optionalChain([_chunk4SLJNZSMcjs.blockById.call(void 0, state.doc, blockId), 'optionalAccess', _157 => _157.attrs, 'access', _158 => _158.align])), () => ( "left"))) === align,
|
|
2977
2974
|
run: (controller) => setBlockAttrs(controller, blockId, { align })
|
|
2978
2975
|
})
|
|
2979
2976
|
);
|
|
@@ -3017,11 +3014,11 @@ function ImageToolbarOverlay({ controller }) {
|
|
|
3017
3014
|
}
|
|
3018
3015
|
function ImageToolbar({ blockId, controller, editingAlt, onEditAlt }) {
|
|
3019
3016
|
const { labels, resolveAssetUrl } = useQuoin();
|
|
3020
|
-
const state =
|
|
3017
|
+
const state = _chunkP6KYXFZCcjs.useEditorState.call(void 0, controller, _chunkP6KYXFZCcjs.wholeState);
|
|
3021
3018
|
const picker = useReplacePicker(controller, blockId, uploadImage, "image/*");
|
|
3022
3019
|
const altButton = _react.useRef.call(void 0, null);
|
|
3023
3020
|
const anchor = usePartAnchor(controller, blockId, ".quoin-image-frame");
|
|
3024
|
-
const attrs = _nullishCoalesce(_optionalChain([
|
|
3021
|
+
const attrs = _nullishCoalesce(_optionalChain([_chunk4SLJNZSMcjs.blockById.call(void 0, state.doc, blockId), 'optionalAccess', _159 => _159.attrs]), () => ( {}));
|
|
3025
3022
|
const items = imageToolbarItems(blockId, labels, {
|
|
3026
3023
|
replace: picker.open,
|
|
3027
3024
|
editAlt: () => {
|
|
@@ -3047,7 +3044,7 @@ function ImageToolbar({ blockId, controller, editingAlt, onEditAlt }) {
|
|
|
3047
3044
|
controller,
|
|
3048
3045
|
anchor,
|
|
3049
3046
|
opener: altButton,
|
|
3050
|
-
alt:
|
|
3047
|
+
alt: _chunk4SLJNZSMcjs.str.call(void 0, attrs.alt),
|
|
3051
3048
|
onClose: () => onEditAlt(null)
|
|
3052
3049
|
}
|
|
3053
3050
|
),
|
|
@@ -3263,13 +3260,13 @@ function CalloutToneMenu({ blockId, controller, tone }) {
|
|
|
3263
3260
|
|
|
3264
3261
|
var CalloutBlock = ({ block, controller }) => {
|
|
3265
3262
|
const labels = useLabels();
|
|
3266
|
-
const readOnly =
|
|
3263
|
+
const readOnly = _chunkP6KYXFZCcjs.useReadOnly.call(void 0, controller);
|
|
3267
3264
|
const tone = calloutTone(block.attrs.tone);
|
|
3268
3265
|
const icon = calloutIcon(block.attrs, tone);
|
|
3269
3266
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: cn("quoin-callout group/callout flex items-start gap-2", TONE[tone]), "data-tone": tone, children: [
|
|
3270
3267
|
readOnly ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { "aria-hidden": "true", className: "flex size-6 items-center justify-center text-base", children: icon }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CalloutIconMenu, { blockId: block.id, controller, icon }),
|
|
3271
3268
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3272
|
-
|
|
3269
|
+
_chunkP6KYXFZCcjs.EditableRegion,
|
|
3273
3270
|
{
|
|
3274
3271
|
block: block.id,
|
|
3275
3272
|
region: "body",
|
|
@@ -3339,13 +3336,6 @@ function ListMarker(props) {
|
|
|
3339
3336
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "quoin-marker", "aria-hidden": "true", children: text2 });
|
|
3340
3337
|
}
|
|
3341
3338
|
|
|
3342
|
-
// src/blocks/text/TaskCheckbox.tsx
|
|
3343
|
-
|
|
3344
|
-
function TaskCheckbox2({ block, controller, labelledBy }) {
|
|
3345
|
-
const labels = useLabels();
|
|
3346
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkGTTPVJSDcjs.TaskCheckbox, { block, controller, label: labels.task, labelledBy });
|
|
3347
|
-
}
|
|
3348
|
-
|
|
3349
3339
|
// src/blocks/text/MarkdownBlock.tsx
|
|
3350
3340
|
|
|
3351
3341
|
var REGION = "text";
|
|
@@ -3353,23 +3343,23 @@ var HEADING_LEVELS = ["mt-6 text-3xl", "mt-5 text-2xl", "mt-4 text-xl", "mt-3 te
|
|
|
3353
3343
|
var headingStyles = (level) => `quoin-heading mb-1 font-semibold leading-tight in-[[data-quoin-block]:first-child]:mt-0 ${HEADING_LEVELS[level - 1]}`;
|
|
3354
3344
|
function Heading({ block }) {
|
|
3355
3345
|
const labels = useLabels();
|
|
3356
|
-
const level =
|
|
3357
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { role: "heading", "aria-level": level, className: headingStyles(level), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3346
|
+
const level = _chunk4SLJNZSMcjs.headingLevel.call(void 0, block.attrs.level);
|
|
3347
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { role: "heading", "aria-level": level, className: headingStyles(level), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP6KYXFZCcjs.EditableRegion, { block: block.id, region: REGION, label: labels.heading(level) }) });
|
|
3358
3348
|
}
|
|
3359
3349
|
function NumberedItem({ block, controller }) {
|
|
3360
3350
|
const labels = useLabels();
|
|
3361
|
-
const number =
|
|
3351
|
+
const number = _chunkP6KYXFZCcjs.useOrderedNumber.call(void 0, controller, block.id);
|
|
3362
3352
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "quoin-list-item", "data-list": "ordered", children: [
|
|
3363
3353
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ListMarker, { list: "ordered", number, depth: block.indent }),
|
|
3364
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3354
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP6KYXFZCcjs.EditableRegion, { block: block.id, region: REGION, label: labels.numberedItem(number) })
|
|
3365
3355
|
] });
|
|
3366
3356
|
}
|
|
3367
3357
|
function TaskItem({ block, controller }) {
|
|
3368
3358
|
const labels = useLabels();
|
|
3369
|
-
const hostId =
|
|
3359
|
+
const hostId = _chunkP6KYXFZCcjs.useRegionDomId.call(void 0, block.id, REGION);
|
|
3370
3360
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "quoin-task", "data-checked": block.attrs.checked === true, children: [
|
|
3371
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3372
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3361
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP6KYXFZCcjs.TaskCheckbox, { block, controller, label: labels.task, labelledBy: hostId }),
|
|
3362
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP6KYXFZCcjs.EditableRegion, { id: hostId, block: block.id, region: REGION, label: labels.task })
|
|
3373
3363
|
] });
|
|
3374
3364
|
}
|
|
3375
3365
|
var MarkdownBlock = (props) => {
|
|
@@ -3381,16 +3371,16 @@ var MarkdownBlock = (props) => {
|
|
|
3381
3371
|
case "bullet":
|
|
3382
3372
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "quoin-list-item", "data-list": "bullet", children: [
|
|
3383
3373
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ListMarker, { list: "bullet", depth: block.indent }),
|
|
3384
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3374
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP6KYXFZCcjs.EditableRegion, { block: block.id, region: REGION, label: labels.bulletItem })
|
|
3385
3375
|
] });
|
|
3386
3376
|
case "ordered":
|
|
3387
3377
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, NumberedItem, { ...props });
|
|
3388
3378
|
case "task":
|
|
3389
3379
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TaskItem, { ...props });
|
|
3390
3380
|
case "quote":
|
|
3391
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "quoin-quote", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3381
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "quoin-quote", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP6KYXFZCcjs.EditableRegion, { block: block.id, region: REGION, label: labels.quote }) });
|
|
3392
3382
|
default:
|
|
3393
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3383
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP6KYXFZCcjs.EditableRegion, { block: block.id, region: REGION, label: labels.paragraph });
|
|
3394
3384
|
}
|
|
3395
3385
|
};
|
|
3396
3386
|
|
|
@@ -3398,22 +3388,22 @@ var MarkdownBlock = (props) => {
|
|
|
3398
3388
|
function nestedBlockIds({ doc }, blockId) {
|
|
3399
3389
|
const index = doc.index.get(blockId);
|
|
3400
3390
|
if (index === void 0) return [];
|
|
3401
|
-
return doc.blocks.slice(index + 1,
|
|
3391
|
+
return doc.blocks.slice(index + 1, _chunkZKVOS57Qcjs.descendantsEnd.call(void 0, doc, index)).map((block) => block.id);
|
|
3402
3392
|
}
|
|
3403
3393
|
function useNestedBlocks(controller, blockId) {
|
|
3404
|
-
return
|
|
3394
|
+
return _chunkP6KYXFZCcjs.useEditorState.call(void 0, controller, (state) => nestedBlockIds(state, blockId), _chunk4SLJNZSMcjs.sameItems);
|
|
3405
3395
|
}
|
|
3406
3396
|
|
|
3407
3397
|
// src/blocks/text/ToggleBlock.tsx
|
|
3408
3398
|
|
|
3409
3399
|
var ToggleBlock = ({ block, controller }) => {
|
|
3410
3400
|
const labels = useLabels();
|
|
3411
|
-
const domId =
|
|
3401
|
+
const domId = _chunkP6KYXFZCcjs.useBlockDomId.call(void 0, );
|
|
3412
3402
|
const nested = useNestedBlocks(controller, block.id);
|
|
3413
|
-
const open =
|
|
3403
|
+
const open = _chunkP6KYXFZCcjs.useToggleOpen.call(void 0, controller, block);
|
|
3414
3404
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "quoin-toggle", "data-open": open, children: [
|
|
3415
3405
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3416
|
-
|
|
3406
|
+
_chunkP6KYXFZCcjs.ToggleChevron,
|
|
3417
3407
|
{
|
|
3418
3408
|
block,
|
|
3419
3409
|
controller,
|
|
@@ -3421,7 +3411,7 @@ var ToggleBlock = ({ block, controller }) => {
|
|
|
3421
3411
|
controls: nested.length === 0 ? void 0 : nested.map(domId).join(" ")
|
|
3422
3412
|
}
|
|
3423
3413
|
),
|
|
3424
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3414
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP6KYXFZCcjs.EditableRegion, { block: block.id, region: "text", label: labels.toggle })
|
|
3425
3415
|
] });
|
|
3426
3416
|
};
|
|
3427
3417
|
|
|
@@ -3437,7 +3427,7 @@ var textRenderers = {
|
|
|
3437
3427
|
var QUOIN_DEFINITIONS = new Map(coreBlocks.map((core) => [core.type, core]));
|
|
3438
3428
|
var TYPED_IN_PLACE = ["MARKDOWN", "CALLOUT", "TOGGLE"];
|
|
3439
3429
|
function hostDefines(definitions, type) {
|
|
3440
|
-
const definition =
|
|
3430
|
+
const definition = _chunkEH5KXQXYcjs.blockByType.call(void 0, definitions, type);
|
|
3441
3431
|
const core = QUOIN_DEFINITIONS.get(type);
|
|
3442
3432
|
if (definition === void 0) return false;
|
|
3443
3433
|
return core === void 0 || definition.preview !== core.preview || definition.editor !== core.editor;
|
|
@@ -3448,10 +3438,10 @@ function drawnAsText(definitions, type, readOnly) {
|
|
|
3448
3438
|
}
|
|
3449
3439
|
var definedTypedInPlace = (definitions) => TYPED_IN_PLACE.filter((type) => hostDefines(definitions, type));
|
|
3450
3440
|
function drawnInPlace(definitions, type) {
|
|
3451
|
-
return Object.hasOwn(inPlaceRenderers, type) &&
|
|
3441
|
+
return Object.hasOwn(inPlaceRenderers, type) && _chunkEH5KXQXYcjs.blockByType.call(void 0, definitions, type) !== void 0 && !hostDefines(definitions, type);
|
|
3452
3442
|
}
|
|
3453
|
-
var drawsType = (definitions, type) => !Object.hasOwn(inPlaceRenderers, type) ||
|
|
3454
|
-
var opensEditor = (definitions, type) => drawnInPlace(definitions, type) || !drawnAsText(definitions, type, false) && _optionalChain([
|
|
3443
|
+
var drawsType = (definitions, type) => !Object.hasOwn(inPlaceRenderers, type) || _chunkEH5KXQXYcjs.blockByType.call(void 0, definitions, type) !== void 0;
|
|
3444
|
+
var opensEditor = (definitions, type) => drawnInPlace(definitions, type) || !drawnAsText(definitions, type, false) && _optionalChain([_chunkEH5KXQXYcjs.blockByType.call(void 0, definitions, type), 'optionalAccess', _162 => _162.editor]) !== void 0;
|
|
3455
3445
|
|
|
3456
3446
|
// src/gutter/turn-into-targets.ts
|
|
3457
3447
|
|
|
@@ -3498,7 +3488,7 @@ function turnIntoTargets(labels) {
|
|
|
3498
3488
|
function TurnIntoItems({ kit, controller, blockIds }) {
|
|
3499
3489
|
const { blockTypes, labels } = useQuoin();
|
|
3500
3490
|
const targets = turnIntoTargets(labels).filter((target) => drawsType(blockTypes, target.type));
|
|
3501
|
-
return targets.map((target) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, kit.Item, { onSelect: () => runOnBlocks(controller, blockIds,
|
|
3491
|
+
return targets.map((target) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, kit.Item, { onSelect: () => runOnBlocks(controller, blockIds, _chunkZKVOS57Qcjs.setBlockType.call(void 0, target.type, target.attrs)), children: [
|
|
3502
3492
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, MenuIcon, { icon: target.icon }),
|
|
3503
3493
|
target.label
|
|
3504
3494
|
] }, target.id));
|
|
@@ -3536,10 +3526,10 @@ function ActionItem({ kit, controller, action, blockIds }) {
|
|
|
3536
3526
|
);
|
|
3537
3527
|
}
|
|
3538
3528
|
function BlockMenuItems({ kit, controller, blocks, styled, title, actions }) {
|
|
3539
|
-
const state =
|
|
3529
|
+
const state = _chunkP6KYXFZCcjs.useEditorState.call(void 0, controller, _chunkP6KYXFZCcjs.wholeState);
|
|
3540
3530
|
const blockIds = blocks.map((block) => block.id);
|
|
3541
3531
|
const shown = actions.filter((action) => _nullishCoalesce(_optionalChain([action, 'access', _164 => _164.available, 'optionalCall', _165 => _165(state, blockIds)]), () => ( true)));
|
|
3542
|
-
const anyText = styled.some((block) =>
|
|
3532
|
+
const anyText = styled.some((block) => _chunkZKVOS57Qcjs.isTextFlow.call(void 0, state.schema, block));
|
|
3543
3533
|
const anyMarkdown = styled.some((block) => block.type === "MARKDOWN");
|
|
3544
3534
|
const allCallouts = styled.length > 0 && styled.every((block) => block.type === "CALLOUT");
|
|
3545
3535
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
@@ -3584,7 +3574,7 @@ var CONTEXT_KIT = {
|
|
|
3584
3574
|
// src/gutter/use-context-menu-opener.ts
|
|
3585
3575
|
|
|
3586
3576
|
var GUTTER_BLOCK = "data-quoin-gutter-block";
|
|
3587
|
-
var OWN_MENU = `[${
|
|
3577
|
+
var OWN_MENU = `[${_chunkP6KYXFZCcjs.NATIVE_INTERACTION}], input, textarea, select`;
|
|
3588
3578
|
function contextBlock(controller, target) {
|
|
3589
3579
|
const { state } = controller.editor;
|
|
3590
3580
|
const gutter = _optionalChain([target, 'access', _166 => _166.closest, 'call', _167 => _167(`[${GUTTER_BLOCK}]`), 'optionalAccess', _168 => _168.getAttribute, 'call', _169 => _169(GUTTER_BLOCK)]);
|
|
@@ -3593,8 +3583,8 @@ function contextBlock(controller, target) {
|
|
|
3593
3583
|
if (_optionalChain([selection, 'optionalAccess', _170 => _170.kind]) === "blocks") return selection.head;
|
|
3594
3584
|
if (target.closest(OWN_MENU) || controller.registry.locate(target) !== null) return null;
|
|
3595
3585
|
const id = controller.blockAt(target);
|
|
3596
|
-
const block = id === void 0 ? void 0 :
|
|
3597
|
-
return block === void 0 ||
|
|
3586
|
+
const block = id === void 0 ? void 0 : _chunk4SLJNZSMcjs.blockById.call(void 0, state.doc, id);
|
|
3587
|
+
return block === void 0 || _chunkZKVOS57Qcjs.isTextFlow.call(void 0, state.schema, block) ? null : block.id;
|
|
3598
3588
|
}
|
|
3599
3589
|
function useContextMenuOpener(controller, store, trigger) {
|
|
3600
3590
|
_react.useEffect.call(void 0, () => {
|
|
@@ -3613,12 +3603,7 @@ function useContextMenuOpener(controller, store, trigger) {
|
|
|
3613
3603
|
openBlockMenuAt(store, controller.editor.state, block, clientX, clientY);
|
|
3614
3604
|
hidden.dispatchEvent(new MouseEvent("contextmenu", { bubbles: true, cancelable: true, clientX, clientY }));
|
|
3615
3605
|
};
|
|
3616
|
-
|
|
3617
|
-
root.addEventListener("contextmenu", onContextMenu);
|
|
3618
|
-
return () => {
|
|
3619
|
-
root.removeEventListener("mousedown", onMouseDown);
|
|
3620
|
-
root.removeEventListener("contextmenu", onContextMenu);
|
|
3621
|
-
};
|
|
3606
|
+
return _chunkP6KYXFZCcjs.listen.call(void 0, root, { mousedown: onMouseDown, contextmenu: onContextMenu });
|
|
3622
3607
|
}, [controller, store, trigger]);
|
|
3623
3608
|
}
|
|
3624
3609
|
|
|
@@ -3647,7 +3632,7 @@ function blockTypeLabel(labels, block, definitions, extensionNames = {}) {
|
|
|
3647
3632
|
if (block.type === "MARKDOWN" && kind === "heading") return labels.heading(typeof level === "number" ? level : 1);
|
|
3648
3633
|
const name = block.type === "MARKDOWN" ? nameIn(KIND_NAMES, kind) : nameIn(TYPE_NAMES, block.type);
|
|
3649
3634
|
if (name !== void 0) return labels.blockNames[name];
|
|
3650
|
-
return _nullishCoalesce(_nullishCoalesce(nameIn(extensionNames, block.type), () => ( _optionalChain([
|
|
3635
|
+
return _nullishCoalesce(_nullishCoalesce(nameIn(extensionNames, block.type), () => ( _optionalChain([_chunkEH5KXQXYcjs.blockByType.call(void 0, definitions, block.type), 'optionalAccess', _171 => _171.label]))), () => ( labels.unsupportedBlock));
|
|
3651
3636
|
}
|
|
3652
3637
|
|
|
3653
3638
|
// src/gutter/extension-block-names.ts
|
|
@@ -3657,10 +3642,10 @@ var ExtensionBlockNames = _react.createContext.call(void 0, {});
|
|
|
3657
3642
|
// src/gutter/use-menu-blocks.ts
|
|
3658
3643
|
function useLiveBlocks(controller, blockIds) {
|
|
3659
3644
|
const select = _react.useCallback.call(void 0,
|
|
3660
|
-
(state) => blockIds.flatMap((id) => _nullishCoalesce(
|
|
3645
|
+
(state) => blockIds.flatMap((id) => _nullishCoalesce(_chunk4SLJNZSMcjs.blockById.call(void 0, state.doc, id), () => ( []))),
|
|
3661
3646
|
[blockIds]
|
|
3662
3647
|
);
|
|
3663
|
-
return
|
|
3648
|
+
return _chunkP6KYXFZCcjs.useEditorState.call(void 0, controller, select, _chunk4SLJNZSMcjs.sameItems);
|
|
3664
3649
|
}
|
|
3665
3650
|
function useMenuBlocks(controller, store, menu) {
|
|
3666
3651
|
const labels = useLabels();
|
|
@@ -3716,12 +3701,12 @@ function BlockContextMenu({ controller, store, actions }) {
|
|
|
3716
3701
|
// src/gutter/block-menu-keymap.ts
|
|
3717
3702
|
function blockMenuKeymap(store) {
|
|
3718
3703
|
const openForHead = (state, dispatch) => {
|
|
3719
|
-
const head =
|
|
3704
|
+
const head = _chunkZKVOS57Qcjs.headBlockId.call(void 0, state.selection);
|
|
3720
3705
|
if (head === null || !state.doc.index.has(head)) return false;
|
|
3721
3706
|
if (dispatch) openBlockMenu(store, state, head);
|
|
3722
3707
|
return true;
|
|
3723
3708
|
};
|
|
3724
|
-
return
|
|
3709
|
+
return _chunkZKVOS57Qcjs.defineExtension.call(void 0, { name: "block-menu", keymap: { "Mod-/": openForHead } });
|
|
3725
3710
|
}
|
|
3726
3711
|
|
|
3727
3712
|
// src/gutter/Gutter.tsx
|
|
@@ -3801,7 +3786,7 @@ var DragOverlay = _react.forwardRef.call(void 0, function DragOverlay2(_props, r
|
|
|
3801
3786
|
var DELETION_STEPS = /* @__PURE__ */ new Set(["removeBlocks", "setIndent"]);
|
|
3802
3787
|
function drawnPosition(doc, blockId) {
|
|
3803
3788
|
const index = _nullishCoalesce(doc.index.get(blockId), () => ( 0));
|
|
3804
|
-
return [
|
|
3789
|
+
return [_chunkP6KYXFZCcjs.drawnBlockCount.call(void 0, doc, 0, index) + 1, _chunkP6KYXFZCcjs.drawnBlockCount.call(void 0, doc)];
|
|
3805
3790
|
}
|
|
3806
3791
|
function blockMovedMessage(doc, blockId, labels) {
|
|
3807
3792
|
return labels.blockMoved(...drawnPosition(doc, blockId));
|
|
@@ -3817,11 +3802,11 @@ function deletedCount(tr) {
|
|
|
3817
3802
|
return tr.steps.reduce((deleted, step, i) => {
|
|
3818
3803
|
const { index, count } = step.toJSON();
|
|
3819
3804
|
if (step.stepType !== "removeBlocks" || typeof index !== "number" || typeof count !== "number") return deleted;
|
|
3820
|
-
return deleted +
|
|
3805
|
+
return deleted + _chunkP6KYXFZCcjs.drawnBlockCount.call(void 0, tr.docs[i], index, index + count);
|
|
3821
3806
|
}, 0);
|
|
3822
3807
|
}
|
|
3823
3808
|
function insertedBlock(tr) {
|
|
3824
|
-
if (tr.getMeta(
|
|
3809
|
+
if (tr.getMeta(_chunkZKVOS57Qcjs.LINE_SPLIT) === true || tr.steps.some((step) => step.stepType === "removeBlocks")) return null;
|
|
3825
3810
|
const inserted = tr.steps.flatMap((step) => {
|
|
3826
3811
|
const { blocks } = step.toJSON();
|
|
3827
3812
|
return step.stepType === "insertBlocks" && Array.isArray(blocks) ? blocks : [];
|
|
@@ -3829,7 +3814,7 @@ function insertedBlock(tr) {
|
|
|
3829
3814
|
return _nullishCoalesce(_optionalChain([inserted, 'access', _181 => _181.find, 'call', _182 => _182((block) => tr.doc.index.has(block.id)), 'optionalAccess', _183 => _183.id]), () => ( null));
|
|
3830
3815
|
}
|
|
3831
3816
|
function structureAnnouncement(tr, labels, undoKeys) {
|
|
3832
|
-
if (tr.origin !== "command" || tr.getMeta(
|
|
3817
|
+
if (tr.origin !== "command" || tr.getMeta(_chunkZKVOS57Qcjs.LINE_JOIN) === true) return null;
|
|
3833
3818
|
const moved = movedBlock(tr);
|
|
3834
3819
|
if (moved !== null) return blockMovedMessage(tr.doc, moved, labels);
|
|
3835
3820
|
const deleted = deletedCount(tr);
|
|
@@ -3859,7 +3844,7 @@ function inlineEdges(shell, box, rtl) {
|
|
|
3859
3844
|
function measure(controller, root, moved, rtl) {
|
|
3860
3845
|
const { doc } = controller.editor.state;
|
|
3861
3846
|
const origin = rootOrigin(root);
|
|
3862
|
-
return
|
|
3847
|
+
return _chunkP6KYXFZCcjs.visibleBlockIndexes.call(void 0, doc).flatMap((index) => {
|
|
3863
3848
|
const { id, indent: indent3 } = doc.blocks[index];
|
|
3864
3849
|
const shell = controller.blockElement(id);
|
|
3865
3850
|
if (shell === void 0) return [];
|
|
@@ -3874,7 +3859,7 @@ function measureDrag(controller, root, ids) {
|
|
|
3874
3859
|
const { doc } = controller.editor.state;
|
|
3875
3860
|
const direction = inlineDirection(root);
|
|
3876
3861
|
const rtl = direction === "rtl";
|
|
3877
|
-
const moved = new Set(
|
|
3862
|
+
const moved = new Set(_chunkZKVOS57Qcjs.movedBlockIds.call(void 0, doc, ids));
|
|
3878
3863
|
const blocks = measure(controller, root, moved, rtl);
|
|
3879
3864
|
const dragged = blocks.filter((block) => block.dragged);
|
|
3880
3865
|
if (dragged.length === 0) return null;
|
|
@@ -3934,7 +3919,7 @@ function draggedBlocks(controller, blockId) {
|
|
|
3934
3919
|
function followPress(press, root, view) {
|
|
3935
3920
|
const { controller, store, overlay, handle: handle2, pointerId } = press;
|
|
3936
3921
|
const doc = view.document;
|
|
3937
|
-
const scroll =
|
|
3922
|
+
const scroll = _chunkP6KYXFZCcjs.createAutoScroll.call(void 0, root, follow, SCROLL_EDGE);
|
|
3938
3923
|
let pointer = { x: press.x, y: press.y };
|
|
3939
3924
|
let active = null;
|
|
3940
3925
|
let unsubscribe = () => {
|
|
@@ -3971,11 +3956,9 @@ function followPress(press, root, view) {
|
|
|
3971
3956
|
function finish() {
|
|
3972
3957
|
if (done) return;
|
|
3973
3958
|
done = true;
|
|
3974
|
-
|
|
3975
|
-
|
|
3976
|
-
|
|
3977
|
-
view.removeEventListener("blur", finish);
|
|
3978
|
-
view.removeEventListener("keydown", onKeyDown, true);
|
|
3959
|
+
unlistenDocument();
|
|
3960
|
+
unlistenBlur();
|
|
3961
|
+
unlistenKeys();
|
|
3979
3962
|
scroll.stop();
|
|
3980
3963
|
unsubscribe();
|
|
3981
3964
|
if (active === null) return;
|
|
@@ -3989,7 +3972,7 @@ function followPress(press, root, view) {
|
|
|
3989
3972
|
finish();
|
|
3990
3973
|
if (dropped === null || dropped.target === null || controller.readOnly) return;
|
|
3991
3974
|
const { ids, layout, target } = dropped;
|
|
3992
|
-
if (!controller.run(
|
|
3975
|
+
if (!controller.run(_chunkZKVOS57Qcjs.moveBlocksTo.call(void 0, ids, layout.toIndex(target.index), target.indent))) return;
|
|
3993
3976
|
controller.focus();
|
|
3994
3977
|
press.onMoved(ids[0]);
|
|
3995
3978
|
}
|
|
@@ -4011,11 +3994,9 @@ function followPress(press, root, view) {
|
|
|
4011
3994
|
event.stopPropagation();
|
|
4012
3995
|
finish();
|
|
4013
3996
|
}
|
|
4014
|
-
|
|
4015
|
-
|
|
4016
|
-
|
|
4017
|
-
view.addEventListener("blur", finish);
|
|
4018
|
-
view.addEventListener("keydown", onKeyDown, true);
|
|
3997
|
+
const unlistenDocument = _chunkP6KYXFZCcjs.listen.call(void 0, doc, { pointermove: onPointerMove, pointerup: onPointerUp, pointercancel: finish });
|
|
3998
|
+
const unlistenBlur = _chunkP6KYXFZCcjs.listen.call(void 0, view, { blur: finish });
|
|
3999
|
+
const unlistenKeys = _chunkP6KYXFZCcjs.listen.call(void 0, view, { keydown: onKeyDown }, true);
|
|
4019
4000
|
return finish;
|
|
4020
4001
|
}
|
|
4021
4002
|
function pressDragHandle(press) {
|
|
@@ -4067,12 +4048,12 @@ function useBlockDrag(controller, store, blockId, overlay) {
|
|
|
4067
4048
|
function addBlockBelow(controller, blockId) {
|
|
4068
4049
|
const { state } = controller.editor;
|
|
4069
4050
|
const { doc, schema } = state;
|
|
4070
|
-
const block =
|
|
4051
|
+
const block = _chunk4SLJNZSMcjs.blockById.call(void 0, doc, blockId);
|
|
4071
4052
|
if (block === void 0) return false;
|
|
4072
|
-
const empty =
|
|
4073
|
-
const fill = empty ?
|
|
4074
|
-
const slash =
|
|
4075
|
-
const { ok, tr } =
|
|
4053
|
+
const empty = _chunkZKVOS57Qcjs.isParagraph.call(void 0, block) && _chunkZKVOS57Qcjs.regionLength.call(void 0, block, _nullishCoalesce(_chunkZKVOS57Qcjs.primaryRegion.call(void 0, schema, block), () => ( ""))) === 0;
|
|
4054
|
+
const fill = empty ? _chunkZKVOS57Qcjs.setSelection.call(void 0, _chunkZKVOS57Qcjs.startOf.call(void 0, doc, schema, blockId)) : _chunkZKVOS57Qcjs.insertBlockAfter.call(void 0, "MARKDOWN", { kind: "paragraph" });
|
|
4055
|
+
const slash = _chunkZKVOS57Qcjs.insertText.call(void 0, "/", { origin: "command" });
|
|
4056
|
+
const { ok, tr } = _chunkZKVOS57Qcjs.runCommands.call(void 0, state, [_chunkZKVOS57Qcjs.setSelection.call(void 0, _chunkZKVOS57Qcjs.blockRangeSelection.call(void 0, blockId)), fill, slash]);
|
|
4076
4057
|
if (ok && tr !== null) controller.dispatch(tr);
|
|
4077
4058
|
controller.focus();
|
|
4078
4059
|
return ok;
|
|
@@ -4153,7 +4134,7 @@ function place2(controller, root, gutter, block) {
|
|
|
4153
4134
|
gutter.style.visibility = "";
|
|
4154
4135
|
}
|
|
4155
4136
|
function useGutterPosition(controller, gutter, block) {
|
|
4156
|
-
|
|
4137
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
4157
4138
|
const element = gutter.current;
|
|
4158
4139
|
const root = controller.root;
|
|
4159
4140
|
const view = _optionalChain([root, 'optionalAccess', _193 => _193.ownerDocument, 'access', _194 => _194.defaultView]);
|
|
@@ -4180,7 +4161,7 @@ function useGutterPosition(controller, gutter, block) {
|
|
|
4180
4161
|
|
|
4181
4162
|
// src/gutter/use-gutter-target.ts
|
|
4182
4163
|
|
|
4183
|
-
var headOf = (state) =>
|
|
4164
|
+
var headOf = (state) => _chunkZKVOS57Qcjs.headBlockId.call(void 0, state.selection);
|
|
4184
4165
|
function blockAcross(controller, root, y) {
|
|
4185
4166
|
const box = root.getBoundingClientRect();
|
|
4186
4167
|
const probe = _optionalChain([root, 'access', _195 => _195.ownerDocument, 'access', _196 => _196.elementFromPoint, 'optionalCall', _197 => _197(box.left + box.width / 2, y)]);
|
|
@@ -4188,7 +4169,7 @@ function blockAcross(controller, root, y) {
|
|
|
4188
4169
|
}
|
|
4189
4170
|
function useGutterTarget(controller, store, gutter) {
|
|
4190
4171
|
const hovered = useCanvasUi(store, (state) => state.hoveredBlock);
|
|
4191
|
-
const head =
|
|
4172
|
+
const head = _chunkP6KYXFZCcjs.useEditorState.call(void 0, controller, headOf);
|
|
4192
4173
|
const [focusWithin, setFocusWithin] = _react.useState.call(void 0, false);
|
|
4193
4174
|
_react.useEffect.call(void 0, () => {
|
|
4194
4175
|
const root = controller.root;
|
|
@@ -4206,16 +4187,7 @@ function useGutterTarget(controller, store, gutter) {
|
|
|
4206
4187
|
const onFocusIn = () => setFocusWithin(true);
|
|
4207
4188
|
const onFocusOut = (event) => setFocusWithin(root.contains(event.relatedTarget));
|
|
4208
4189
|
setFocusWithin(root.contains(root.ownerDocument.activeElement));
|
|
4209
|
-
|
|
4210
|
-
root.addEventListener("pointerleave", onPointerLeave);
|
|
4211
|
-
root.addEventListener("focusin", onFocusIn);
|
|
4212
|
-
root.addEventListener("focusout", onFocusOut);
|
|
4213
|
-
return () => {
|
|
4214
|
-
root.removeEventListener("pointermove", onPointerMove);
|
|
4215
|
-
root.removeEventListener("pointerleave", onPointerLeave);
|
|
4216
|
-
root.removeEventListener("focusin", onFocusIn);
|
|
4217
|
-
root.removeEventListener("focusout", onFocusOut);
|
|
4218
|
-
};
|
|
4190
|
+
return _chunkP6KYXFZCcjs.listen.call(void 0, root, { pointermove: onPointerMove, pointerleave: onPointerLeave, focusin: onFocusIn, focusout: onFocusOut });
|
|
4219
4191
|
}, [controller, store, gutter]);
|
|
4220
4192
|
const fallback = focusWithin ? head : null;
|
|
4221
4193
|
const target = _nullishCoalesce(hovered, () => ( fallback));
|
|
@@ -4324,7 +4296,7 @@ function pointInHost(host, { node, offset }) {
|
|
|
4324
4296
|
return host.contains(node) ? { node, offset: Math.min(offset, nodeLength(node)) } : null;
|
|
4325
4297
|
}
|
|
4326
4298
|
function textRect(host, { from, to }) {
|
|
4327
|
-
const map =
|
|
4299
|
+
const map = _chunkP6KYXFZCcjs.domMapOf.call(void 0, host);
|
|
4328
4300
|
const range = host.ownerDocument.createRange();
|
|
4329
4301
|
if (map === void 0 || typeof range.getBoundingClientRect !== "function") return null;
|
|
4330
4302
|
const start = pointInHost(host, map.toDom(from, 1));
|
|
@@ -4337,7 +4309,7 @@ function textRect(host, { from, to }) {
|
|
|
4337
4309
|
}
|
|
4338
4310
|
function rangeRect(controller, range) {
|
|
4339
4311
|
const host = controller.registry.get(range.block, range.region);
|
|
4340
|
-
if (host === void 0 || !host.isConnected || controller.composingKey ===
|
|
4312
|
+
if (host === void 0 || !host.isConnected || controller.composingKey === _chunkP6KYXFZCcjs.hostKey.call(void 0, range.block, range.region)) {
|
|
4341
4313
|
return null;
|
|
4342
4314
|
}
|
|
4343
4315
|
const rect = textRect(host, range);
|
|
@@ -4353,7 +4325,7 @@ function union(a, b) {
|
|
|
4353
4325
|
function selectionRect(controller) {
|
|
4354
4326
|
const { state } = controller.editor;
|
|
4355
4327
|
if (_optionalChain([state, 'access', _205 => _205.selection, 'optionalAccess', _206 => _206.kind]) !== "text") return null;
|
|
4356
|
-
const ranges =
|
|
4328
|
+
const ranges = _chunkZKVOS57Qcjs.markRanges.call(void 0, state);
|
|
4357
4329
|
if (ranges.length === 0) return null;
|
|
4358
4330
|
const first = rangeRect(controller, ranges[0]);
|
|
4359
4331
|
if (ranges.length === 1) return first;
|
|
@@ -4364,7 +4336,7 @@ function selectionRect(controller) {
|
|
|
4364
4336
|
// src/menus/floating/use-selection-anchor.ts
|
|
4365
4337
|
var ROOM_ABOVE = 56;
|
|
4366
4338
|
function selectionHost(controller) {
|
|
4367
|
-
const [first] =
|
|
4339
|
+
const [first] = _chunkZKVOS57Qcjs.markRanges.call(void 0, controller.editor.state);
|
|
4368
4340
|
return _nullishCoalesce(_nullishCoalesce((first && controller.registry.get(first.block, first.region)), () => ( controller.root)), () => ( void 0));
|
|
4369
4341
|
}
|
|
4370
4342
|
function useSelectionAnchor(controller, state) {
|
|
@@ -4378,7 +4350,7 @@ function useSelectionAnchor(controller, state) {
|
|
|
4378
4350
|
[controller, state]
|
|
4379
4351
|
);
|
|
4380
4352
|
const [side, setSide] = _react.useState.call(void 0, "top");
|
|
4381
|
-
|
|
4353
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
4382
4354
|
const rect = selectionRect(controller);
|
|
4383
4355
|
if (rect) setSide(rect.top < ROOM_ABOVE ? "bottom" : "top");
|
|
4384
4356
|
}, [controller, state]);
|
|
@@ -4423,9 +4395,9 @@ var ICONS = { left: _lucidereact.AlignLeft, center: _lucidereact.AlignCenter, ri
|
|
|
4423
4395
|
var ALIGNS2 = Object.keys(ICONS);
|
|
4424
4396
|
var LABEL_KEYS = { left: "alignLeft", center: "alignCenter", right: "alignRight", justify: "alignJustify" };
|
|
4425
4397
|
function sharedAlign(state) {
|
|
4426
|
-
const blocks =
|
|
4398
|
+
const blocks = _chunkZKVOS57Qcjs.selectedBlockIds.call(void 0, state.doc, state.selection).map((id) => _chunk4SLJNZSMcjs.blockById.call(void 0, state.doc, id)).filter((block) => _optionalChain([block, 'optionalAccess', _207 => _207.type]) === "MARKDOWN");
|
|
4427
4399
|
if (blocks.length === 0) return null;
|
|
4428
|
-
const aligns = new Set(blocks.map((block) => _nullishCoalesce(
|
|
4400
|
+
const aligns = new Set(blocks.map((block) => _nullishCoalesce(_chunk4SLJNZSMcjs.alignOrUndefined.call(void 0, _optionalChain([block, 'optionalAccess', _208 => _208.attrs, 'access', _209 => _209.align])), () => ( "left"))));
|
|
4429
4401
|
return aligns.size === 1 ? [...aligns][0] : "";
|
|
4430
4402
|
}
|
|
4431
4403
|
function AlignDropdown({ controller, state }) {
|
|
@@ -4434,7 +4406,7 @@ function AlignDropdown({ controller, state }) {
|
|
|
4434
4406
|
if (value === null) return null;
|
|
4435
4407
|
const Icon = value === "" ? _lucidereact.AlignLeft : ICONS[value];
|
|
4436
4408
|
const trigger = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Button, { type: "button", variant: "ghost", size: "icon-sm", "aria-label": labels.align, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, {}) });
|
|
4437
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ToolbarMenu, { controller, trigger, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DropdownMenuRadioGroup, { value, onValueChange: (align) => controller.run(
|
|
4409
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ToolbarMenu, { controller, trigger, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DropdownMenuRadioGroup, { value, onValueChange: (align) => controller.run(_chunkZKVOS57Qcjs.setTextAlign.call(void 0, align)), children: ALIGNS2.map((align) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, DropdownMenuRadioItem, { value: align, indicator: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.CheckIcon, { className: "size-4" }), children: [
|
|
4438
4410
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, MenuIcon, { icon: ICONS[align] }),
|
|
4439
4411
|
labels[LABEL_KEYS[align]]
|
|
4440
4412
|
] }, align)) }) });
|
|
@@ -4446,8 +4418,8 @@ function AlignDropdown({ controller, state }) {
|
|
|
4446
4418
|
var MARKS = { color: "color", background: "highlight" };
|
|
4447
4419
|
function selectionColor(state, mark) {
|
|
4448
4420
|
const names = /* @__PURE__ */ new Set();
|
|
4449
|
-
for (const range of
|
|
4450
|
-
for (const node of
|
|
4421
|
+
for (const range of _chunkZKVOS57Qcjs.markRanges.call(void 0, state)) {
|
|
4422
|
+
for (const node of _chunkZKVOS57Qcjs.rangeContent.call(void 0, state, range)) {
|
|
4451
4423
|
const found = node.marks.find((candidate) => candidate.type === mark);
|
|
4452
4424
|
names.add(found === void 0 ? "default" : _optionalChain([found, 'access', _210 => _210.attrs, 'optionalAccess', _211 => _211.color]));
|
|
4453
4425
|
}
|
|
@@ -4456,7 +4428,7 @@ function selectionColor(state, mark) {
|
|
|
4456
4428
|
return names.size === 1 && typeof only === "string" ? only : "";
|
|
4457
4429
|
}
|
|
4458
4430
|
function colorCommand(key, name) {
|
|
4459
|
-
return name === "default" ?
|
|
4431
|
+
return name === "default" ? _chunkZKVOS57Qcjs.unsetMark.call(void 0, MARKS[key]) : _chunkZKVOS57Qcjs.setMark.call(void 0, MARKS[key], { color: name });
|
|
4460
4432
|
}
|
|
4461
4433
|
function ColorPopover({ controller, state }) {
|
|
4462
4434
|
const labels = useLabels();
|
|
@@ -4474,14 +4446,14 @@ function TurnIntoDropdown({ controller, state }) {
|
|
|
4474
4446
|
labels.turnInto,
|
|
4475
4447
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronDown, {})
|
|
4476
4448
|
] });
|
|
4477
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ToolbarMenu, { controller, trigger, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TurnIntoItems, { kit: DROPDOWN_KIT, controller, blockIds:
|
|
4449
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ToolbarMenu, { controller, trigger, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TurnIntoItems, { kit: DROPDOWN_KIT, controller, blockIds: _chunkZKVOS57Qcjs.selectedBlockIds.call(void 0, state.doc, state.selection) }) });
|
|
4478
4450
|
}
|
|
4479
4451
|
|
|
4480
4452
|
// src/menus/bubble/BubbleToolbar.tsx
|
|
4481
4453
|
|
|
4482
4454
|
var DIVIDER = "mx-0.5 h-5 w-px shrink-0 bg-border";
|
|
4483
4455
|
function BubbleToolbar({ controller, labels, store, extraItems }) {
|
|
4484
|
-
const state =
|
|
4456
|
+
const state = _chunkP6KYXFZCcjs.useEditorState.call(void 0, controller, _chunkP6KYXFZCcjs.wholeState);
|
|
4485
4457
|
const { anchor, side } = useSelectionAnchor(controller, state);
|
|
4486
4458
|
const roving = useRovingFocus();
|
|
4487
4459
|
const items = _react.useMemo.call(void 0, () => bubbleItems(labels, () => store.set({ linkPopover: { open: true } })), [labels, store]);
|
|
@@ -4546,10 +4518,10 @@ function useMediaQuery(query, unsupported) {
|
|
|
4546
4518
|
var useFinePointer = () => useMediaQuery("(pointer: fine)", true);
|
|
4547
4519
|
|
|
4548
4520
|
// src/menus/bubble/use-bubble-visibility.ts
|
|
4549
|
-
var hasTextRange = (state) => _optionalChain([state, 'access', _218 => _218.selection, 'optionalAccess', _219 => _219.kind]) === "text" && !
|
|
4521
|
+
var hasTextRange = (state) => _optionalChain([state, 'access', _218 => _218.selection, 'optionalAccess', _219 => _219.kind]) === "text" && !_chunkZKVOS57Qcjs.isCollapsed.call(void 0, state.selection) && _chunkZKVOS57Qcjs.markRanges.call(void 0, state).length > 0;
|
|
4550
4522
|
function useBubbleVisibility(controller) {
|
|
4551
|
-
const range =
|
|
4552
|
-
const readOnly =
|
|
4523
|
+
const range = _chunkP6KYXFZCcjs.useEditorState.call(void 0, controller, hasTextRange);
|
|
4524
|
+
const readOnly = _chunkP6KYXFZCcjs.useReadOnly.call(void 0, controller);
|
|
4553
4525
|
const fine = useFinePointer();
|
|
4554
4526
|
const settled = useSelectionSettled(controller);
|
|
4555
4527
|
return range && !readOnly && fine && settled;
|
|
@@ -4569,7 +4541,7 @@ function BubbleOverlay({ controller }) {
|
|
|
4569
4541
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BubbleToolbar, { controller, labels, store, extraItems });
|
|
4570
4542
|
}
|
|
4571
4543
|
function bubbleExtension() {
|
|
4572
|
-
return
|
|
4544
|
+
return _chunkZKVOS57Qcjs.defineExtension.call(void 0, { name: "bubble", ui: { overlays: [BubbleOverlay] } });
|
|
4573
4545
|
}
|
|
4574
4546
|
|
|
4575
4547
|
// src/menus/link/link-extension.tsx
|
|
@@ -4582,10 +4554,10 @@ function bubbleExtension() {
|
|
|
4582
4554
|
// src/menus/link/link-at-selection.ts
|
|
4583
4555
|
function linkAround(state, from, to = from) {
|
|
4584
4556
|
if (from.block !== to.block || from.region !== to.region) return null;
|
|
4585
|
-
const inline = _nullishCoalesce(
|
|
4586
|
-
const extent =
|
|
4557
|
+
const inline = _nullishCoalesce(_chunkP6KYXFZCcjs.regionInline.call(void 0, state, from.block, from.region), () => ( []));
|
|
4558
|
+
const extent = _chunkZKVOS57Qcjs.markExtent.call(void 0, inline, from.offset, "link");
|
|
4587
4559
|
if (extent === null || to.offset > extent.to) return null;
|
|
4588
|
-
const attrs = _optionalChain([
|
|
4560
|
+
const attrs = _optionalChain([_chunk4SLJNZSMcjs.sliceInline.call(void 0, inline, extent.from, extent.to), 'access', _220 => _220[0], 'optionalAccess', _221 => _221.marks, 'access', _222 => _222.find, 'call', _223 => _223((mark) => mark.type === "link"), 'optionalAccess', _224 => _224.attrs]);
|
|
4589
4561
|
if (_optionalChain([attrs, 'optionalAccess', _225 => _225.href]) === void 0) return null;
|
|
4590
4562
|
const range = { block: from.block, region: from.region, ...extent };
|
|
4591
4563
|
return { href: attrs.href, title: attrs.title || void 0, range };
|
|
@@ -4593,7 +4565,7 @@ function linkAround(state, from, to = from) {
|
|
|
4593
4565
|
function linkAtSelection(state) {
|
|
4594
4566
|
const { selection } = state;
|
|
4595
4567
|
if (_optionalChain([selection, 'optionalAccess', _226 => _226.kind]) !== "text") return null;
|
|
4596
|
-
const { from, to } =
|
|
4568
|
+
const { from, to } = _chunkZKVOS57Qcjs.orderedRange.call(void 0, state.doc, selection.anchor, selection.head);
|
|
4597
4569
|
return linkAround(state, from, to);
|
|
4598
4570
|
}
|
|
4599
4571
|
|
|
@@ -4605,7 +4577,7 @@ function linkElementAt(controller, target) {
|
|
|
4605
4577
|
}
|
|
4606
4578
|
function linkAtElement(controller, state, element) {
|
|
4607
4579
|
const host = controller.registry.locate(element);
|
|
4608
|
-
const offset = host === null ? null : _nullishCoalesce(_optionalChain([
|
|
4580
|
+
const offset = host === null ? null : _nullishCoalesce(_optionalChain([_chunkP6KYXFZCcjs.domMapOf.call(void 0, host.element), 'optionalAccess', _227 => _227.fromDom, 'call', _228 => _228(element, 0)]), () => ( null));
|
|
4609
4581
|
if (host === null || offset === null) return null;
|
|
4610
4582
|
return linkAround(state, { block: host.block, region: host.region, offset });
|
|
4611
4583
|
}
|
|
@@ -4631,7 +4603,7 @@ function truncateMiddle(text2, max) {
|
|
|
4631
4603
|
// src/menus/link/unlink-range.ts
|
|
4632
4604
|
function unlinkRange({ block, region, from, to }) {
|
|
4633
4605
|
return (state, dispatch) => {
|
|
4634
|
-
const tr = new (0,
|
|
4606
|
+
const tr = new (0, _chunkZKVOS57Qcjs.Transaction)(state).step(_chunkZKVOS57Qcjs.removeMarkStep.call(void 0, block, region, from, to, "link"));
|
|
4635
4607
|
if (!tr.docChanged) return false;
|
|
4636
4608
|
_optionalChain([dispatch, 'optionalCall', _233 => _233(tr)]);
|
|
4637
4609
|
return true;
|
|
@@ -4656,12 +4628,12 @@ function useRestedValue(value, delay) {
|
|
|
4656
4628
|
// src/menus/link/use-caret-in-link.ts
|
|
4657
4629
|
function caretLinkKey(state) {
|
|
4658
4630
|
const { selection } = state;
|
|
4659
|
-
if (_optionalChain([selection, 'optionalAccess', _234 => _234.kind]) !== "text" || !
|
|
4631
|
+
if (_optionalChain([selection, 'optionalAccess', _234 => _234.kind]) !== "text" || !_chunkZKVOS57Qcjs.isCollapsed.call(void 0, selection)) return null;
|
|
4660
4632
|
const link = linkAtSelection(state);
|
|
4661
4633
|
return link && [link.range.block, link.range.region, link.range.from, link.href].join("\0");
|
|
4662
4634
|
}
|
|
4663
4635
|
function useCaretInLink(controller, delay) {
|
|
4664
|
-
const key =
|
|
4636
|
+
const key = _chunkP6KYXFZCcjs.useEditorState.call(void 0, controller, caretLinkKey);
|
|
4665
4637
|
const settled = useSelectionSettled(controller);
|
|
4666
4638
|
return useRestedValue(settled ? key : null, delay) !== null;
|
|
4667
4639
|
}
|
|
@@ -4701,7 +4673,7 @@ var URL_LENGTH = 48;
|
|
|
4701
4673
|
var CARD = "flex w-auto items-center gap-0.5 py-1 ps-3 pe-1 shadow-md";
|
|
4702
4674
|
var ADDRESS = "me-1 whitespace-nowrap text-sm text-muted-foreground";
|
|
4703
4675
|
function LinkCard({ controller, labels, store, cardRef, element, onUnlinked }) {
|
|
4704
|
-
const state =
|
|
4676
|
+
const state = _chunkP6KYXFZCcjs.useEditorState.call(void 0, controller, _chunkP6KYXFZCcjs.wholeState);
|
|
4705
4677
|
const link = _react.useMemo.call(void 0,
|
|
4706
4678
|
() => element === null ? linkAtSelection(state) : linkAtElement(controller, state, element),
|
|
4707
4679
|
[controller, state, element]
|
|
@@ -4714,12 +4686,12 @@ function LinkCard({ controller, labels, store, cardRef, element, onUnlinked }) {
|
|
|
4714
4686
|
}, [controller, link]);
|
|
4715
4687
|
if (link === null) return null;
|
|
4716
4688
|
const { block, region, from, to } = link.range;
|
|
4717
|
-
const href =
|
|
4689
|
+
const href = _chunk4SLJNZSMcjs.sanitizeHref.call(void 0, link.href);
|
|
4718
4690
|
const address = truncateMiddle(link.href, URL_LENGTH);
|
|
4719
4691
|
const edit2 = () => {
|
|
4720
4692
|
if (element !== null) {
|
|
4721
|
-
const selection =
|
|
4722
|
-
|
|
4693
|
+
const selection = _chunkZKVOS57Qcjs.textSelection.call(void 0, { block, region, offset: from }, { block, region, offset: to });
|
|
4694
|
+
_chunkP6KYXFZCcjs.dispatchSelection.call(void 0, controller, selection);
|
|
4723
4695
|
}
|
|
4724
4696
|
store.set({ linkPopover: { open: true } });
|
|
4725
4697
|
};
|
|
@@ -4765,12 +4737,12 @@ function LinkHoverCard(props) {
|
|
|
4765
4737
|
|
|
4766
4738
|
// src/menus/link/apply-link.ts
|
|
4767
4739
|
function insertLinkedText(value, href, caret) {
|
|
4768
|
-
const safe =
|
|
4740
|
+
const safe = _chunk4SLJNZSMcjs.sanitizeHref.call(void 0, href);
|
|
4769
4741
|
return (state, dispatch) => {
|
|
4770
4742
|
if (!safe) return false;
|
|
4771
4743
|
const link = { type: "link", attrs: { href: safe } };
|
|
4772
|
-
const marks =
|
|
4773
|
-
const tr = new (0,
|
|
4744
|
+
const marks = _chunk4SLJNZSMcjs.addMark.call(void 0, _chunkZKVOS57Qcjs.caretMarks.call(void 0, state.doc, state.schema, state.storedMarks, caret), link);
|
|
4745
|
+
const tr = new (0, _chunkZKVOS57Qcjs.Transaction)(state).step(_chunkZKVOS57Qcjs.replaceInlineStep.call(void 0, caret.block, caret.region, caret.offset, caret.offset, [_chunk4SLJNZSMcjs.text.call(void 0, value, marks)])).setSelection(_chunkZKVOS57Qcjs.textSelection.call(void 0, { ...caret, offset: caret.offset + value.length }));
|
|
4774
4746
|
_optionalChain([dispatch, 'optionalCall', _238 => _238(tr)]);
|
|
4775
4747
|
return true;
|
|
4776
4748
|
};
|
|
@@ -4779,10 +4751,10 @@ function applyLink(href, value) {
|
|
|
4779
4751
|
return (state, dispatch) => {
|
|
4780
4752
|
const { selection } = state;
|
|
4781
4753
|
const link = linkAtSelection(state);
|
|
4782
|
-
if (_optionalChain([selection, 'optionalAccess', _239 => _239.kind]) === "text" &&
|
|
4754
|
+
if (_optionalChain([selection, 'optionalAccess', _239 => _239.kind]) === "text" && _chunkZKVOS57Qcjs.isCollapsed.call(void 0, selection) && link === null) {
|
|
4783
4755
|
return insertLinkedText(value, href, selection.head)(state, dispatch);
|
|
4784
4756
|
}
|
|
4785
|
-
return
|
|
4757
|
+
return _chunkZKVOS57Qcjs.setLink.call(void 0, href, _optionalChain([link, 'optionalAccess', _240 => _240.title]))(state, dispatch);
|
|
4786
4758
|
};
|
|
4787
4759
|
}
|
|
4788
4760
|
|
|
@@ -4796,7 +4768,7 @@ function popoverAnchor(controller, link) {
|
|
|
4796
4768
|
if (_optionalChain([selection, 'optionalAccess', _241 => _241.kind]) !== "text") return null;
|
|
4797
4769
|
const { block, region, offset } = selection.head;
|
|
4798
4770
|
const caret = _nullishCoalesce(_optionalChain([link, 'optionalAccess', _242 => _242.range]), () => ( { block, region, from: offset, to: offset }));
|
|
4799
|
-
const collapsed =
|
|
4771
|
+
const collapsed = _chunkZKVOS57Qcjs.isCollapsed.call(void 0, selection);
|
|
4800
4772
|
return virtualAnchor(
|
|
4801
4773
|
() => collapsed ? rangeRect(controller, caret) : selectionRect(controller),
|
|
4802
4774
|
() => controller.registry.get(block, region)
|
|
@@ -4808,7 +4780,7 @@ function LinkPopover({ controller, labels, onClose }) {
|
|
|
4808
4780
|
const [invalid, setInvalid] = _react.useState.call(void 0, false);
|
|
4809
4781
|
const messageId = _react.useId.call(void 0, );
|
|
4810
4782
|
const anchor = _react.useMemo.call(void 0, () => ({ current: popoverAnchor(controller, link) }), [controller, link]);
|
|
4811
|
-
const openHref = link &&
|
|
4783
|
+
const openHref = link && _chunk4SLJNZSMcjs.sanitizeHref.call(void 0, link.href);
|
|
4812
4784
|
const backToText = () => {
|
|
4813
4785
|
onClose();
|
|
4814
4786
|
controller.focus();
|
|
@@ -4825,7 +4797,7 @@ function LinkPopover({ controller, labels, onClose }) {
|
|
|
4825
4797
|
backToText();
|
|
4826
4798
|
};
|
|
4827
4799
|
const remove = () => {
|
|
4828
|
-
controller.run(
|
|
4800
|
+
controller.run(_chunkZKVOS57Qcjs.unsetLink);
|
|
4829
4801
|
backToText();
|
|
4830
4802
|
};
|
|
4831
4803
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -4899,7 +4871,7 @@ function LinkOverlay({ controller }) {
|
|
|
4899
4871
|
const labels = useLabels();
|
|
4900
4872
|
const store = useCanvasUiStore();
|
|
4901
4873
|
const popoverOpen = useCanvasUi(store, isPopoverOpen);
|
|
4902
|
-
const readOnly =
|
|
4874
|
+
const readOnly = _chunkP6KYXFZCcjs.useReadOnly.call(void 0, controller);
|
|
4903
4875
|
useLinkClicks(controller);
|
|
4904
4876
|
_react.useEffect.call(void 0, () => {
|
|
4905
4877
|
if (readOnly && store.get().linkPopover.open) store.set({ linkPopover: { open: false } });
|
|
@@ -4914,7 +4886,7 @@ function linkExtension(store) {
|
|
|
4914
4886
|
if (dispatch) store.set({ linkPopover: { open: true } });
|
|
4915
4887
|
return true;
|
|
4916
4888
|
};
|
|
4917
|
-
return
|
|
4889
|
+
return _chunkZKVOS57Qcjs.defineExtension.call(void 0, { name: "link", keymap: { "Mod-k": openPopover }, ui: { overlays: [LinkOverlay] } });
|
|
4918
4890
|
}
|
|
4919
4891
|
|
|
4920
4892
|
// src/menus/slash/slash-extension.tsx
|
|
@@ -4925,7 +4897,7 @@ var DEFAULT_MAX_LENGTH = 40;
|
|
|
4925
4897
|
var NO_TRIGGER_TYPES = /* @__PURE__ */ new Set(["CODE", "TABLE"]);
|
|
4926
4898
|
var WHITESPACE2 = /\s/;
|
|
4927
4899
|
var ATOM = "\uFFFC";
|
|
4928
|
-
var hasCode = (inline) => inline.some((node) =>
|
|
4900
|
+
var hasCode = (inline) => inline.some((node) => _chunk4SLJNZSMcjs.hasMark.call(void 0, node.marks, "code"));
|
|
4929
4901
|
function triggerOffset(text2, start, config) {
|
|
4930
4902
|
const { char, allowSpaces = false, startOfLine = false } = config;
|
|
4931
4903
|
const earliest = Math.max(0, text2.length - (_nullishCoalesce(config.maxLength, () => ( DEFAULT_MAX_LENGTH))) - 1);
|
|
@@ -4942,15 +4914,15 @@ function triggerOffset(text2, start, config) {
|
|
|
4942
4914
|
}
|
|
4943
4915
|
function findTrigger(state, config) {
|
|
4944
4916
|
const { doc, selection } = state;
|
|
4945
|
-
if (_optionalChain([selection, 'optionalAccess', _246 => _246.kind]) !== "text" || !
|
|
4917
|
+
if (_optionalChain([selection, 'optionalAccess', _246 => _246.kind]) !== "text" || !_chunkZKVOS57Qcjs.isCollapsed.call(void 0, selection)) return null;
|
|
4946
4918
|
const { block: blockId, region, offset: caret } = selection.head;
|
|
4947
|
-
const block =
|
|
4919
|
+
const block = _chunk4SLJNZSMcjs.blockById.call(void 0, doc, blockId);
|
|
4948
4920
|
if (block === void 0 || NO_TRIGGER_TYPES.has(block.type) || !Object.hasOwn(block.regions, region)) return null;
|
|
4949
4921
|
const inline = block.regions[region];
|
|
4950
4922
|
const start = Math.max(0, caret - (_nullishCoalesce(config.maxLength, () => ( DEFAULT_MAX_LENGTH))) - 2);
|
|
4951
|
-
const from = triggerOffset(
|
|
4952
|
-
if (from === null || hasCode(
|
|
4953
|
-
const query =
|
|
4923
|
+
const from = triggerOffset(_chunk4SLJNZSMcjs.inlineText.call(void 0, _chunk4SLJNZSMcjs.sliceInline.call(void 0, inline, start, caret)), start, config);
|
|
4924
|
+
if (from === null || hasCode(_chunk4SLJNZSMcjs.sliceInline.call(void 0, inline, from, caret))) return null;
|
|
4925
|
+
const query = _chunk4SLJNZSMcjs.inlineText.call(void 0, _chunk4SLJNZSMcjs.sliceInline.call(void 0, inline, from + 1, caret));
|
|
4954
4926
|
return { block: blockId, region, from, to: caret, query };
|
|
4955
4927
|
}
|
|
4956
4928
|
|
|
@@ -4980,7 +4952,7 @@ function suggestionPlugin(key, config) {
|
|
|
4980
4952
|
init: (state) => ({ active: nearest(state, findTrigger(state, config)), dismissedAt: null }),
|
|
4981
4953
|
apply(tr, value, oldState, newState) {
|
|
4982
4954
|
const dismissing = tr.getMeta(DISMISS) === key.name;
|
|
4983
|
-
if (!dismissing && !tr.docChanged &&
|
|
4955
|
+
if (!dismissing && !tr.docChanged && _chunkZKVOS57Qcjs.sameSelection.call(void 0, oldState.selection, newState.selection)) return value;
|
|
4984
4956
|
const found = findTrigger(newState, config);
|
|
4985
4957
|
let dismissedAt = null;
|
|
4986
4958
|
if (dismissing) dismissedAt = found && rangeOf2(found);
|
|
@@ -4997,14 +4969,14 @@ function suggestionPlugin(key, config) {
|
|
|
4997
4969
|
}
|
|
4998
4970
|
function dismissSuggestion(key) {
|
|
4999
4971
|
return (state, dispatch) => {
|
|
5000
|
-
if (
|
|
5001
|
-
_optionalChain([dispatch, 'optionalCall', _249 => _249(new (0,
|
|
4972
|
+
if (_chunkZKVOS57Qcjs.getPluginState.call(void 0, state, key).active === null) return false;
|
|
4973
|
+
_optionalChain([dispatch, 'optionalCall', _249 => _249(new (0, _chunkZKVOS57Qcjs.Transaction)(state).setMeta(DISMISS, key.name))]);
|
|
5002
4974
|
return true;
|
|
5003
4975
|
};
|
|
5004
4976
|
}
|
|
5005
4977
|
|
|
5006
4978
|
// src/menus/slash/slash-key.ts
|
|
5007
|
-
var slashKey =
|
|
4979
|
+
var slashKey = _chunkZKVOS57Qcjs.createPluginKey.call(void 0, "slash");
|
|
5008
4980
|
|
|
5009
4981
|
// src/menus/slash/slash-items.ts
|
|
5010
4982
|
|
|
@@ -5053,10 +5025,10 @@ function builtInSlashItems(labels, definitions) {
|
|
|
5053
5025
|
function initialBlock({ schema }, { type, initialData }) {
|
|
5054
5026
|
const data = _optionalChain([initialData, 'optionalCall', _250 => _250()]);
|
|
5055
5027
|
if (data === void 0) return { type };
|
|
5056
|
-
return { type, ...
|
|
5028
|
+
return { type, ..._chunk4SLJNZSMcjs.specFor.call(void 0, schema, type).fromData(data, _chunk4SLJNZSMcjs.createBlockCodec.call(void 0, schema).context) };
|
|
5057
5029
|
}
|
|
5058
5030
|
function blockTypeSlashItems(definitions) {
|
|
5059
|
-
return
|
|
5031
|
+
return _chunkEH5KXQXYcjs.paletteBlocks.call(void 0, definitions).filter((definition) => !BUILT_IN_TYPES.has(definition.type)).map((definition) => ({
|
|
5060
5032
|
id: `block:${definition.type}`,
|
|
5061
5033
|
title: definition.label,
|
|
5062
5034
|
group: "custom",
|
|
@@ -5086,10 +5058,10 @@ function useRangeAnchor(controller, range) {
|
|
|
5086
5058
|
const [side, setSide] = _react.useState.call(void 0, "bottom");
|
|
5087
5059
|
const latest = _react.useRef.call(void 0, range);
|
|
5088
5060
|
const start = range === null ? null : `${range.block} ${range.region} ${range.from}`;
|
|
5089
|
-
|
|
5061
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
5090
5062
|
latest.current = range;
|
|
5091
5063
|
});
|
|
5092
|
-
|
|
5064
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
5093
5065
|
const rect = latest.current && rangeRect(controller, latest.current);
|
|
5094
5066
|
if (rect) setSide(sideFor(rect, window.innerHeight));
|
|
5095
5067
|
}, [controller, start]);
|
|
@@ -5121,11 +5093,11 @@ function openCombobox(host, listboxId) {
|
|
|
5121
5093
|
}
|
|
5122
5094
|
function useComboboxHost(controller, block, region, listboxId, activeOptionId) {
|
|
5123
5095
|
const host = _react.useRef.call(void 0, null);
|
|
5124
|
-
|
|
5096
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
5125
5097
|
host.current = block === null || region === null ? null : _nullishCoalesce(controller.registry.get(block, region), () => ( null));
|
|
5126
5098
|
return host.current === null ? void 0 : openCombobox(host.current, listboxId);
|
|
5127
5099
|
}, [controller, block, region, listboxId]);
|
|
5128
|
-
|
|
5100
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
5129
5101
|
if (host.current !== null) restore(host.current, "aria-activedescendant", activeOptionId);
|
|
5130
5102
|
}, [block, region, activeOptionId]);
|
|
5131
5103
|
}
|
|
@@ -5174,10 +5146,10 @@ function handle(event, menu) {
|
|
|
5174
5146
|
}
|
|
5175
5147
|
function useSuggestionKeys(controller, open, menu) {
|
|
5176
5148
|
const latest = _react.useRef.call(void 0, menu);
|
|
5177
|
-
|
|
5149
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
5178
5150
|
latest.current = menu;
|
|
5179
5151
|
});
|
|
5180
|
-
|
|
5152
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
5181
5153
|
if (!open) return;
|
|
5182
5154
|
const intercept = (event) => {
|
|
5183
5155
|
const handled = handle(event, latest.current);
|
|
@@ -5201,10 +5173,10 @@ var isPromise = (value) => typeof _optionalChain([value, 'optionalAccess', _252
|
|
|
5201
5173
|
function useSuggestionResults(source, query, onError) {
|
|
5202
5174
|
const [answer, setAnswer] = _react.useState.call(void 0, FORGOTTEN);
|
|
5203
5175
|
const report = _react.useRef.call(void 0, onError);
|
|
5204
|
-
|
|
5176
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
5205
5177
|
report.current = onError;
|
|
5206
5178
|
});
|
|
5207
|
-
|
|
5179
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
5208
5180
|
if (query === null) {
|
|
5209
5181
|
setAnswer(FORGOTTEN);
|
|
5210
5182
|
return;
|
|
@@ -5248,9 +5220,9 @@ function useSuggestion({
|
|
|
5248
5220
|
emptyLabel
|
|
5249
5221
|
}) {
|
|
5250
5222
|
const { labels, onError } = useQuoin();
|
|
5251
|
-
const readOnly =
|
|
5252
|
-
const selectTrigger = _react.useCallback.call(void 0, (state) =>
|
|
5253
|
-
const active =
|
|
5223
|
+
const readOnly = _chunkP6KYXFZCcjs.useReadOnly.call(void 0, controller);
|
|
5224
|
+
const selectTrigger = _react.useCallback.call(void 0, (state) => _chunkZKVOS57Qcjs.getPluginState.call(void 0, state, pluginKey).active, [pluginKey]);
|
|
5225
|
+
const active = _chunkP6KYXFZCcjs.useEditorState.call(void 0, controller, selectTrigger);
|
|
5254
5226
|
const trigger = readOnly ? null : active;
|
|
5255
5227
|
const results = useSuggestionResults(source, _nullishCoalesce(_optionalChain([trigger, 'optionalAccess', _253 => _253.query]), () => ( null)), onError);
|
|
5256
5228
|
const sections = _react.useMemo.call(void 0, () => groupItems(results.items, groupOf2), [results.items, groupOf2]);
|
|
@@ -5272,7 +5244,7 @@ function useSuggestion({
|
|
|
5272
5244
|
);
|
|
5273
5245
|
const select = _react.useCallback.call(void 0,
|
|
5274
5246
|
(index) => {
|
|
5275
|
-
const current =
|
|
5247
|
+
const current = _chunkZKVOS57Qcjs.getPluginState.call(void 0, controller.editor.state, pluginKey).active;
|
|
5276
5248
|
if (current !== null && index < ordered.length) onSelect(ordered[index], rangeOf2(current));
|
|
5277
5249
|
},
|
|
5278
5250
|
[controller, pluginKey, ordered, onSelect]
|
|
@@ -5323,7 +5295,7 @@ function SuggestionMenu(props) {
|
|
|
5323
5295
|
const { trigger, sections, activeIndex, listboxId } = suggestion;
|
|
5324
5296
|
const { anchor, side } = useRangeAnchor(controller, trigger);
|
|
5325
5297
|
const listbox = _react.useRef.call(void 0, null);
|
|
5326
|
-
|
|
5298
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
5327
5299
|
_optionalChain([listbox, 'access', _259 => _259.current, 'optionalAccess', _260 => _260.querySelector, 'call', _261 => _261('[aria-selected="true"]'), 'optionalAccess', _262 => _262.scrollIntoView, 'call', _263 => _263({ block: "nearest" })]);
|
|
5328
5300
|
}, [activeIndex, sections]);
|
|
5329
5301
|
if (trigger === null) return null;
|
|
@@ -5382,14 +5354,14 @@ function SuggestionMenu(props) {
|
|
|
5382
5354
|
// src/menus/suggestion/replace-trigger.ts
|
|
5383
5355
|
function deleteTrigger({ block, region, from, to }) {
|
|
5384
5356
|
return (state, dispatch) => {
|
|
5385
|
-
const tr = new (0,
|
|
5386
|
-
if (from >= to || !tr.maybeStep(
|
|
5387
|
-
_optionalChain([dispatch, 'optionalCall', _270 => _270(tr.setSelection(
|
|
5357
|
+
const tr = new (0, _chunkZKVOS57Qcjs.Transaction)(state);
|
|
5358
|
+
if (from >= to || !tr.maybeStep(_chunkZKVOS57Qcjs.replaceInlineStep.call(void 0, block, region, from, to, []))) return false;
|
|
5359
|
+
_optionalChain([dispatch, 'optionalCall', _270 => _270(tr.setSelection(_chunkZKVOS57Qcjs.textSelection.call(void 0, { block, region, offset: from })))]);
|
|
5388
5360
|
return true;
|
|
5389
5361
|
};
|
|
5390
5362
|
}
|
|
5391
5363
|
function triggerReplacement(state, range, command) {
|
|
5392
|
-
return
|
|
5364
|
+
return _chunkZKVOS57Qcjs.runCommands.call(void 0, state, command === void 0 ? [deleteTrigger(range)] : [deleteTrigger(range), command]);
|
|
5393
5365
|
}
|
|
5394
5366
|
function replaceTrigger(controller, range, command) {
|
|
5395
5367
|
const { ok, tr } = triggerReplacement(controller.editor.state, range, command);
|
|
@@ -5402,9 +5374,9 @@ var TEXT_STEPS = /* @__PURE__ */ new Set(["replaceInline", "addMark", "removeMar
|
|
|
5402
5374
|
var WHITESPACE3 = /\s/;
|
|
5403
5375
|
var changesBlocks = (tr) => tr !== null && tr.steps.some((step) => !TEXT_STEPS.has(step.stepType));
|
|
5404
5376
|
function withSpaceBefore(state, range) {
|
|
5405
|
-
const inline =
|
|
5377
|
+
const inline = _chunkP6KYXFZCcjs.regionInline.call(void 0, state, range.block, range.region);
|
|
5406
5378
|
if (inline === void 0 || range.from === 0) return null;
|
|
5407
|
-
const text2 =
|
|
5379
|
+
const text2 = _chunk4SLJNZSMcjs.inlineText.call(void 0, inline);
|
|
5408
5380
|
const after = text2.charAt(range.to);
|
|
5409
5381
|
const spaced = text2.charAt(range.from - 1) === " " && (after === "" || WHITESPACE3.test(after));
|
|
5410
5382
|
return spaced ? { ...range, from: range.from - 1 } : null;
|
|
@@ -5515,7 +5487,7 @@ function SlashOverlay({ controller }) {
|
|
|
5515
5487
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SlashMenu, { controller, labels, items });
|
|
5516
5488
|
}
|
|
5517
5489
|
function slashExtension() {
|
|
5518
|
-
return
|
|
5490
|
+
return _chunkZKVOS57Qcjs.defineExtension.call(void 0, {
|
|
5519
5491
|
name: "slash",
|
|
5520
5492
|
plugins: [suggestionPlugin(slashKey, { char: "/" })],
|
|
5521
5493
|
ui: { overlays: [SlashOverlay] }
|
|
@@ -5542,7 +5514,7 @@ function commandItem(id, title, icon, command) {
|
|
|
5542
5514
|
return { id, title, icon, run: (controller) => void controller.run(command) };
|
|
5543
5515
|
}
|
|
5544
5516
|
function addBlockAtCaret(controller) {
|
|
5545
|
-
const block =
|
|
5517
|
+
const block = _chunkZKVOS57Qcjs.headBlockId.call(void 0, controller.editor.state.selection);
|
|
5546
5518
|
if (block !== null) addBlockBelow(controller, block);
|
|
5547
5519
|
}
|
|
5548
5520
|
function mobileItems(labels, openLink) {
|
|
@@ -5554,10 +5526,10 @@ function mobileItems(labels, openLink) {
|
|
|
5554
5526
|
markItem("strike", labels.strike, _lucidereact.Strikethrough),
|
|
5555
5527
|
markItem("code", labels.code, _lucidereact.Code),
|
|
5556
5528
|
linkItem(labels, openLink),
|
|
5557
|
-
commandItem("indent", labels.indent, _lucidereact.ListIndentIncrease,
|
|
5558
|
-
commandItem("outdent", labels.outdent, _lucidereact.ListIndentDecrease,
|
|
5559
|
-
commandItem("undo", labels.undo, _lucidereact.Undo2,
|
|
5560
|
-
commandItem("redo", labels.redo, _lucidereact.Redo2,
|
|
5529
|
+
commandItem("indent", labels.indent, _lucidereact.ListIndentIncrease, _chunkZKVOS57Qcjs.indent),
|
|
5530
|
+
commandItem("outdent", labels.outdent, _lucidereact.ListIndentDecrease, _chunkZKVOS57Qcjs.outdent),
|
|
5531
|
+
commandItem("undo", labels.undo, _lucidereact.Undo2, _chunkZKVOS57Qcjs.undo),
|
|
5532
|
+
commandItem("redo", labels.redo, _lucidereact.Redo2, _chunkZKVOS57Qcjs.redo)
|
|
5561
5533
|
]
|
|
5562
5534
|
};
|
|
5563
5535
|
}
|
|
@@ -5620,7 +5592,7 @@ function placement(viewport) {
|
|
|
5620
5592
|
function EditingTools({ controller }) {
|
|
5621
5593
|
const labels = useLabels();
|
|
5622
5594
|
const store = useCanvasUiStore();
|
|
5623
|
-
const state =
|
|
5595
|
+
const state = _chunkP6KYXFZCcjs.useEditorState.call(void 0, controller, _chunkP6KYXFZCcjs.wholeState);
|
|
5624
5596
|
const viewport = useVisualViewport();
|
|
5625
5597
|
const roving = useRovingFocus();
|
|
5626
5598
|
const items = _react.useMemo.call(void 0, () => mobileItems(labels, () => store.set({ linkPopover: { open: true } })), [labels, store]);
|
|
@@ -5895,7 +5867,7 @@ function shortcutsExtension(store) {
|
|
|
5895
5867
|
if (dispatch) store.set({ shortcutsOpen: true });
|
|
5896
5868
|
return true;
|
|
5897
5869
|
};
|
|
5898
|
-
return
|
|
5870
|
+
return _chunkZKVOS57Qcjs.defineExtension.call(void 0, {
|
|
5899
5871
|
name: "shortcuts",
|
|
5900
5872
|
keymap: { [SHORTCUT]: open, "Mod-Shift-?": open },
|
|
5901
5873
|
ui: { overlays: [ShortcutsOverlay] }
|
|
@@ -5936,15 +5908,15 @@ function writeBlockData(controller, blockId, data) {
|
|
|
5936
5908
|
const index = doc.index.get(blockId);
|
|
5937
5909
|
if (index === void 0) return;
|
|
5938
5910
|
const block = doc.blocks[index];
|
|
5939
|
-
const { attrs, regions } =
|
|
5940
|
-
if (
|
|
5941
|
-
const tr = editor.createTransaction().step(
|
|
5942
|
-
editor.dispatch(tr.setMeta(
|
|
5911
|
+
const { attrs, regions } = _chunk4SLJNZSMcjs.specFor.call(void 0, schema, block.type).fromData(data, editor.codec.context);
|
|
5912
|
+
if (_chunk6V6GGBDKcjs.sameValue.call(void 0, attrs, block.attrs) && _chunk6V6GGBDKcjs.sameValue.call(void 0, regions, block.regions)) return;
|
|
5913
|
+
const tr = editor.createTransaction().step(_chunkZKVOS57Qcjs.replaceBlockStep.call(void 0, { ...block, attrs, regions }));
|
|
5914
|
+
editor.dispatch(tr.setMeta(_chunkZKVOS57Qcjs.HISTORY_GROUP, `block-data:${blockId}`));
|
|
5943
5915
|
}
|
|
5944
5916
|
function insertAfterBlock(controller, blockId, type, definitions) {
|
|
5945
5917
|
const editor = internal(controller);
|
|
5946
|
-
const data = _optionalChain([
|
|
5947
|
-
const content = data &&
|
|
5918
|
+
const data = _optionalChain([_chunkEH5KXQXYcjs.blockByType.call(void 0, definitions, type), 'optionalAccess', _278 => _278.initialData, 'optionalCall', _279 => _279()]);
|
|
5919
|
+
const content = data && _chunk4SLJNZSMcjs.specFor.call(void 0, editor.state.schema, type).fromData(data, editor.codec.context);
|
|
5948
5920
|
controller.run(insertBlockToWrite({ type, ...content }, opensEditor(definitions, type), blockId));
|
|
5949
5921
|
}
|
|
5950
5922
|
|
|
@@ -5975,13 +5947,11 @@ function useEditingFocus(root, editing, stop) {
|
|
|
5975
5947
|
const leaveUnlessInside = (event) => {
|
|
5976
5948
|
if (!inside.current.has(event)) stop();
|
|
5977
5949
|
};
|
|
5978
|
-
|
|
5979
|
-
|
|
5980
|
-
doc.addEventListener("focusin", leaveUnlessInside);
|
|
5950
|
+
const unlistenCapture = _chunkP6KYXFZCcjs.listen.call(void 0, doc, { pointerdown: leaveForCanvas }, true);
|
|
5951
|
+
const unlisten = _chunkP6KYXFZCcjs.listen.call(void 0, doc, { pointerdown: leaveUnlessInside, focusin: leaveUnlessInside });
|
|
5981
5952
|
return () => {
|
|
5982
|
-
|
|
5983
|
-
|
|
5984
|
-
doc.removeEventListener("focusin", leaveUnlessInside);
|
|
5953
|
+
unlistenCapture();
|
|
5954
|
+
unlisten();
|
|
5985
5955
|
};
|
|
5986
5956
|
}, [root, editing, stop]);
|
|
5987
5957
|
return _react.useMemo.call(void 0, () => {
|
|
@@ -5995,7 +5965,7 @@ function useEditingFocus(root, editing, stop) {
|
|
|
5995
5965
|
function useMissingPreviewWarning(readOnly, { type, preview }) {
|
|
5996
5966
|
_react.useEffect.call(void 0, () => {
|
|
5997
5967
|
if (!readOnly || preview !== void 0) return;
|
|
5998
|
-
|
|
5968
|
+
_chunkEH5KXQXYcjs.devWarn.call(void 0,
|
|
5999
5969
|
`the block type "${type}" has no \`preview\`, so a read-only canvas can draw only its label. Give its definition a \`preview\` to render the block itself.`
|
|
6000
5970
|
);
|
|
6001
5971
|
}, [readOnly, type, preview]);
|
|
@@ -6006,7 +5976,7 @@ function VoidPreview({ definition: { preview: Preview }, name, ...props }) {
|
|
|
6006
5976
|
}
|
|
6007
5977
|
function VoidBlock({ block, controller, definition }) {
|
|
6008
5978
|
const { blockTypes, labels } = useQuoin();
|
|
6009
|
-
const readOnly =
|
|
5979
|
+
const readOnly = _chunkP6KYXFZCcjs.useReadOnly.call(void 0, controller);
|
|
6010
5980
|
const { editor: Editor, alwaysEditing = false } = definition;
|
|
6011
5981
|
const name = blockTypeLabel(labels, block, blockTypes);
|
|
6012
5982
|
const blockId = block.id;
|
|
@@ -6054,7 +6024,7 @@ function VoidBlock({ block, controller, definition }) {
|
|
|
6054
6024
|
role: "group",
|
|
6055
6025
|
"aria-label": name,
|
|
6056
6026
|
tabIndex: editorShown ? -1 : void 0,
|
|
6057
|
-
...{ [
|
|
6027
|
+
...{ [_chunkP6KYXFZCcjs.NATIVE_INTERACTION]: editorShown ? "" : void 0 },
|
|
6058
6028
|
onKeyDown,
|
|
6059
6029
|
...focusHandlers,
|
|
6060
6030
|
onClick,
|
|
@@ -6129,12 +6099,12 @@ function collectUi(extensions, definitions, readOnly = false) {
|
|
|
6129
6099
|
|
|
6130
6100
|
// src/canvas/insert-uploads.ts
|
|
6131
6101
|
function fileBlock(file, stored) {
|
|
6132
|
-
if (isImageFile(file)) return { id:
|
|
6102
|
+
if (isImageFile(file)) return { id: _chunk4SLJNZSMcjs.newId.call(void 0, ), type: "IMAGE", attrs: { storageKey: stored.storageKey, alt: "" } };
|
|
6133
6103
|
return { type: "FILE", attrs: fileAttrs(file, stored) };
|
|
6134
6104
|
}
|
|
6135
6105
|
function anchorBlock(controller, at) {
|
|
6136
6106
|
const { doc, selection } = controller.editor.state;
|
|
6137
|
-
const candidates = [_optionalChain([at, 'optionalAccess', _289 => _289.block]),
|
|
6107
|
+
const candidates = [_optionalChain([at, 'optionalAccess', _289 => _289.block]), _chunkZKVOS57Qcjs.headBlockId.call(void 0, selection), _optionalChain([doc, 'access', _290 => _290.blocks, 'access', _291 => _291[doc.blocks.length - 1], 'optionalAccess', _292 => _292.id])];
|
|
6138
6108
|
return _nullishCoalesce(candidates.find((id) => typeof id === "string" && doc.index.has(id)), () => ( null));
|
|
6139
6109
|
}
|
|
6140
6110
|
var writerOf = (controller) => ({
|
|
@@ -6143,7 +6113,7 @@ var writerOf = (controller) => ({
|
|
|
6143
6113
|
});
|
|
6144
6114
|
function movedOn(controller, before) {
|
|
6145
6115
|
const now = writerOf(controller);
|
|
6146
|
-
return now.focus !== before.focus || !
|
|
6116
|
+
return now.focus !== before.focus || !_chunkZKVOS57Qcjs.sameSelection.call(void 0, now.selection, before.selection);
|
|
6147
6117
|
}
|
|
6148
6118
|
async function insertUploads(controller, files, at, { upload, resolveAssetUrl, onError, unavailable, failed }) {
|
|
6149
6119
|
if (!upload) return onError(new Error(unavailable));
|
|
@@ -6171,15 +6141,15 @@ function holdsHead({ selection }, block) {
|
|
|
6171
6141
|
}
|
|
6172
6142
|
function markdownPlaceholder(state, block, labels) {
|
|
6173
6143
|
const { kind, level } = block.attrs;
|
|
6174
|
-
if (kind === "heading") return labels.placeholderHeading(
|
|
6144
|
+
if (kind === "heading") return labels.placeholderHeading(_chunk4SLJNZSMcjs.headingLevel.call(void 0, level));
|
|
6175
6145
|
if (LIST_KINDS.has(kind)) return labels.placeholderList;
|
|
6176
6146
|
if (kind === "quote") return labels.placeholderQuote;
|
|
6177
6147
|
if (kind !== "paragraph") return void 0;
|
|
6178
6148
|
return holdsHead(state, block) || state.doc.blocks.length === 1 ? labels.placeholderEmpty : void 0;
|
|
6179
6149
|
}
|
|
6180
6150
|
function placeholderFor(state, block, labels) {
|
|
6181
|
-
const region =
|
|
6182
|
-
if (region === null ||
|
|
6151
|
+
const region = _chunkZKVOS57Qcjs.primaryRegion.call(void 0, state.schema, block);
|
|
6152
|
+
if (region === null || _chunkZKVOS57Qcjs.regionLength.call(void 0, block, region) > 0) return void 0;
|
|
6183
6153
|
switch (block.type) {
|
|
6184
6154
|
case "MARKDOWN":
|
|
6185
6155
|
return markdownPlaceholder(state, block, labels);
|
|
@@ -6200,13 +6170,13 @@ function firstLine2(text2) {
|
|
|
6200
6170
|
}
|
|
6201
6171
|
var selectedBlockLabel = (labels, definitions, extensionNames) => (block, schema) => {
|
|
6202
6172
|
const { attrs } = block;
|
|
6203
|
-
if (block.type === "IMAGE") return hasPicture(attrs) ?
|
|
6173
|
+
if (block.type === "IMAGE") return hasPicture(attrs) ? _chunk4SLJNZSMcjs.str.call(void 0, attrs.alt) || labels.imageNoAlt : labels.emptyImage;
|
|
6204
6174
|
if (block.type === "CODE") {
|
|
6205
|
-
const language2 =
|
|
6175
|
+
const language2 = _chunk4SLJNZSMcjs.str.call(void 0, attrs.language);
|
|
6206
6176
|
return labels.codeBlockName(_nullishCoalesce(languageName(language2), () => ( (language2 || labels.plainText))));
|
|
6207
6177
|
}
|
|
6208
6178
|
if (block.type === "FILE" && hasFile(attrs)) return labels.fileBlockName(firstLine2(fileName(attrs)));
|
|
6209
|
-
return firstLine2(
|
|
6179
|
+
return firstLine2(_chunk4SLJNZSMcjs.blockPlainText.call(void 0, block, schema)) || blockTypeLabel(labels, block, definitions, extensionNames);
|
|
6210
6180
|
};
|
|
6211
6181
|
|
|
6212
6182
|
// src/canvas/use-block-link-target.ts
|
|
@@ -6217,7 +6187,7 @@ function revealLinkedBlock(controller, hash) {
|
|
|
6217
6187
|
if (id === null || shell === void 0) return false;
|
|
6218
6188
|
const { editor } = controller;
|
|
6219
6189
|
const { doc, schema } = editor.state;
|
|
6220
|
-
editor.dispatch(editor.createTransaction().setSelection(
|
|
6190
|
+
editor.dispatch(editor.createTransaction().setSelection(_chunkZKVOS57Qcjs.startOf.call(void 0, doc, schema, id)));
|
|
6221
6191
|
shell.scrollIntoView({ block: "center" });
|
|
6222
6192
|
return true;
|
|
6223
6193
|
}
|
|
@@ -6237,8 +6207,8 @@ function useBlockLinkTarget(controller, focusOnMount) {
|
|
|
6237
6207
|
// src/canvas/use-delete-reporter.ts
|
|
6238
6208
|
|
|
6239
6209
|
var WRITER_ORIGINS = /* @__PURE__ */ new Set(["command", "input", "paste"]);
|
|
6240
|
-
var isBlockDeletion = (tr) => WRITER_ORIGINS.has(tr.origin) && tr.getMeta(
|
|
6241
|
-
var isEmptyText = (schema, block) =>
|
|
6210
|
+
var isBlockDeletion = (tr) => WRITER_ORIGINS.has(tr.origin) && tr.getMeta(_chunkZKVOS57Qcjs.LINE_JOIN) !== true;
|
|
6211
|
+
var isEmptyText = (schema, block) => _chunkZKVOS57Qcjs.isTextFlow.call(void 0, schema, block) && _chunkZKVOS57Qcjs.regionLength.call(void 0, block, _nullishCoalesce(_chunkZKVOS57Qcjs.primaryRegion.call(void 0, schema, block), () => ( ""))) === 0;
|
|
6242
6212
|
function filledLine({ origin, before }, schema) {
|
|
6243
6213
|
const { selection } = before;
|
|
6244
6214
|
if (origin !== "paste" || _optionalChain([selection, 'optionalAccess', _303 => _303.kind]) !== "text") return () => false;
|
|
@@ -6252,13 +6222,13 @@ function deletions(codec, tr) {
|
|
|
6252
6222
|
const { index, count } = step.toJSON();
|
|
6253
6223
|
if (typeof index !== "number" || typeof count !== "number") return [];
|
|
6254
6224
|
const { blocks } = tr.docs[i];
|
|
6255
|
-
const first = codec.blocksFromDoc(
|
|
6225
|
+
const first = codec.blocksFromDoc(_chunk4SLJNZSMcjs.createDoc.call(void 0, blocks.slice(0, index))).length;
|
|
6256
6226
|
return blocks.slice(index, index + count).flatMap((block, offset) => filled(block) ? [] : [{ block: codec.toQuoin(block), index: first + offset }]);
|
|
6257
6227
|
});
|
|
6258
6228
|
}
|
|
6259
6229
|
function useDeleteReporter(controller, onDelete) {
|
|
6260
6230
|
const latest = _react.useRef.call(void 0, onDelete);
|
|
6261
|
-
|
|
6231
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
6262
6232
|
latest.current = onDelete;
|
|
6263
6233
|
});
|
|
6264
6234
|
_react.useEffect.call(void 0, () => {
|
|
@@ -6289,7 +6259,7 @@ function useTypedInPlaceWarning(definitions, readOnly) {
|
|
|
6289
6259
|
_react.useEffect.call(void 0, () => {
|
|
6290
6260
|
if (readOnly) return;
|
|
6291
6261
|
for (const type of definedTypedInPlace(definitions)) {
|
|
6292
|
-
|
|
6262
|
+
_chunkEH5KXQXYcjs.devWarn.call(void 0,
|
|
6293
6263
|
`the block type "${type}" has a definition of its own, which only a read-only canvas draws. An editable canvas keeps drawing ${type} blocks itself, since they are typed into in place.`
|
|
6294
6264
|
);
|
|
6295
6265
|
}
|
|
@@ -6321,7 +6291,7 @@ var BlockCanvas = _react.forwardRef.call(void 0, function BlockCanvas2({
|
|
|
6321
6291
|
const [voidEditing] = _react.useState.call(void 0, createVoidEditing);
|
|
6322
6292
|
const [uiStore] = _react.useState.call(void 0, createCanvasUiStore);
|
|
6323
6293
|
const [allExtensions] = _react.useState.call(void 0, () => [
|
|
6324
|
-
...
|
|
6294
|
+
..._chunkZKVOS57Qcjs.coreExtensions.call(void 0, ),
|
|
6325
6295
|
voidEditing.extension,
|
|
6326
6296
|
blockMenuKeymap(uiStore),
|
|
6327
6297
|
slashExtension(),
|
|
@@ -6334,7 +6304,7 @@ var BlockCanvas = _react.forwardRef.call(void 0, function BlockCanvas2({
|
|
|
6334
6304
|
const ui = _react.useMemo.call(void 0, () => collectUi(allExtensions, blockTypes, readOnly), [allExtensions, blockTypes, readOnly]);
|
|
6335
6305
|
useTypedInPlaceWarning(blockTypes, readOnly);
|
|
6336
6306
|
const [focusOnMount] = _react.useState.call(void 0, autoFocus);
|
|
6337
|
-
const controller =
|
|
6307
|
+
const controller = _chunkP6KYXFZCcjs.useQuoinEditor.call(void 0, {
|
|
6338
6308
|
blocks,
|
|
6339
6309
|
onChange,
|
|
6340
6310
|
readOnly,
|
|
@@ -6378,7 +6348,7 @@ var BlockCanvas = _react.forwardRef.call(void 0, function BlockCanvas2({
|
|
|
6378
6348
|
[controller, resolveAssetUrl]
|
|
6379
6349
|
);
|
|
6380
6350
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, QuoinProvider, { value: { blockTypes, upload, resolveAssetUrl, onError, highlight, controller, labels }, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VoidEditingContext.Provider, { value: voidEditing, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SlashItemsProvider, { value: slashItems, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BubbleItemsProvider, { value: ui.bubbleItems, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CanvasUiProvider, { value: uiStore, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
6381
|
-
|
|
6351
|
+
_chunkP6KYXFZCcjs.EditorView,
|
|
6382
6352
|
{
|
|
6383
6353
|
controller,
|
|
6384
6354
|
renderers: ui.renderers,
|
|
@@ -6577,7 +6547,7 @@ function useAutosave({
|
|
|
6577
6547
|
const seen = seenRef.current;
|
|
6578
6548
|
seenRef.current = deps;
|
|
6579
6549
|
if (seen === null) return;
|
|
6580
|
-
const unchanged =
|
|
6550
|
+
const unchanged = _chunk4SLJNZSMcjs.sameItems.call(void 0, seen, deps);
|
|
6581
6551
|
if (!unchanged) runner.markDirty();
|
|
6582
6552
|
}, deps);
|
|
6583
6553
|
React10.useEffect(() => {
|
|
@@ -6663,4 +6633,4 @@ function useAutosave({
|
|
|
6663
6633
|
|
|
6664
6634
|
|
|
6665
6635
|
exports.englishLabels = englishLabels; exports.QuoinProvider = QuoinProvider; exports.useQuoin = useQuoin; exports.useLabels = useLabels; exports.coreBlocks = coreBlocks; exports.selectNode = selectNode; exports.focusNode = focusNode; exports.returnFocusToText = returnFocusToText; exports.cn = cn; exports.FOCUS_RING = FOCUS_RING; exports.FLOATING_TOOLBAR = FLOATING_TOOLBAR; exports.MENU_ITEM = MENU_ITEM; exports.runOnBlocks = runOnBlocks; exports.noChange = noChange; exports.styleTargets = styleTargets; exports.MenuIcon = MenuIcon; exports.formatShortcut = formatShortcut; exports.insertBlocks = insertBlocks; exports.insertBlockToWrite = insertBlockToWrite; exports.interceptKeys = interceptKeys; exports.Button = Button; exports.keepFocus = keepFocus; exports.Popover = Popover; exports.PopoverAnchor = PopoverAnchor; exports.PopoverContent = PopoverContent; exports.preventDefault = preventDefault; exports.FilePickerButton = FilePickerButton; exports.selectHandlers = selectHandlers; exports.useNodeKeys = useNodeKeys; exports.bubblePart = bubblePart; exports.virtualAnchor = virtualAnchor; exports.usePartAnchor = usePartAnchor; exports.useRovingFocus = useRovingFocus; exports.useFocusKey = useFocusKey; exports.linkAddress = linkAddress; exports.Input = Input; exports.useOutsidePress = useOutsidePress; exports.DropdownMenu = DropdownMenu; exports.DropdownMenuTrigger = DropdownMenuTrigger; exports.DropdownMenuContent = DropdownMenuContent; exports.DropdownMenuItem = DropdownMenuItem; exports.DropdownMenuCheckboxItem = DropdownMenuCheckboxItem; exports.DropdownMenuRadioGroup = DropdownMenuRadioGroup; exports.DropdownMenuRadioItem = DropdownMenuRadioItem; exports.DropdownMenuSeparator = DropdownMenuSeparator; exports.inlineDirection = inlineDirection; exports.resolveLabels = resolveLabels; exports.rangeRect = rangeRect; exports.suggestionPlugin = suggestionPlugin; exports.dismissSuggestion = dismissSuggestion; exports.useRangeAnchor = useRangeAnchor; exports.toError = toError; exports.SuggestionMenu = SuggestionMenu; exports.replaceTrigger = replaceTrigger; exports.blockFragment = blockFragment; exports.linkedBlockId = linkedBlockId; exports.BlockCanvas = BlockCanvas; exports.UploadField = UploadField; exports.useAutosave = useAutosave;
|
|
6666
|
-
//# sourceMappingURL=chunk-
|
|
6636
|
+
//# sourceMappingURL=chunk-CW3AFJBR.cjs.map
|