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.
Files changed (132) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/ai.cjs +78 -78
  3. package/dist/ai.js +6 -6
  4. package/dist/catalogue.cjs +24 -24
  5. package/dist/catalogue.js +16 -16
  6. package/dist/{chunk-BTBHHBVR.cjs → chunk-4SLJNZSM.cjs} +11 -7
  7. package/dist/chunk-4SLJNZSM.cjs.map +1 -0
  8. package/dist/{chunk-62WKUAQY.js → chunk-4XFXB37X.js} +7 -3
  9. package/dist/chunk-4XFXB37X.js.map +1 -0
  10. package/dist/{chunk-56C7GCKO.cjs → chunk-5MAYUGTE.cjs} +97 -97
  11. package/dist/{chunk-56C7GCKO.cjs.map → chunk-5MAYUGTE.cjs.map} +1 -1
  12. package/dist/{chunk-QXG3HWDS.js → chunk-623AOJM2.js} +4 -4
  13. package/dist/{chunk-6YSGUAVW.js → chunk-6NULZPVC.js} +6 -8
  14. package/dist/chunk-6NULZPVC.js.map +1 -0
  15. package/dist/{chunk-XX5FTPJR.cjs → chunk-6V6GGBDK.cjs} +10 -10
  16. package/dist/{chunk-XX5FTPJR.cjs.map → chunk-6V6GGBDK.cjs.map} +1 -1
  17. package/dist/{chunk-CLTHD5GO.cjs → chunk-73653CJ4.cjs} +3 -3
  18. package/dist/{chunk-CLTHD5GO.cjs.map → chunk-73653CJ4.cjs.map} +1 -1
  19. package/dist/{chunk-UBNG5YCG.js → chunk-ADSJ42DO.js} +6 -6
  20. package/dist/{chunk-PX6LZMH4.cjs → chunk-AUOEM3SF.cjs} +44 -44
  21. package/dist/{chunk-PX6LZMH4.cjs.map → chunk-AUOEM3SF.cjs.map} +1 -1
  22. package/dist/{chunk-ESMAW4NK.cjs → chunk-BQANU5BH.cjs} +12 -12
  23. package/dist/{chunk-ESMAW4NK.cjs.map → chunk-BQANU5BH.cjs.map} +1 -1
  24. package/dist/{chunk-UCXLRRWY.js → chunk-C23RQVRK.js} +5 -5
  25. package/dist/{chunk-5R3ISX4A.cjs → chunk-CW3AFJBR.cjs} +288 -295
  26. package/dist/chunk-CW3AFJBR.cjs.map +1 -0
  27. package/dist/{chunk-26Q4LSIU.js → chunk-DUE3HCZD.js} +2 -2
  28. package/dist/{chunk-SSIRYUCK.js → chunk-EPARJI4V.js} +6 -5
  29. package/dist/chunk-EPARJI4V.js.map +1 -0
  30. package/dist/{chunk-V3KLMSRO.cjs → chunk-FDRUAL3Z.cjs} +30 -30
  31. package/dist/{chunk-V3KLMSRO.cjs.map → chunk-FDRUAL3Z.cjs.map} +1 -1
  32. package/dist/{chunk-A4IJSJKL.js → chunk-IQBMAE3F.js} +5 -5
  33. package/dist/{chunk-PIWRSX7U.js → chunk-JHQUHFLX.js} +7 -7
  34. package/dist/{chunk-6PKVJZQV.cjs → chunk-KUYZMSMF.cjs} +8 -8
  35. package/dist/{chunk-6PKVJZQV.cjs.map → chunk-KUYZMSMF.cjs.map} +1 -1
  36. package/dist/{chunk-UDAVVEFC.cjs → chunk-LLTEGXWZ.cjs} +54 -54
  37. package/dist/{chunk-UDAVVEFC.cjs.map → chunk-LLTEGXWZ.cjs.map} +1 -1
  38. package/dist/{chunk-RQW3P3GH.js → chunk-N4FGA3H4.js} +5 -5
  39. package/dist/{chunk-LV6EYPJO.js → chunk-NEZJ7ZP5.js} +2 -2
  40. package/dist/{chunk-UPSLDTLT.js → chunk-OBMBSU2S.js} +3 -3
  41. package/dist/{chunk-WMN6566P.js → chunk-OSHZQR3W.js} +5 -5
  42. package/dist/{chunk-5M4QG3ZC.cjs → chunk-P6KYXFZC.cjs} +116 -115
  43. package/dist/chunk-P6KYXFZC.cjs.map +1 -0
  44. package/dist/{chunk-75C6PX2L.cjs → chunk-R2BLBV43.cjs} +23 -23
  45. package/dist/{chunk-75C6PX2L.cjs.map → chunk-R2BLBV43.cjs.map} +1 -1
  46. package/dist/{chunk-6LMS5J3Y.js → chunk-RJRX34BZ.js} +2 -2
  47. package/dist/{chunk-LE3F7WIP.js → chunk-T43RZTUT.js} +148 -155
  48. package/dist/chunk-T43RZTUT.js.map +1 -0
  49. package/dist/{chunk-MLRAVUFG.cjs → chunk-TLGX43P6.cjs} +17 -19
  50. package/dist/chunk-TLGX43P6.cjs.map +1 -0
  51. package/dist/{chunk-LMAEPFTX.js → chunk-U3LOLYAU.js} +2 -2
  52. package/dist/{chunk-JJ3RASQS.cjs → chunk-UEKXVCKC.cjs} +101 -91
  53. package/dist/chunk-UEKXVCKC.cjs.map +1 -0
  54. package/dist/{chunk-GPIDU3GN.js → chunk-VCLL5C7J.js} +5 -5
  55. package/dist/{chunk-PGSS4IOS.js → chunk-VRS6WCEK.js} +19 -9
  56. package/dist/chunk-VRS6WCEK.js.map +1 -0
  57. package/dist/{chunk-VACTAZWS.cjs → chunk-WEYDDIBQ.cjs} +14 -14
  58. package/dist/{chunk-VACTAZWS.cjs.map → chunk-WEYDDIBQ.cjs.map} +1 -1
  59. package/dist/{chunk-F5V3IEEE.cjs → chunk-X4HDKFW5.cjs} +27 -27
  60. package/dist/{chunk-F5V3IEEE.cjs.map → chunk-X4HDKFW5.cjs.map} +1 -1
  61. package/dist/{chunk-EYFCOV3T.cjs → chunk-X4P4TQXH.cjs} +5 -5
  62. package/dist/{chunk-EYFCOV3T.cjs.map → chunk-X4P4TQXH.cjs.map} +1 -1
  63. package/dist/{chunk-UWNZG2SD.cjs → chunk-XA3UEJIW.cjs} +3 -3
  64. package/dist/{chunk-UWNZG2SD.cjs.map → chunk-XA3UEJIW.cjs.map} +1 -1
  65. package/dist/{chunk-OCCKQHCY.js → chunk-YBMUEEM5.js} +2 -2
  66. package/dist/{chunk-HOIDJEVI.cjs → chunk-ZKVOS57Q.cjs} +217 -217
  67. package/dist/{chunk-HOIDJEVI.cjs.map → chunk-ZKVOS57Q.cjs.map} +1 -1
  68. package/dist/comments.cjs +58 -58
  69. package/dist/comments.js +7 -7
  70. package/dist/diff.cjs +28 -27
  71. package/dist/diff.cjs.map +1 -1
  72. package/dist/diff.js +5 -4
  73. package/dist/diff.js.map +1 -1
  74. package/dist/docx.cjs +30 -30
  75. package/dist/docx.js +3 -3
  76. package/dist/embed.cjs +8 -8
  77. package/dist/embed.js +7 -7
  78. package/dist/emoji.cjs +7 -7
  79. package/dist/emoji.js +6 -6
  80. package/dist/engine.cjs +4 -4
  81. package/dist/engine.js +3 -3
  82. package/dist/find.cjs +7 -7
  83. package/dist/find.js +6 -6
  84. package/dist/headless.cjs +5 -5
  85. package/dist/headless.js +4 -4
  86. package/dist/index.cjs +6 -6
  87. package/dist/index.js +5 -5
  88. package/dist/math.cjs +9 -9
  89. package/dist/math.js +8 -8
  90. package/dist/mention.cjs +9 -9
  91. package/dist/mention.js +8 -8
  92. package/dist/presence.cjs +39 -42
  93. package/dist/presence.cjs.map +1 -1
  94. package/dist/presence.js +9 -12
  95. package/dist/presence.js.map +1 -1
  96. package/dist/stats.cjs +8 -8
  97. package/dist/stats.js +7 -7
  98. package/dist/table.cjs +7 -7
  99. package/dist/table.js +6 -6
  100. package/dist/toc.cjs +7 -7
  101. package/dist/toc.js +6 -6
  102. package/dist/view.cjs +4 -4
  103. package/dist/view.js +2 -2
  104. package/dist/yjs.cjs +223 -171
  105. package/dist/yjs.cjs.map +1 -1
  106. package/dist/yjs.js +104 -52
  107. package/dist/yjs.js.map +1 -1
  108. package/package.json +1 -1
  109. package/dist/chunk-5M4QG3ZC.cjs.map +0 -1
  110. package/dist/chunk-5R3ISX4A.cjs.map +0 -1
  111. package/dist/chunk-62WKUAQY.js.map +0 -1
  112. package/dist/chunk-6YSGUAVW.js.map +0 -1
  113. package/dist/chunk-BTBHHBVR.cjs.map +0 -1
  114. package/dist/chunk-JJ3RASQS.cjs.map +0 -1
  115. package/dist/chunk-LE3F7WIP.js.map +0 -1
  116. package/dist/chunk-MLRAVUFG.cjs.map +0 -1
  117. package/dist/chunk-PGSS4IOS.js.map +0 -1
  118. package/dist/chunk-SSIRYUCK.js.map +0 -1
  119. /package/dist/{chunk-QXG3HWDS.js.map → chunk-623AOJM2.js.map} +0 -0
  120. /package/dist/{chunk-UBNG5YCG.js.map → chunk-ADSJ42DO.js.map} +0 -0
  121. /package/dist/{chunk-UCXLRRWY.js.map → chunk-C23RQVRK.js.map} +0 -0
  122. /package/dist/{chunk-26Q4LSIU.js.map → chunk-DUE3HCZD.js.map} +0 -0
  123. /package/dist/{chunk-A4IJSJKL.js.map → chunk-IQBMAE3F.js.map} +0 -0
  124. /package/dist/{chunk-PIWRSX7U.js.map → chunk-JHQUHFLX.js.map} +0 -0
  125. /package/dist/{chunk-RQW3P3GH.js.map → chunk-N4FGA3H4.js.map} +0 -0
  126. /package/dist/{chunk-LV6EYPJO.js.map → chunk-NEZJ7ZP5.js.map} +0 -0
  127. /package/dist/{chunk-UPSLDTLT.js.map → chunk-OBMBSU2S.js.map} +0 -0
  128. /package/dist/{chunk-WMN6566P.js.map → chunk-OSHZQR3W.js.map} +0 -0
  129. /package/dist/{chunk-6LMS5J3Y.js.map → chunk-RJRX34BZ.js.map} +0 -0
  130. /package/dist/{chunk-LMAEPFTX.js.map → chunk-U3LOLYAU.js.map} +0 -0
  131. /package/dist/{chunk-GPIDU3GN.js.map → chunk-VCLL5C7J.js.map} +0 -0
  132. /package/dist/{chunk-OCCKQHCY.js.map → chunk-YBMUEEM5.js.map} +0 -0
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- var _chunk5M4QG3ZCcjs = require('./chunk-5M4QG3ZC.cjs');
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 _chunkHOIDJEVIcjs = require('./chunk-HOIDJEVI.cjs');
103
+ var _chunkZKVOS57Qcjs = require('./chunk-ZKVOS57Q.cjs');
104
104
 
