quoin-editor 1.0.1 → 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 +12 -0
- package/dist/ai.cjs +78 -78
- package/dist/ai.js +6 -6
- package/dist/catalogue.cjs +24 -24
- package/dist/catalogue.js +16 -16
- package/dist/{chunk-BTBHHBVR.cjs → chunk-4SLJNZSM.cjs} +11 -7
- package/dist/chunk-4SLJNZSM.cjs.map +1 -0
- package/dist/{chunk-62WKUAQY.js → chunk-4XFXB37X.js} +7 -3
- package/dist/chunk-4XFXB37X.js.map +1 -0
- package/dist/{chunk-56C7GCKO.cjs → chunk-5MAYUGTE.cjs} +97 -97
- package/dist/{chunk-56C7GCKO.cjs.map → chunk-5MAYUGTE.cjs.map} +1 -1
- package/dist/{chunk-QXG3HWDS.js → chunk-623AOJM2.js} +4 -4
- package/dist/{chunk-6YSGUAVW.js → chunk-6NULZPVC.js} +6 -8
- package/dist/chunk-6NULZPVC.js.map +1 -0
- package/dist/{chunk-XX5FTPJR.cjs → chunk-6V6GGBDK.cjs} +10 -10
- package/dist/{chunk-XX5FTPJR.cjs.map → chunk-6V6GGBDK.cjs.map} +1 -1
- package/dist/{chunk-CLTHD5GO.cjs → chunk-73653CJ4.cjs} +3 -3
- package/dist/{chunk-CLTHD5GO.cjs.map → chunk-73653CJ4.cjs.map} +1 -1
- package/dist/{chunk-UBNG5YCG.js → chunk-ADSJ42DO.js} +6 -6
- package/dist/{chunk-PX6LZMH4.cjs → chunk-AUOEM3SF.cjs} +44 -44
- package/dist/{chunk-PX6LZMH4.cjs.map → chunk-AUOEM3SF.cjs.map} +1 -1
- package/dist/{chunk-ESMAW4NK.cjs → chunk-BQANU5BH.cjs} +12 -12
- package/dist/{chunk-ESMAW4NK.cjs.map → chunk-BQANU5BH.cjs.map} +1 -1
- package/dist/{chunk-UCXLRRWY.js → chunk-C23RQVRK.js} +5 -5
- package/dist/{chunk-5R3ISX4A.cjs → chunk-CW3AFJBR.cjs} +288 -295
- package/dist/chunk-CW3AFJBR.cjs.map +1 -0
- package/dist/{chunk-26Q4LSIU.js → chunk-DUE3HCZD.js} +2 -2
- package/dist/{chunk-SSIRYUCK.js → chunk-EPARJI4V.js} +6 -5
- package/dist/chunk-EPARJI4V.js.map +1 -0
- package/dist/{chunk-V3KLMSRO.cjs → chunk-FDRUAL3Z.cjs} +30 -30
- package/dist/{chunk-V3KLMSRO.cjs.map → chunk-FDRUAL3Z.cjs.map} +1 -1
- package/dist/{chunk-A4IJSJKL.js → chunk-IQBMAE3F.js} +5 -5
- package/dist/{chunk-PIWRSX7U.js → chunk-JHQUHFLX.js} +7 -7
- package/dist/{chunk-6PKVJZQV.cjs → chunk-KUYZMSMF.cjs} +8 -8
- package/dist/{chunk-6PKVJZQV.cjs.map → chunk-KUYZMSMF.cjs.map} +1 -1
- package/dist/{chunk-UDAVVEFC.cjs → chunk-LLTEGXWZ.cjs} +54 -54
- package/dist/{chunk-UDAVVEFC.cjs.map → chunk-LLTEGXWZ.cjs.map} +1 -1
- package/dist/{chunk-RQW3P3GH.js → chunk-N4FGA3H4.js} +5 -5
- package/dist/{chunk-LV6EYPJO.js → chunk-NEZJ7ZP5.js} +2 -2
- package/dist/{chunk-UPSLDTLT.js → chunk-OBMBSU2S.js} +3 -3
- package/dist/{chunk-WMN6566P.js → chunk-OSHZQR3W.js} +5 -5
- package/dist/{chunk-5M4QG3ZC.cjs → chunk-P6KYXFZC.cjs} +116 -115
- package/dist/chunk-P6KYXFZC.cjs.map +1 -0
- package/dist/{chunk-75C6PX2L.cjs → chunk-R2BLBV43.cjs} +23 -23
- package/dist/{chunk-75C6PX2L.cjs.map → chunk-R2BLBV43.cjs.map} +1 -1
- package/dist/{chunk-6LMS5J3Y.js → chunk-RJRX34BZ.js} +2 -2
- package/dist/{chunk-LE3F7WIP.js → chunk-T43RZTUT.js} +148 -155
- package/dist/chunk-T43RZTUT.js.map +1 -0
- package/dist/{chunk-MLRAVUFG.cjs → chunk-TLGX43P6.cjs} +17 -19
- package/dist/chunk-TLGX43P6.cjs.map +1 -0
- package/dist/{chunk-LMAEPFTX.js → chunk-U3LOLYAU.js} +2 -2
- package/dist/{chunk-JJ3RASQS.cjs → chunk-UEKXVCKC.cjs} +101 -91
- package/dist/chunk-UEKXVCKC.cjs.map +1 -0
- package/dist/{chunk-GPIDU3GN.js → chunk-VCLL5C7J.js} +5 -5
- package/dist/{chunk-PGSS4IOS.js → chunk-VRS6WCEK.js} +19 -9
- package/dist/chunk-VRS6WCEK.js.map +1 -0
- package/dist/{chunk-VACTAZWS.cjs → chunk-WEYDDIBQ.cjs} +14 -14
- package/dist/{chunk-VACTAZWS.cjs.map → chunk-WEYDDIBQ.cjs.map} +1 -1
- package/dist/{chunk-F5V3IEEE.cjs → chunk-X4HDKFW5.cjs} +27 -27
- package/dist/{chunk-F5V3IEEE.cjs.map → chunk-X4HDKFW5.cjs.map} +1 -1
- package/dist/{chunk-EYFCOV3T.cjs → chunk-X4P4TQXH.cjs} +5 -5
- package/dist/{chunk-EYFCOV3T.cjs.map → chunk-X4P4TQXH.cjs.map} +1 -1
- package/dist/{chunk-UWNZG2SD.cjs → chunk-XA3UEJIW.cjs} +3 -3
- package/dist/{chunk-UWNZG2SD.cjs.map → chunk-XA3UEJIW.cjs.map} +1 -1
- package/dist/{chunk-OCCKQHCY.js → chunk-YBMUEEM5.js} +2 -2
- package/dist/{chunk-HOIDJEVI.cjs → chunk-ZKVOS57Q.cjs} +217 -217
- package/dist/{chunk-HOIDJEVI.cjs.map → chunk-ZKVOS57Q.cjs.map} +1 -1
- package/dist/comments.cjs +58 -58
- package/dist/comments.js +7 -7
- package/dist/diff.cjs +28 -27
- package/dist/diff.cjs.map +1 -1
- package/dist/diff.js +5 -4
- package/dist/diff.js.map +1 -1
- package/dist/docx.cjs +30 -30
- package/dist/docx.js +3 -3
- package/dist/embed.cjs +8 -8
- package/dist/embed.js +7 -7
- package/dist/emoji.cjs +7 -7
- package/dist/emoji.js +6 -6
- package/dist/engine.cjs +4 -4
- package/dist/engine.js +3 -3
- package/dist/find.cjs +7 -7
- package/dist/find.js +6 -6
- package/dist/headless.cjs +5 -5
- package/dist/headless.js +4 -4
- package/dist/index.cjs +6 -6
- package/dist/index.js +5 -5
- package/dist/math.cjs +9 -9
- package/dist/math.js +8 -8
- package/dist/mention.cjs +9 -9
- package/dist/mention.js +8 -8
- package/dist/presence.cjs +39 -42
- package/dist/presence.cjs.map +1 -1
- package/dist/presence.js +9 -12
- package/dist/presence.js.map +1 -1
- package/dist/stats.cjs +8 -8
- package/dist/stats.js +7 -7
- package/dist/table.cjs +7 -7
- package/dist/table.js +6 -6
- package/dist/toc.cjs +7 -7
- package/dist/toc.js +6 -6
- package/dist/view.cjs +4 -4
- package/dist/view.js +2 -2
- package/dist/yjs.cjs +223 -171
- package/dist/yjs.cjs.map +1 -1
- package/dist/yjs.js +104 -52
- package/dist/yjs.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-5M4QG3ZC.cjs.map +0 -1
- package/dist/chunk-5R3ISX4A.cjs.map +0 -1
- package/dist/chunk-62WKUAQY.js.map +0 -1
- package/dist/chunk-6YSGUAVW.js.map +0 -1
- package/dist/chunk-BTBHHBVR.cjs.map +0 -1
- package/dist/chunk-JJ3RASQS.cjs.map +0 -1
- package/dist/chunk-LE3F7WIP.js.map +0 -1
- package/dist/chunk-MLRAVUFG.cjs.map +0 -1
- package/dist/chunk-PGSS4IOS.js.map +0 -1
- package/dist/chunk-SSIRYUCK.js.map +0 -1
- /package/dist/{chunk-QXG3HWDS.js.map → chunk-623AOJM2.js.map} +0 -0
- /package/dist/{chunk-UBNG5YCG.js.map → chunk-ADSJ42DO.js.map} +0 -0
- /package/dist/{chunk-UCXLRRWY.js.map → chunk-C23RQVRK.js.map} +0 -0
- /package/dist/{chunk-26Q4LSIU.js.map → chunk-DUE3HCZD.js.map} +0 -0
- /package/dist/{chunk-A4IJSJKL.js.map → chunk-IQBMAE3F.js.map} +0 -0
- /package/dist/{chunk-PIWRSX7U.js.map → chunk-JHQUHFLX.js.map} +0 -0
- /package/dist/{chunk-RQW3P3GH.js.map → chunk-N4FGA3H4.js.map} +0 -0
- /package/dist/{chunk-LV6EYPJO.js.map → chunk-NEZJ7ZP5.js.map} +0 -0
- /package/dist/{chunk-UPSLDTLT.js.map → chunk-OBMBSU2S.js.map} +0 -0
- /package/dist/{chunk-WMN6566P.js.map → chunk-OSHZQR3W.js.map} +0 -0
- /package/dist/{chunk-6LMS5J3Y.js.map → chunk-RJRX34BZ.js.map} +0 -0
- /package/dist/{chunk-LMAEPFTX.js.map → chunk-U3LOLYAU.js.map} +0 -0
- /package/dist/{chunk-GPIDU3GN.js.map → chunk-VCLL5C7J.js.map} +0 -0
- /package/dist/{chunk-OCCKQHCY.js.map → chunk-YBMUEEM5.js.map} +0 -0
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
var
|
|
29
|
+
var _chunkP6KYXFZCcjs = require('./chunk-P6KYXFZC.cjs');
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
|
|
@@ -100,10 +100,10 @@ var _chunkEH5KXQXYcjs = require('./chunk-EH5KXQXY.cjs');
|
|
|
100
100
|
|
|
101
101
|
|
|
102
102
|
|
|
103
|
-
var
|
|
103
|
+
var _chunkZKVOS57Qcjs = require('./chunk-ZKVOS57Q.cjs');
|
|
104
104
|
|
|
105
105
|
|
|
106
|
-
var
|
|
106
|
+
var _chunk6V6GGBDKcjs = require('./chunk-6V6GGBDK.cjs');
|
|
107
107
|
|
|
108
108
|
|
|
109
109
|
|
|
@@ -129,7 +129,7 @@ var _chunkXX5FTPJRcjs = require('./chunk-XX5FTPJR.cjs');
|
|
|
129
129
|
|
|
130
130
|
|
|
131
131
|
|
|
132
|
-
var
|
|
132
|
+
var _chunk4SLJNZSMcjs = require('./chunk-4SLJNZSM.cjs');
|
|
133
133
|
|
|
134
134
|
// src/canvas/BlockCanvas.tsx
|
|
135
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);
|
|
@@ -389,7 +389,7 @@ function useLabels() {
|
|
|
389
389
|
}
|
|
390
390
|
|
|
391
391
|
// src/blocks/caption-markdown.ts
|
|
392
|
-
var captionText = (markdown) =>
|
|
392
|
+
var captionText = (markdown) => _chunk4SLJNZSMcjs.inlineText.call(void 0, _chunk4SLJNZSMcjs.parseInline.call(void 0, markdown), () => "");
|
|
393
393
|
|
|
394
394
|
// src/blocks/code/HighlightOverlay.tsx
|
|
395
395
|
|
|
@@ -414,17 +414,17 @@ function assetHref(resolveAssetUrl, storageKey) {
|
|
|
414
414
|
if (storageKey === "") return null;
|
|
415
415
|
try {
|
|
416
416
|
const src = resolveAssetUrl(storageKey);
|
|
417
|
-
return typeof src === "string" &&
|
|
417
|
+
return typeof src === "string" && _chunk4SLJNZSMcjs.sanitizeAssetUrl.call(void 0, src) || null;
|
|
418
418
|
} catch (e2) {
|
|
419
419
|
return null;
|
|
420
420
|
}
|
|
421
421
|
}
|
|
422
422
|
|
|
423
423
|
// src/blocks/image/image-source.ts
|
|
424
|
-
var hasPicture = (attrs) =>
|
|
424
|
+
var hasPicture = (attrs) => _chunk4SLJNZSMcjs.str.call(void 0, attrs.url) !== "" || _chunk4SLJNZSMcjs.str.call(void 0, attrs.storageKey) !== "";
|
|
425
425
|
function imageSource(attrs, resolveAssetUrl) {
|
|
426
|
-
const url =
|
|
427
|
-
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);
|
|
428
428
|
}
|
|
429
429
|
|
|
430
430
|
// src/blocks/previews.tsx
|
|
@@ -439,34 +439,34 @@ var TONE = {
|
|
|
439
439
|
};
|
|
440
440
|
function MarkdownPreview({ data }) {
|
|
441
441
|
const labels = useLabels();
|
|
442
|
-
const markdown =
|
|
442
|
+
const markdown = _chunk4SLJNZSMcjs.str.call(void 0, data.markdown);
|
|
443
443
|
if (markdown.trim() === "") return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: HINT, children: labels.emptyMarkdown });
|
|
444
444
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "whitespace-pre-wrap text-base leading-7", children: markdown });
|
|
445
445
|
}
|
|
446
446
|
function CodePreview({ data }) {
|
|
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:
|
|
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) }) });
|
|
448
448
|
}
|
|
449
449
|
function ImagePreview({ data }) {
|
|
450
450
|
const { resolveAssetUrl, labels } = useQuoin();
|
|
451
451
|
const src = imageSource(data, resolveAssetUrl);
|
|
452
452
|
if (src === null) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: HINT, children: labels.emptyImage });
|
|
453
|
-
const caption = captionText(
|
|
453
|
+
const caption = captionText(_chunk4SLJNZSMcjs.str.call(void 0, data.caption));
|
|
454
454
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "figure", { children: [
|
|
455
|
-
/* @__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" }),
|
|
456
456
|
caption && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "figcaption", { className: HINT, children: caption })
|
|
457
457
|
] });
|
|
458
458
|
}
|
|
459
459
|
function FilePreview({ data }) {
|
|
460
460
|
const labels = useLabels();
|
|
461
|
-
const name =
|
|
461
|
+
const name = _chunk4SLJNZSMcjs.str.call(void 0, data.filename);
|
|
462
462
|
if (name === "") return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: HINT, children: labels.emptyFile });
|
|
463
463
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-sm", children: name });
|
|
464
464
|
}
|
|
465
465
|
function CalloutPreview({ data }) {
|
|
466
466
|
const labels = useLabels();
|
|
467
|
-
const body =
|
|
467
|
+
const body = _chunk4SLJNZSMcjs.str.call(void 0, data.body);
|
|
468
468
|
if (body.trim() === "") return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: HINT, children: labels.emptyCallout });
|
|
469
|
-
const tone =
|
|
469
|
+
const tone = _chunk4SLJNZSMcjs.str.call(void 0, data.tone) || "info";
|
|
470
470
|
const paint = _nullishCoalesce(TONE[tone], () => ( "border-border bg-muted/50"));
|
|
471
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 });
|
|
472
472
|
}
|
|
@@ -518,7 +518,7 @@ function selectNode(controller, blockId) {
|
|
|
518
518
|
const { editor } = controller;
|
|
519
519
|
const { selection } = editor.state;
|
|
520
520
|
if (_optionalChain([selection, 'optionalAccess', _2 => _2.kind]) === "node" && selection.block === blockId) return;
|
|
521
|
-
|
|
521
|
+
_chunkP6KYXFZCcjs.dispatchSelection.call(void 0, controller, _chunkZKVOS57Qcjs.nodeSelection.call(void 0, blockId));
|
|
522
522
|
}
|
|
523
523
|
function focusNode(controller, blockId) {
|
|
524
524
|
selectNode(controller, blockId);
|
|
@@ -548,8 +548,8 @@ var OPEN_EDITOR = "openEditor";
|
|
|
548
548
|
var ABOVE_CORE_KEYS = 200;
|
|
549
549
|
function turnedBlock(tr, { doc, selection }) {
|
|
550
550
|
if (_optionalChain([selection, 'optionalAccess', _3 => _3.kind]) !== "node" || tr.origin === "remote" || tr.origin === "reconcile") return void 0;
|
|
551
|
-
const before =
|
|
552
|
-
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;
|
|
553
553
|
}
|
|
554
554
|
function createVoidEditing() {
|
|
555
555
|
const starters = /* @__PURE__ */ new Map();
|
|
@@ -569,7 +569,7 @@ function createVoidEditing() {
|
|
|
569
569
|
_optionalChain([start, 'optionalCall', _6 => _6()]);
|
|
570
570
|
};
|
|
571
571
|
return {
|
|
572
|
-
extension:
|
|
572
|
+
extension: _chunkZKVOS57Qcjs.defineExtension.call(void 0, {
|
|
573
573
|
name: "void-editing",
|
|
574
574
|
priority: ABOVE_CORE_KEYS,
|
|
575
575
|
keymap: { Enter: openEditor },
|
|
@@ -866,32 +866,32 @@ function settle(tr, before) {
|
|
|
866
866
|
const { schema } = tr.before;
|
|
867
867
|
const result = tr.selection;
|
|
868
868
|
if (_optionalChain([result, 'optionalAccess', _21 => _21.kind]) !== "blocks" || _optionalChain([before, 'optionalAccess', _22 => _22.kind]) === "blocks") return result;
|
|
869
|
-
const ids =
|
|
870
|
-
const head =
|
|
871
|
-
if (head !== null && ids.includes(head) &&
|
|
872
|
-
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]);
|
|
873
873
|
}
|
|
874
874
|
function runOnBlocks(controller, blockIds, command) {
|
|
875
875
|
const { state } = controller.editor;
|
|
876
876
|
const ids = blockIds.filter((id) => state.doc.index.has(id));
|
|
877
877
|
if (ids.length === 0) return false;
|
|
878
878
|
const before = state.selection;
|
|
879
|
-
const exact =
|
|
880
|
-
const ran = exact ? before :
|
|
881
|
-
const { ok, tr } =
|
|
882
|
-
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);
|
|
883
883
|
const settled = exact ? result.selection : settle(result, before);
|
|
884
|
-
if (!
|
|
885
|
-
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);
|
|
886
886
|
return ok;
|
|
887
887
|
}
|
|
888
888
|
var noChange = () => true;
|
|
889
889
|
|
|
890
890
|
// src/gutter/block-menu-items.ts
|
|
891
|
-
var rangeOf = (blockIds) =>
|
|
891
|
+
var rangeOf = (blockIds) => _chunkZKVOS57Qcjs.blockRangeSelection.call(void 0, blockIds[0], blockIds[blockIds.length - 1]);
|
|
892
892
|
function selectedWith(state, blockId) {
|
|
893
893
|
const { doc, selection } = state;
|
|
894
|
-
const selected =
|
|
894
|
+
const selected = _chunkZKVOS57Qcjs.selectedBlockIds.call(void 0, doc, selection);
|
|
895
895
|
const ofBlocks = _optionalChain([selection, 'optionalAccess', _23 => _23.kind]) === "blocks" || _optionalChain([selection, 'optionalAccess', _24 => _24.kind]) === "text" && selected.length > 1;
|
|
896
896
|
return ofBlocks && selected.includes(blockId) ? selected : null;
|
|
897
897
|
}
|
|
@@ -899,8 +899,8 @@ function menuTargets(state, blockId) {
|
|
|
899
899
|
const selected = selectedWith(state, blockId);
|
|
900
900
|
if (selected !== null) return selected;
|
|
901
901
|
const { doc } = state;
|
|
902
|
-
const index =
|
|
903
|
-
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);
|
|
904
904
|
}
|
|
905
905
|
function styleTargets(state, blockId) {
|
|
906
906
|
return _nullishCoalesce(selectedWith(state, blockId), () => ( [blockId]));
|
|
@@ -910,12 +910,12 @@ function menuActions(core, extra = []) {
|
|
|
910
910
|
}
|
|
911
911
|
function markdownOf(editor, blockIds, resolveAssetUrl) {
|
|
912
912
|
const { doc } = editor.state;
|
|
913
|
-
const range =
|
|
913
|
+
const range = _chunkZKVOS57Qcjs.selectedBlockRange.call(void 0, doc, rangeOf(blockIds));
|
|
914
914
|
if (range === null) return "";
|
|
915
|
-
const blocks = editor.codec.blocksFromDoc(
|
|
916
|
-
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 });
|
|
917
917
|
}
|
|
918
|
-
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;
|
|
919
919
|
function coreBlockMenuActions(labels, options) {
|
|
920
920
|
const copy = (controller, blockIds, text2) => {
|
|
921
921
|
void copyText(text2).then((copied) => {
|
|
@@ -929,7 +929,7 @@ function coreBlockMenuActions(labels, options) {
|
|
|
929
929
|
label: labels.duplicate,
|
|
930
930
|
icon: _lucidereact.CopyPlus,
|
|
931
931
|
shortcut: "Mod-d",
|
|
932
|
-
run: (controller, blockIds) => runOnBlocks(controller, blockIds,
|
|
932
|
+
run: (controller, blockIds) => runOnBlocks(controller, blockIds, _chunkZKVOS57Qcjs.duplicateBlocks.call(void 0, ))
|
|
933
933
|
},
|
|
934
934
|
{
|
|
935
935
|
id: "copy",
|
|
@@ -948,23 +948,23 @@ function coreBlockMenuActions(labels, options) {
|
|
|
948
948
|
label: labels.moveUp,
|
|
949
949
|
icon: _lucidereact.ArrowUp,
|
|
950
950
|
shortcut: "Mod-Shift-ArrowUp",
|
|
951
|
-
run: (controller, blockIds) => runOnBlocks(controller, blockIds,
|
|
952
|
-
available: applies(
|
|
951
|
+
run: (controller, blockIds) => runOnBlocks(controller, blockIds, _chunkZKVOS57Qcjs.moveBlocksUp),
|
|
952
|
+
available: applies(_chunkZKVOS57Qcjs.moveBlocksUp)
|
|
953
953
|
},
|
|
954
954
|
{
|
|
955
955
|
id: "move-down",
|
|
956
956
|
label: labels.moveDown,
|
|
957
957
|
icon: _lucidereact.ArrowDown,
|
|
958
958
|
shortcut: "Mod-Shift-ArrowDown",
|
|
959
|
-
run: (controller, blockIds) => runOnBlocks(controller, blockIds,
|
|
960
|
-
available: applies(
|
|
959
|
+
run: (controller, blockIds) => runOnBlocks(controller, blockIds, _chunkZKVOS57Qcjs.moveBlocksDown),
|
|
960
|
+
available: applies(_chunkZKVOS57Qcjs.moveBlocksDown)
|
|
961
961
|
},
|
|
962
962
|
{
|
|
963
963
|
id: "delete",
|
|
964
964
|
label: labels.delete,
|
|
965
965
|
icon: _lucidereact.Trash,
|
|
966
966
|
destructive: true,
|
|
967
|
-
run: (controller, blockIds) => runOnBlocks(controller, blockIds,
|
|
967
|
+
run: (controller, blockIds) => runOnBlocks(controller, blockIds, _chunkZKVOS57Qcjs.deleteBlocks)
|
|
968
968
|
}
|
|
969
969
|
];
|
|
970
970
|
}
|
|
@@ -1022,7 +1022,7 @@ var sharedTone = (blocks) => {
|
|
|
1022
1022
|
function CalloutMenus({ kit, controller, blocks }) {
|
|
1023
1023
|
const labels = useLabels();
|
|
1024
1024
|
const blockIds = blocks.map((block) => block.id);
|
|
1025
|
-
const apply = (patch) => runOnBlocks(controller, blockIds,
|
|
1025
|
+
const apply = (patch) => runOnBlocks(controller, blockIds, _chunkZKVOS57Qcjs.setAttrs.call(void 0, patch));
|
|
1026
1026
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
1027
1027
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, kit.Sub, { children: [
|
|
1028
1028
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, kit.SubTrigger, { children: [
|
|
@@ -1047,7 +1047,7 @@ function CalloutMenus({ kit, controller, blocks }) {
|
|
|
1047
1047
|
|
|
1048
1048
|
function sharedColor(blocks, key) {
|
|
1049
1049
|
const coloured = blocks.filter((block) => block.type === "MARKDOWN");
|
|
1050
|
-
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"))));
|
|
1051
1051
|
return colors.size === 1 ? [...colors][0] : "";
|
|
1052
1052
|
}
|
|
1053
1053
|
var swatches = {
|
|
@@ -1060,7 +1060,7 @@ function ColorGroups({ kit, value, onPick }) {
|
|
|
1060
1060
|
const backgroundTitle = _react.useId.call(void 0, );
|
|
1061
1061
|
const group = (key, title, titleId) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
1062
1062
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, kit.Label, { id: titleId, children: title }),
|
|
1063
|
-
/* @__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: [
|
|
1064
1064
|
swatches[key](name),
|
|
1065
1065
|
labels.colors[name]
|
|
1066
1066
|
] }, name)) })
|
|
@@ -1075,7 +1075,7 @@ function ColorMenu({ kit, controller, blocks }) {
|
|
|
1075
1075
|
const labels = useLabels();
|
|
1076
1076
|
const blockIds = blocks.map((block) => block.id);
|
|
1077
1077
|
const value = { color: sharedColor(blocks, "color"), background: sharedColor(blocks, "background") };
|
|
1078
|
-
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 }));
|
|
1079
1079
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, kit.Sub, { children: [
|
|
1080
1080
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, kit.SubTrigger, { children: [
|
|
1081
1081
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, MenuIcon, { icon: _lucidereact.Palette }),
|
|
@@ -1106,7 +1106,7 @@ function modifierText(modifier, isMac, { keyNames }) {
|
|
|
1106
1106
|
return Object.hasOwn(MODIFIERS, name) ? keyNames[MODIFIERS[name]] : capitalized(modifier);
|
|
1107
1107
|
}
|
|
1108
1108
|
function formatShortcut(shortcut, platform = {}) {
|
|
1109
|
-
const { isMac =
|
|
1109
|
+
const { isMac = _chunkZKVOS57Qcjs.detectMac.call(void 0, ), labels = englishLabels } = platform;
|
|
1110
1110
|
const parts = shortcut.split(shortcut.includes("+") ? "+" : "-");
|
|
1111
1111
|
const key = _nullishCoalesce(parts.pop(), () => ( shortcut));
|
|
1112
1112
|
const written = [...parts.map((modifier) => modifierText(modifier, isMac, labels)), keyText(key, labels)];
|
|
@@ -1195,21 +1195,21 @@ function languageOptions(query, plainText) {
|
|
|
1195
1195
|
|
|
1196
1196
|
|
|
1197
1197
|
// src/blocks/insert-blocks.ts
|
|
1198
|
-
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;
|
|
1199
1199
|
function fresh(schema, { id, type, attrs, regions }, indent3) {
|
|
1200
|
-
const block =
|
|
1200
|
+
const block = _chunkZKVOS57Qcjs.createBlock.call(void 0, schema, type, attrs, indent3, id);
|
|
1201
1201
|
return regions === void 0 ? block : { ...block, regions };
|
|
1202
1202
|
}
|
|
1203
1203
|
function landOnLine(tr, schema, index, indent3) {
|
|
1204
1204
|
const next = tr.doc.blocks[index];
|
|
1205
1205
|
const reused = next !== void 0 && next.indent === indent3 && isEmptyParagraph(schema, next);
|
|
1206
|
-
const line = reused ? next :
|
|
1207
|
-
if (!reused) tr.step(
|
|
1208
|
-
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));
|
|
1209
1209
|
}
|
|
1210
1210
|
function land(tr, schema, landing, first, after) {
|
|
1211
|
-
if (landing === "text") tr.setSelection(
|
|
1212
|
-
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);
|
|
1213
1213
|
if (landing === "line") landOnLine(tr, schema, after, first.indent);
|
|
1214
1214
|
}
|
|
1215
1215
|
function anchorIndex(doc, id) {
|
|
@@ -1219,24 +1219,24 @@ function anchorIndex(doc, id) {
|
|
|
1219
1219
|
function insertBlocks(blocks, landing, anchorId) {
|
|
1220
1220
|
return (state, dispatch) => {
|
|
1221
1221
|
const { doc, schema } = state;
|
|
1222
|
-
const id = anchorId === void 0 ?
|
|
1222
|
+
const id = anchorId === void 0 ? _chunkZKVOS57Qcjs.headBlockId.call(void 0, state.selection) : anchorId;
|
|
1223
1223
|
const index = anchorIndex(doc, id);
|
|
1224
1224
|
if (index === void 0 || blocks.length === 0) return false;
|
|
1225
1225
|
const anchor = id === null ? void 0 : doc.blocks[index];
|
|
1226
1226
|
const created2 = blocks.map((block) => fresh(schema, block, _nullishCoalesce(_optionalChain([anchor, 'optionalAccess', _33 => _33.indent]), () => ( 0))));
|
|
1227
|
-
const tr = new (0,
|
|
1227
|
+
const tr = new (0, _chunkZKVOS57Qcjs.Transaction)(state);
|
|
1228
1228
|
const empty = anchor !== void 0 && landing !== "stay" && isEmptyParagraph(schema, anchor);
|
|
1229
1229
|
if (empty && landing === "line") {
|
|
1230
|
-
tr.step(
|
|
1230
|
+
tr.step(_chunkZKVOS57Qcjs.insertBlocksStep.call(void 0, index, created2)).setSelection(_chunkZKVOS57Qcjs.startOf.call(void 0, tr.doc, schema, anchor.id));
|
|
1231
1231
|
} else if (empty) {
|
|
1232
1232
|
const [first, ...rest] = created2;
|
|
1233
1233
|
const filled = { ...first, id: anchor.id };
|
|
1234
|
-
tr.step(
|
|
1235
|
-
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));
|
|
1236
1236
|
land(tr, schema, landing, filled, index + created2.length);
|
|
1237
1237
|
} else {
|
|
1238
|
-
const at = anchor === void 0 ? 0 :
|
|
1239
|
-
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));
|
|
1240
1240
|
land(tr, schema, landing, created2[0], at + created2.length);
|
|
1241
1241
|
}
|
|
1242
1242
|
_optionalChain([dispatch, 'optionalCall', _34 => _34(tr)]);
|
|
@@ -1249,7 +1249,7 @@ function landingFor(flow, hasEditor) {
|
|
|
1249
1249
|
}
|
|
1250
1250
|
function insertBlockToWrite(block, hasEditor, anchorId) {
|
|
1251
1251
|
return (state, dispatch) => {
|
|
1252
|
-
const landing = landingFor(
|
|
1252
|
+
const landing = landingFor(_chunk4SLJNZSMcjs.specFor.call(void 0, state.schema, block.type).flow, hasEditor);
|
|
1253
1253
|
return insertBlocks([block], landing, anchorId)(state, dispatch);
|
|
1254
1254
|
};
|
|
1255
1255
|
}
|
|
@@ -1257,20 +1257,20 @@ function insertBlockToWrite(block, hasEditor, anchorId) {
|
|
|
1257
1257
|
// src/blocks/code/code-actions.ts
|
|
1258
1258
|
function writeCode(controller, blockId, code, group) {
|
|
1259
1259
|
const { editor } = controller;
|
|
1260
|
-
const block =
|
|
1260
|
+
const block = _chunk4SLJNZSMcjs.blockById.call(void 0, editor.state.doc, blockId);
|
|
1261
1261
|
if (block === void 0 || block.attrs.code === code) return;
|
|
1262
|
-
controller.dispatch(editor.createTransaction().step(
|
|
1262
|
+
controller.dispatch(editor.createTransaction().step(_chunkZKVOS57Qcjs.setAttrsStep.call(void 0, blockId, { code })).setMeta(_chunkZKVOS57Qcjs.HISTORY_GROUP, group));
|
|
1263
1263
|
}
|
|
1264
1264
|
function codeToParagraph(blockId) {
|
|
1265
1265
|
return (state, dispatch) => {
|
|
1266
|
-
const turn =
|
|
1267
|
-
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]);
|
|
1268
1268
|
if (ok && tr !== null) _optionalChain([dispatch, 'optionalCall', _35 => _35(tr)]);
|
|
1269
1269
|
return ok;
|
|
1270
1270
|
};
|
|
1271
1271
|
}
|
|
1272
1272
|
function leaveCode(controller, blockId, direction, addsLine = false) {
|
|
1273
|
-
const moved =
|
|
1273
|
+
const moved = _chunkP6KYXFZCcjs.moveToNeighbour.call(void 0, controller, blockId, direction);
|
|
1274
1274
|
if (!moved && !(addsLine && controller.run(insertBlocks([{ type: "MARKDOWN" }], "text", blockId)))) return false;
|
|
1275
1275
|
controller.focus();
|
|
1276
1276
|
return true;
|
|
@@ -1348,8 +1348,8 @@ var MOD_KEYS = [
|
|
|
1348
1348
|
["Mod-a", ({ value, start, end }) => start === 0 && end === value.length ? { kind: "selectAll" } : null]
|
|
1349
1349
|
];
|
|
1350
1350
|
function codeKeyAction(event, field, isMac) {
|
|
1351
|
-
const name =
|
|
1352
|
-
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);
|
|
1353
1353
|
const handler = _nullishCoalesce(_optionalChain([modKey, 'optionalAccess', _39 => _39[1]]), () => ( (Object.hasOwn(KEYS, name) ? KEYS[name] : void 0)));
|
|
1354
1354
|
return _nullishCoalesce(_optionalChain([handler, 'optionalCall', _40 => _40(field)]), () => ( null));
|
|
1355
1355
|
}
|
|
@@ -1395,7 +1395,7 @@ function travel({ controller, blockId, area }, command) {
|
|
|
1395
1395
|
const before = area.value;
|
|
1396
1396
|
controller.run(command);
|
|
1397
1397
|
const { selection } = controller.editor.state;
|
|
1398
|
-
const edit2 =
|
|
1398
|
+
const edit2 = _chunkP6KYXFZCcjs.textDiff.call(void 0, before, area.value);
|
|
1399
1399
|
if (_optionalChain([selection, 'optionalAccess', _44 => _44.kind]) !== "node" || selection.block !== blockId) controller.focus();
|
|
1400
1400
|
else if (edit2 !== null) area.setSelectionRange(edit2.from + edit2.insert.length, edit2.from + edit2.insert.length);
|
|
1401
1401
|
return true;
|
|
@@ -1411,13 +1411,13 @@ function runCodeAction(action, context) {
|
|
|
1411
1411
|
case "paragraph":
|
|
1412
1412
|
return selectAndFocus(context, codeToParagraph(blockId));
|
|
1413
1413
|
case "undo":
|
|
1414
|
-
return travel(context,
|
|
1414
|
+
return travel(context, _chunkZKVOS57Qcjs.undo);
|
|
1415
1415
|
case "redo":
|
|
1416
|
-
return travel(context,
|
|
1416
|
+
return travel(context, _chunkZKVOS57Qcjs.redo);
|
|
1417
1417
|
case "selectAll":
|
|
1418
|
-
return selectAndFocus(context,
|
|
1418
|
+
return selectAndFocus(context, _chunkZKVOS57Qcjs.selectAll);
|
|
1419
1419
|
case "escape":
|
|
1420
|
-
return selectAndFocus(context,
|
|
1420
|
+
return selectAndFocus(context, _chunkZKVOS57Qcjs.setSelection.call(void 0, _chunkZKVOS57Qcjs.blockRangeSelection.call(void 0, blockId)));
|
|
1421
1421
|
case "controls":
|
|
1422
1422
|
context.focusControls();
|
|
1423
1423
|
return true;
|
|
@@ -1486,18 +1486,18 @@ function CodeEditor({ block, controller, field, focusControls }) {
|
|
|
1486
1486
|
useTypeIntoCode(controller, blockId, field, edit2);
|
|
1487
1487
|
const onKeyDown = (event) => {
|
|
1488
1488
|
const area = event.currentTarget;
|
|
1489
|
-
if (
|
|
1489
|
+
if (_chunkP6KYXFZCcjs.isComposingKey.call(void 0, controller, event.nativeEvent)) return;
|
|
1490
1490
|
const action = codeKeyAction(event, fieldOf(area), controller.isMac);
|
|
1491
1491
|
if (action !== null && runCodeAction(action, { controller, blockId, area, edit: edit2, focusControls })) event.preventDefault();
|
|
1492
1492
|
};
|
|
1493
|
-
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: [
|
|
1494
1494
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
1495
1495
|
HighlightOverlay,
|
|
1496
1496
|
{
|
|
1497
1497
|
"aria-hidden": "true",
|
|
1498
1498
|
drawnRef: drawn,
|
|
1499
|
-
code:
|
|
1500
|
-
language:
|
|
1499
|
+
code: _chunk4SLJNZSMcjs.str.call(void 0, block.attrs.code),
|
|
1500
|
+
language: _chunk4SLJNZSMcjs.str.call(void 0, block.attrs.language)
|
|
1501
1501
|
}
|
|
1502
1502
|
),
|
|
1503
1503
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { ref: mark, "aria-hidden": "true", className: "quoin-code-caret" }),
|
|
@@ -1507,7 +1507,7 @@ function CodeEditor({ block, controller, field, focusControls }) {
|
|
|
1507
1507
|
ref: field,
|
|
1508
1508
|
"aria-label": labels.codeText,
|
|
1509
1509
|
"aria-keyshortcuts": "Alt+F10",
|
|
1510
|
-
value:
|
|
1510
|
+
value: _chunk4SLJNZSMcjs.str.call(void 0, block.attrs.code),
|
|
1511
1511
|
wrap: "off",
|
|
1512
1512
|
tabIndex: -1,
|
|
1513
1513
|
spellCheck: false,
|
|
@@ -1572,7 +1572,7 @@ var Button = React3.forwardRef(function Button2({ className, variant = "default"
|
|
|
1572
1572
|
var COPIED_FOR_MS = 1500;
|
|
1573
1573
|
function CopyCodeButton({ code, controller }) {
|
|
1574
1574
|
const labels = useLabels();
|
|
1575
|
-
const readOnly =
|
|
1575
|
+
const readOnly = _chunkP6KYXFZCcjs.useReadOnly.call(void 0, controller);
|
|
1576
1576
|
const [copied, setCopied] = _react.useState.call(void 0, false);
|
|
1577
1577
|
_react.useEffect.call(void 0, () => {
|
|
1578
1578
|
if (!copied) return;
|
|
@@ -1666,7 +1666,7 @@ var preventDefault = (event) => event.preventDefault();
|
|
|
1666
1666
|
|
|
1667
1667
|
// src/blocks/text/set-block-attrs.ts
|
|
1668
1668
|
function setBlockAttrs(controller, blockId, patch) {
|
|
1669
|
-
if (!controller.readOnly) controller.run(
|
|
1669
|
+
if (!controller.readOnly) controller.run(_chunkP6KYXFZCcjs.onBlock.call(void 0, blockId, _chunkZKVOS57Qcjs.setAttrs.call(void 0, patch)));
|
|
1670
1670
|
}
|
|
1671
1671
|
|
|
1672
1672
|
// src/blocks/code/LanguageCombobox.tsx
|
|
@@ -1685,7 +1685,7 @@ function LanguageCombobox({ blockId, controller, language: language2, field, onD
|
|
|
1685
1685
|
const options = draft === null ? [] : languageOptions(draft === shown ? "" : draft, labels.plainText);
|
|
1686
1686
|
const open = options.length > 0;
|
|
1687
1687
|
const optionId = (index) => `${listboxId}-${index}`;
|
|
1688
|
-
|
|
1688
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
1689
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" })]);
|
|
1690
1690
|
}, [active]);
|
|
1691
1691
|
const close = () => {
|
|
@@ -1711,7 +1711,7 @@ function LanguageCombobox({ blockId, controller, language: language2, field, onD
|
|
|
1711
1711
|
onDone();
|
|
1712
1712
|
};
|
|
1713
1713
|
const onKeyDown = (event) => {
|
|
1714
|
-
if (
|
|
1714
|
+
if (_chunkP6KYXFZCcjs.isComposingKey.call(void 0, controller, event.nativeEvent)) return;
|
|
1715
1715
|
if (event.key === "ArrowDown" || event.key === "ArrowUp") {
|
|
1716
1716
|
event.preventDefault();
|
|
1717
1717
|
const step = event.key === "ArrowDown" ? 1 : -1;
|
|
@@ -1788,11 +1788,11 @@ function LanguageCombobox({ blockId, controller, language: language2, field, onD
|
|
|
1788
1788
|
|
|
1789
1789
|
var CodeBlock = ({ block, controller }) => {
|
|
1790
1790
|
const labels = useLabels();
|
|
1791
|
-
const readOnly =
|
|
1791
|
+
const readOnly = _chunkP6KYXFZCcjs.useReadOnly.call(void 0, controller);
|
|
1792
1792
|
const languageField = _react.useRef.call(void 0, null);
|
|
1793
1793
|
const codeField = _react.useRef.call(void 0, null);
|
|
1794
|
-
const code =
|
|
1795
|
-
const language2 =
|
|
1794
|
+
const code = _chunk4SLJNZSMcjs.str.call(void 0, block.attrs.code);
|
|
1795
|
+
const language2 = _chunk4SLJNZSMcjs.str.call(void 0, block.attrs.language);
|
|
1796
1796
|
const name = _nullishCoalesce(languageName(language2), () => ( language2));
|
|
1797
1797
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { role: "group", "aria-label": labels.blockNames.code, contentEditable: false, className: "quoin-code", children: [
|
|
1798
1798
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "quoin-code-header", children: [
|
|
@@ -1901,7 +1901,7 @@ function selectHandlers(controller, blockId, root, onSelect) {
|
|
|
1901
1901
|
return {
|
|
1902
1902
|
onKeyDown(event) {
|
|
1903
1903
|
const key = event.nativeEvent;
|
|
1904
|
-
if (
|
|
1904
|
+
if (_chunkP6KYXFZCcjs.isComposingKey.call(void 0, controller, key)) return;
|
|
1905
1905
|
if (event.key === "Escape") select();
|
|
1906
1906
|
else if (!(event.metaKey || event.ctrlKey) || event.target.matches("input:not([type=file])") || !controller.edit(() => controller.editor.handleKey(key)))
|
|
1907
1907
|
return;
|
|
@@ -2055,7 +2055,7 @@ var kindOf = (value) => _optionalChain([KINDS, 'access', _87 => _87.find, 'call'
|
|
|
2055
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));
|
|
2056
2056
|
|
|
2057
2057
|
// src/blocks/file/file-source.ts
|
|
2058
|
-
var fileName = (attrs) =>
|
|
2058
|
+
var fileName = (attrs) => _chunk4SLJNZSMcjs.str.call(void 0, attrs.filename) || _chunk4SLJNZSMcjs.str.call(void 0, attrs.storageKey);
|
|
2059
2059
|
var hasFile = (attrs) => fileName(attrs) !== "";
|
|
2060
2060
|
|
|
2061
2061
|
// src/blocks/file/FileCard.tsx
|
|
@@ -2065,9 +2065,9 @@ function FileCard({ block, controller, readOnly }) {
|
|
|
2065
2065
|
const card = _react.useRef.call(void 0, null);
|
|
2066
2066
|
const { id, attrs } = block;
|
|
2067
2067
|
const name = fileName(attrs);
|
|
2068
|
-
const size =
|
|
2069
|
-
const href = assetHref(resolveAssetUrl,
|
|
2070
|
-
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);
|
|
2071
2071
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { ref: card, className: "quoin-file-card", ...selectHandlers(controller, id, card), children: [
|
|
2072
2072
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, Icon, { "aria-hidden": "true", className: "quoin-file-icon" }),
|
|
2073
2073
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "quoin-file-name", children: name }),
|
|
@@ -2076,7 +2076,7 @@ function FileCard({ block, controller, readOnly }) {
|
|
|
2076
2076
|
"a",
|
|
2077
2077
|
{
|
|
2078
2078
|
href,
|
|
2079
|
-
download:
|
|
2079
|
+
download: _chunk4SLJNZSMcjs.str.call(void 0, attrs.filename),
|
|
2080
2080
|
target: "_blank",
|
|
2081
2081
|
rel: "noopener",
|
|
2082
2082
|
"aria-label": labels.downloadFile(name),
|
|
@@ -2102,14 +2102,14 @@ function claimUpload(controller, blockId) {
|
|
|
2102
2102
|
}
|
|
2103
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;
|
|
2104
2104
|
function assetOf(controller, blockId, type) {
|
|
2105
|
-
const block =
|
|
2105
|
+
const block = _chunk4SLJNZSMcjs.blockById.call(void 0, controller.editor.state.doc, blockId);
|
|
2106
2106
|
if (_optionalChain([block, 'optionalAccess', _99 => _99.type]) !== type || controller.readOnly) return null;
|
|
2107
|
-
return { url:
|
|
2107
|
+
return { url: _chunk4SLJNZSMcjs.str.call(void 0, block.attrs.url), storageKey: _chunk4SLJNZSMcjs.str.call(void 0, block.attrs.storageKey) };
|
|
2108
2108
|
}
|
|
2109
2109
|
var sameAsset = (a, b) => a !== null && b !== null && a.url === b.url && a.storageKey === b.storageKey;
|
|
2110
2110
|
function writeAttrs(controller, blockId, patch, recorded) {
|
|
2111
2111
|
const { editor } = controller;
|
|
2112
|
-
const tr = editor.createTransaction().step(
|
|
2112
|
+
const tr = editor.createTransaction().step(_chunkZKVOS57Qcjs.setAttrsStep.call(void 0, blockId, patch));
|
|
2113
2113
|
editor.dispatch(recorded ? tr : tr.setMeta("addToHistory", false));
|
|
2114
2114
|
}
|
|
2115
2115
|
async function uploadInto(controller, blockId, file, { type, category }, { upload, onLand }, land2) {
|
|
@@ -2143,7 +2143,7 @@ var uploadFile = (controller, blockId, file, host) => uploadInto(
|
|
|
2143
2143
|
var anyFile = () => true;
|
|
2144
2144
|
var FileBlock = ({ block, controller }) => {
|
|
2145
2145
|
const labels = useLabels();
|
|
2146
|
-
const readOnly =
|
|
2146
|
+
const readOnly = _chunkP6KYXFZCcjs.useReadOnly.call(void 0, controller);
|
|
2147
2147
|
const root = _react.useRef.call(void 0, null);
|
|
2148
2148
|
const filled = hasFile(block.attrs);
|
|
2149
2149
|
useNodeKeys(controller, block.id, !readOnly, !filled, root);
|
|
@@ -2221,7 +2221,7 @@ var deleteItem = (blockId, title) => ({
|
|
|
2221
2221
|
title,
|
|
2222
2222
|
icon: _lucidereact.Trash,
|
|
2223
2223
|
run: (controller) => {
|
|
2224
|
-
runOnBlocks(controller, [blockId],
|
|
2224
|
+
runOnBlocks(controller, [blockId], _chunkZKVOS57Qcjs.deleteBlocks);
|
|
2225
2225
|
controller.focus();
|
|
2226
2226
|
}
|
|
2227
2227
|
});
|
|
@@ -2235,8 +2235,8 @@ function markItem(mark, title, icon) {
|
|
|
2235
2235
|
id: mark,
|
|
2236
2236
|
title,
|
|
2237
2237
|
icon,
|
|
2238
|
-
isActive: (state) =>
|
|
2239
|
-
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))
|
|
2240
2240
|
};
|
|
2241
2241
|
}
|
|
2242
2242
|
var linkItem = (labels, openLink) => ({
|
|
@@ -2309,7 +2309,7 @@ function useRovingFocus() {
|
|
|
2309
2309
|
},
|
|
2310
2310
|
[syncTabStop]
|
|
2311
2311
|
);
|
|
2312
|
-
|
|
2312
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, syncTabStop);
|
|
2313
2313
|
const onFocus = (event) => {
|
|
2314
2314
|
if (!owns(event.target)) return;
|
|
2315
2315
|
current.current = event.target;
|
|
@@ -2328,7 +2328,7 @@ function useRovingFocus() {
|
|
|
2328
2328
|
// src/menus/floating/use-focus-key.ts
|
|
2329
2329
|
var isFocusKey = (event) => event.key === "F10" && event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey;
|
|
2330
2330
|
function useFocusKey(controller, focus) {
|
|
2331
|
-
|
|
2331
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
2332
2332
|
const intercept = (event) => {
|
|
2333
2333
|
if (!isFocusKey(event)) return false;
|
|
2334
2334
|
event.preventDefault();
|
|
@@ -2343,11 +2343,11 @@ function useFocusKey(controller, focus) {
|
|
|
2343
2343
|
|
|
2344
2344
|
function NodeToolbar(props) {
|
|
2345
2345
|
const { blockId, controller, label, anchor, items, next, buttonRefs, children, popover } = props;
|
|
2346
|
-
const state =
|
|
2346
|
+
const state = _chunkP6KYXFZCcjs.useEditorState.call(void 0, controller, _chunkP6KYXFZCcjs.wholeState);
|
|
2347
2347
|
const roving = useRovingFocus();
|
|
2348
2348
|
useFocusKey(controller, roving.focusCurrent);
|
|
2349
2349
|
const onKeyDown = (event) => {
|
|
2350
|
-
if (!roving.owns(event.target) ||
|
|
2350
|
+
if (!roving.owns(event.target) || _chunkP6KYXFZCcjs.isComposingKey.call(void 0, controller, event.nativeEvent)) return;
|
|
2351
2351
|
const tab = event.key === "Tab" && !event.altKey && !event.ctrlKey && !event.metaKey;
|
|
2352
2352
|
const ahead = tab && !event.shiftKey && next !== void 0 ? blockPart(controller, blockId, next) : void 0;
|
|
2353
2353
|
if (ahead !== void 0) ahead.focus();
|
|
@@ -2427,12 +2427,12 @@ function useSelectionSettled(controller) {
|
|
|
2427
2427
|
|
|
2428
2428
|
// src/blocks/void/use-toolbar-block.ts
|
|
2429
2429
|
var selectedBlock = (type, filled) => ({ doc, selection }) => {
|
|
2430
|
-
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;
|
|
2431
2431
|
return _optionalChain([block, 'optionalAccess', _130 => _130.type]) === type && filled(block.attrs) ? block.id : null;
|
|
2432
2432
|
};
|
|
2433
2433
|
function useToolbarBlock(controller, selected, keptFor = null) {
|
|
2434
|
-
const blockId =
|
|
2435
|
-
const readOnly =
|
|
2434
|
+
const blockId = _chunkP6KYXFZCcjs.useEditorState.call(void 0, controller, selected);
|
|
2435
|
+
const readOnly = _chunkP6KYXFZCcjs.useReadOnly.call(void 0, controller);
|
|
2436
2436
|
const settled = useSelectionSettled(controller);
|
|
2437
2437
|
return blockId !== null && !readOnly && (settled || keptFor === blockId) ? blockId : null;
|
|
2438
2438
|
}
|
|
@@ -2518,7 +2518,7 @@ function ResizeHandles({ blockId, controller, frame, percent, centred, onPreview
|
|
|
2518
2518
|
const value = _nullishCoalesce(percent, () => ( drawn));
|
|
2519
2519
|
const write = (widthPercent) => setBlockAttrs(controller, blockId, { widthPercent });
|
|
2520
2520
|
const onKeyDown = (event) => {
|
|
2521
|
-
if (
|
|
2521
|
+
if (_chunkP6KYXFZCcjs.isComposingKey.call(void 0, controller, event.nativeEvent)) return;
|
|
2522
2522
|
const next = keyedWidth(event.key, value);
|
|
2523
2523
|
if (event.key === "Escape") controller.focus();
|
|
2524
2524
|
else if (next === null) return;
|
|
@@ -2560,7 +2560,7 @@ function ResizeHandles({ blockId, controller, frame, percent, centred, onPreview
|
|
|
2560
2560
|
"aria-valuetext": labels.widthValue(value),
|
|
2561
2561
|
"data-side": side,
|
|
2562
2562
|
className: "quoin-image-handle",
|
|
2563
|
-
...{ [
|
|
2563
|
+
...{ [_chunkP6KYXFZCcjs.NATIVE_INTERACTION]: "" },
|
|
2564
2564
|
...bubblePart(controller),
|
|
2565
2565
|
onKeyDown,
|
|
2566
2566
|
onPointerDown: onPointerDown(side),
|
|
@@ -2584,9 +2584,9 @@ function ImageFigure({ block, controller, readOnly }) {
|
|
|
2584
2584
|
const [failed, setFailed] = _react.useState.call(void 0, null);
|
|
2585
2585
|
const { id, attrs, regions } = block;
|
|
2586
2586
|
const src = imageSource(attrs, resolveAssetUrl);
|
|
2587
|
-
const alt =
|
|
2587
|
+
const alt = _chunk4SLJNZSMcjs.str.call(void 0, attrs.alt);
|
|
2588
2588
|
const name = alt || labels.imageNoAlt;
|
|
2589
|
-
const percent =
|
|
2589
|
+
const percent = _chunk4SLJNZSMcjs.optionalNumber.call(void 0, attrs.widthPercent);
|
|
2590
2590
|
const width = _nullishCoalesce(preview, () => ( percent));
|
|
2591
2591
|
const select = () => focusNode(controller, id);
|
|
2592
2592
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
@@ -2596,8 +2596,8 @@ function ImageFigure({ block, controller, readOnly }) {
|
|
|
2596
2596
|
{
|
|
2597
2597
|
src,
|
|
2598
2598
|
alt: name,
|
|
2599
|
-
width:
|
|
2600
|
-
height:
|
|
2599
|
+
width: _chunk4SLJNZSMcjs.optionalNumber.call(void 0, attrs.width),
|
|
2600
|
+
height: _chunk4SLJNZSMcjs.optionalNumber.call(void 0, attrs.height),
|
|
2601
2601
|
draggable: false,
|
|
2602
2602
|
onError: () => setFailed(src),
|
|
2603
2603
|
onClick: select
|
|
@@ -2619,7 +2619,7 @@ function ImageFigure({ block, controller, readOnly }) {
|
|
|
2619
2619
|
)
|
|
2620
2620
|
] }),
|
|
2621
2621
|
(!readOnly || (_nullishCoalesce(_optionalChain([regions, 'access', _140 => _140.caption, 'optionalAccess', _141 => _141.length]), () => ( 0))) > 0) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
2622
|
-
|
|
2622
|
+
_chunkP6KYXFZCcjs.EditableRegion,
|
|
2623
2623
|
{
|
|
2624
2624
|
block: id,
|
|
2625
2625
|
region: "caption",
|
|
@@ -2645,8 +2645,8 @@ var WHITESPACE = /\s/;
|
|
|
2645
2645
|
function linkAddress(typed2) {
|
|
2646
2646
|
const address = typed2.trim();
|
|
2647
2647
|
if (WHITESPACE.test(address)) return null;
|
|
2648
|
-
const completed = !
|
|
2649
|
-
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);
|
|
2650
2650
|
return href || null;
|
|
2651
2651
|
}
|
|
2652
2652
|
|
|
@@ -2766,8 +2766,8 @@ function ImageUploadArea({ blockId, controller }) {
|
|
|
2766
2766
|
// src/blocks/image/use-image-keys.ts
|
|
2767
2767
|
|
|
2768
2768
|
function captionEnd(controller, blockId) {
|
|
2769
|
-
const caption = _nullishCoalesce(_optionalChain([
|
|
2770
|
-
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) };
|
|
2771
2771
|
}
|
|
2772
2772
|
var plainEnter = (event) => event.key === "Enter" && !event.shiftKey && !event.altKey && !event.ctrlKey && !event.metaKey;
|
|
2773
2773
|
var menuOpenOn = (host) => _optionalChain([host, 'optionalAccess', _144 => _144.getAttribute, 'call', _145 => _145("aria-expanded")]) === "true";
|
|
@@ -2779,7 +2779,7 @@ function useImageKeys(controller, blockId, picture, editable, root) {
|
|
|
2779
2779
|
// then follows.
|
|
2780
2780
|
enter() {
|
|
2781
2781
|
const { editor } = controller;
|
|
2782
|
-
editor.dispatch(editor.createTransaction().setSelection(
|
|
2782
|
+
editor.dispatch(editor.createTransaction().setSelection(_chunkZKVOS57Qcjs.textSelection.call(void 0, captionEnd(controller, blockId))));
|
|
2783
2783
|
controller.focus();
|
|
2784
2784
|
},
|
|
2785
2785
|
type(key) {
|
|
@@ -2807,7 +2807,7 @@ function useImageKeys(controller, blockId, picture, editable, root) {
|
|
|
2807
2807
|
|
|
2808
2808
|
var ImageBlock = ({ block, controller }) => {
|
|
2809
2809
|
const labels = useLabels();
|
|
2810
|
-
const readOnly =
|
|
2810
|
+
const readOnly = _chunkP6KYXFZCcjs.useReadOnly.call(void 0, controller);
|
|
2811
2811
|
const root = _react.useRef.call(void 0, null);
|
|
2812
2812
|
const picture = hasPicture(block.attrs);
|
|
2813
2813
|
useImageKeys(controller, block.id, picture, !readOnly, root);
|
|
@@ -2820,7 +2820,7 @@ var ImageBlock = ({ block, controller }) => {
|
|
|
2820
2820
|
"aria-label": labels.blockNames.image,
|
|
2821
2821
|
contentEditable: false,
|
|
2822
2822
|
className: "quoin-image",
|
|
2823
|
-
...picture ? { [
|
|
2823
|
+
...picture ? { [_chunkP6KYXFZCcjs.NODE_ENTRY]: "" } : void 0,
|
|
2824
2824
|
children: picture ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ImageFigure, { block, controller, readOnly }) : empty
|
|
2825
2825
|
}
|
|
2826
2826
|
);
|
|
@@ -2836,10 +2836,10 @@ var ImageBlock = ({ block, controller }) => {
|
|
|
2836
2836
|
|
|
2837
2837
|
function useOutsidePress(element, ownerDocument, onPress) {
|
|
2838
2838
|
const latest = _react.useRef.call(void 0, onPress);
|
|
2839
|
-
|
|
2839
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
2840
2840
|
latest.current = onPress;
|
|
2841
2841
|
});
|
|
2842
|
-
|
|
2842
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
2843
2843
|
const doc = ownerDocument();
|
|
2844
2844
|
const inside = (target) => _optionalChain([element, 'access', _147 => _147.current, 'optionalAccess', _148 => _148.contains, 'call', _149 => _149(target)]) === true;
|
|
2845
2845
|
let touched = null;
|
|
@@ -2854,7 +2854,7 @@ function useOutsidePress(element, ownerDocument, onPress) {
|
|
|
2854
2854
|
if (touched !== null && !inside(event.target)) latest.current(touched);
|
|
2855
2855
|
touched = null;
|
|
2856
2856
|
};
|
|
2857
|
-
return
|
|
2857
|
+
return _chunkP6KYXFZCcjs.listen.call(void 0, doc, { pointerdown: down, click }, true);
|
|
2858
2858
|
}, [element, ownerDocument]);
|
|
2859
2859
|
}
|
|
2860
2860
|
|
|
@@ -2862,9 +2862,9 @@ function useOutsidePress(element, ownerDocument, onPress) {
|
|
|
2862
2862
|
|
|
2863
2863
|
function storeAlt(controller, blockId, opened, alt) {
|
|
2864
2864
|
const { editor } = controller;
|
|
2865
|
-
const current = _optionalChain([
|
|
2866
|
-
if (controller.readOnly || controller.root === null ||
|
|
2867
|
-
|
|
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));
|
|
2868
2868
|
}
|
|
2869
2869
|
function AltTextPopover({ blockId, controller, anchor, opener, alt, onClose }) {
|
|
2870
2870
|
const labels = useLabels();
|
|
@@ -2904,7 +2904,7 @@ function AltTextPopover({ blockId, controller, anchor, opener, alt, onClose }) {
|
|
|
2904
2904
|
close(true);
|
|
2905
2905
|
};
|
|
2906
2906
|
const onKeyDown = (event) => {
|
|
2907
|
-
if (event.key !== "Tab" ||
|
|
2907
|
+
if (event.key !== "Tab" || _chunkP6KYXFZCcjs.isComposingKey.call(void 0, controller, event.nativeEvent)) return;
|
|
2908
2908
|
const [field, save2] = event.currentTarget.elements;
|
|
2909
2909
|
const fromField = event.target === field;
|
|
2910
2910
|
event.preventDefault();
|
|
@@ -2932,7 +2932,7 @@ function AltTextPopover({ blockId, controller, anchor, opener, alt, onClose }) {
|
|
|
2932
2932
|
onCloseAutoFocus: preventDefault,
|
|
2933
2933
|
onEscapeKeyDown: (event) => {
|
|
2934
2934
|
event.preventDefault();
|
|
2935
|
-
if (!
|
|
2935
|
+
if (!_chunkP6KYXFZCcjs.isComposingKey.call(void 0, controller, event)) close(false);
|
|
2936
2936
|
},
|
|
2937
2937
|
...bubblePart(controller),
|
|
2938
2938
|
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "form", { noValidate: true, className: "quoin-image-alt", onSubmit: save, onKeyDown, children: [
|
|
@@ -2970,7 +2970,7 @@ function imageToolbarItems(blockId, labels, actions) {
|
|
|
2970
2970
|
id: align,
|
|
2971
2971
|
title: labels[label],
|
|
2972
2972
|
icon,
|
|
2973
|
-
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,
|
|
2974
2974
|
run: (controller) => setBlockAttrs(controller, blockId, { align })
|
|
2975
2975
|
})
|
|
2976
2976
|
);
|
|
@@ -3014,11 +3014,11 @@ function ImageToolbarOverlay({ controller }) {
|
|
|
3014
3014
|
}
|
|
3015
3015
|
function ImageToolbar({ blockId, controller, editingAlt, onEditAlt }) {
|
|
3016
3016
|
const { labels, resolveAssetUrl } = useQuoin();
|
|
3017
|
-
const state =
|
|
3017
|
+
const state = _chunkP6KYXFZCcjs.useEditorState.call(void 0, controller, _chunkP6KYXFZCcjs.wholeState);
|
|
3018
3018
|
const picker = useReplacePicker(controller, blockId, uploadImage, "image/*");
|
|
3019
3019
|
const altButton = _react.useRef.call(void 0, null);
|
|
3020
3020
|
const anchor = usePartAnchor(controller, blockId, ".quoin-image-frame");
|
|
3021
|
-
const attrs = _nullishCoalesce(_optionalChain([
|
|
3021
|
+
const attrs = _nullishCoalesce(_optionalChain([_chunk4SLJNZSMcjs.blockById.call(void 0, state.doc, blockId), 'optionalAccess', _159 => _159.attrs]), () => ( {}));
|
|
3022
3022
|
const items = imageToolbarItems(blockId, labels, {
|
|
3023
3023
|
replace: picker.open,
|
|
3024
3024
|
editAlt: () => {
|
|
@@ -3044,7 +3044,7 @@ function ImageToolbar({ blockId, controller, editingAlt, onEditAlt }) {
|
|
|
3044
3044
|
controller,
|
|
3045
3045
|
anchor,
|
|
3046
3046
|
opener: altButton,
|
|
3047
|
-
alt:
|
|
3047
|
+
alt: _chunk4SLJNZSMcjs.str.call(void 0, attrs.alt),
|
|
3048
3048
|
onClose: () => onEditAlt(null)
|
|
3049
3049
|
}
|
|
3050
3050
|
),
|
|
@@ -3260,13 +3260,13 @@ function CalloutToneMenu({ blockId, controller, tone }) {
|
|
|
3260
3260
|
|
|
3261
3261
|
var CalloutBlock = ({ block, controller }) => {
|
|
3262
3262
|
const labels = useLabels();
|
|
3263
|
-
const readOnly =
|
|
3263
|
+
const readOnly = _chunkP6KYXFZCcjs.useReadOnly.call(void 0, controller);
|
|
3264
3264
|
const tone = calloutTone(block.attrs.tone);
|
|
3265
3265
|
const icon = calloutIcon(block.attrs, tone);
|
|
3266
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: [
|
|
3267
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 }),
|
|
3268
3268
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3269
|
-
|
|
3269
|
+
_chunkP6KYXFZCcjs.EditableRegion,
|
|
3270
3270
|
{
|
|
3271
3271
|
block: block.id,
|
|
3272
3272
|
region: "body",
|
|
@@ -3336,13 +3336,6 @@ function ListMarker(props) {
|
|
|
3336
3336
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "quoin-marker", "aria-hidden": "true", children: text2 });
|
|
3337
3337
|
}
|
|
3338
3338
|
|
|
3339
|
-
// src/blocks/text/TaskCheckbox.tsx
|
|
3340
|
-
|
|
3341
|
-
function TaskCheckbox2({ block, controller, labelledBy }) {
|
|
3342
|
-
const labels = useLabels();
|
|
3343
|
-
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5M4QG3ZCcjs.TaskCheckbox, { block, controller, label: labels.task, labelledBy });
|
|
3344
|
-
}
|
|
3345
|
-
|
|
3346
3339
|
// src/blocks/text/MarkdownBlock.tsx
|
|
3347
3340
|
|
|
3348
3341
|
var REGION = "text";
|
|
@@ -3350,23 +3343,23 @@ var HEADING_LEVELS = ["mt-6 text-3xl", "mt-5 text-2xl", "mt-4 text-xl", "mt-3 te
|
|
|
3350
3343
|
var headingStyles = (level) => `quoin-heading mb-1 font-semibold leading-tight in-[[data-quoin-block]:first-child]:mt-0 ${HEADING_LEVELS[level - 1]}`;
|
|
3351
3344
|
function Heading({ block }) {
|
|
3352
3345
|
const labels = useLabels();
|
|
3353
|
-
const level =
|
|
3354
|
-
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) }) });
|
|
3355
3348
|
}
|
|
3356
3349
|
function NumberedItem({ block, controller }) {
|
|
3357
3350
|
const labels = useLabels();
|
|
3358
|
-
const number =
|
|
3351
|
+
const number = _chunkP6KYXFZCcjs.useOrderedNumber.call(void 0, controller, block.id);
|
|
3359
3352
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "quoin-list-item", "data-list": "ordered", children: [
|
|
3360
3353
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ListMarker, { list: "ordered", number, depth: block.indent }),
|
|
3361
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3354
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP6KYXFZCcjs.EditableRegion, { block: block.id, region: REGION, label: labels.numberedItem(number) })
|
|
3362
3355
|
] });
|
|
3363
3356
|
}
|
|
3364
3357
|
function TaskItem({ block, controller }) {
|
|
3365
3358
|
const labels = useLabels();
|
|
3366
|
-
const hostId =
|
|
3359
|
+
const hostId = _chunkP6KYXFZCcjs.useRegionDomId.call(void 0, block.id, REGION);
|
|
3367
3360
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "quoin-task", "data-checked": block.attrs.checked === true, children: [
|
|
3368
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3369
|
-
/* @__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 })
|
|
3370
3363
|
] });
|
|
3371
3364
|
}
|
|
3372
3365
|
var MarkdownBlock = (props) => {
|
|
@@ -3378,16 +3371,16 @@ var MarkdownBlock = (props) => {
|
|
|
3378
3371
|
case "bullet":
|
|
3379
3372
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "quoin-list-item", "data-list": "bullet", children: [
|
|
3380
3373
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, ListMarker, { list: "bullet", depth: block.indent }),
|
|
3381
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3374
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP6KYXFZCcjs.EditableRegion, { block: block.id, region: REGION, label: labels.bulletItem })
|
|
3382
3375
|
] });
|
|
3383
3376
|
case "ordered":
|
|
3384
3377
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, NumberedItem, { ...props });
|
|
3385
3378
|
case "task":
|
|
3386
3379
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, TaskItem, { ...props });
|
|
3387
3380
|
case "quote":
|
|
3388
|
-
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 }) });
|
|
3389
3382
|
default:
|
|
3390
|
-
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 });
|
|
3391
3384
|
}
|
|
3392
3385
|
};
|
|
3393
3386
|
|
|
@@ -3395,22 +3388,22 @@ var MarkdownBlock = (props) => {
|
|
|
3395
3388
|
function nestedBlockIds({ doc }, blockId) {
|
|
3396
3389
|
const index = doc.index.get(blockId);
|
|
3397
3390
|
if (index === void 0) return [];
|
|
3398
|
-
return doc.blocks.slice(index + 1,
|
|
3391
|
+
return doc.blocks.slice(index + 1, _chunkZKVOS57Qcjs.descendantsEnd.call(void 0, doc, index)).map((block) => block.id);
|
|
3399
3392
|
}
|
|
3400
3393
|
function useNestedBlocks(controller, blockId) {
|
|
3401
|
-
return
|
|
3394
|
+
return _chunkP6KYXFZCcjs.useEditorState.call(void 0, controller, (state) => nestedBlockIds(state, blockId), _chunk4SLJNZSMcjs.sameItems);
|
|
3402
3395
|
}
|
|
3403
3396
|
|
|
3404
3397
|
// src/blocks/text/ToggleBlock.tsx
|
|
3405
3398
|
|
|
3406
3399
|
var ToggleBlock = ({ block, controller }) => {
|
|
3407
3400
|
const labels = useLabels();
|
|
3408
|
-
const domId =
|
|
3401
|
+
const domId = _chunkP6KYXFZCcjs.useBlockDomId.call(void 0, );
|
|
3409
3402
|
const nested = useNestedBlocks(controller, block.id);
|
|
3410
|
-
const open =
|
|
3403
|
+
const open = _chunkP6KYXFZCcjs.useToggleOpen.call(void 0, controller, block);
|
|
3411
3404
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "quoin-toggle", "data-open": open, children: [
|
|
3412
3405
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3413
|
-
|
|
3406
|
+
_chunkP6KYXFZCcjs.ToggleChevron,
|
|
3414
3407
|
{
|
|
3415
3408
|
block,
|
|
3416
3409
|
controller,
|
|
@@ -3418,7 +3411,7 @@ var ToggleBlock = ({ block, controller }) => {
|
|
|
3418
3411
|
controls: nested.length === 0 ? void 0 : nested.map(domId).join(" ")
|
|
3419
3412
|
}
|
|
3420
3413
|
),
|
|
3421
|
-
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
3414
|
+
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkP6KYXFZCcjs.EditableRegion, { block: block.id, region: "text", label: labels.toggle })
|
|
3422
3415
|
] });
|
|
3423
3416
|
};
|
|
3424
3417
|
|
|
@@ -3495,7 +3488,7 @@ function turnIntoTargets(labels) {
|
|
|
3495
3488
|
function TurnIntoItems({ kit, controller, blockIds }) {
|
|
3496
3489
|
const { blockTypes, labels } = useQuoin();
|
|
3497
3490
|
const targets = turnIntoTargets(labels).filter((target) => drawsType(blockTypes, target.type));
|
|
3498
|
-
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: [
|
|
3499
3492
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, MenuIcon, { icon: target.icon }),
|
|
3500
3493
|
target.label
|
|
3501
3494
|
] }, target.id));
|
|
@@ -3533,10 +3526,10 @@ function ActionItem({ kit, controller, action, blockIds }) {
|
|
|
3533
3526
|
);
|
|
3534
3527
|
}
|
|
3535
3528
|
function BlockMenuItems({ kit, controller, blocks, styled, title, actions }) {
|
|
3536
|
-
const state =
|
|
3529
|
+
const state = _chunkP6KYXFZCcjs.useEditorState.call(void 0, controller, _chunkP6KYXFZCcjs.wholeState);
|
|
3537
3530
|
const blockIds = blocks.map((block) => block.id);
|
|
3538
3531
|
const shown = actions.filter((action) => _nullishCoalesce(_optionalChain([action, 'access', _164 => _164.available, 'optionalCall', _165 => _165(state, blockIds)]), () => ( true)));
|
|
3539
|
-
const anyText = styled.some((block) =>
|
|
3532
|
+
const anyText = styled.some((block) => _chunkZKVOS57Qcjs.isTextFlow.call(void 0, state.schema, block));
|
|
3540
3533
|
const anyMarkdown = styled.some((block) => block.type === "MARKDOWN");
|
|
3541
3534
|
const allCallouts = styled.length > 0 && styled.every((block) => block.type === "CALLOUT");
|
|
3542
3535
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
@@ -3581,7 +3574,7 @@ var CONTEXT_KIT = {
|
|
|
3581
3574
|
// src/gutter/use-context-menu-opener.ts
|
|
3582
3575
|
|
|
3583
3576
|
var GUTTER_BLOCK = "data-quoin-gutter-block";
|
|
3584
|
-
var OWN_MENU = `[${
|
|
3577
|
+
var OWN_MENU = `[${_chunkP6KYXFZCcjs.NATIVE_INTERACTION}], input, textarea, select`;
|
|
3585
3578
|
function contextBlock(controller, target) {
|
|
3586
3579
|
const { state } = controller.editor;
|
|
3587
3580
|
const gutter = _optionalChain([target, 'access', _166 => _166.closest, 'call', _167 => _167(`[${GUTTER_BLOCK}]`), 'optionalAccess', _168 => _168.getAttribute, 'call', _169 => _169(GUTTER_BLOCK)]);
|
|
@@ -3590,8 +3583,8 @@ function contextBlock(controller, target) {
|
|
|
3590
3583
|
if (_optionalChain([selection, 'optionalAccess', _170 => _170.kind]) === "blocks") return selection.head;
|
|
3591
3584
|
if (target.closest(OWN_MENU) || controller.registry.locate(target) !== null) return null;
|
|
3592
3585
|
const id = controller.blockAt(target);
|
|
3593
|
-
const block = id === void 0 ? void 0 :
|
|
3594
|
-
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;
|
|
3595
3588
|
}
|
|
3596
3589
|
function useContextMenuOpener(controller, store, trigger) {
|
|
3597
3590
|
_react.useEffect.call(void 0, () => {
|
|
@@ -3610,7 +3603,7 @@ function useContextMenuOpener(controller, store, trigger) {
|
|
|
3610
3603
|
openBlockMenuAt(store, controller.editor.state, block, clientX, clientY);
|
|
3611
3604
|
hidden.dispatchEvent(new MouseEvent("contextmenu", { bubbles: true, cancelable: true, clientX, clientY }));
|
|
3612
3605
|
};
|
|
3613
|
-
return
|
|
3606
|
+
return _chunkP6KYXFZCcjs.listen.call(void 0, root, { mousedown: onMouseDown, contextmenu: onContextMenu });
|
|
3614
3607
|
}, [controller, store, trigger]);
|
|
3615
3608
|
}
|
|
3616
3609
|
|
|
@@ -3649,10 +3642,10 @@ var ExtensionBlockNames = _react.createContext.call(void 0, {});
|
|
|
3649
3642
|
// src/gutter/use-menu-blocks.ts
|
|
3650
3643
|
function useLiveBlocks(controller, blockIds) {
|
|
3651
3644
|
const select = _react.useCallback.call(void 0,
|
|
3652
|
-
(state) => blockIds.flatMap((id) => _nullishCoalesce(
|
|
3645
|
+
(state) => blockIds.flatMap((id) => _nullishCoalesce(_chunk4SLJNZSMcjs.blockById.call(void 0, state.doc, id), () => ( []))),
|
|
3653
3646
|
[blockIds]
|
|
3654
3647
|
);
|
|
3655
|
-
return
|
|
3648
|
+
return _chunkP6KYXFZCcjs.useEditorState.call(void 0, controller, select, _chunk4SLJNZSMcjs.sameItems);
|
|
3656
3649
|
}
|
|
3657
3650
|
function useMenuBlocks(controller, store, menu) {
|
|
3658
3651
|
const labels = useLabels();
|
|
@@ -3708,12 +3701,12 @@ function BlockContextMenu({ controller, store, actions }) {
|
|
|
3708
3701
|
// src/gutter/block-menu-keymap.ts
|
|
3709
3702
|
function blockMenuKeymap(store) {
|
|
3710
3703
|
const openForHead = (state, dispatch) => {
|
|
3711
|
-
const head =
|
|
3704
|
+
const head = _chunkZKVOS57Qcjs.headBlockId.call(void 0, state.selection);
|
|
3712
3705
|
if (head === null || !state.doc.index.has(head)) return false;
|
|
3713
3706
|
if (dispatch) openBlockMenu(store, state, head);
|
|
3714
3707
|
return true;
|
|
3715
3708
|
};
|
|
3716
|
-
return
|
|
3709
|
+
return _chunkZKVOS57Qcjs.defineExtension.call(void 0, { name: "block-menu", keymap: { "Mod-/": openForHead } });
|
|
3717
3710
|
}
|
|
3718
3711
|
|
|
3719
3712
|
// src/gutter/Gutter.tsx
|
|
@@ -3793,7 +3786,7 @@ var DragOverlay = _react.forwardRef.call(void 0, function DragOverlay2(_props, r
|
|
|
3793
3786
|
var DELETION_STEPS = /* @__PURE__ */ new Set(["removeBlocks", "setIndent"]);
|
|
3794
3787
|
function drawnPosition(doc, blockId) {
|
|
3795
3788
|
const index = _nullishCoalesce(doc.index.get(blockId), () => ( 0));
|
|
3796
|
-
return [
|
|
3789
|
+
return [_chunkP6KYXFZCcjs.drawnBlockCount.call(void 0, doc, 0, index) + 1, _chunkP6KYXFZCcjs.drawnBlockCount.call(void 0, doc)];
|
|
3797
3790
|
}
|
|
3798
3791
|
function blockMovedMessage(doc, blockId, labels) {
|
|
3799
3792
|
return labels.blockMoved(...drawnPosition(doc, blockId));
|
|
@@ -3809,11 +3802,11 @@ function deletedCount(tr) {
|
|
|
3809
3802
|
return tr.steps.reduce((deleted, step, i) => {
|
|
3810
3803
|
const { index, count } = step.toJSON();
|
|
3811
3804
|
if (step.stepType !== "removeBlocks" || typeof index !== "number" || typeof count !== "number") return deleted;
|
|
3812
|
-
return deleted +
|
|
3805
|
+
return deleted + _chunkP6KYXFZCcjs.drawnBlockCount.call(void 0, tr.docs[i], index, index + count);
|
|
3813
3806
|
}, 0);
|
|
3814
3807
|
}
|
|
3815
3808
|
function insertedBlock(tr) {
|
|
3816
|
-
if (tr.getMeta(
|
|
3809
|
+
if (tr.getMeta(_chunkZKVOS57Qcjs.LINE_SPLIT) === true || tr.steps.some((step) => step.stepType === "removeBlocks")) return null;
|
|
3817
3810
|
const inserted = tr.steps.flatMap((step) => {
|
|
3818
3811
|
const { blocks } = step.toJSON();
|
|
3819
3812
|
return step.stepType === "insertBlocks" && Array.isArray(blocks) ? blocks : [];
|
|
@@ -3821,7 +3814,7 @@ function insertedBlock(tr) {
|
|
|
3821
3814
|
return _nullishCoalesce(_optionalChain([inserted, 'access', _181 => _181.find, 'call', _182 => _182((block) => tr.doc.index.has(block.id)), 'optionalAccess', _183 => _183.id]), () => ( null));
|
|
3822
3815
|
}
|
|
3823
3816
|
function structureAnnouncement(tr, labels, undoKeys) {
|
|
3824
|
-
if (tr.origin !== "command" || tr.getMeta(
|
|
3817
|
+
if (tr.origin !== "command" || tr.getMeta(_chunkZKVOS57Qcjs.LINE_JOIN) === true) return null;
|
|
3825
3818
|
const moved = movedBlock(tr);
|
|
3826
3819
|
if (moved !== null) return blockMovedMessage(tr.doc, moved, labels);
|
|
3827
3820
|
const deleted = deletedCount(tr);
|
|
@@ -3851,7 +3844,7 @@ function inlineEdges(shell, box, rtl) {
|
|
|
3851
3844
|
function measure(controller, root, moved, rtl) {
|
|
3852
3845
|
const { doc } = controller.editor.state;
|
|
3853
3846
|
const origin = rootOrigin(root);
|
|
3854
|
-
return
|
|
3847
|
+
return _chunkP6KYXFZCcjs.visibleBlockIndexes.call(void 0, doc).flatMap((index) => {
|
|
3855
3848
|
const { id, indent: indent3 } = doc.blocks[index];
|
|
3856
3849
|
const shell = controller.blockElement(id);
|
|
3857
3850
|
if (shell === void 0) return [];
|
|
@@ -3866,7 +3859,7 @@ function measureDrag(controller, root, ids) {
|
|
|
3866
3859
|
const { doc } = controller.editor.state;
|
|
3867
3860
|
const direction = inlineDirection(root);
|
|
3868
3861
|
const rtl = direction === "rtl";
|
|
3869
|
-
const moved = new Set(
|
|
3862
|
+
const moved = new Set(_chunkZKVOS57Qcjs.movedBlockIds.call(void 0, doc, ids));
|
|
3870
3863
|
const blocks = measure(controller, root, moved, rtl);
|
|
3871
3864
|
const dragged = blocks.filter((block) => block.dragged);
|
|
3872
3865
|
if (dragged.length === 0) return null;
|
|
@@ -3926,7 +3919,7 @@ function draggedBlocks(controller, blockId) {
|
|
|
3926
3919
|
function followPress(press, root, view) {
|
|
3927
3920
|
const { controller, store, overlay, handle: handle2, pointerId } = press;
|
|
3928
3921
|
const doc = view.document;
|
|
3929
|
-
const scroll =
|
|
3922
|
+
const scroll = _chunkP6KYXFZCcjs.createAutoScroll.call(void 0, root, follow, SCROLL_EDGE);
|
|
3930
3923
|
let pointer = { x: press.x, y: press.y };
|
|
3931
3924
|
let active = null;
|
|
3932
3925
|
let unsubscribe = () => {
|
|
@@ -3979,7 +3972,7 @@ function followPress(press, root, view) {
|
|
|
3979
3972
|
finish();
|
|
3980
3973
|
if (dropped === null || dropped.target === null || controller.readOnly) return;
|
|
3981
3974
|
const { ids, layout, target } = dropped;
|
|
3982
|
-
if (!controller.run(
|
|
3975
|
+
if (!controller.run(_chunkZKVOS57Qcjs.moveBlocksTo.call(void 0, ids, layout.toIndex(target.index), target.indent))) return;
|
|
3983
3976
|
controller.focus();
|
|
3984
3977
|
press.onMoved(ids[0]);
|
|
3985
3978
|
}
|
|
@@ -4001,9 +3994,9 @@ function followPress(press, root, view) {
|
|
|
4001
3994
|
event.stopPropagation();
|
|
4002
3995
|
finish();
|
|
4003
3996
|
}
|
|
4004
|
-
const unlistenDocument =
|
|
4005
|
-
const unlistenBlur =
|
|
4006
|
-
const unlistenKeys =
|
|
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);
|
|
4007
4000
|
return finish;
|
|
4008
4001
|
}
|
|
4009
4002
|
function pressDragHandle(press) {
|
|
@@ -4055,12 +4048,12 @@ function useBlockDrag(controller, store, blockId, overlay) {
|
|
|
4055
4048
|
function addBlockBelow(controller, blockId) {
|
|
4056
4049
|
const { state } = controller.editor;
|
|
4057
4050
|
const { doc, schema } = state;
|
|
4058
|
-
const block =
|
|
4051
|
+
const block = _chunk4SLJNZSMcjs.blockById.call(void 0, doc, blockId);
|
|
4059
4052
|
if (block === void 0) return false;
|
|
4060
|
-
const empty =
|
|
4061
|
-
const fill = empty ?
|
|
4062
|
-
const slash =
|
|
4063
|
-
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]);
|
|
4064
4057
|
if (ok && tr !== null) controller.dispatch(tr);
|
|
4065
4058
|
controller.focus();
|
|
4066
4059
|
return ok;
|
|
@@ -4141,7 +4134,7 @@ function place2(controller, root, gutter, block) {
|
|
|
4141
4134
|
gutter.style.visibility = "";
|
|
4142
4135
|
}
|
|
4143
4136
|
function useGutterPosition(controller, gutter, block) {
|
|
4144
|
-
|
|
4137
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
4145
4138
|
const element = gutter.current;
|
|
4146
4139
|
const root = controller.root;
|
|
4147
4140
|
const view = _optionalChain([root, 'optionalAccess', _193 => _193.ownerDocument, 'access', _194 => _194.defaultView]);
|
|
@@ -4168,7 +4161,7 @@ function useGutterPosition(controller, gutter, block) {
|
|
|
4168
4161
|
|
|
4169
4162
|
// src/gutter/use-gutter-target.ts
|
|
4170
4163
|
|
|
4171
|
-
var headOf = (state) =>
|
|
4164
|
+
var headOf = (state) => _chunkZKVOS57Qcjs.headBlockId.call(void 0, state.selection);
|
|
4172
4165
|
function blockAcross(controller, root, y) {
|
|
4173
4166
|
const box = root.getBoundingClientRect();
|
|
4174
4167
|
const probe = _optionalChain([root, 'access', _195 => _195.ownerDocument, 'access', _196 => _196.elementFromPoint, 'optionalCall', _197 => _197(box.left + box.width / 2, y)]);
|
|
@@ -4176,7 +4169,7 @@ function blockAcross(controller, root, y) {
|
|
|
4176
4169
|
}
|
|
4177
4170
|
function useGutterTarget(controller, store, gutter) {
|
|
4178
4171
|
const hovered = useCanvasUi(store, (state) => state.hoveredBlock);
|
|
4179
|
-
const head =
|
|
4172
|
+
const head = _chunkP6KYXFZCcjs.useEditorState.call(void 0, controller, headOf);
|
|
4180
4173
|
const [focusWithin, setFocusWithin] = _react.useState.call(void 0, false);
|
|
4181
4174
|
_react.useEffect.call(void 0, () => {
|
|
4182
4175
|
const root = controller.root;
|
|
@@ -4194,7 +4187,7 @@ function useGutterTarget(controller, store, gutter) {
|
|
|
4194
4187
|
const onFocusIn = () => setFocusWithin(true);
|
|
4195
4188
|
const onFocusOut = (event) => setFocusWithin(root.contains(event.relatedTarget));
|
|
4196
4189
|
setFocusWithin(root.contains(root.ownerDocument.activeElement));
|
|
4197
|
-
return
|
|
4190
|
+
return _chunkP6KYXFZCcjs.listen.call(void 0, root, { pointermove: onPointerMove, pointerleave: onPointerLeave, focusin: onFocusIn, focusout: onFocusOut });
|
|
4198
4191
|
}, [controller, store, gutter]);
|
|
4199
4192
|
const fallback = focusWithin ? head : null;
|
|
4200
4193
|
const target = _nullishCoalesce(hovered, () => ( fallback));
|
|
@@ -4303,7 +4296,7 @@ function pointInHost(host, { node, offset }) {
|
|
|
4303
4296
|
return host.contains(node) ? { node, offset: Math.min(offset, nodeLength(node)) } : null;
|
|
4304
4297
|
}
|
|
4305
4298
|
function textRect(host, { from, to }) {
|
|
4306
|
-
const map =
|
|
4299
|
+
const map = _chunkP6KYXFZCcjs.domMapOf.call(void 0, host);
|
|
4307
4300
|
const range = host.ownerDocument.createRange();
|
|
4308
4301
|
if (map === void 0 || typeof range.getBoundingClientRect !== "function") return null;
|
|
4309
4302
|
const start = pointInHost(host, map.toDom(from, 1));
|
|
@@ -4316,7 +4309,7 @@ function textRect(host, { from, to }) {
|
|
|
4316
4309
|
}
|
|
4317
4310
|
function rangeRect(controller, range) {
|
|
4318
4311
|
const host = controller.registry.get(range.block, range.region);
|
|
4319
|
-
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)) {
|
|
4320
4313
|
return null;
|
|
4321
4314
|
}
|
|
4322
4315
|
const rect = textRect(host, range);
|
|
@@ -4332,7 +4325,7 @@ function union(a, b) {
|
|
|
4332
4325
|
function selectionRect(controller) {
|
|
4333
4326
|
const { state } = controller.editor;
|
|
4334
4327
|
if (_optionalChain([state, 'access', _205 => _205.selection, 'optionalAccess', _206 => _206.kind]) !== "text") return null;
|
|
4335
|
-
const ranges =
|
|
4328
|
+
const ranges = _chunkZKVOS57Qcjs.markRanges.call(void 0, state);
|
|
4336
4329
|
if (ranges.length === 0) return null;
|
|
4337
4330
|
const first = rangeRect(controller, ranges[0]);
|
|
4338
4331
|
if (ranges.length === 1) return first;
|
|
@@ -4343,7 +4336,7 @@ function selectionRect(controller) {
|
|
|
4343
4336
|
// src/menus/floating/use-selection-anchor.ts
|
|
4344
4337
|
var ROOM_ABOVE = 56;
|
|
4345
4338
|
function selectionHost(controller) {
|
|
4346
|
-
const [first] =
|
|
4339
|
+
const [first] = _chunkZKVOS57Qcjs.markRanges.call(void 0, controller.editor.state);
|
|
4347
4340
|
return _nullishCoalesce(_nullishCoalesce((first && controller.registry.get(first.block, first.region)), () => ( controller.root)), () => ( void 0));
|
|
4348
4341
|
}
|
|
4349
4342
|
function useSelectionAnchor(controller, state) {
|
|
@@ -4357,7 +4350,7 @@ function useSelectionAnchor(controller, state) {
|
|
|
4357
4350
|
[controller, state]
|
|
4358
4351
|
);
|
|
4359
4352
|
const [side, setSide] = _react.useState.call(void 0, "top");
|
|
4360
|
-
|
|
4353
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
4361
4354
|
const rect = selectionRect(controller);
|
|
4362
4355
|
if (rect) setSide(rect.top < ROOM_ABOVE ? "bottom" : "top");
|
|
4363
4356
|
}, [controller, state]);
|
|
@@ -4402,9 +4395,9 @@ var ICONS = { left: _lucidereact.AlignLeft, center: _lucidereact.AlignCenter, ri
|
|
|
4402
4395
|
var ALIGNS2 = Object.keys(ICONS);
|
|
4403
4396
|
var LABEL_KEYS = { left: "alignLeft", center: "alignCenter", right: "alignRight", justify: "alignJustify" };
|
|
4404
4397
|
function sharedAlign(state) {
|
|
4405
|
-
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");
|
|
4406
4399
|
if (blocks.length === 0) return null;
|
|
4407
|
-
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"))));
|
|
4408
4401
|
return aligns.size === 1 ? [...aligns][0] : "";
|
|
4409
4402
|
}
|
|
4410
4403
|
function AlignDropdown({ controller, state }) {
|
|
@@ -4413,7 +4406,7 @@ function AlignDropdown({ controller, state }) {
|
|
|
4413
4406
|
if (value === null) return null;
|
|
4414
4407
|
const Icon = value === "" ? _lucidereact.AlignLeft : ICONS[value];
|
|
4415
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, {}) });
|
|
4416
|
-
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: [
|
|
4417
4410
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, MenuIcon, { icon: ICONS[align] }),
|
|
4418
4411
|
labels[LABEL_KEYS[align]]
|
|
4419
4412
|
] }, align)) }) });
|
|
@@ -4425,8 +4418,8 @@ function AlignDropdown({ controller, state }) {
|
|
|
4425
4418
|
var MARKS = { color: "color", background: "highlight" };
|
|
4426
4419
|
function selectionColor(state, mark) {
|
|
4427
4420
|
const names = /* @__PURE__ */ new Set();
|
|
4428
|
-
for (const range of
|
|
4429
|
-
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)) {
|
|
4430
4423
|
const found = node.marks.find((candidate) => candidate.type === mark);
|
|
4431
4424
|
names.add(found === void 0 ? "default" : _optionalChain([found, 'access', _210 => _210.attrs, 'optionalAccess', _211 => _211.color]));
|
|
4432
4425
|
}
|
|
@@ -4435,7 +4428,7 @@ function selectionColor(state, mark) {
|
|
|
4435
4428
|
return names.size === 1 && typeof only === "string" ? only : "";
|
|
4436
4429
|
}
|
|
4437
4430
|
function colorCommand(key, name) {
|
|
4438
|
-
return name === "default" ?
|
|
4431
|
+
return name === "default" ? _chunkZKVOS57Qcjs.unsetMark.call(void 0, MARKS[key]) : _chunkZKVOS57Qcjs.setMark.call(void 0, MARKS[key], { color: name });
|
|
4439
4432
|
}
|
|
4440
4433
|
function ColorPopover({ controller, state }) {
|
|
4441
4434
|
const labels = useLabels();
|
|
@@ -4453,14 +4446,14 @@ function TurnIntoDropdown({ controller, state }) {
|
|
|
4453
4446
|
labels.turnInto,
|
|
4454
4447
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ChevronDown, {})
|
|
4455
4448
|
] });
|
|
4456
|
-
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) }) });
|
|
4457
4450
|
}
|
|
4458
4451
|
|
|
4459
4452
|
// src/menus/bubble/BubbleToolbar.tsx
|
|
4460
4453
|
|
|
4461
4454
|
var DIVIDER = "mx-0.5 h-5 w-px shrink-0 bg-border";
|
|
4462
4455
|
function BubbleToolbar({ controller, labels, store, extraItems }) {
|
|
4463
|
-
const state =
|
|
4456
|
+
const state = _chunkP6KYXFZCcjs.useEditorState.call(void 0, controller, _chunkP6KYXFZCcjs.wholeState);
|
|
4464
4457
|
const { anchor, side } = useSelectionAnchor(controller, state);
|
|
4465
4458
|
const roving = useRovingFocus();
|
|
4466
4459
|
const items = _react.useMemo.call(void 0, () => bubbleItems(labels, () => store.set({ linkPopover: { open: true } })), [labels, store]);
|
|
@@ -4525,10 +4518,10 @@ function useMediaQuery(query, unsupported) {
|
|
|
4525
4518
|
var useFinePointer = () => useMediaQuery("(pointer: fine)", true);
|
|
4526
4519
|
|
|
4527
4520
|
// src/menus/bubble/use-bubble-visibility.ts
|
|
4528
|
-
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;
|
|
4529
4522
|
function useBubbleVisibility(controller) {
|
|
4530
|
-
const range =
|
|
4531
|
-
const readOnly =
|
|
4523
|
+
const range = _chunkP6KYXFZCcjs.useEditorState.call(void 0, controller, hasTextRange);
|
|
4524
|
+
const readOnly = _chunkP6KYXFZCcjs.useReadOnly.call(void 0, controller);
|
|
4532
4525
|
const fine = useFinePointer();
|
|
4533
4526
|
const settled = useSelectionSettled(controller);
|
|
4534
4527
|
return range && !readOnly && fine && settled;
|
|
@@ -4548,7 +4541,7 @@ function BubbleOverlay({ controller }) {
|
|
|
4548
4541
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, BubbleToolbar, { controller, labels, store, extraItems });
|
|
4549
4542
|
}
|
|
4550
4543
|
function bubbleExtension() {
|
|
4551
|
-
return
|
|
4544
|
+
return _chunkZKVOS57Qcjs.defineExtension.call(void 0, { name: "bubble", ui: { overlays: [BubbleOverlay] } });
|
|
4552
4545
|
}
|
|
4553
4546
|
|
|
4554
4547
|
// src/menus/link/link-extension.tsx
|
|
@@ -4561,10 +4554,10 @@ function bubbleExtension() {
|
|
|
4561
4554
|
// src/menus/link/link-at-selection.ts
|
|
4562
4555
|
function linkAround(state, from, to = from) {
|
|
4563
4556
|
if (from.block !== to.block || from.region !== to.region) return null;
|
|
4564
|
-
const inline = _nullishCoalesce(
|
|
4565
|
-
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");
|
|
4566
4559
|
if (extent === null || to.offset > extent.to) return null;
|
|
4567
|
-
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]);
|
|
4568
4561
|
if (_optionalChain([attrs, 'optionalAccess', _225 => _225.href]) === void 0) return null;
|
|
4569
4562
|
const range = { block: from.block, region: from.region, ...extent };
|
|
4570
4563
|
return { href: attrs.href, title: attrs.title || void 0, range };
|
|
@@ -4572,7 +4565,7 @@ function linkAround(state, from, to = from) {
|
|
|
4572
4565
|
function linkAtSelection(state) {
|
|
4573
4566
|
const { selection } = state;
|
|
4574
4567
|
if (_optionalChain([selection, 'optionalAccess', _226 => _226.kind]) !== "text") return null;
|
|
4575
|
-
const { from, to } =
|
|
4568
|
+
const { from, to } = _chunkZKVOS57Qcjs.orderedRange.call(void 0, state.doc, selection.anchor, selection.head);
|
|
4576
4569
|
return linkAround(state, from, to);
|
|
4577
4570
|
}
|
|
4578
4571
|
|
|
@@ -4584,7 +4577,7 @@ function linkElementAt(controller, target) {
|
|
|
4584
4577
|
}
|
|
4585
4578
|
function linkAtElement(controller, state, element) {
|
|
4586
4579
|
const host = controller.registry.locate(element);
|
|
4587
|
-
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));
|
|
4588
4581
|
if (host === null || offset === null) return null;
|
|
4589
4582
|
return linkAround(state, { block: host.block, region: host.region, offset });
|
|
4590
4583
|
}
|
|
@@ -4610,7 +4603,7 @@ function truncateMiddle(text2, max) {
|
|
|
4610
4603
|
// src/menus/link/unlink-range.ts
|
|
4611
4604
|
function unlinkRange({ block, region, from, to }) {
|
|
4612
4605
|
return (state, dispatch) => {
|
|
4613
|
-
const tr = new (0,
|
|
4606
|
+
const tr = new (0, _chunkZKVOS57Qcjs.Transaction)(state).step(_chunkZKVOS57Qcjs.removeMarkStep.call(void 0, block, region, from, to, "link"));
|
|
4614
4607
|
if (!tr.docChanged) return false;
|
|
4615
4608
|
_optionalChain([dispatch, 'optionalCall', _233 => _233(tr)]);
|
|
4616
4609
|
return true;
|
|
@@ -4635,12 +4628,12 @@ function useRestedValue(value, delay) {
|
|
|
4635
4628
|
// src/menus/link/use-caret-in-link.ts
|
|
4636
4629
|
function caretLinkKey(state) {
|
|
4637
4630
|
const { selection } = state;
|
|
4638
|
-
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;
|
|
4639
4632
|
const link = linkAtSelection(state);
|
|
4640
4633
|
return link && [link.range.block, link.range.region, link.range.from, link.href].join("\0");
|
|
4641
4634
|
}
|
|
4642
4635
|
function useCaretInLink(controller, delay) {
|
|
4643
|
-
const key =
|
|
4636
|
+
const key = _chunkP6KYXFZCcjs.useEditorState.call(void 0, controller, caretLinkKey);
|
|
4644
4637
|
const settled = useSelectionSettled(controller);
|
|
4645
4638
|
return useRestedValue(settled ? key : null, delay) !== null;
|
|
4646
4639
|
}
|
|
@@ -4680,7 +4673,7 @@ var URL_LENGTH = 48;
|
|
|
4680
4673
|
var CARD = "flex w-auto items-center gap-0.5 py-1 ps-3 pe-1 shadow-md";
|
|
4681
4674
|
var ADDRESS = "me-1 whitespace-nowrap text-sm text-muted-foreground";
|
|
4682
4675
|
function LinkCard({ controller, labels, store, cardRef, element, onUnlinked }) {
|
|
4683
|
-
const state =
|
|
4676
|
+
const state = _chunkP6KYXFZCcjs.useEditorState.call(void 0, controller, _chunkP6KYXFZCcjs.wholeState);
|
|
4684
4677
|
const link = _react.useMemo.call(void 0,
|
|
4685
4678
|
() => element === null ? linkAtSelection(state) : linkAtElement(controller, state, element),
|
|
4686
4679
|
[controller, state, element]
|
|
@@ -4693,12 +4686,12 @@ function LinkCard({ controller, labels, store, cardRef, element, onUnlinked }) {
|
|
|
4693
4686
|
}, [controller, link]);
|
|
4694
4687
|
if (link === null) return null;
|
|
4695
4688
|
const { block, region, from, to } = link.range;
|
|
4696
|
-
const href =
|
|
4689
|
+
const href = _chunk4SLJNZSMcjs.sanitizeHref.call(void 0, link.href);
|
|
4697
4690
|
const address = truncateMiddle(link.href, URL_LENGTH);
|
|
4698
4691
|
const edit2 = () => {
|
|
4699
4692
|
if (element !== null) {
|
|
4700
|
-
const selection =
|
|
4701
|
-
|
|
4693
|
+
const selection = _chunkZKVOS57Qcjs.textSelection.call(void 0, { block, region, offset: from }, { block, region, offset: to });
|
|
4694
|
+
_chunkP6KYXFZCcjs.dispatchSelection.call(void 0, controller, selection);
|
|
4702
4695
|
}
|
|
4703
4696
|
store.set({ linkPopover: { open: true } });
|
|
4704
4697
|
};
|
|
@@ -4744,12 +4737,12 @@ function LinkHoverCard(props) {
|
|
|
4744
4737
|
|
|
4745
4738
|
// src/menus/link/apply-link.ts
|
|
4746
4739
|
function insertLinkedText(value, href, caret) {
|
|
4747
|
-
const safe =
|
|
4740
|
+
const safe = _chunk4SLJNZSMcjs.sanitizeHref.call(void 0, href);
|
|
4748
4741
|
return (state, dispatch) => {
|
|
4749
4742
|
if (!safe) return false;
|
|
4750
4743
|
const link = { type: "link", attrs: { href: safe } };
|
|
4751
|
-
const marks =
|
|
4752
|
-
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 }));
|
|
4753
4746
|
_optionalChain([dispatch, 'optionalCall', _238 => _238(tr)]);
|
|
4754
4747
|
return true;
|
|
4755
4748
|
};
|
|
@@ -4758,10 +4751,10 @@ function applyLink(href, value) {
|
|
|
4758
4751
|
return (state, dispatch) => {
|
|
4759
4752
|
const { selection } = state;
|
|
4760
4753
|
const link = linkAtSelection(state);
|
|
4761
|
-
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) {
|
|
4762
4755
|
return insertLinkedText(value, href, selection.head)(state, dispatch);
|
|
4763
4756
|
}
|
|
4764
|
-
return
|
|
4757
|
+
return _chunkZKVOS57Qcjs.setLink.call(void 0, href, _optionalChain([link, 'optionalAccess', _240 => _240.title]))(state, dispatch);
|
|
4765
4758
|
};
|
|
4766
4759
|
}
|
|
4767
4760
|
|
|
@@ -4775,7 +4768,7 @@ function popoverAnchor(controller, link) {
|
|
|
4775
4768
|
if (_optionalChain([selection, 'optionalAccess', _241 => _241.kind]) !== "text") return null;
|
|
4776
4769
|
const { block, region, offset } = selection.head;
|
|
4777
4770
|
const caret = _nullishCoalesce(_optionalChain([link, 'optionalAccess', _242 => _242.range]), () => ( { block, region, from: offset, to: offset }));
|
|
4778
|
-
const collapsed =
|
|
4771
|
+
const collapsed = _chunkZKVOS57Qcjs.isCollapsed.call(void 0, selection);
|
|
4779
4772
|
return virtualAnchor(
|
|
4780
4773
|
() => collapsed ? rangeRect(controller, caret) : selectionRect(controller),
|
|
4781
4774
|
() => controller.registry.get(block, region)
|
|
@@ -4787,7 +4780,7 @@ function LinkPopover({ controller, labels, onClose }) {
|
|
|
4787
4780
|
const [invalid, setInvalid] = _react.useState.call(void 0, false);
|
|
4788
4781
|
const messageId = _react.useId.call(void 0, );
|
|
4789
4782
|
const anchor = _react.useMemo.call(void 0, () => ({ current: popoverAnchor(controller, link) }), [controller, link]);
|
|
4790
|
-
const openHref = link &&
|
|
4783
|
+
const openHref = link && _chunk4SLJNZSMcjs.sanitizeHref.call(void 0, link.href);
|
|
4791
4784
|
const backToText = () => {
|
|
4792
4785
|
onClose();
|
|
4793
4786
|
controller.focus();
|
|
@@ -4804,7 +4797,7 @@ function LinkPopover({ controller, labels, onClose }) {
|
|
|
4804
4797
|
backToText();
|
|
4805
4798
|
};
|
|
4806
4799
|
const remove = () => {
|
|
4807
|
-
controller.run(
|
|
4800
|
+
controller.run(_chunkZKVOS57Qcjs.unsetLink);
|
|
4808
4801
|
backToText();
|
|
4809
4802
|
};
|
|
4810
4803
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -4878,7 +4871,7 @@ function LinkOverlay({ controller }) {
|
|
|
4878
4871
|
const labels = useLabels();
|
|
4879
4872
|
const store = useCanvasUiStore();
|
|
4880
4873
|
const popoverOpen = useCanvasUi(store, isPopoverOpen);
|
|
4881
|
-
const readOnly =
|
|
4874
|
+
const readOnly = _chunkP6KYXFZCcjs.useReadOnly.call(void 0, controller);
|
|
4882
4875
|
useLinkClicks(controller);
|
|
4883
4876
|
_react.useEffect.call(void 0, () => {
|
|
4884
4877
|
if (readOnly && store.get().linkPopover.open) store.set({ linkPopover: { open: false } });
|
|
@@ -4893,7 +4886,7 @@ function linkExtension(store) {
|
|
|
4893
4886
|
if (dispatch) store.set({ linkPopover: { open: true } });
|
|
4894
4887
|
return true;
|
|
4895
4888
|
};
|
|
4896
|
-
return
|
|
4889
|
+
return _chunkZKVOS57Qcjs.defineExtension.call(void 0, { name: "link", keymap: { "Mod-k": openPopover }, ui: { overlays: [LinkOverlay] } });
|
|
4897
4890
|
}
|
|
4898
4891
|
|
|
4899
4892
|
// src/menus/slash/slash-extension.tsx
|
|
@@ -4904,7 +4897,7 @@ var DEFAULT_MAX_LENGTH = 40;
|
|
|
4904
4897
|
var NO_TRIGGER_TYPES = /* @__PURE__ */ new Set(["CODE", "TABLE"]);
|
|
4905
4898
|
var WHITESPACE2 = /\s/;
|
|
4906
4899
|
var ATOM = "\uFFFC";
|
|
4907
|
-
var hasCode = (inline) => inline.some((node) =>
|
|
4900
|
+
var hasCode = (inline) => inline.some((node) => _chunk4SLJNZSMcjs.hasMark.call(void 0, node.marks, "code"));
|
|
4908
4901
|
function triggerOffset(text2, start, config) {
|
|
4909
4902
|
const { char, allowSpaces = false, startOfLine = false } = config;
|
|
4910
4903
|
const earliest = Math.max(0, text2.length - (_nullishCoalesce(config.maxLength, () => ( DEFAULT_MAX_LENGTH))) - 1);
|
|
@@ -4921,15 +4914,15 @@ function triggerOffset(text2, start, config) {
|
|
|
4921
4914
|
}
|
|
4922
4915
|
function findTrigger(state, config) {
|
|
4923
4916
|
const { doc, selection } = state;
|
|
4924
|
-
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;
|
|
4925
4918
|
const { block: blockId, region, offset: caret } = selection.head;
|
|
4926
|
-
const block =
|
|
4919
|
+
const block = _chunk4SLJNZSMcjs.blockById.call(void 0, doc, blockId);
|
|
4927
4920
|
if (block === void 0 || NO_TRIGGER_TYPES.has(block.type) || !Object.hasOwn(block.regions, region)) return null;
|
|
4928
4921
|
const inline = block.regions[region];
|
|
4929
4922
|
const start = Math.max(0, caret - (_nullishCoalesce(config.maxLength, () => ( DEFAULT_MAX_LENGTH))) - 2);
|
|
4930
|
-
const from = triggerOffset(
|
|
4931
|
-
if (from === null || hasCode(
|
|
4932
|
-
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));
|
|
4933
4926
|
return { block: blockId, region, from, to: caret, query };
|
|
4934
4927
|
}
|
|
4935
4928
|
|
|
@@ -4959,7 +4952,7 @@ function suggestionPlugin(key, config) {
|
|
|
4959
4952
|
init: (state) => ({ active: nearest(state, findTrigger(state, config)), dismissedAt: null }),
|
|
4960
4953
|
apply(tr, value, oldState, newState) {
|
|
4961
4954
|
const dismissing = tr.getMeta(DISMISS) === key.name;
|
|
4962
|
-
if (!dismissing && !tr.docChanged &&
|
|
4955
|
+
if (!dismissing && !tr.docChanged && _chunkZKVOS57Qcjs.sameSelection.call(void 0, oldState.selection, newState.selection)) return value;
|
|
4963
4956
|
const found = findTrigger(newState, config);
|
|
4964
4957
|
let dismissedAt = null;
|
|
4965
4958
|
if (dismissing) dismissedAt = found && rangeOf2(found);
|
|
@@ -4976,14 +4969,14 @@ function suggestionPlugin(key, config) {
|
|
|
4976
4969
|
}
|
|
4977
4970
|
function dismissSuggestion(key) {
|
|
4978
4971
|
return (state, dispatch) => {
|
|
4979
|
-
if (
|
|
4980
|
-
_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))]);
|
|
4981
4974
|
return true;
|
|
4982
4975
|
};
|
|
4983
4976
|
}
|
|
4984
4977
|
|
|
4985
4978
|
// src/menus/slash/slash-key.ts
|
|
4986
|
-
var slashKey =
|
|
4979
|
+
var slashKey = _chunkZKVOS57Qcjs.createPluginKey.call(void 0, "slash");
|
|
4987
4980
|
|
|
4988
4981
|
// src/menus/slash/slash-items.ts
|
|
4989
4982
|
|
|
@@ -5032,7 +5025,7 @@ function builtInSlashItems(labels, definitions) {
|
|
|
5032
5025
|
function initialBlock({ schema }, { type, initialData }) {
|
|
5033
5026
|
const data = _optionalChain([initialData, 'optionalCall', _250 => _250()]);
|
|
5034
5027
|
if (data === void 0) return { type };
|
|
5035
|
-
return { type, ...
|
|
5028
|
+
return { type, ..._chunk4SLJNZSMcjs.specFor.call(void 0, schema, type).fromData(data, _chunk4SLJNZSMcjs.createBlockCodec.call(void 0, schema).context) };
|
|
5036
5029
|
}
|
|
5037
5030
|
function blockTypeSlashItems(definitions) {
|
|
5038
5031
|
return _chunkEH5KXQXYcjs.paletteBlocks.call(void 0, definitions).filter((definition) => !BUILT_IN_TYPES.has(definition.type)).map((definition) => ({
|
|
@@ -5065,10 +5058,10 @@ function useRangeAnchor(controller, range) {
|
|
|
5065
5058
|
const [side, setSide] = _react.useState.call(void 0, "bottom");
|
|
5066
5059
|
const latest = _react.useRef.call(void 0, range);
|
|
5067
5060
|
const start = range === null ? null : `${range.block} ${range.region} ${range.from}`;
|
|
5068
|
-
|
|
5061
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
5069
5062
|
latest.current = range;
|
|
5070
5063
|
});
|
|
5071
|
-
|
|
5064
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
5072
5065
|
const rect = latest.current && rangeRect(controller, latest.current);
|
|
5073
5066
|
if (rect) setSide(sideFor(rect, window.innerHeight));
|
|
5074
5067
|
}, [controller, start]);
|
|
@@ -5100,11 +5093,11 @@ function openCombobox(host, listboxId) {
|
|
|
5100
5093
|
}
|
|
5101
5094
|
function useComboboxHost(controller, block, region, listboxId, activeOptionId) {
|
|
5102
5095
|
const host = _react.useRef.call(void 0, null);
|
|
5103
|
-
|
|
5096
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
5104
5097
|
host.current = block === null || region === null ? null : _nullishCoalesce(controller.registry.get(block, region), () => ( null));
|
|
5105
5098
|
return host.current === null ? void 0 : openCombobox(host.current, listboxId);
|
|
5106
5099
|
}, [controller, block, region, listboxId]);
|
|
5107
|
-
|
|
5100
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
5108
5101
|
if (host.current !== null) restore(host.current, "aria-activedescendant", activeOptionId);
|
|
5109
5102
|
}, [block, region, activeOptionId]);
|
|
5110
5103
|
}
|
|
@@ -5153,10 +5146,10 @@ function handle(event, menu) {
|
|
|
5153
5146
|
}
|
|
5154
5147
|
function useSuggestionKeys(controller, open, menu) {
|
|
5155
5148
|
const latest = _react.useRef.call(void 0, menu);
|
|
5156
|
-
|
|
5149
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
5157
5150
|
latest.current = menu;
|
|
5158
5151
|
});
|
|
5159
|
-
|
|
5152
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
5160
5153
|
if (!open) return;
|
|
5161
5154
|
const intercept = (event) => {
|
|
5162
5155
|
const handled = handle(event, latest.current);
|
|
@@ -5180,10 +5173,10 @@ var isPromise = (value) => typeof _optionalChain([value, 'optionalAccess', _252
|
|
|
5180
5173
|
function useSuggestionResults(source, query, onError) {
|
|
5181
5174
|
const [answer, setAnswer] = _react.useState.call(void 0, FORGOTTEN);
|
|
5182
5175
|
const report = _react.useRef.call(void 0, onError);
|
|
5183
|
-
|
|
5176
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
5184
5177
|
report.current = onError;
|
|
5185
5178
|
});
|
|
5186
|
-
|
|
5179
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
5187
5180
|
if (query === null) {
|
|
5188
5181
|
setAnswer(FORGOTTEN);
|
|
5189
5182
|
return;
|
|
@@ -5227,9 +5220,9 @@ function useSuggestion({
|
|
|
5227
5220
|
emptyLabel
|
|
5228
5221
|
}) {
|
|
5229
5222
|
const { labels, onError } = useQuoin();
|
|
5230
|
-
const readOnly =
|
|
5231
|
-
const selectTrigger = _react.useCallback.call(void 0, (state) =>
|
|
5232
|
-
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);
|
|
5233
5226
|
const trigger = readOnly ? null : active;
|
|
5234
5227
|
const results = useSuggestionResults(source, _nullishCoalesce(_optionalChain([trigger, 'optionalAccess', _253 => _253.query]), () => ( null)), onError);
|
|
5235
5228
|
const sections = _react.useMemo.call(void 0, () => groupItems(results.items, groupOf2), [results.items, groupOf2]);
|
|
@@ -5251,7 +5244,7 @@ function useSuggestion({
|
|
|
5251
5244
|
);
|
|
5252
5245
|
const select = _react.useCallback.call(void 0,
|
|
5253
5246
|
(index) => {
|
|
5254
|
-
const current =
|
|
5247
|
+
const current = _chunkZKVOS57Qcjs.getPluginState.call(void 0, controller.editor.state, pluginKey).active;
|
|
5255
5248
|
if (current !== null && index < ordered.length) onSelect(ordered[index], rangeOf2(current));
|
|
5256
5249
|
},
|
|
5257
5250
|
[controller, pluginKey, ordered, onSelect]
|
|
@@ -5302,7 +5295,7 @@ function SuggestionMenu(props) {
|
|
|
5302
5295
|
const { trigger, sections, activeIndex, listboxId } = suggestion;
|
|
5303
5296
|
const { anchor, side } = useRangeAnchor(controller, trigger);
|
|
5304
5297
|
const listbox = _react.useRef.call(void 0, null);
|
|
5305
|
-
|
|
5298
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
5306
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" })]);
|
|
5307
5300
|
}, [activeIndex, sections]);
|
|
5308
5301
|
if (trigger === null) return null;
|
|
@@ -5361,14 +5354,14 @@ function SuggestionMenu(props) {
|
|
|
5361
5354
|
// src/menus/suggestion/replace-trigger.ts
|
|
5362
5355
|
function deleteTrigger({ block, region, from, to }) {
|
|
5363
5356
|
return (state, dispatch) => {
|
|
5364
|
-
const tr = new (0,
|
|
5365
|
-
if (from >= to || !tr.maybeStep(
|
|
5366
|
-
_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 })))]);
|
|
5367
5360
|
return true;
|
|
5368
5361
|
};
|
|
5369
5362
|
}
|
|
5370
5363
|
function triggerReplacement(state, range, command) {
|
|
5371
|
-
return
|
|
5364
|
+
return _chunkZKVOS57Qcjs.runCommands.call(void 0, state, command === void 0 ? [deleteTrigger(range)] : [deleteTrigger(range), command]);
|
|
5372
5365
|
}
|
|
5373
5366
|
function replaceTrigger(controller, range, command) {
|
|
5374
5367
|
const { ok, tr } = triggerReplacement(controller.editor.state, range, command);
|
|
@@ -5381,9 +5374,9 @@ var TEXT_STEPS = /* @__PURE__ */ new Set(["replaceInline", "addMark", "removeMar
|
|
|
5381
5374
|
var WHITESPACE3 = /\s/;
|
|
5382
5375
|
var changesBlocks = (tr) => tr !== null && tr.steps.some((step) => !TEXT_STEPS.has(step.stepType));
|
|
5383
5376
|
function withSpaceBefore(state, range) {
|
|
5384
|
-
const inline =
|
|
5377
|
+
const inline = _chunkP6KYXFZCcjs.regionInline.call(void 0, state, range.block, range.region);
|
|
5385
5378
|
if (inline === void 0 || range.from === 0) return null;
|
|
5386
|
-
const text2 =
|
|
5379
|
+
const text2 = _chunk4SLJNZSMcjs.inlineText.call(void 0, inline);
|
|
5387
5380
|
const after = text2.charAt(range.to);
|
|
5388
5381
|
const spaced = text2.charAt(range.from - 1) === " " && (after === "" || WHITESPACE3.test(after));
|
|
5389
5382
|
return spaced ? { ...range, from: range.from - 1 } : null;
|
|
@@ -5494,7 +5487,7 @@ function SlashOverlay({ controller }) {
|
|
|
5494
5487
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, SlashMenu, { controller, labels, items });
|
|
5495
5488
|
}
|
|
5496
5489
|
function slashExtension() {
|
|
5497
|
-
return
|
|
5490
|
+
return _chunkZKVOS57Qcjs.defineExtension.call(void 0, {
|
|
5498
5491
|
name: "slash",
|
|
5499
5492
|
plugins: [suggestionPlugin(slashKey, { char: "/" })],
|
|
5500
5493
|
ui: { overlays: [SlashOverlay] }
|
|
@@ -5521,7 +5514,7 @@ function commandItem(id, title, icon, command) {
|
|
|
5521
5514
|
return { id, title, icon, run: (controller) => void controller.run(command) };
|
|
5522
5515
|
}
|
|
5523
5516
|
function addBlockAtCaret(controller) {
|
|
5524
|
-
const block =
|
|
5517
|
+
const block = _chunkZKVOS57Qcjs.headBlockId.call(void 0, controller.editor.state.selection);
|
|
5525
5518
|
if (block !== null) addBlockBelow(controller, block);
|
|
5526
5519
|
}
|
|
5527
5520
|
function mobileItems(labels, openLink) {
|
|
@@ -5533,10 +5526,10 @@ function mobileItems(labels, openLink) {
|
|
|
5533
5526
|
markItem("strike", labels.strike, _lucidereact.Strikethrough),
|
|
5534
5527
|
markItem("code", labels.code, _lucidereact.Code),
|
|
5535
5528
|
linkItem(labels, openLink),
|
|
5536
|
-
commandItem("indent", labels.indent, _lucidereact.ListIndentIncrease,
|
|
5537
|
-
commandItem("outdent", labels.outdent, _lucidereact.ListIndentDecrease,
|
|
5538
|
-
commandItem("undo", labels.undo, _lucidereact.Undo2,
|
|
5539
|
-
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)
|
|
5540
5533
|
]
|
|
5541
5534
|
};
|
|
5542
5535
|
}
|
|
@@ -5599,7 +5592,7 @@ function placement(viewport) {
|
|
|
5599
5592
|
function EditingTools({ controller }) {
|
|
5600
5593
|
const labels = useLabels();
|
|
5601
5594
|
const store = useCanvasUiStore();
|
|
5602
|
-
const state =
|
|
5595
|
+
const state = _chunkP6KYXFZCcjs.useEditorState.call(void 0, controller, _chunkP6KYXFZCcjs.wholeState);
|
|
5603
5596
|
const viewport = useVisualViewport();
|
|
5604
5597
|
const roving = useRovingFocus();
|
|
5605
5598
|
const items = _react.useMemo.call(void 0, () => mobileItems(labels, () => store.set({ linkPopover: { open: true } })), [labels, store]);
|
|
@@ -5874,7 +5867,7 @@ function shortcutsExtension(store) {
|
|
|
5874
5867
|
if (dispatch) store.set({ shortcutsOpen: true });
|
|
5875
5868
|
return true;
|
|
5876
5869
|
};
|
|
5877
|
-
return
|
|
5870
|
+
return _chunkZKVOS57Qcjs.defineExtension.call(void 0, {
|
|
5878
5871
|
name: "shortcuts",
|
|
5879
5872
|
keymap: { [SHORTCUT]: open, "Mod-Shift-?": open },
|
|
5880
5873
|
ui: { overlays: [ShortcutsOverlay] }
|
|
@@ -5915,15 +5908,15 @@ function writeBlockData(controller, blockId, data) {
|
|
|
5915
5908
|
const index = doc.index.get(blockId);
|
|
5916
5909
|
if (index === void 0) return;
|
|
5917
5910
|
const block = doc.blocks[index];
|
|
5918
|
-
const { attrs, regions } =
|
|
5919
|
-
if (
|
|
5920
|
-
const tr = editor.createTransaction().step(
|
|
5921
|
-
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}`));
|
|
5922
5915
|
}
|
|
5923
5916
|
function insertAfterBlock(controller, blockId, type, definitions) {
|
|
5924
5917
|
const editor = internal(controller);
|
|
5925
5918
|
const data = _optionalChain([_chunkEH5KXQXYcjs.blockByType.call(void 0, definitions, type), 'optionalAccess', _278 => _278.initialData, 'optionalCall', _279 => _279()]);
|
|
5926
|
-
const content = data &&
|
|
5919
|
+
const content = data && _chunk4SLJNZSMcjs.specFor.call(void 0, editor.state.schema, type).fromData(data, editor.codec.context);
|
|
5927
5920
|
controller.run(insertBlockToWrite({ type, ...content }, opensEditor(definitions, type), blockId));
|
|
5928
5921
|
}
|
|
5929
5922
|
|
|
@@ -5954,8 +5947,8 @@ function useEditingFocus(root, editing, stop) {
|
|
|
5954
5947
|
const leaveUnlessInside = (event) => {
|
|
5955
5948
|
if (!inside.current.has(event)) stop();
|
|
5956
5949
|
};
|
|
5957
|
-
const unlistenCapture =
|
|
5958
|
-
const unlisten =
|
|
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 });
|
|
5959
5952
|
return () => {
|
|
5960
5953
|
unlistenCapture();
|
|
5961
5954
|
unlisten();
|
|
@@ -5983,7 +5976,7 @@ function VoidPreview({ definition: { preview: Preview }, name, ...props }) {
|
|
|
5983
5976
|
}
|
|
5984
5977
|
function VoidBlock({ block, controller, definition }) {
|
|
5985
5978
|
const { blockTypes, labels } = useQuoin();
|
|
5986
|
-
const readOnly =
|
|
5979
|
+
const readOnly = _chunkP6KYXFZCcjs.useReadOnly.call(void 0, controller);
|
|
5987
5980
|
const { editor: Editor, alwaysEditing = false } = definition;
|
|
5988
5981
|
const name = blockTypeLabel(labels, block, blockTypes);
|
|
5989
5982
|
const blockId = block.id;
|
|
@@ -6031,7 +6024,7 @@ function VoidBlock({ block, controller, definition }) {
|
|
|
6031
6024
|
role: "group",
|
|
6032
6025
|
"aria-label": name,
|
|
6033
6026
|
tabIndex: editorShown ? -1 : void 0,
|
|
6034
|
-
...{ [
|
|
6027
|
+
...{ [_chunkP6KYXFZCcjs.NATIVE_INTERACTION]: editorShown ? "" : void 0 },
|
|
6035
6028
|
onKeyDown,
|
|
6036
6029
|
...focusHandlers,
|
|
6037
6030
|
onClick,
|
|
@@ -6106,12 +6099,12 @@ function collectUi(extensions, definitions, readOnly = false) {
|
|
|
6106
6099
|
|
|
6107
6100
|
// src/canvas/insert-uploads.ts
|
|
6108
6101
|
function fileBlock(file, stored) {
|
|
6109
|
-
if (isImageFile(file)) return { id:
|
|
6102
|
+
if (isImageFile(file)) return { id: _chunk4SLJNZSMcjs.newId.call(void 0, ), type: "IMAGE", attrs: { storageKey: stored.storageKey, alt: "" } };
|
|
6110
6103
|
return { type: "FILE", attrs: fileAttrs(file, stored) };
|
|
6111
6104
|
}
|
|
6112
6105
|
function anchorBlock(controller, at) {
|
|
6113
6106
|
const { doc, selection } = controller.editor.state;
|
|
6114
|
-
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])];
|
|
6115
6108
|
return _nullishCoalesce(candidates.find((id) => typeof id === "string" && doc.index.has(id)), () => ( null));
|
|
6116
6109
|
}
|
|
6117
6110
|
var writerOf = (controller) => ({
|
|
@@ -6120,7 +6113,7 @@ var writerOf = (controller) => ({
|
|
|
6120
6113
|
});
|
|
6121
6114
|
function movedOn(controller, before) {
|
|
6122
6115
|
const now = writerOf(controller);
|
|
6123
|
-
return now.focus !== before.focus || !
|
|
6116
|
+
return now.focus !== before.focus || !_chunkZKVOS57Qcjs.sameSelection.call(void 0, now.selection, before.selection);
|
|
6124
6117
|
}
|
|
6125
6118
|
async function insertUploads(controller, files, at, { upload, resolveAssetUrl, onError, unavailable, failed }) {
|
|
6126
6119
|
if (!upload) return onError(new Error(unavailable));
|
|
@@ -6148,15 +6141,15 @@ function holdsHead({ selection }, block) {
|
|
|
6148
6141
|
}
|
|
6149
6142
|
function markdownPlaceholder(state, block, labels) {
|
|
6150
6143
|
const { kind, level } = block.attrs;
|
|
6151
|
-
if (kind === "heading") return labels.placeholderHeading(
|
|
6144
|
+
if (kind === "heading") return labels.placeholderHeading(_chunk4SLJNZSMcjs.headingLevel.call(void 0, level));
|
|
6152
6145
|
if (LIST_KINDS.has(kind)) return labels.placeholderList;
|
|
6153
6146
|
if (kind === "quote") return labels.placeholderQuote;
|
|
6154
6147
|
if (kind !== "paragraph") return void 0;
|
|
6155
6148
|
return holdsHead(state, block) || state.doc.blocks.length === 1 ? labels.placeholderEmpty : void 0;
|
|
6156
6149
|
}
|
|
6157
6150
|
function placeholderFor(state, block, labels) {
|
|
6158
|
-
const region =
|
|
6159
|
-
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;
|
|
6160
6153
|
switch (block.type) {
|
|
6161
6154
|
case "MARKDOWN":
|
|
6162
6155
|
return markdownPlaceholder(state, block, labels);
|
|
@@ -6177,13 +6170,13 @@ function firstLine2(text2) {
|
|
|
6177
6170
|
}
|
|
6178
6171
|
var selectedBlockLabel = (labels, definitions, extensionNames) => (block, schema) => {
|
|
6179
6172
|
const { attrs } = block;
|
|
6180
|
-
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;
|
|
6181
6174
|
if (block.type === "CODE") {
|
|
6182
|
-
const language2 =
|
|
6175
|
+
const language2 = _chunk4SLJNZSMcjs.str.call(void 0, attrs.language);
|
|
6183
6176
|
return labels.codeBlockName(_nullishCoalesce(languageName(language2), () => ( (language2 || labels.plainText))));
|
|
6184
6177
|
}
|
|
6185
6178
|
if (block.type === "FILE" && hasFile(attrs)) return labels.fileBlockName(firstLine2(fileName(attrs)));
|
|
6186
|
-
return firstLine2(
|
|
6179
|
+
return firstLine2(_chunk4SLJNZSMcjs.blockPlainText.call(void 0, block, schema)) || blockTypeLabel(labels, block, definitions, extensionNames);
|
|
6187
6180
|
};
|
|
6188
6181
|
|
|
6189
6182
|
// src/canvas/use-block-link-target.ts
|
|
@@ -6194,7 +6187,7 @@ function revealLinkedBlock(controller, hash) {
|
|
|
6194
6187
|
if (id === null || shell === void 0) return false;
|
|
6195
6188
|
const { editor } = controller;
|
|
6196
6189
|
const { doc, schema } = editor.state;
|
|
6197
|
-
editor.dispatch(editor.createTransaction().setSelection(
|
|
6190
|
+
editor.dispatch(editor.createTransaction().setSelection(_chunkZKVOS57Qcjs.startOf.call(void 0, doc, schema, id)));
|
|
6198
6191
|
shell.scrollIntoView({ block: "center" });
|
|
6199
6192
|
return true;
|
|
6200
6193
|
}
|
|
@@ -6214,8 +6207,8 @@ function useBlockLinkTarget(controller, focusOnMount) {
|
|
|
6214
6207
|
// src/canvas/use-delete-reporter.ts
|
|
6215
6208
|
|
|
6216
6209
|
var WRITER_ORIGINS = /* @__PURE__ */ new Set(["command", "input", "paste"]);
|
|
6217
|
-
var isBlockDeletion = (tr) => WRITER_ORIGINS.has(tr.origin) && tr.getMeta(
|
|
6218
|
-
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;
|
|
6219
6212
|
function filledLine({ origin, before }, schema) {
|
|
6220
6213
|
const { selection } = before;
|
|
6221
6214
|
if (origin !== "paste" || _optionalChain([selection, 'optionalAccess', _303 => _303.kind]) !== "text") return () => false;
|
|
@@ -6229,13 +6222,13 @@ function deletions(codec, tr) {
|
|
|
6229
6222
|
const { index, count } = step.toJSON();
|
|
6230
6223
|
if (typeof index !== "number" || typeof count !== "number") return [];
|
|
6231
6224
|
const { blocks } = tr.docs[i];
|
|
6232
|
-
const first = codec.blocksFromDoc(
|
|
6225
|
+
const first = codec.blocksFromDoc(_chunk4SLJNZSMcjs.createDoc.call(void 0, blocks.slice(0, index))).length;
|
|
6233
6226
|
return blocks.slice(index, index + count).flatMap((block, offset) => filled(block) ? [] : [{ block: codec.toQuoin(block), index: first + offset }]);
|
|
6234
6227
|
});
|
|
6235
6228
|
}
|
|
6236
6229
|
function useDeleteReporter(controller, onDelete) {
|
|
6237
6230
|
const latest = _react.useRef.call(void 0, onDelete);
|
|
6238
|
-
|
|
6231
|
+
_chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
6239
6232
|
latest.current = onDelete;
|
|
6240
6233
|
});
|
|
6241
6234
|
_react.useEffect.call(void 0, () => {
|
|
@@ -6298,7 +6291,7 @@ var BlockCanvas = _react.forwardRef.call(void 0, function BlockCanvas2({
|
|
|
6298
6291
|
const [voidEditing] = _react.useState.call(void 0, createVoidEditing);
|
|
6299
6292
|
const [uiStore] = _react.useState.call(void 0, createCanvasUiStore);
|
|
6300
6293
|
const [allExtensions] = _react.useState.call(void 0, () => [
|
|
6301
|
-
...
|
|
6294
|
+
..._chunkZKVOS57Qcjs.coreExtensions.call(void 0, ),
|
|
6302
6295
|
voidEditing.extension,
|
|
6303
6296
|
blockMenuKeymap(uiStore),
|
|
6304
6297
|
slashExtension(),
|
|
@@ -6311,7 +6304,7 @@ var BlockCanvas = _react.forwardRef.call(void 0, function BlockCanvas2({
|
|
|
6311
6304
|
const ui = _react.useMemo.call(void 0, () => collectUi(allExtensions, blockTypes, readOnly), [allExtensions, blockTypes, readOnly]);
|
|
6312
6305
|
useTypedInPlaceWarning(blockTypes, readOnly);
|
|
6313
6306
|
const [focusOnMount] = _react.useState.call(void 0, autoFocus);
|
|
6314
|
-
const controller =
|
|
6307
|
+
const controller = _chunkP6KYXFZCcjs.useQuoinEditor.call(void 0, {
|
|
6315
6308
|
blocks,
|
|
6316
6309
|
onChange,
|
|
6317
6310
|
readOnly,
|
|
@@ -6355,7 +6348,7 @@ var BlockCanvas = _react.forwardRef.call(void 0, function BlockCanvas2({
|
|
|
6355
6348
|
[controller, resolveAssetUrl]
|
|
6356
6349
|
);
|
|
6357
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,
|
|
6358
|
-
|
|
6351
|
+
_chunkP6KYXFZCcjs.EditorView,
|
|
6359
6352
|
{
|
|
6360
6353
|
controller,
|
|
6361
6354
|
renderers: ui.renderers,
|
|
@@ -6554,7 +6547,7 @@ function useAutosave({
|
|
|
6554
6547
|
const seen = seenRef.current;
|
|
6555
6548
|
seenRef.current = deps;
|
|
6556
6549
|
if (seen === null) return;
|
|
6557
|
-
const unchanged =
|
|
6550
|
+
const unchanged = _chunk4SLJNZSMcjs.sameItems.call(void 0, seen, deps);
|
|
6558
6551
|
if (!unchanged) runner.markDirty();
|
|
6559
6552
|
}, deps);
|
|
6560
6553
|
React10.useEffect(() => {
|
|
@@ -6640,4 +6633,4 @@ function useAutosave({
|
|
|
6640
6633
|
|
|
6641
6634
|
|
|
6642
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;
|
|
6643
|
-
//# sourceMappingURL=chunk-
|
|
6636
|
+
//# sourceMappingURL=chunk-CW3AFJBR.cjs.map
|