quoin-editor 1.4.1 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/README.md +8 -6
- package/THIRD_PARTY_NOTICES.md +25 -1
- package/dist/ai.cjs +21 -23
- package/dist/ai.js +1 -1
- package/dist/catalogue.cjs +17 -18
- package/dist/catalogue.js +10 -9
- package/dist/catalogue.js.map +1 -1
- package/dist/{chunk-VVS6JJLI.js → chunk-2AVGGPLT.js} +4 -25
- package/dist/chunk-2AVGGPLT.js.map +1 -0
- package/dist/chunk-2SWLD6R5.cjs +25 -0
- package/dist/{chunk-MQTLZTIM.js → chunk-32OZ2WM2.js} +12 -12
- package/dist/{chunk-MQTLZTIM.js.map → chunk-32OZ2WM2.js.map} +1 -1
- package/dist/{chunk-H5FM6I5W.cjs → chunk-46JH34SR.cjs} +7 -9
- package/dist/chunk-4T4TJ2QS.cjs +0 -2
- package/dist/chunk-A6PGQVTR.cjs +0 -2
- package/dist/chunk-AZF7B2AE.cjs +0 -2
- package/dist/{chunk-AC4AFDTI.js → chunk-B5OMWOVI.js} +3 -3
- package/dist/{chunk-AC4AFDTI.js.map → chunk-B5OMWOVI.js.map} +1 -1
- package/dist/chunk-BM2GRZNM.cjs +0 -2
- package/dist/chunk-H3C3MJW5.cjs +0 -2
- package/dist/{chunk-6LOYAC5N.js → chunk-HT7OF52E.js} +3 -3
- package/dist/{chunk-6LOYAC5N.js.map → chunk-HT7OF52E.js.map} +1 -1
- package/dist/{chunk-3NVFHJFS.cjs → chunk-JVSYEENH.cjs} +17 -19
- package/dist/{chunk-3YA7FYEL.js → chunk-KF3KKN4N.js} +3 -3
- package/dist/{chunk-3YA7FYEL.js.map → chunk-KF3KKN4N.js.map} +1 -1
- package/dist/{chunk-KRLHGVJV.js → chunk-KFYJW7W5.js} +4 -4
- package/dist/{chunk-KRLHGVJV.js.map → chunk-KFYJW7W5.js.map} +1 -1
- package/dist/chunk-KTUOPDVO.js +25 -0
- package/dist/chunk-KTUOPDVO.js.map +1 -0
- package/dist/{chunk-QPOUONJ7.cjs → chunk-L6RB43YM.cjs} +21 -44
- package/dist/chunk-LE5XMIFJ.cjs +0 -2
- package/dist/{chunk-VUYJGFUA.cjs → chunk-LOP66FVU.cjs} +8 -10
- package/dist/{chunk-STCJWXP5.js → chunk-N2SCDXTI.js} +3 -3
- package/dist/{chunk-STCJWXP5.js.map → chunk-N2SCDXTI.js.map} +1 -1
- package/dist/{chunk-YEQEBJPM.js → chunk-O7XZFXPE.js} +3 -3
- package/dist/{chunk-YEQEBJPM.js.map → chunk-O7XZFXPE.js.map} +1 -1
- package/dist/chunk-QJ34MOFV.cjs +0 -2
- package/dist/chunk-QR2NIDUK.cjs +0 -2
- package/dist/chunk-STKGRXSA.cjs +0 -2
- package/dist/{chunk-7WSBPD6Z.cjs → chunk-T7O3BROK.cjs} +38 -40
- package/dist/{chunk-AZ2ZNSFN.cjs → chunk-TKCPXUPP.cjs} +15 -17
- package/dist/{chunk-65WK575V.cjs → chunk-UUSZGUXJ.cjs} +10 -11
- package/dist/chunk-VZZPCYA3.cjs +0 -2
- package/dist/chunk-WN7BZDNH.cjs +0 -2
- package/dist/chunk-WZA5S5EJ.cjs +0 -2
- package/dist/{chunk-FQDNF7MF.cjs → chunk-XFR7QGSN.cjs} +39 -41
- package/dist/chunk-XZ4NC3Q7.cjs +0 -2
- package/dist/code-highlighter-BQDxhRrv.d.cts +14 -0
- package/dist/code-highlighter-BQDxhRrv.d.ts +14 -0
- package/dist/comments.cjs +18 -20
- package/dist/comments.js +1 -1
- package/dist/diff.cjs +0 -2
- package/dist/diff.d.cts +2 -2
- package/dist/diff.d.ts +2 -2
- package/dist/docx.cjs +0 -2
- package/dist/embed.cjs +4 -6
- package/dist/embed.js +2 -2
- package/dist/emoji-data.cjs +0 -2
- package/dist/emoji.cjs +6 -7
- package/dist/emoji.js +3 -2
- package/dist/engine.cjs +0 -2
- package/dist/engine.d.cts +3 -15
- package/dist/engine.d.ts +3 -15
- package/dist/find.cjs +6 -8
- package/dist/find.js +2 -2
- package/dist/headless.cjs +0 -2
- package/dist/headless.d.cts +2 -1
- package/dist/headless.d.ts +2 -1
- package/dist/highlight.cjs +98 -0
- package/dist/highlight.d.cts +10 -0
- package/dist/highlight.d.ts +10 -0
- package/dist/highlight.js +98 -0
- package/dist/highlight.js.map +1 -0
- package/dist/index.cjs +12 -14
- package/dist/index.d.cts +6 -3
- package/dist/index.d.ts +6 -3
- package/dist/index.js +1 -1
- package/dist/math.cjs +5 -7
- package/dist/math.js +3 -3
- package/dist/mention.cjs +4 -6
- package/dist/mention.js +2 -2
- package/dist/presence.cjs +1 -3
- package/dist/presence.js +1 -1
- package/dist/prism-grammars.cjs +56 -0
- package/dist/prism-grammars.js +52 -0
- package/dist/prism-grammars.js.map +1 -0
- package/dist/{registry-DdQaddP1.d.ts → registry-DZ8LIGt5.d.cts} +2 -15
- package/dist/{registry-DdQaddP1.d.cts → registry-DZ8LIGt5.d.ts} +2 -15
- package/dist/source.cjs +97 -0
- package/dist/source.d.cts +56 -0
- package/dist/source.d.ts +56 -0
- package/dist/source.js +94 -0
- package/dist/source.js.map +1 -0
- package/dist/stats.cjs +1 -3
- package/dist/stats.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/table.cjs +21 -23
- package/dist/table.js +2 -2
- package/dist/to-markdown-BVOzhgVM.d.ts +17 -0
- package/dist/to-markdown-CFPMbbiX.d.cts +17 -0
- package/dist/toc.cjs +5 -7
- package/dist/toc.js +2 -2
- package/dist/view.cjs +0 -2
- package/dist/view.d.cts +2 -2
- package/dist/view.d.ts +2 -2
- package/dist/yjs.cjs +0 -2
- package/package.json +24 -3
- package/dist/ai.cjs.map +0 -1
- package/dist/catalogue.cjs.map +0 -1
- package/dist/chunk-3NVFHJFS.cjs.map +0 -1
- package/dist/chunk-4T4TJ2QS.cjs.map +0 -1
- package/dist/chunk-65WK575V.cjs.map +0 -1
- package/dist/chunk-7WSBPD6Z.cjs.map +0 -1
- package/dist/chunk-A6PGQVTR.cjs.map +0 -1
- package/dist/chunk-AZ2ZNSFN.cjs.map +0 -1
- package/dist/chunk-AZF7B2AE.cjs.map +0 -1
- package/dist/chunk-BM2GRZNM.cjs.map +0 -1
- package/dist/chunk-FQDNF7MF.cjs.map +0 -1
- package/dist/chunk-H3C3MJW5.cjs.map +0 -1
- package/dist/chunk-H5FM6I5W.cjs.map +0 -1
- package/dist/chunk-LE5XMIFJ.cjs.map +0 -1
- package/dist/chunk-QJ34MOFV.cjs.map +0 -1
- package/dist/chunk-QPOUONJ7.cjs.map +0 -1
- package/dist/chunk-QR2NIDUK.cjs.map +0 -1
- package/dist/chunk-STKGRXSA.cjs.map +0 -1
- package/dist/chunk-VUYJGFUA.cjs.map +0 -1
- package/dist/chunk-VVS6JJLI.js.map +0 -1
- package/dist/chunk-VZZPCYA3.cjs.map +0 -1
- package/dist/chunk-WN7BZDNH.cjs.map +0 -1
- package/dist/chunk-WZA5S5EJ.cjs.map +0 -1
- package/dist/chunk-XZ4NC3Q7.cjs.map +0 -1
- package/dist/comments.cjs.map +0 -1
- package/dist/diff.cjs.map +0 -1
- package/dist/docx.cjs.map +0 -1
- package/dist/embed.cjs.map +0 -1
- package/dist/emoji-data.cjs.map +0 -1
- package/dist/emoji.cjs.map +0 -1
- package/dist/engine.cjs.map +0 -1
- package/dist/find.cjs.map +0 -1
- package/dist/headless.cjs.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/math.cjs.map +0 -1
- package/dist/mention.cjs.map +0 -1
- package/dist/presence.cjs.map +0 -1
- package/dist/stats.cjs.map +0 -1
- package/dist/table.cjs.map +0 -1
- package/dist/toc.cjs.map +0 -1
- package/dist/view.cjs.map +0 -1
- package/dist/yjs.cjs.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkUUSZGUXJ_cjs = require('./chunk-UUSZGUXJ.cjs');
|
|
4
4
|
var chunkQJ34MOFV_cjs = require('./chunk-QJ34MOFV.cjs');
|
|
5
5
|
var chunkVZZPCYA3_cjs = require('./chunk-VZZPCYA3.cjs');
|
|
6
6
|
var chunkWZA5S5EJ_cjs = require('./chunk-WZA5S5EJ.cjs');
|
|
@@ -558,7 +558,7 @@ function useTableKeys(controller, blockId, editable) {
|
|
|
558
558
|
if (handled) event.preventDefault();
|
|
559
559
|
return handled;
|
|
560
560
|
};
|
|
561
|
-
return
|
|
561
|
+
return chunkUUSZGUXJ_cjs.interceptKeys(controller, intercept);
|
|
562
562
|
}, [controller, blockId, editable]);
|
|
563
563
|
}
|
|
564
564
|
var indexes = (from, to) => Array.from({ length: Math.max(to - from, 0) }, (_, i) => from + i);
|
|
@@ -587,7 +587,7 @@ function TableBlock({ block, controller, labels }) {
|
|
|
587
587
|
col
|
|
588
588
|
)) }, index);
|
|
589
589
|
const scroller = readOnly ? { role: "region", "aria-label": labels.table, tabIndex: 0 } : void 0;
|
|
590
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { contentEditable: false, className: "quoin-table", "data-readonly": readOnly ? "" : void 0, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `quoin-table-scroll ${readOnly ?
|
|
590
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { contentEditable: false, className: "quoin-table", "data-readonly": readOnly ? "" : void 0, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `quoin-table-scroll ${readOnly ? chunkUUSZGUXJ_cjs.FOCUS_RING : ""}`, ...scroller, children: [
|
|
591
591
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
592
592
|
"table",
|
|
593
593
|
{
|
|
@@ -709,20 +709,20 @@ function HandleMenu({ controller, axis, label, style, items, open, onOpenChange,
|
|
|
709
709
|
if (controller.run(item3.command)) controller.announce(item3.done);
|
|
710
710
|
};
|
|
711
711
|
const item2 = (entry) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
712
|
-
|
|
712
|
+
chunkUUSZGUXJ_cjs.DropdownMenuItem,
|
|
713
713
|
{
|
|
714
714
|
disabled: entry.disabled,
|
|
715
715
|
className: entry.destructive ? DESTRUCTIVE : void 0,
|
|
716
716
|
onSelect: () => run(entry),
|
|
717
717
|
children: [
|
|
718
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
718
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkUUSZGUXJ_cjs.MenuIcon, { icon: entry.icon }),
|
|
719
719
|
entry.label
|
|
720
720
|
]
|
|
721
721
|
},
|
|
722
722
|
entry.id
|
|
723
723
|
);
|
|
724
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
725
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
724
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkUUSZGUXJ_cjs.DropdownMenu, { open, onOpenChange, children: [
|
|
725
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkUUSZGUXJ_cjs.DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
726
726
|
"button",
|
|
727
727
|
{
|
|
728
728
|
ref: buttonRef,
|
|
@@ -732,22 +732,22 @@ function HandleMenu({ controller, axis, label, style, items, open, onOpenChange,
|
|
|
732
732
|
"data-axis": axis,
|
|
733
733
|
className: "quoin-table-handle",
|
|
734
734
|
style,
|
|
735
|
-
children: axis === "row" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
735
|
+
children: axis === "row" ? /* @__PURE__ */ jsxRuntime.jsx(chunkUUSZGUXJ_cjs.GripVertical, { "aria-hidden": "true" }) : /* @__PURE__ */ jsxRuntime.jsx(chunkUUSZGUXJ_cjs.GripHorizontal, { "aria-hidden": "true" })
|
|
736
736
|
}
|
|
737
737
|
) }),
|
|
738
738
|
open && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
739
|
-
|
|
739
|
+
chunkUUSZGUXJ_cjs.DropdownMenuContent,
|
|
740
740
|
{
|
|
741
741
|
align: "start",
|
|
742
742
|
"aria-label": label,
|
|
743
743
|
"aria-labelledby": void 0,
|
|
744
|
-
onCloseAutoFocus:
|
|
745
|
-
...
|
|
744
|
+
onCloseAutoFocus: chunkUUSZGUXJ_cjs.returnFocusToText(controller),
|
|
745
|
+
...chunkUUSZGUXJ_cjs.bubblePart(controller),
|
|
746
746
|
children: [
|
|
747
747
|
items.filter((entry) => !entry.destructive).map(item2),
|
|
748
748
|
children,
|
|
749
749
|
items.filter((entry) => entry.destructive).map((entry) => /* @__PURE__ */ jsxRuntime.jsxs(react.Fragment, { children: [
|
|
750
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
750
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkUUSZGUXJ_cjs.DropdownMenuSeparator, {}),
|
|
751
751
|
item2(entry)
|
|
752
752
|
] }, entry.id))
|
|
753
753
|
]
|
|
@@ -761,31 +761,31 @@ var item = (id, label, icon, command, done, options = {}) => ({ id, label, icon,
|
|
|
761
761
|
function rowMenuItems(labels, blockId, row, { rows }) {
|
|
762
762
|
const { rowInserted, rowMoved, rowDeleted } = labels;
|
|
763
763
|
return [
|
|
764
|
-
item("above", labels.insertRowAbove,
|
|
765
|
-
item("below", labels.insertRowBelow,
|
|
766
|
-
item("up", labels.moveRowUp,
|
|
767
|
-
item("down", labels.moveRowDown,
|
|
768
|
-
item("delete", labels.deleteRow,
|
|
764
|
+
item("above", labels.insertRowAbove, chunkUUSZGUXJ_cjs.ArrowUpToLine, addRow(blockId, row), rowInserted),
|
|
765
|
+
item("below", labels.insertRowBelow, chunkUUSZGUXJ_cjs.ArrowDownToLine, addRow(blockId, row + 1), rowInserted),
|
|
766
|
+
item("up", labels.moveRowUp, chunkUUSZGUXJ_cjs.ArrowUp, moveRow(blockId, row, row - 1), rowMoved, { disabled: row === 0 }),
|
|
767
|
+
item("down", labels.moveRowDown, chunkUUSZGUXJ_cjs.ArrowDown, moveRow(blockId, row, row + 1), rowMoved, { disabled: row === rows - 1 }),
|
|
768
|
+
item("delete", labels.deleteRow, chunkUUSZGUXJ_cjs.Trash, removeRow(blockId, row), rowDeleted, { disabled: rows === 1, destructive: true })
|
|
769
769
|
];
|
|
770
770
|
}
|
|
771
771
|
function columnMenuItems(labels, blockId, col, { cols }) {
|
|
772
772
|
const { columnInserted, columnMoved, columnDeleted } = labels;
|
|
773
773
|
const last = col === cols - 1;
|
|
774
774
|
return [
|
|
775
|
-
item("left", labels.insertColumnLeft,
|
|
776
|
-
item("right", labels.insertColumnRight,
|
|
777
|
-
item("move-left", labels.moveColumnLeft,
|
|
778
|
-
item("move-right", labels.moveColumnRight,
|
|
779
|
-
item("delete", labels.deleteColumn,
|
|
775
|
+
item("left", labels.insertColumnLeft, chunkUUSZGUXJ_cjs.ArrowLeftToLine, addColumn(blockId, col), columnInserted),
|
|
776
|
+
item("right", labels.insertColumnRight, chunkUUSZGUXJ_cjs.ArrowRightToLine, addColumn(blockId, col + 1), columnInserted),
|
|
777
|
+
item("move-left", labels.moveColumnLeft, chunkUUSZGUXJ_cjs.ArrowLeft, moveColumn(blockId, col, col - 1), columnMoved, { disabled: col === 0 }),
|
|
778
|
+
item("move-right", labels.moveColumnRight, chunkUUSZGUXJ_cjs.ArrowRight, moveColumn(blockId, col, col + 1), columnMoved, { disabled: last }),
|
|
779
|
+
item("delete", labels.deleteColumn, chunkUUSZGUXJ_cjs.Trash, removeColumn(blockId, col), columnDeleted, {
|
|
780
780
|
disabled: cols === 1,
|
|
781
781
|
destructive: true
|
|
782
782
|
})
|
|
783
783
|
];
|
|
784
784
|
}
|
|
785
785
|
var alignItems = (labels) => [
|
|
786
|
-
{ value: "left", label: labels.alignLeft, icon:
|
|
787
|
-
{ value: "center", label: labels.alignCenter, icon:
|
|
788
|
-
{ value: "right", label: labels.alignRight, icon:
|
|
786
|
+
{ value: "left", label: labels.alignLeft, icon: chunkUUSZGUXJ_cjs.AlignLeft, done: labels.alignedLeft },
|
|
787
|
+
{ value: "center", label: labels.alignCenter, icon: chunkUUSZGUXJ_cjs.AlignCenter, done: labels.alignedCenter },
|
|
788
|
+
{ value: "right", label: labels.alignRight, icon: chunkUUSZGUXJ_cjs.AlignRight, done: labels.alignedRight }
|
|
789
789
|
];
|
|
790
790
|
var BESIDE = 4;
|
|
791
791
|
var end = (span) => span.start + span.size;
|
|
@@ -857,7 +857,7 @@ function TableHandles(props) {
|
|
|
857
857
|
onOpenChange: opener("row"),
|
|
858
858
|
buttonRef: rowHandle,
|
|
859
859
|
children: row === 0 && /* @__PURE__ */ jsxRuntime.jsx(
|
|
860
|
-
|
|
860
|
+
chunkUUSZGUXJ_cjs.DropdownMenuCheckboxItem,
|
|
861
861
|
{
|
|
862
862
|
checked: block.attrs.header !== false,
|
|
863
863
|
onCheckedChange: (on) => run(toggleHeaderRow(block.id), on ? labels.headerRowOn : labels.headerRowOff),
|
|
@@ -878,14 +878,14 @@ function TableHandles(props) {
|
|
|
878
878
|
onOpenChange: opener("column"),
|
|
879
879
|
buttonRef: columnHandle,
|
|
880
880
|
children: [
|
|
881
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
882
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
883
|
-
|
|
881
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkUUSZGUXJ_cjs.DropdownMenuSeparator, {}),
|
|
882
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkUUSZGUXJ_cjs.DropdownMenuRadioGroup, { value: align ?? "", children: alignItems(labels).map(({ value, label, icon, done }) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
883
|
+
chunkUUSZGUXJ_cjs.DropdownMenuRadioItem,
|
|
884
884
|
{
|
|
885
885
|
value,
|
|
886
886
|
onSelect: () => align === value ? run(setColumnAlign(block.id, col, null), labels.alignmentCleared) : run(setColumnAlign(block.id, col, value), done),
|
|
887
887
|
children: [
|
|
888
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
888
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkUUSZGUXJ_cjs.MenuIcon, { icon }),
|
|
889
889
|
label
|
|
890
890
|
]
|
|
891
891
|
},
|
|
@@ -904,10 +904,10 @@ function TableHandles(props) {
|
|
|
904
904
|
"data-axis": "row",
|
|
905
905
|
className: "quoin-table-insert",
|
|
906
906
|
style: place(geometry.left - BESIDE, rowInsertAt),
|
|
907
|
-
onPointerDown:
|
|
908
|
-
onMouseDown:
|
|
907
|
+
onPointerDown: chunkUUSZGUXJ_cjs.keepFocus,
|
|
908
|
+
onMouseDown: chunkUUSZGUXJ_cjs.keepFocus,
|
|
909
909
|
onClick: () => run(addRow(block.id, rowEdge), labels.rowInserted),
|
|
910
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
910
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkUUSZGUXJ_cjs.Plus, { "aria-hidden": "true" })
|
|
911
911
|
}
|
|
912
912
|
),
|
|
913
913
|
colEdge !== null && columnInsertAt !== null && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -919,10 +919,10 @@ function TableHandles(props) {
|
|
|
919
919
|
"data-axis": "column",
|
|
920
920
|
className: "quoin-table-insert",
|
|
921
921
|
style: place(columnInsertAt, geometry.top),
|
|
922
|
-
onPointerDown:
|
|
923
|
-
onMouseDown:
|
|
922
|
+
onPointerDown: chunkUUSZGUXJ_cjs.keepFocus,
|
|
923
|
+
onMouseDown: chunkUUSZGUXJ_cjs.keepFocus,
|
|
924
924
|
onClick: () => run(addColumn(block.id, colEdge), labels.columnInserted),
|
|
925
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
925
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkUUSZGUXJ_cjs.Plus, { "aria-hidden": "true" })
|
|
926
926
|
}
|
|
927
927
|
)
|
|
928
928
|
] });
|
|
@@ -1114,7 +1114,7 @@ function TableControls({ controller, labels }) {
|
|
|
1114
1114
|
setFocusFor(caret.block);
|
|
1115
1115
|
return true;
|
|
1116
1116
|
};
|
|
1117
|
-
return
|
|
1117
|
+
return chunkUUSZGUXJ_cjs.interceptKeys(controller, intercept);
|
|
1118
1118
|
}, [controller, readOnly]);
|
|
1119
1119
|
const onMenu = react.useCallback(
|
|
1120
1120
|
(menu) => setHeld(menu === null || target === null || block === null ? null : { target, menu, opened: block }),
|
|
@@ -1206,7 +1206,7 @@ var tableSlashItem = (labels) => ({
|
|
|
1206
1206
|
title: labels.table,
|
|
1207
1207
|
description: labels.tableDescription,
|
|
1208
1208
|
group: "advanced",
|
|
1209
|
-
icon:
|
|
1209
|
+
icon: chunkUUSZGUXJ_cjs.Table,
|
|
1210
1210
|
keywords: ["grid", "rows", "columns", "spreadsheet", "|"],
|
|
1211
1211
|
command: () => insertTable(NEW_TABLE.rows, NEW_TABLE.cols)
|
|
1212
1212
|
});
|
|
@@ -1254,5 +1254,3 @@ exports.setColumnAlign = setColumnAlign;
|
|
|
1254
1254
|
exports.setColumnWidth = setColumnWidth;
|
|
1255
1255
|
exports.tableExtension = tableExtension;
|
|
1256
1256
|
exports.toggleHeaderRow = toggleHeaderRow;
|
|
1257
|
-
//# sourceMappingURL=chunk-7WSBPD6Z.cjs.map
|
|
1258
|
-
//# sourceMappingURL=chunk-7WSBPD6Z.cjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkUUSZGUXJ_cjs = require('./chunk-UUSZGUXJ.cjs');
|
|
4
4
|
var chunkQJ34MOFV_cjs = require('./chunk-QJ34MOFV.cjs');
|
|
5
5
|
var chunkVZZPCYA3_cjs = require('./chunk-VZZPCYA3.cjs');
|
|
6
6
|
var chunkWZA5S5EJ_cjs = require('./chunk-WZA5S5EJ.cjs');
|
|
@@ -338,15 +338,15 @@ function FindStatus({ labels, value }) {
|
|
|
338
338
|
] });
|
|
339
339
|
}
|
|
340
340
|
var TOGGLES = [
|
|
341
|
-
{ option: "caseSensitive", label: "matchCase", icon:
|
|
342
|
-
{ option: "wholeWord", label: "wholeWord", icon:
|
|
343
|
-
{ option: "regex", label: "regularExpression", icon:
|
|
341
|
+
{ option: "caseSensitive", label: "matchCase", icon: chunkUUSZGUXJ_cjs.CaseSensitive },
|
|
342
|
+
{ option: "wholeWord", label: "wholeWord", icon: chunkUUSZGUXJ_cjs.WholeWord },
|
|
343
|
+
{ option: "regex", label: "regularExpression", icon: chunkUUSZGUXJ_cjs.Regex }
|
|
344
344
|
];
|
|
345
345
|
function FindToggles({ labels, options, onToggle }) {
|
|
346
346
|
return TOGGLES.map(({ option, label, icon: Icon }) => {
|
|
347
347
|
const name = labels[label];
|
|
348
348
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
349
|
-
|
|
349
|
+
chunkUUSZGUXJ_cjs.Button,
|
|
350
350
|
{
|
|
351
351
|
type: "button",
|
|
352
352
|
variant: "ghost",
|
|
@@ -447,7 +447,7 @@ function FindPanel({ controller, labels, value, readOnly }) {
|
|
|
447
447
|
children: [
|
|
448
448
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1", children: [
|
|
449
449
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
450
|
-
|
|
450
|
+
chunkUUSZGUXJ_cjs.Input,
|
|
451
451
|
{
|
|
452
452
|
ref: query,
|
|
453
453
|
"aria-label": labels.find,
|
|
@@ -462,7 +462,7 @@ function FindPanel({ controller, labels, value, readOnly }) {
|
|
|
462
462
|
/* @__PURE__ */ jsxRuntime.jsx(FindStatus, { labels, value }),
|
|
463
463
|
/* @__PURE__ */ jsxRuntime.jsx(FindToggles, { labels, options: value.search, onToggle: actions.toggle }),
|
|
464
464
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
465
|
-
|
|
465
|
+
chunkUUSZGUXJ_cjs.Button,
|
|
466
466
|
{
|
|
467
467
|
type: "button",
|
|
468
468
|
variant: "ghost",
|
|
@@ -470,11 +470,11 @@ function FindPanel({ controller, labels, value, readOnly }) {
|
|
|
470
470
|
"aria-label": labels.previousMatch,
|
|
471
471
|
title: labels.previousMatch,
|
|
472
472
|
onClick: () => actions.step(-1),
|
|
473
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
473
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkUUSZGUXJ_cjs.ChevronUp, { "aria-hidden": true })
|
|
474
474
|
}
|
|
475
475
|
),
|
|
476
476
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
477
|
-
|
|
477
|
+
chunkUUSZGUXJ_cjs.Button,
|
|
478
478
|
{
|
|
479
479
|
type: "button",
|
|
480
480
|
variant: "ghost",
|
|
@@ -482,11 +482,11 @@ function FindPanel({ controller, labels, value, readOnly }) {
|
|
|
482
482
|
"aria-label": labels.nextMatch,
|
|
483
483
|
title: labels.nextMatch,
|
|
484
484
|
onClick: () => actions.step(1),
|
|
485
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
485
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkUUSZGUXJ_cjs.ChevronDown, { "aria-hidden": true })
|
|
486
486
|
}
|
|
487
487
|
),
|
|
488
488
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
489
|
-
|
|
489
|
+
chunkUUSZGUXJ_cjs.Button,
|
|
490
490
|
{
|
|
491
491
|
type: "button",
|
|
492
492
|
variant: "ghost",
|
|
@@ -494,13 +494,13 @@ function FindPanel({ controller, labels, value, readOnly }) {
|
|
|
494
494
|
"aria-label": labels.close,
|
|
495
495
|
title: labels.close,
|
|
496
496
|
onClick: actions.close,
|
|
497
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
497
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkUUSZGUXJ_cjs.X, { "aria-hidden": true })
|
|
498
498
|
}
|
|
499
499
|
)
|
|
500
500
|
] }),
|
|
501
501
|
!readOnly && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1", children: [
|
|
502
502
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
503
|
-
|
|
503
|
+
chunkUUSZGUXJ_cjs.Input,
|
|
504
504
|
{
|
|
505
505
|
"aria-label": labels.replaceWith,
|
|
506
506
|
placeholder: labels.replaceWith,
|
|
@@ -510,8 +510,8 @@ function FindPanel({ controller, labels, value, readOnly }) {
|
|
|
510
510
|
className: "h-8 w-48"
|
|
511
511
|
}
|
|
512
512
|
),
|
|
513
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
514
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
513
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkUUSZGUXJ_cjs.Button, { type: "button", variant: "outline", size: "sm", onClick: () => actions.replace(replacement), children: labels.replace }),
|
|
514
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkUUSZGUXJ_cjs.Button, { type: "button", variant: "outline", size: "sm", onClick: () => actions.replaceAll(replacement), children: labels.replaceAll })
|
|
515
515
|
] })
|
|
516
516
|
]
|
|
517
517
|
}
|
|
@@ -540,5 +540,3 @@ exports.englishFindLabels = englishFindLabels;
|
|
|
540
540
|
exports.findExtension = findExtension;
|
|
541
541
|
exports.findMatches = findMatches;
|
|
542
542
|
exports.replaceMatches = replaceMatches;
|
|
543
|
-
//# sourceMappingURL=chunk-AZ2ZNSFN.cjs.map
|
|
544
|
-
//# sourceMappingURL=chunk-AZ2ZNSFN.cjs.map
|
|
@@ -523,16 +523,16 @@ var englishLabels = {
|
|
|
523
523
|
heading1: "Large section heading",
|
|
524
524
|
heading2: "Medium section heading",
|
|
525
525
|
heading3: "Small section heading",
|
|
526
|
-
bulletedList: "
|
|
527
|
-
numberedList: "
|
|
526
|
+
bulletedList: "List with bullets",
|
|
527
|
+
numberedList: "List with numbers",
|
|
528
528
|
todoList: "Tasks to check off",
|
|
529
|
-
quote: "
|
|
530
|
-
divider: "
|
|
531
|
-
callout: "
|
|
529
|
+
quote: "Quotation, set apart",
|
|
530
|
+
divider: "Line between sections",
|
|
531
|
+
callout: "Note that stands out",
|
|
532
532
|
toggle: "Content to show or hide",
|
|
533
|
-
code: "
|
|
534
|
-
image: "
|
|
535
|
-
file: "
|
|
533
|
+
code: "Block of code",
|
|
534
|
+
image: "Image, uploaded or linked",
|
|
535
|
+
file: "File to download"
|
|
536
536
|
},
|
|
537
537
|
groups: {
|
|
538
538
|
basic: "Basic",
|
|
@@ -645,7 +645,7 @@ var englishLabels = {
|
|
|
645
645
|
altText: "Alt text",
|
|
646
646
|
altTextHint: "Required. Describe what the image shows for anyone who cannot see it.",
|
|
647
647
|
save: "Save",
|
|
648
|
-
imageNoAlt: "Image, no
|
|
648
|
+
imageNoAlt: "Image, no alt text",
|
|
649
649
|
decorativeImage: "Decorative image",
|
|
650
650
|
noAltBadge: "No alt text",
|
|
651
651
|
addAltText: "No alt text, add alt text",
|
|
@@ -6569,6 +6569,7 @@ exports.ArrowUpToLine = ArrowUpToLine;
|
|
|
6569
6569
|
exports.BlockCanvas = BlockCanvas;
|
|
6570
6570
|
exports.Bookmark = Bookmark;
|
|
6571
6571
|
exports.Button = Button;
|
|
6572
|
+
exports.CODE_LANGUAGES = CODE_LANGUAGES;
|
|
6572
6573
|
exports.CaseSensitive = CaseSensitive;
|
|
6573
6574
|
exports.ChevronDown = ChevronDown;
|
|
6574
6575
|
exports.ChevronUp = ChevronUp;
|
|
@@ -6646,5 +6647,3 @@ exports.useQuoin = useQuoin;
|
|
|
6646
6647
|
exports.useRangeAnchor = useRangeAnchor;
|
|
6647
6648
|
exports.useRovingFocus = useRovingFocus;
|
|
6648
6649
|
exports.virtualAnchor = virtualAnchor;
|
|
6649
|
-
//# sourceMappingURL=chunk-65WK575V.cjs.map
|
|
6650
|
-
//# sourceMappingURL=chunk-65WK575V.cjs.map
|
package/dist/chunk-VZZPCYA3.cjs
CHANGED
package/dist/chunk-WN7BZDNH.cjs
CHANGED
package/dist/chunk-WZA5S5EJ.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkH3C3MJW5_cjs = require('./chunk-H3C3MJW5.cjs');
|
|
4
|
-
var
|
|
4
|
+
var chunkUUSZGUXJ_cjs = require('./chunk-UUSZGUXJ.cjs');
|
|
5
5
|
var chunkQJ34MOFV_cjs = require('./chunk-QJ34MOFV.cjs');
|
|
6
6
|
var chunkA6PGQVTR_cjs = require('./chunk-A6PGQVTR.cjs');
|
|
7
7
|
var chunkVZZPCYA3_cjs = require('./chunk-VZZPCYA3.cjs');
|
|
@@ -16,7 +16,7 @@ function LinkCard({ controller, blockId, url, title, description, image, readOnl
|
|
|
16
16
|
const domain = chunkH3C3MJW5_cjs.domainOf(url);
|
|
17
17
|
const picture = chunkH3C3MJW5_cjs.webAddress(image);
|
|
18
18
|
const name = title || url;
|
|
19
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: card, className: "quoin-link-card", ...readOnly ? void 0 :
|
|
19
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: card, className: "quoin-link-card", ...readOnly ? void 0 : chunkUUSZGUXJ_cjs.selectHandlers(controller, blockId, card), children: [
|
|
20
20
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "quoin-link-card-text", children: [
|
|
21
21
|
href === null ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "quoin-link-card-title", children: name }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
22
22
|
"a",
|
|
@@ -51,7 +51,7 @@ function useLinkCardKeys(controller, blockId, url, editable) {
|
|
|
51
51
|
const root = react.useRef(null);
|
|
52
52
|
const link = react.useRef(null);
|
|
53
53
|
const keys = react.useMemo(() => ({ enter: () => link.current?.focus() }), []);
|
|
54
|
-
|
|
54
|
+
chunkUUSZGUXJ_cjs.useNodeKeys(controller, blockId, editable, chunkWZA5S5EJ_cjs.sanitizeHref(url) !== null, root, keys);
|
|
55
55
|
return { root, link };
|
|
56
56
|
}
|
|
57
57
|
|
|
@@ -93,7 +93,7 @@ async function unfurlInto(controller, blockId, url, unfurl, onError) {
|
|
|
93
93
|
try {
|
|
94
94
|
found = await unfurl(url);
|
|
95
95
|
} catch (cause) {
|
|
96
|
-
if (bookmarkAt(controller, blockId, url) && drawn.get(blockId)) onError(
|
|
96
|
+
if (bookmarkAt(controller, blockId, url) && drawn.get(blockId)) onError(chunkUUSZGUXJ_cjs.toError(cause));
|
|
97
97
|
return;
|
|
98
98
|
}
|
|
99
99
|
const patch = unfurledPatch(found);
|
|
@@ -108,7 +108,7 @@ async function unfurlInto(controller, blockId, url, unfurl, onError) {
|
|
|
108
108
|
editor.dispatch(editor.createTransaction().step(chunkVZZPCYA3_cjs.setAttrsStep(blockId, patch)).setMeta("addToHistory", false));
|
|
109
109
|
}
|
|
110
110
|
function useUnfurl(controller, blockId, url, unfurl) {
|
|
111
|
-
const { onError } =
|
|
111
|
+
const { onError } = chunkUUSZGUXJ_cjs.useQuoin();
|
|
112
112
|
react.useEffect(() => {
|
|
113
113
|
const { drawn } = asksOf(controller);
|
|
114
114
|
drawn.set(blockId, (drawn.get(blockId) ?? 0) + 1);
|
|
@@ -187,7 +187,7 @@ function EmbedFrame({ blockId, controller, match, title, readOnly }) {
|
|
|
187
187
|
);
|
|
188
188
|
const cover = useCoverPress(controller);
|
|
189
189
|
const keys = react.useMemo(() => ({ enter: () => void setTimeout(() => frame.current?.focus()) }), []);
|
|
190
|
-
|
|
190
|
+
chunkUUSZGUXJ_cjs.useNodeKeys(controller, blockId, !readOnly, true, root, keys);
|
|
191
191
|
const height = playerHeight(match.provider);
|
|
192
192
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
193
193
|
"div",
|
|
@@ -215,7 +215,7 @@ function EmbedFrame({ blockId, controller, match, title, readOnly }) {
|
|
|
215
215
|
className: "quoin-embed-cover",
|
|
216
216
|
onPointerDownCapture: cover.onPress,
|
|
217
217
|
onMouseDown: (event) => event.preventDefault(),
|
|
218
|
-
onClick: () =>
|
|
218
|
+
onClick: () => chunkUUSZGUXJ_cjs.focusNode(controller, blockId)
|
|
219
219
|
}
|
|
220
220
|
)
|
|
221
221
|
]
|
|
@@ -320,7 +320,7 @@ var embedSlashItems = (labels) => [
|
|
|
320
320
|
title: labels.embed,
|
|
321
321
|
description: labels.embedDescription,
|
|
322
322
|
group: "embeds",
|
|
323
|
-
icon:
|
|
323
|
+
icon: chunkUUSZGUXJ_cjs.AppWindow,
|
|
324
324
|
keywords: ["iframe", "video", "youtube", "vimeo", "loom", "figma", "codepen", "spotify", "soundcloud"],
|
|
325
325
|
run: ({ controller, range }) => requestLink(controller, { kind: "embed", at: range })
|
|
326
326
|
},
|
|
@@ -329,7 +329,7 @@ var embedSlashItems = (labels) => [
|
|
|
329
329
|
title: labels.bookmark,
|
|
330
330
|
description: labels.bookmarkDescription,
|
|
331
331
|
group: "embeds",
|
|
332
|
-
icon:
|
|
332
|
+
icon: chunkUUSZGUXJ_cjs.Bookmark,
|
|
333
333
|
keywords: ["link", "url", "card", "preview", "web"],
|
|
334
334
|
run: ({ controller, range }) => requestLink(controller, { kind: "bookmark", at: range })
|
|
335
335
|
}
|
|
@@ -381,7 +381,7 @@ function emptyParagraph(blockId) {
|
|
|
381
381
|
}
|
|
382
382
|
function replaceLink(blockId, block) {
|
|
383
383
|
return (state, dispatch) => {
|
|
384
|
-
const { ok, tr } = chunkVZZPCYA3_cjs.runCommands(state, [emptyParagraph(blockId),
|
|
384
|
+
const { ok, tr } = chunkVZZPCYA3_cjs.runCommands(state, [emptyParagraph(blockId), chunkUUSZGUXJ_cjs.insertBlocks([block], "line", blockId)]);
|
|
385
385
|
if (!ok || tr === null) return false;
|
|
386
386
|
dispatch?.(tr);
|
|
387
387
|
return true;
|
|
@@ -395,7 +395,7 @@ function embedOf(href, providers) {
|
|
|
395
395
|
}
|
|
396
396
|
var bookmarkOf = (href) => ({ type: "BOOKMARK", attrs: { url: href } });
|
|
397
397
|
function typedLink(kind, typed, providers) {
|
|
398
|
-
const href = chunkH3C3MJW5_cjs.webAddress(
|
|
398
|
+
const href = chunkH3C3MJW5_cjs.webAddress(chunkUUSZGUXJ_cjs.linkAddress(typed));
|
|
399
399
|
if (href === null) return { href, block: null, problem: "notALink" };
|
|
400
400
|
const block = kind === "embed" ? embedOf(href, providers) : bookmarkOf(href);
|
|
401
401
|
return { href, block, problem: block === null ? "cannotEmbed" : null };
|
|
@@ -423,18 +423,18 @@ function useEscapeInText(controller, onEscape) {
|
|
|
423
423
|
onEscape();
|
|
424
424
|
return true;
|
|
425
425
|
};
|
|
426
|
-
return
|
|
426
|
+
return chunkUUSZGUXJ_cjs.interceptKeys(controller, intercept);
|
|
427
427
|
}, [controller, onEscape]);
|
|
428
428
|
}
|
|
429
429
|
function LinkChoiceToolbar({ controller, feature: { labels, providers }, choice, onDismiss }) {
|
|
430
430
|
const embed = react.useMemo(() => embedOf(choice.href, providers), [choice.href, providers]);
|
|
431
431
|
const range = react.useMemo(() => linkEnd(controller.editor.state, choice.block), [controller, choice.block]);
|
|
432
|
-
const { anchor } =
|
|
432
|
+
const { anchor } = chunkUUSZGUXJ_cjs.useRangeAnchor(controller, range);
|
|
433
433
|
const after = react.useMemo(() => {
|
|
434
434
|
const host = range && controller.registry.get(range.block, range.region);
|
|
435
|
-
return host &&
|
|
435
|
+
return host && chunkUUSZGUXJ_cjs.inlineDirection(host) === "rtl" ? "left" : "right";
|
|
436
436
|
}, [controller, range]);
|
|
437
|
-
const roving =
|
|
437
|
+
const roving = chunkUUSZGUXJ_cjs.useRovingFocus();
|
|
438
438
|
const rovingRef = roving.ref;
|
|
439
439
|
const content = react.useRef(null);
|
|
440
440
|
const ref = react.useCallback(
|
|
@@ -445,9 +445,9 @@ function LinkChoiceToolbar({ controller, feature: { labels, providers }, choice,
|
|
|
445
445
|
[rovingRef]
|
|
446
446
|
);
|
|
447
447
|
const ownerDocument = react.useCallback(() => controller.root?.ownerDocument ?? document, [controller]);
|
|
448
|
-
|
|
448
|
+
chunkUUSZGUXJ_cjs.useFocusKey(controller, roving.focusCurrent);
|
|
449
449
|
useEscapeInText(controller, onDismiss);
|
|
450
|
-
|
|
450
|
+
chunkUUSZGUXJ_cjs.useOutsidePress(content, ownerDocument, onDismiss);
|
|
451
451
|
const choose = (block) => {
|
|
452
452
|
if (block === null) onDismiss();
|
|
453
453
|
else controller.run(replaceLink(choice.block, block));
|
|
@@ -461,11 +461,11 @@ function LinkChoiceToolbar({ controller, feature: { labels, providers }, choice,
|
|
|
461
461
|
controller.focus();
|
|
462
462
|
} else roving.onKeyDown(event);
|
|
463
463
|
};
|
|
464
|
-
const button = (label, block) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
465
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
466
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
464
|
+
const button = (label, block) => /* @__PURE__ */ jsxRuntime.jsx(chunkUUSZGUXJ_cjs.Button, { type: "button", variant: "ghost", size: "sm", onClick: () => choose(block), children: label });
|
|
465
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkUUSZGUXJ_cjs.Popover, { open: true, modal: false, children: [
|
|
466
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkUUSZGUXJ_cjs.PopoverAnchor, { virtualRef: anchor }),
|
|
467
467
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
468
|
-
|
|
468
|
+
chunkUUSZGUXJ_cjs.PopoverContent,
|
|
469
469
|
{
|
|
470
470
|
ref,
|
|
471
471
|
role: "toolbar",
|
|
@@ -473,14 +473,14 @@ function LinkChoiceToolbar({ controller, feature: { labels, providers }, choice,
|
|
|
473
473
|
side: after,
|
|
474
474
|
align: "end",
|
|
475
475
|
sideOffset: 8,
|
|
476
|
-
className:
|
|
477
|
-
onOpenAutoFocus:
|
|
478
|
-
onCloseAutoFocus:
|
|
479
|
-
onPointerDown:
|
|
480
|
-
onMouseDown:
|
|
476
|
+
className: chunkUUSZGUXJ_cjs.FLOATING_TOOLBAR,
|
|
477
|
+
onOpenAutoFocus: chunkUUSZGUXJ_cjs.preventDefault,
|
|
478
|
+
onCloseAutoFocus: chunkUUSZGUXJ_cjs.preventDefault,
|
|
479
|
+
onPointerDown: chunkUUSZGUXJ_cjs.keepFocus,
|
|
480
|
+
onMouseDown: chunkUUSZGUXJ_cjs.keepFocus,
|
|
481
481
|
onFocus: roving.onFocus,
|
|
482
482
|
onKeyDown,
|
|
483
|
-
...
|
|
483
|
+
...chunkUUSZGUXJ_cjs.bubblePart(controller),
|
|
484
484
|
children: [
|
|
485
485
|
embed !== null && button(labels.embed, embed),
|
|
486
486
|
button(labels.bookmark, bookmarkOf(choice.href)),
|
|
@@ -498,7 +498,7 @@ function storeAfterPress(controller, request, block) {
|
|
|
498
498
|
controller.readSelectionFromDom();
|
|
499
499
|
const line = request.at.block;
|
|
500
500
|
const onLine = chunkVZZPCYA3_cjs.headBlockId(editor.state.selection) === line;
|
|
501
|
-
const place = onLine ?
|
|
501
|
+
const place = onLine ? chunkUUSZGUXJ_cjs.insertBlockToWrite(block, false, line) : chunkUUSZGUXJ_cjs.insertBlocks([block], "stay", line);
|
|
502
502
|
place(editor.state, (tr) => editor.dispatch(tr));
|
|
503
503
|
}
|
|
504
504
|
function LinkInputOverlay({ controller, feature }) {
|
|
@@ -516,12 +516,12 @@ function LinkInputPopover({ controller, feature: { labels, providers }, request,
|
|
|
516
516
|
const [problem, setProblem] = react.useState(null);
|
|
517
517
|
const messageId = react.useId();
|
|
518
518
|
const content = react.useRef(null);
|
|
519
|
-
const { anchor, side } =
|
|
519
|
+
const { anchor, side } = chunkUUSZGUXJ_cjs.useRangeAnchor(controller, request.at);
|
|
520
520
|
const name = request.kind === "embed" ? labels.embedLink : labels.bookmarkLink;
|
|
521
521
|
const typed = () => typedLink(request.kind, address, providers);
|
|
522
522
|
const finish = (block) => {
|
|
523
523
|
onClose();
|
|
524
|
-
if (block !== null && !controller.readOnly) controller.run(
|
|
524
|
+
if (block !== null && !controller.readOnly) controller.run(chunkUUSZGUXJ_cjs.insertBlockToWrite(block, false, request.at.block));
|
|
525
525
|
controller.focus();
|
|
526
526
|
};
|
|
527
527
|
const submit = (event) => {
|
|
@@ -532,7 +532,7 @@ function LinkInputPopover({ controller, feature: { labels, providers }, request,
|
|
|
532
532
|
};
|
|
533
533
|
const bookmarkInstead = () => finish(typedLink("bookmark", address, providers).block);
|
|
534
534
|
const ownerDocument = react.useCallback(() => controller.root?.ownerDocument ?? document, [controller]);
|
|
535
|
-
|
|
535
|
+
chunkUUSZGUXJ_cjs.useOutsidePress(content, ownerDocument, () => {
|
|
536
536
|
onClose();
|
|
537
537
|
const { block } = typed();
|
|
538
538
|
if (block !== null) setTimeout(() => storeAfterPress(controller, request, block));
|
|
@@ -546,25 +546,25 @@ function LinkInputPopover({ controller, feature: { labels, providers }, request,
|
|
|
546
546
|
if (next >= 0 && next < controls.length) controls[next].focus();
|
|
547
547
|
else finish(typed().block);
|
|
548
548
|
};
|
|
549
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
550
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
549
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkUUSZGUXJ_cjs.Popover, { open: true, modal: false, children: [
|
|
550
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkUUSZGUXJ_cjs.PopoverAnchor, { virtualRef: anchor }),
|
|
551
551
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
552
|
-
|
|
552
|
+
chunkUUSZGUXJ_cjs.PopoverContent,
|
|
553
553
|
{
|
|
554
554
|
ref: content,
|
|
555
555
|
"aria-label": name,
|
|
556
556
|
side,
|
|
557
557
|
align: "start",
|
|
558
558
|
className: "w-80 p-2 shadow-md",
|
|
559
|
-
onCloseAutoFocus:
|
|
559
|
+
onCloseAutoFocus: chunkUUSZGUXJ_cjs.preventDefault,
|
|
560
560
|
onEscapeKeyDown: (event) => {
|
|
561
561
|
event.preventDefault();
|
|
562
562
|
if (!chunkQJ34MOFV_cjs.isComposingKey(controller, event)) finish(null);
|
|
563
563
|
},
|
|
564
|
-
...
|
|
564
|
+
...chunkUUSZGUXJ_cjs.bubblePart(controller),
|
|
565
565
|
children: /* @__PURE__ */ jsxRuntime.jsxs("form", { noValidate: true, className: "quoin-embed-ask", onSubmit: submit, onKeyDown, children: [
|
|
566
566
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
567
|
-
|
|
567
|
+
chunkUUSZGUXJ_cjs.Input,
|
|
568
568
|
{
|
|
569
569
|
type: "url",
|
|
570
570
|
className: "h-8",
|
|
@@ -578,9 +578,9 @@ function LinkInputPopover({ controller, feature: { labels, providers }, request,
|
|
|
578
578
|
}
|
|
579
579
|
}
|
|
580
580
|
),
|
|
581
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
581
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkUUSZGUXJ_cjs.Button, { type: "submit", size: "sm", children: request.kind === "embed" ? labels.embed : labels.bookmark }),
|
|
582
582
|
problem !== null && /* @__PURE__ */ jsxRuntime.jsx("p", { id: messageId, role: "alert", className: "quoin-embed-ask-message", children: labels[problem] }),
|
|
583
|
-
problem === "cannotEmbed" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
583
|
+
problem === "cannotEmbed" && /* @__PURE__ */ jsxRuntime.jsx(chunkUUSZGUXJ_cjs.Button, { type: "button", variant: "outline", size: "sm", onClick: bookmarkInstead, children: labels.bookmarkInstead })
|
|
584
584
|
] })
|
|
585
585
|
}
|
|
586
586
|
)
|
|
@@ -607,5 +607,3 @@ function embedExtension(options = {}) {
|
|
|
607
607
|
|
|
608
608
|
exports.embedExtension = embedExtension;
|
|
609
609
|
exports.englishEmbedLabels = englishEmbedLabels;
|
|
610
|
-
//# sourceMappingURL=chunk-FQDNF7MF.cjs.map
|
|
611
|
-
//# sourceMappingURL=chunk-FQDNF7MF.cjs.map
|