105
105
 
106
- var _chunkXX5FTPJRcjs = require('./chunk-XX5FTPJR.cjs');
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 _chunkBTBHHBVRcjs = require('./chunk-BTBHHBVR.cjs');
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) => _chunkBTBHHBVRcjs.inlineText.call(void 0, _chunkBTBHHBVRcjs.parseInline.call(void 0, 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" && _chunkBTBHHBVRcjs.sanitizeAssetUrl.call(void 0, src) || null;
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) => _chunkBTBHHBVRcjs.str.call(void 0, attrs.url) !== "" || _chunkBTBHHBVRcjs.str.call(void 0, attrs.storageKey) !== "";
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 = _chunkBTBHHBVRcjs.str.call(void 0, attrs.url);
427
- return url === "" ? assetHref(resolveAssetUrl, _chunkBTBHHBVRcjs.str.call(void 0, attrs.storageKey)) : _chunkBTBHHBVRcjs.sanitizeHref.call(void 0, url);
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 = _chunkBTBHHBVRcjs.str.call(void 0, data.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: _chunkBTBHHBVRcjs.str.call(void 0, data.code), language: _chunkBTBHHBVRcjs.str.call(void 0, data.language) }) });
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(_chunkBTBHHBVRcjs.str.call(void 0, data.caption));
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: _chunkBTBHHBVRcjs.str.call(void 0, data.alt) || labels.imageNoAlt, className: "max-w-full rounded-md" }),
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 = _chunkBTBHHBVRcjs.str.call(void 0, data.filename);
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 = _chunkBTBHHBVRcjs.str.call(void 0, data.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 = _chunkBTBHHBVRcjs.str.call(void 0, data.tone) || "info";
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
- _chunk5M4QG3ZCcjs.dispatchSelection.call(void 0, controller, _chunkHOIDJEVIcjs.nodeSelection.call(void 0, blockId));
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 = _chunkBTBHHBVRcjs.blockById.call(void 0, tr.before.doc, selection.block);
552
- return before !== void 0 && before.type !== _optionalChain([_chunkBTBHHBVRcjs.blockById.call(void 0, doc, selection.block), 'optionalAccess', _4 => _4.type]) ? selection.block : void 0;
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: _chunkHOIDJEVIcjs.defineExtension.call(void 0, {
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 = _chunkHOIDJEVIcjs.selectedBlockIds.call(void 0, doc, result);
870
- const head = _chunkHOIDJEVIcjs.headBlockId.call(void 0, before);
871
- if (head !== null && ids.includes(head) && _chunkHOIDJEVIcjs.validateSelection.call(void 0, doc, schema, before) === before) return before;
872
- return _chunkHOIDJEVIcjs.endOf.call(void 0, doc, schema, ids[0]);
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 = _chunkBTBHHBVRcjs.sameItems.call(void 0, _chunkHOIDJEVIcjs.selectedBlockIds.call(void 0, state.doc, before), ids);
880
- const ran = exact ? before : _chunkHOIDJEVIcjs.blockRangeSelection.call(void 0, ids[0], ids[ids.length - 1]);
881
- const { ok, tr } = _chunkHOIDJEVIcjs.runCommands.call(void 0, state, [_chunkHOIDJEVIcjs.setSelection.call(void 0, ran), command]);
882
- const result = ok && tr !== null ? tr : new (0, _chunkHOIDJEVIcjs.Transaction)(state).setSelection(ran);
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 (!_chunkHOIDJEVIcjs.sameSelection.call(void 0, settled, result.selection)) result.setSelection(settled);
885
- if (result.docChanged || !_chunkHOIDJEVIcjs.sameSelection.call(void 0, result.selection, before)) controller.dispatch(result);
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) => _chunkHOIDJEVIcjs.blockRangeSelection.call(void 0, blockIds[0], blockIds[blockIds.length - 1]);
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 = _chunkHOIDJEVIcjs.selectedBlockIds.call(void 0, doc, selection);
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 = _chunkBTBHHBVRcjs.requireBlockIndex.call(void 0, doc, blockId);
903
- return doc.blocks.slice(index, _chunkHOIDJEVIcjs.descendantsEnd.call(void 0, doc, index)).map((block) => block.id);
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 = _chunkHOIDJEVIcjs.selectedBlockRange.call(void 0, doc, rangeOf(blockIds));
913
+ const range = _chunkZKVOS57Qcjs.selectedBlockRange.call(void 0, doc, rangeOf(blockIds));
914
914
  if (range === null) return "";
915
- const blocks = editor.codec.blocksFromDoc(_chunkBTBHHBVRcjs.createDoc.call(void 0, doc.blocks.slice(range.start, range.end)));
916
- return _chunkHOIDJEVIcjs.toMarkdown.call(void 0, blocks, { schema: editor.schema, resolveAssetUrl, comments: false });
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)) && _chunkHOIDJEVIcjs.runCommands.call(void 0, state, [_chunkHOIDJEVIcjs.setSelection.call(void 0, rangeOf(blockIds)), command]).ok;
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, _chunkHOIDJEVIcjs.duplicateBlocks.call(void 0, ))
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, _chunkHOIDJEVIcjs.moveBlocksUp),
952
- available: applies(_chunkHOIDJEVIcjs.moveBlocksUp)
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, _chunkHOIDJEVIcjs.moveBlocksDown),
960
- available: applies(_chunkHOIDJEVIcjs.moveBlocksDown)
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, _chunkHOIDJEVIcjs.deleteBlocks)
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, _chunkHOIDJEVIcjs.setAttrs.call(void 0, patch));
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(_chunkBTBHHBVRcjs.paletteOrUndefined.call(void 0, block.attrs[key]), () => ( "default"))));
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: _chunkBTBHHBVRcjs.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: [
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, _chunkHOIDJEVIcjs.setBlockColor.call(void 0, { [key]: name === "default" ? null : name }));
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 = _chunkHOIDJEVIcjs.detectMac.call(void 0, ), labels = englishLabels } = platform;
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) => _chunkHOIDJEVIcjs.isParagraph.call(void 0, block) && _chunkHOIDJEVIcjs.regionLength.call(void 0, block, _nullishCoalesce(_chunkHOIDJEVIcjs.primaryRegion.call(void 0, schema, block), () => ( ""))) === 0;
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 = _chunkHOIDJEVIcjs.createBlock.call(void 0, schema, type, attrs, indent3, id);
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 : _chunkHOIDJEVIcjs.createBlock.call(void 0, schema, schema.defaultTextBlock, {}, indent3);
1207
- if (!reused) tr.step(_chunkHOIDJEVIcjs.insertBlocksStep.call(void 0, index, [line]));
1208
- tr.setSelection(_chunkHOIDJEVIcjs.startOf.call(void 0, tr.doc, schema, line.id));
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(_chunkHOIDJEVIcjs.startOf.call(void 0, tr.doc, schema, first.id));
1212
- if (landing === "editor") tr.setSelection(_chunkHOIDJEVIcjs.nodeSelection.call(void 0, first.id)).setMeta(OPEN_EDITOR, first.id);
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 ? _chunkHOIDJEVIcjs.headBlockId.call(void 0, state.selection) : anchorId;
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, _chunkHOIDJEVIcjs.Transaction)(state);
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(_chunkHOIDJEVIcjs.insertBlocksStep.call(void 0, index, created2)).setSelection(_chunkHOIDJEVIcjs.startOf.call(void 0, tr.doc, schema, anchor.id));
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(_chunkHOIDJEVIcjs.replaceBlockStep.call(void 0, filled));
1235
- if (rest.length > 0) tr.step(_chunkHOIDJEVIcjs.insertBlocksStep.call(void 0, index + 1, rest));
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 : _chunkHOIDJEVIcjs.descendantsEnd.call(void 0, doc, index);
1239
- tr.step(_chunkHOIDJEVIcjs.insertBlocksStep.call(void 0, at, created2));
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(_chunkBTBHHBVRcjs.specFor.call(void 0, state.schema, block.type).flow, hasEditor);
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 = _chunkBTBHHBVRcjs.blockById.call(void 0, editor.state.doc, blockId);
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(_chunkHOIDJEVIcjs.setAttrsStep.call(void 0, blockId, { code })).setMeta(_chunkHOIDJEVIcjs.HISTORY_GROUP, group));
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 = _chunkHOIDJEVIcjs.setBlockType.call(void 0, "MARKDOWN", { kind: "paragraph" });
1267
- const { ok, tr } = _chunkHOIDJEVIcjs.runCommands.call(void 0, state, [_chunkHOIDJEVIcjs.setSelection.call(void 0, _chunkHOIDJEVIcjs.nodeSelection.call(void 0, blockId)), turn]);
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 = _chunk5M4QG3ZCcjs.moveToNeighbour.call(void 0, controller, blockId, direction);
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 = _chunkHOIDJEVIcjs.keyName.call(void 0, event, isMac);
1352
- const modKey = MOD_KEYS.find(([key]) => _chunkHOIDJEVIcjs.normalizeKey.call(void 0, key, isMac) === name);
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 = _chunk5M4QG3ZCcjs.textDiff.call(void 0, before, area.value);
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, _chunkHOIDJEVIcjs.undo);
1414
+ return travel(context, _chunkZKVOS57Qcjs.undo);
1415
1415
  case "redo":
1416
- return travel(context, _chunkHOIDJEVIcjs.redo);
1416
+ return travel(context, _chunkZKVOS57Qcjs.redo);
1417
1417
  case "selectAll":
1418
- return selectAndFocus(context, _chunkHOIDJEVIcjs.selectAll);
1418
+ return selectAndFocus(context, _chunkZKVOS57Qcjs.selectAll);
1419
1419
  case "escape":
1420
- return selectAndFocus(context, _chunkHOIDJEVIcjs.setSelection.call(void 0, _chunkHOIDJEVIcjs.blockRangeSelection.call(void 0, blockId)));
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 (_chunk5M4QG3ZCcjs.isComposingKey.call(void 0, controller, event.nativeEvent)) return;
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", { ...{ [_chunk5M4QG3ZCcjs.NATIVE_INTERACTION]: "" }, dir: "ltr", className: "quoin-code-scroll", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "quoin-code-lines", children: [
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: _chunkBTBHHBVRcjs.str.call(void 0, block.attrs.code),
1500
- language: _chunkBTBHHBVRcjs.str.call(void 0, block.attrs.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: _chunkBTBHHBVRcjs.str.call(void 0, block.attrs.code),
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 = _chunk5M4QG3ZCcjs.useReadOnly.call(void 0, controller);
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(_chunk5M4QG3ZCcjs.onBlock.call(void 0, blockId, _chunkHOIDJEVIcjs.setAttrs.call(void 0, patch)));
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
- _chunk5M4QG3ZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
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 (_chunk5M4QG3ZCcjs.isComposingKey.call(void 0, controller, event.nativeEvent)) return;
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 = _chunk5M4QG3ZCcjs.useReadOnly.call(void 0, controller);
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 = _chunkBTBHHBVRcjs.str.call(void 0, block.attrs.code);
1795
- const language2 = _chunkBTBHHBVRcjs.str.call(void 0, block.attrs.language);
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 (_chunk5M4QG3ZCcjs.isComposingKey.call(void 0, controller, key)) return;
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) => _chunkBTBHHBVRcjs.str.call(void 0, attrs.filename) || _chunkBTBHHBVRcjs.str.call(void 0, attrs.storageKey);
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 = _chunkBTBHHBVRcjs.optionalNumber.call(void 0, attrs.size);
2069
- const href = assetHref(resolveAssetUrl, _chunkBTBHHBVRcjs.str.call(void 0, attrs.storageKey));
2070
- const Icon = fileIcon(_chunkBTBHHBVRcjs.str.call(void 0, attrs.mime), name);
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: _chunkBTBHHBVRcjs.str.call(void 0, attrs.filename),
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 = _chunkBTBHHBVRcjs.blockById.call(void 0, controller.editor.state.doc, blockId);
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: _chunkBTBHHBVRcjs.str.call(void 0, block.attrs.url), storageKey: _chunkBTBHHBVRcjs.str.call(void 0, block.attrs.storageKey) };
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(_chunkHOIDJEVIcjs.setAttrsStep.call(void 0, blockId, patch));
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 = _chunk5M4QG3ZCcjs.useReadOnly.call(void 0, controller);
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], _chunkHOIDJEVIcjs.deleteBlocks);
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) => _chunkHOIDJEVIcjs.isActive.call(void 0, state, mark),
2239
- run: (controller) => void controller.run(_chunkHOIDJEVIcjs.toggleMark.call(void 0, mark))
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
- _chunk5M4QG3ZCcjs.useIsomorphicLayoutEffect.call(void 0, syncTabStop);
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
- _chunk5M4QG3ZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
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 = _chunk5M4QG3ZCcjs.useEditorState.call(void 0, controller, _chunk5M4QG3ZCcjs.wholeState);
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) || _chunk5M4QG3ZCcjs.isComposingKey.call(void 0, controller, event.nativeEvent)) return;
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" ? _chunkBTBHHBVRcjs.blockById.call(void 0, doc, selection.block) : void 0;
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 = _chunk5M4QG3ZCcjs.useEditorState.call(void 0, controller, selected);
2435
- const readOnly = _chunk5M4QG3ZCcjs.useReadOnly.call(void 0, controller);
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 (_chunk5M4QG3ZCcjs.isComposingKey.call(void 0, controller, event.nativeEvent)) return;
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
- ...{ [_chunk5M4QG3ZCcjs.NATIVE_INTERACTION]: "" },
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 = _chunkBTBHHBVRcjs.str.call(void 0, attrs.alt);
2587
+ const alt = _chunk4SLJNZSMcjs.str.call(void 0, attrs.alt);
2588
2588
  const name = alt || labels.imageNoAlt;
2589
- const percent = _chunkBTBHHBVRcjs.optionalNumber.call(void 0, attrs.widthPercent);
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: _chunkBTBHHBVRcjs.optionalNumber.call(void 0, attrs.width),
2600
- height: _chunkBTBHHBVRcjs.optionalNumber.call(void 0, attrs.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
- _chunk5M4QG3ZCcjs.EditableRegion,
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 = !_chunkBTBHHBVRcjs.SCHEME.test(address) && BARE_DOMAIN.test(address) ? `https://${address}` : address;
2649
- const href = _chunkBTBHHBVRcjs.sanitizeHref.call(void 0, completed);
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([_chunkBTBHHBVRcjs.blockById.call(void 0, controller.editor.state.doc, blockId), 'optionalAccess', _142 => _142.regions, 'access', _143 => _143.caption]), () => ( []));
2770
- return { block: blockId, region: "caption", offset: _chunkBTBHHBVRcjs.inlineLength.call(void 0, caption) };
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(_chunkHOIDJEVIcjs.textSelection.call(void 0, captionEnd(controller, blockId))));
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 = _chunk5M4QG3ZCcjs.useReadOnly.call(void 0, controller);
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 ? { [_chunk5M4QG3ZCcjs.NODE_ENTRY]: "" } : void 0,
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
- _chunk5M4QG3ZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
2839
+ _chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
2840
2840
  latest.current = onPress;
2841
2841
  });
2842
- _chunk5M4QG3ZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
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 _chunk5M4QG3ZCcjs.listen.call(void 0, doc, { pointerdown: down, click }, true);
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([_chunkBTBHHBVRcjs.blockById.call(void 0, editor.state.doc, blockId), 'optionalAccess', _150 => _150.attrs, 'access', _151 => _151.alt]);
2866
- if (controller.readOnly || controller.root === null || _chunkBTBHHBVRcjs.str.call(void 0, current) !== opened) return;
2867
- _chunk5M4QG3ZCcjs.onBlock.call(void 0, blockId, _chunkHOIDJEVIcjs.setAttrs.call(void 0, { alt }))(editor.state, (tr) => editor.dispatch(tr));
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" || _chunk5M4QG3ZCcjs.isComposingKey.call(void 0, controller, event.nativeEvent)) return;
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 (!_chunk5M4QG3ZCcjs.isComposingKey.call(void 0, controller, event)) close(false);
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(_chunkBTBHHBVRcjs.alignOrUndefined.call(void 0, _optionalChain([_chunkBTBHHBVRcjs.blockById.call(void 0, state.doc, blockId), 'optionalAccess', _157 => _157.attrs, 'access', _158 => _158.align])), () => ( "left"))) === align,
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 = _chunk5M4QG3ZCcjs.useEditorState.call(void 0, controller, _chunk5M4QG3ZCcjs.wholeState);
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([_chunkBTBHHBVRcjs.blockById.call(void 0, state.doc, blockId), 'optionalAccess', _159 => _159.attrs]), () => ( {}));
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: _chunkBTBHHBVRcjs.str.call(void 0, attrs.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 = _chunk5M4QG3ZCcjs.useReadOnly.call(void 0, controller);
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
- _chunk5M4QG3ZCcjs.EditableRegion,
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 = _chunkBTBHHBVRcjs.headingLevel.call(void 0, block.attrs.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, _chunk5M4QG3ZCcjs.EditableRegion, { block: block.id, region: REGION, label: labels.heading(level) }) });
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 = _chunk5M4QG3ZCcjs.useOrderedNumber.call(void 0, controller, block.id);
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, _chunk5M4QG3ZCcjs.EditableRegion, { block: block.id, region: REGION, label: labels.numberedItem(number) })
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 = _chunk5M4QG3ZCcjs.useRegionDomId.call(void 0, block.id, REGION);
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, TaskCheckbox2, { block, controller, labelledBy: hostId }),
3369
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk5M4QG3ZCcjs.EditableRegion, { id: hostId, block: block.id, region: REGION, label: labels.task })
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, _chunk5M4QG3ZCcjs.EditableRegion, { block: block.id, region: REGION, label: labels.bulletItem })
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, _chunk5M4QG3ZCcjs.EditableRegion, { block: block.id, region: REGION, label: labels.quote }) });
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, _chunk5M4QG3ZCcjs.EditableRegion, { block: block.id, region: REGION, label: labels.paragraph });
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, _chunkHOIDJEVIcjs.descendantsEnd.call(void 0, doc, index)).map((block) => block.id);
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 _chunk5M4QG3ZCcjs.useEditorState.call(void 0, controller, (state) => nestedBlockIds(state, blockId), _chunkBTBHHBVRcjs.sameItems);
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 = _chunk5M4QG3ZCcjs.useBlockDomId.call(void 0, );
3401
+ const domId = _chunkP6KYXFZCcjs.useBlockDomId.call(void 0, );
3409
3402
  const nested = useNestedBlocks(controller, block.id);
3410
- const open = _chunk5M4QG3ZCcjs.useToggleOpen.call(void 0, controller, block);
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
- _chunk5M4QG3ZCcjs.ToggleChevron,
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, _chunk5M4QG3ZCcjs.EditableRegion, { block: block.id, region: "text", label: labels.toggle })
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, _chunkHOIDJEVIcjs.setBlockType.call(void 0, target.type, target.attrs)), children: [
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 = _chunk5M4QG3ZCcjs.useEditorState.call(void 0, controller, _chunk5M4QG3ZCcjs.wholeState);
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) => _chunkHOIDJEVIcjs.isTextFlow.call(void 0, state.schema, 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 = `[${_chunk5M4QG3ZCcjs.NATIVE_INTERACTION}], input, textarea, select`;
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 : _chunkBTBHHBVRcjs.blockById.call(void 0, state.doc, id);
3594
- return block === void 0 || _chunkHOIDJEVIcjs.isTextFlow.call(void 0, state.schema, block) ? null : block.id;
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 _chunk5M4QG3ZCcjs.listen.call(void 0, root, { mousedown: onMouseDown, contextmenu: onContextMenu });
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(_chunkBTBHHBVRcjs.blockById.call(void 0, state.doc, id), () => ( []))),
3645
+ (state) => blockIds.flatMap((id) => _nullishCoalesce(_chunk4SLJNZSMcjs.blockById.call(void 0, state.doc, id), () => ( []))),
3653
3646
  [blockIds]
3654
3647
  );
3655
- return _chunk5M4QG3ZCcjs.useEditorState.call(void 0, controller, select, _chunkBTBHHBVRcjs.sameItems);
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 = _chunkHOIDJEVIcjs.headBlockId.call(void 0, state.selection);
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 _chunkHOIDJEVIcjs.defineExtension.call(void 0, { name: "block-menu", keymap: { "Mod-/": openForHead } });
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 [_chunk5M4QG3ZCcjs.drawnBlockCount.call(void 0, doc, 0, index) + 1, _chunk5M4QG3ZCcjs.drawnBlockCount.call(void 0, doc)];
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 + _chunk5M4QG3ZCcjs.drawnBlockCount.call(void 0, tr.docs[i], index, index + count);
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(_chunkHOIDJEVIcjs.LINE_SPLIT) === true || tr.steps.some((step) => step.stepType === "removeBlocks")) return null;
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(_chunkHOIDJEVIcjs.LINE_JOIN) === true) return null;
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 _chunk5M4QG3ZCcjs.visibleBlockIndexes.call(void 0, doc).flatMap((index) => {
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(_chunkHOIDJEVIcjs.movedBlockIds.call(void 0, doc, ids));
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 = _chunk5M4QG3ZCcjs.createAutoScroll.call(void 0, root, follow, SCROLL_EDGE);
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(_chunkHOIDJEVIcjs.moveBlocksTo.call(void 0, ids, layout.toIndex(target.index), target.indent))) return;
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 = _chunk5M4QG3ZCcjs.listen.call(void 0, doc, { pointermove: onPointerMove, pointerup: onPointerUp, pointercancel: finish });
4005
- const unlistenBlur = _chunk5M4QG3ZCcjs.listen.call(void 0, view, { blur: finish });
4006
- const unlistenKeys = _chunk5M4QG3ZCcjs.listen.call(void 0, view, { keydown: onKeyDown }, true);
3997
+ const unlistenDocument = _chunkP6KYXFZCcjs.listen.call(void 0, doc, { pointermove: onPointerMove, pointerup: onPointerUp, pointercancel: finish });
3998
+ const unlistenBlur = _chunkP6KYXFZCcjs.listen.call(void 0, view, { blur: finish });
3999
+ const unlistenKeys = _chunkP6KYXFZCcjs.listen.call(void 0, view, { keydown: onKeyDown }, true);
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 = _chunkBTBHHBVRcjs.blockById.call(void 0, doc, blockId);
4051
+ const block = _chunk4SLJNZSMcjs.blockById.call(void 0, doc, blockId);
4059
4052
  if (block === void 0) return false;
4060
- const empty = _chunkHOIDJEVIcjs.isParagraph.call(void 0, block) && _chunkHOIDJEVIcjs.regionLength.call(void 0, block, _nullishCoalesce(_chunkHOIDJEVIcjs.primaryRegion.call(void 0, schema, block), () => ( ""))) === 0;
4061
- const fill = empty ? _chunkHOIDJEVIcjs.setSelection.call(void 0, _chunkHOIDJEVIcjs.startOf.call(void 0, doc, schema, blockId)) : _chunkHOIDJEVIcjs.insertBlockAfter.call(void 0, "MARKDOWN", { kind: "paragraph" });
4062
- const slash = _chunkHOIDJEVIcjs.insertText.call(void 0, "/", { origin: "command" });
4063
- const { ok, tr } = _chunkHOIDJEVIcjs.runCommands.call(void 0, state, [_chunkHOIDJEVIcjs.setSelection.call(void 0, _chunkHOIDJEVIcjs.blockRangeSelection.call(void 0, blockId)), fill, slash]);
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
- _chunk5M4QG3ZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
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) => _chunkHOIDJEVIcjs.headBlockId.call(void 0, state.selection);
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 = _chunk5M4QG3ZCcjs.useEditorState.call(void 0, controller, headOf);
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 _chunk5M4QG3ZCcjs.listen.call(void 0, root, { pointermove: onPointerMove, pointerleave: onPointerLeave, focusin: onFocusIn, focusout: onFocusOut });
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 = _chunk5M4QG3ZCcjs.domMapOf.call(void 0, host);
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 === _chunk5M4QG3ZCcjs.hostKey.call(void 0, range.block, range.region)) {
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 = _chunkHOIDJEVIcjs.markRanges.call(void 0, state);
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] = _chunkHOIDJEVIcjs.markRanges.call(void 0, controller.editor.state);
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
- _chunk5M4QG3ZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
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 = _chunkHOIDJEVIcjs.selectedBlockIds.call(void 0, state.doc, state.selection).map((id) => _chunkBTBHHBVRcjs.blockById.call(void 0, state.doc, id)).filter((block) => _optionalChain([block, 'optionalAccess', _207 => _207.type]) === "MARKDOWN");
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(_chunkBTBHHBVRcjs.alignOrUndefined.call(void 0, _optionalChain([block, 'optionalAccess', _208 => _208.attrs, 'access', _209 => _209.align])), () => ( "left"))));
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(_chunkHOIDJEVIcjs.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: [
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 _chunkHOIDJEVIcjs.markRanges.call(void 0, state)) {
4429
- for (const node of _chunkHOIDJEVIcjs.rangeContent.call(void 0, state, range)) {
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" ? _chunkHOIDJEVIcjs.unsetMark.call(void 0, MARKS[key]) : _chunkHOIDJEVIcjs.setMark.call(void 0, MARKS[key], { color: name });
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: _chunkHOIDJEVIcjs.selectedBlockIds.call(void 0, state.doc, state.selection) }) });
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 = _chunk5M4QG3ZCcjs.useEditorState.call(void 0, controller, _chunk5M4QG3ZCcjs.wholeState);
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" && !_chunkHOIDJEVIcjs.isCollapsed.call(void 0, state.selection) && _chunkHOIDJEVIcjs.markRanges.call(void 0, state).length > 0;
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 = _chunk5M4QG3ZCcjs.useEditorState.call(void 0, controller, hasTextRange);
4531
- const readOnly = _chunk5M4QG3ZCcjs.useReadOnly.call(void 0, controller);
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 _chunkHOIDJEVIcjs.defineExtension.call(void 0, { name: "bubble", ui: { overlays: [BubbleOverlay] } });
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(_chunk5M4QG3ZCcjs.regionInline.call(void 0, state, from.block, from.region), () => ( []));
4565
- const extent = _chunkHOIDJEVIcjs.markExtent.call(void 0, inline, from.offset, "link");
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([_chunkBTBHHBVRcjs.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]);
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 } = _chunkHOIDJEVIcjs.orderedRange.call(void 0, state.doc, selection.anchor, selection.head);
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([_chunk5M4QG3ZCcjs.domMapOf.call(void 0, host.element), 'optionalAccess', _227 => _227.fromDom, 'call', _228 => _228(element, 0)]), () => ( null));
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, _chunkHOIDJEVIcjs.Transaction)(state).step(_chunkHOIDJEVIcjs.removeMarkStep.call(void 0, block, region, from, to, "link"));
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" || !_chunkHOIDJEVIcjs.isCollapsed.call(void 0, selection)) return null;
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 = _chunk5M4QG3ZCcjs.useEditorState.call(void 0, controller, caretLinkKey);
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 = _chunk5M4QG3ZCcjs.useEditorState.call(void 0, controller, _chunk5M4QG3ZCcjs.wholeState);
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 = _chunkBTBHHBVRcjs.sanitizeHref.call(void 0, link.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 = _chunkHOIDJEVIcjs.textSelection.call(void 0, { block, region, offset: from }, { block, region, offset: to });
4701
- _chunk5M4QG3ZCcjs.dispatchSelection.call(void 0, controller, selection);
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 = _chunkBTBHHBVRcjs.sanitizeHref.call(void 0, href);
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 = _chunkBTBHHBVRcjs.addMark.call(void 0, _chunkHOIDJEVIcjs.caretMarks.call(void 0, state.doc, state.schema, state.storedMarks, caret), link);
4752
- const tr = new (0, _chunkHOIDJEVIcjs.Transaction)(state).step(_chunkHOIDJEVIcjs.replaceInlineStep.call(void 0, caret.block, caret.region, caret.offset, caret.offset, [_chunkBTBHHBVRcjs.text.call(void 0, value, marks)])).setSelection(_chunkHOIDJEVIcjs.textSelection.call(void 0, { ...caret, offset: caret.offset + value.length }));
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" && _chunkHOIDJEVIcjs.isCollapsed.call(void 0, selection) && link === null) {
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 _chunkHOIDJEVIcjs.setLink.call(void 0, href, _optionalChain([link, 'optionalAccess', _240 => _240.title]))(state, dispatch);
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 = _chunkHOIDJEVIcjs.isCollapsed.call(void 0, selection);
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 && _chunkBTBHHBVRcjs.sanitizeHref.call(void 0, link.href);
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(_chunkHOIDJEVIcjs.unsetLink);
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 = _chunk5M4QG3ZCcjs.useReadOnly.call(void 0, controller);
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 _chunkHOIDJEVIcjs.defineExtension.call(void 0, { name: "link", keymap: { "Mod-k": openPopover }, ui: { overlays: [LinkOverlay] } });
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) => _chunkBTBHHBVRcjs.hasMark.call(void 0, node.marks, "code"));
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" || !_chunkHOIDJEVIcjs.isCollapsed.call(void 0, selection)) return null;
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 = _chunkBTBHHBVRcjs.blockById.call(void 0, doc, blockId);
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(_chunkBTBHHBVRcjs.inlineText.call(void 0, _chunkBTBHHBVRcjs.sliceInline.call(void 0, inline, start, caret)), start, config);
4931
- if (from === null || hasCode(_chunkBTBHHBVRcjs.sliceInline.call(void 0, inline, from, caret))) return null;
4932
- const query = _chunkBTBHHBVRcjs.inlineText.call(void 0, _chunkBTBHHBVRcjs.sliceInline.call(void 0, inline, from + 1, caret));
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 && _chunkHOIDJEVIcjs.sameSelection.call(void 0, oldState.selection, newState.selection)) return value;
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 (_chunkHOIDJEVIcjs.getPluginState.call(void 0, state, key).active === null) return false;
4980
- _optionalChain([dispatch, 'optionalCall', _249 => _249(new (0, _chunkHOIDJEVIcjs.Transaction)(state).setMeta(DISMISS, key.name))]);
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 = _chunkHOIDJEVIcjs.createPluginKey.call(void 0, "slash");
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, ..._chunkBTBHHBVRcjs.specFor.call(void 0, schema, type).fromData(data, _chunkBTBHHBVRcjs.createBlockCodec.call(void 0, schema).context) };
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
- _chunk5M4QG3ZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
5061
+ _chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
5069
5062
  latest.current = range;
5070
5063
  });
5071
- _chunk5M4QG3ZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
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
- _chunk5M4QG3ZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
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
- _chunk5M4QG3ZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
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
- _chunk5M4QG3ZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
5149
+ _chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
5157
5150
  latest.current = menu;
5158
5151
  });
5159
- _chunk5M4QG3ZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
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
- _chunk5M4QG3ZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
5176
+ _chunkP6KYXFZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
5184
5177
  report.current = onError;
5185
5178
  });
5186
- _chunk5M4QG3ZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
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 = _chunk5M4QG3ZCcjs.useReadOnly.call(void 0, controller);
5231
- const selectTrigger = _react.useCallback.call(void 0, (state) => _chunkHOIDJEVIcjs.getPluginState.call(void 0, state, pluginKey).active, [pluginKey]);
5232
- const active = _chunk5M4QG3ZCcjs.useEditorState.call(void 0, controller, selectTrigger);
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 = _chunkHOIDJEVIcjs.getPluginState.call(void 0, controller.editor.state, pluginKey).active;
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
- _chunk5M4QG3ZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
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, _chunkHOIDJEVIcjs.Transaction)(state);
5365
- if (from >= to || !tr.maybeStep(_chunkHOIDJEVIcjs.replaceInlineStep.call(void 0, block, region, from, to, []))) return false;
5366
- _optionalChain([dispatch, 'optionalCall', _270 => _270(tr.setSelection(_chunkHOIDJEVIcjs.textSelection.call(void 0, { block, region, offset: from })))]);
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 _chunkHOIDJEVIcjs.runCommands.call(void 0, state, command === void 0 ? [deleteTrigger(range)] : [deleteTrigger(range), command]);
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 = _chunk5M4QG3ZCcjs.regionInline.call(void 0, state, range.block, range.region);
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 = _chunkBTBHHBVRcjs.inlineText.call(void 0, inline);
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 _chunkHOIDJEVIcjs.defineExtension.call(void 0, {
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 = _chunkHOIDJEVIcjs.headBlockId.call(void 0, controller.editor.state.selection);
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, _chunkHOIDJEVIcjs.indent),
5537
- commandItem("outdent", labels.outdent, _lucidereact.ListIndentDecrease, _chunkHOIDJEVIcjs.outdent),
5538
- commandItem("undo", labels.undo, _lucidereact.Undo2, _chunkHOIDJEVIcjs.undo),
5539
- commandItem("redo", labels.redo, _lucidereact.Redo2, _chunkHOIDJEVIcjs.redo)
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 = _chunk5M4QG3ZCcjs.useEditorState.call(void 0, controller, _chunk5M4QG3ZCcjs.wholeState);
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 _chunkHOIDJEVIcjs.defineExtension.call(void 0, {
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 } = _chunkBTBHHBVRcjs.specFor.call(void 0, schema, block.type).fromData(data, editor.codec.context);
5919
- if (_chunkXX5FTPJRcjs.sameValue.call(void 0, attrs, block.attrs) && _chunkXX5FTPJRcjs.sameValue.call(void 0, regions, block.regions)) return;
5920
- const tr = editor.createTransaction().step(_chunkHOIDJEVIcjs.replaceBlockStep.call(void 0, { ...block, attrs, regions }));
5921
- editor.dispatch(tr.setMeta(_chunkHOIDJEVIcjs.HISTORY_GROUP, `block-data:${blockId}`));
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 && _chunkBTBHHBVRcjs.specFor.call(void 0, editor.state.schema, type).fromData(data, editor.codec.context);
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 = _chunk5M4QG3ZCcjs.listen.call(void 0, doc, { pointerdown: leaveForCanvas }, true);
5958
- const unlisten = _chunk5M4QG3ZCcjs.listen.call(void 0, doc, { pointerdown: leaveUnlessInside, focusin: leaveUnlessInside });
5950
+ const unlistenCapture = _chunkP6KYXFZCcjs.listen.call(void 0, doc, { pointerdown: leaveForCanvas }, true);
5951
+ const unlisten = _chunkP6KYXFZCcjs.listen.call(void 0, doc, { pointerdown: leaveUnlessInside, focusin: leaveUnlessInside });
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 = _chunk5M4QG3ZCcjs.useReadOnly.call(void 0, controller);
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
- ...{ [_chunk5M4QG3ZCcjs.NATIVE_INTERACTION]: editorShown ? "" : void 0 },
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: _chunkBTBHHBVRcjs.newId.call(void 0, ), type: "IMAGE", attrs: { storageKey: stored.storageKey, alt: "" } };
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]), _chunkHOIDJEVIcjs.headBlockId.call(void 0, selection), _optionalChain([doc, 'access', _290 => _290.blocks, 'access', _291 => _291[doc.blocks.length - 1], 'optionalAccess', _292 => _292.id])];
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 || !_chunkHOIDJEVIcjs.sameSelection.call(void 0, now.selection, before.selection);
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(_chunkBTBHHBVRcjs.headingLevel.call(void 0, level));
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 = _chunkHOIDJEVIcjs.primaryRegion.call(void 0, state.schema, block);
6159
- if (region === null || _chunkHOIDJEVIcjs.regionLength.call(void 0, block, region) > 0) return void 0;
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) ? _chunkBTBHHBVRcjs.str.call(void 0, attrs.alt) || labels.imageNoAlt : labels.emptyImage;
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 = _chunkBTBHHBVRcjs.str.call(void 0, attrs.language);
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(_chunkBTBHHBVRcjs.blockPlainText.call(void 0, block, schema)) || blockTypeLabel(labels, block, definitions, extensionNames);
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(_chunkHOIDJEVIcjs.startOf.call(void 0, doc, schema, id)));
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(_chunkHOIDJEVIcjs.LINE_JOIN) !== true;
6218
- var isEmptyText = (schema, block) => _chunkHOIDJEVIcjs.isTextFlow.call(void 0, schema, block) && _chunkHOIDJEVIcjs.regionLength.call(void 0, block, _nullishCoalesce(_chunkHOIDJEVIcjs.primaryRegion.call(void 0, schema, block), () => ( ""))) === 0;
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(_chunkBTBHHBVRcjs.createDoc.call(void 0, blocks.slice(0, index))).length;
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
- _chunk5M4QG3ZCcjs.useIsomorphicLayoutEffect.call(void 0, () => {
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
- ..._chunkHOIDJEVIcjs.coreExtensions.call(void 0, ),
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 = _chunk5M4QG3ZCcjs.useQuoinEditor.call(void 0, {
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
- _chunk5M4QG3ZCcjs.EditorView,
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 = _chunkBTBHHBVRcjs.sameItems.call(void 0, seen, deps);
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-5R3ISX4A.cjs.map
6636
+ //# sourceMappingURL=chunk-CW3AFJBR.cjs.map