@primeui/texteditor-core 0.0.1-alpha.1 → 1.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +35 -0
- package/README.md +12 -0
- package/dist/{chunk-GG56GLXC.mjs → chunks/chunk-25Y5HLDY.mjs} +2 -2
- package/dist/chunks/chunk-25Y5HLDY.mjs.map +1 -0
- package/dist/{chunk-PT2O4RV7.mjs → chunks/chunk-4BI7WWVV.mjs} +6 -5
- package/dist/chunks/chunk-4BI7WWVV.mjs.map +1 -0
- package/dist/{chunk-72T5I4O4.mjs → chunks/chunk-4C4R23A3.mjs} +2 -2
- package/dist/chunks/chunk-4C4R23A3.mjs.map +1 -0
- package/dist/{chunk-PT5V6UYE.mjs → chunks/chunk-4NWX3EPS.mjs} +2 -2
- package/dist/chunks/chunk-4NWX3EPS.mjs.map +1 -0
- package/dist/{chunk-XKY2VYPW.mjs → chunks/chunk-75IVOL6Q.mjs} +2 -2
- package/dist/chunks/chunk-75IVOL6Q.mjs.map +1 -0
- package/dist/{chunk-7QCHSEN2.mjs → chunks/chunk-C2TRJCIH.mjs} +2 -2
- package/dist/chunks/chunk-C2TRJCIH.mjs.map +1 -0
- package/dist/{chunk-AJOKUIQD.mjs → chunks/chunk-C6CEVLOL.mjs} +2 -2
- package/dist/chunks/chunk-C6CEVLOL.mjs.map +1 -0
- package/dist/{chunk-H3RFOYCT.mjs → chunks/chunk-DAVC2Z22.mjs} +2 -2
- package/dist/chunks/chunk-DAVC2Z22.mjs.map +1 -0
- package/dist/{chunk-NWRVBNBW.mjs → chunks/chunk-F2THMQFM.mjs} +3 -3
- package/dist/chunks/chunk-F2THMQFM.mjs.map +1 -0
- package/dist/{chunk-TBQVZVKA.mjs → chunks/chunk-F4KBJIZJ.mjs} +43 -31
- package/dist/chunks/chunk-F4KBJIZJ.mjs.map +1 -0
- package/dist/{chunk-J5LGTIGS.mjs → chunks/chunk-FLGC65SR.mjs} +2 -2
- package/dist/{chunk-J5LGTIGS.mjs.map → chunks/chunk-FLGC65SR.mjs.map} +1 -1
- package/dist/{chunk-3RKMABZR.mjs → chunks/chunk-KA3KNPLZ.mjs} +4 -4
- package/dist/chunks/chunk-KA3KNPLZ.mjs.map +1 -0
- package/dist/{chunk-OGEMGWLR.mjs → chunks/chunk-LHZDU6AA.mjs} +5 -5
- package/dist/chunks/chunk-LHZDU6AA.mjs.map +1 -0
- package/dist/{chunk-PRFYR67X.mjs → chunks/chunk-LYB4TGKX.mjs} +2 -2
- package/dist/chunks/chunk-LYB4TGKX.mjs.map +1 -0
- package/dist/{chunk-MNKMKFLQ.mjs → chunks/chunk-MMU3VGMT.mjs} +3 -3
- package/dist/chunks/chunk-MMU3VGMT.mjs.map +1 -0
- package/dist/{chunk-6YDCG63C.mjs → chunks/chunk-MMY4F74E.mjs} +9 -9
- package/dist/chunks/chunk-MMY4F74E.mjs.map +1 -0
- package/dist/{chunk-6GY64GPU.mjs → chunks/chunk-MSPB65AH.mjs} +2 -2
- package/dist/chunks/chunk-MSPB65AH.mjs.map +1 -0
- package/dist/{chunk-KNZAMA6H.mjs → chunks/chunk-NZCWIEXE.mjs} +3 -3
- package/dist/chunks/chunk-NZCWIEXE.mjs.map +1 -0
- package/dist/{chunk-DXPG5XMX.mjs → chunks/chunk-P4N6CW2J.mjs} +2 -2
- package/dist/chunks/chunk-P4N6CW2J.mjs.map +1 -0
- package/dist/{chunk-FFCQLWS5.mjs → chunks/chunk-PRW2CBOO.mjs} +2 -2
- package/dist/chunks/chunk-PRW2CBOO.mjs.map +1 -0
- package/dist/{chunk-IUQKSDKG.mjs → chunks/chunk-PSOP5GNT.mjs} +3 -3
- package/dist/chunks/chunk-PSOP5GNT.mjs.map +1 -0
- package/dist/{chunk-RH45QRSV.mjs → chunks/chunk-Q7MBG5CT.mjs} +2 -2
- package/dist/chunks/chunk-Q7MBG5CT.mjs.map +1 -0
- package/dist/{chunk-AUTGNC2Q.mjs → chunks/chunk-QMEKZ64Z.mjs} +6 -6
- package/dist/chunks/chunk-QMEKZ64Z.mjs.map +1 -0
- package/dist/{chunk-YHMP6AN3.mjs → chunks/chunk-QZUFYVD5.mjs} +4 -4
- package/dist/chunks/chunk-QZUFYVD5.mjs.map +1 -0
- package/dist/{chunk-22B454VC.mjs → chunks/chunk-RE46J3VH.mjs} +2 -2
- package/dist/chunks/chunk-RE46J3VH.mjs.map +1 -0
- package/dist/{chunk-MWT5PK3Z.mjs → chunks/chunk-SFUE4QBU.mjs} +2 -2
- package/dist/chunks/chunk-SFUE4QBU.mjs.map +1 -0
- package/dist/{chunk-TB7ZSSR2.mjs → chunks/chunk-UHENKXGQ.mjs} +2 -2
- package/dist/chunks/chunk-UHENKXGQ.mjs.map +1 -0
- package/dist/{chunk-GGPBV4BM.mjs → chunks/chunk-UN74246B.mjs} +2 -2
- package/dist/chunks/chunk-UN74246B.mjs.map +1 -0
- package/dist/{chunk-6ZN5XRH2.mjs → chunks/chunk-UORFAHNO.mjs} +2 -2
- package/dist/chunks/chunk-UORFAHNO.mjs.map +1 -0
- package/dist/{chunk-E2KXUP3F.mjs → chunks/chunk-VXO6D7N5.mjs} +2 -2
- package/dist/chunks/chunk-VXO6D7N5.mjs.map +1 -0
- package/dist/{chunk-RQ2HHNI6.mjs → chunks/chunk-XO4UUELZ.mjs} +3 -3
- package/dist/chunks/chunk-XO4UUELZ.mjs.map +1 -0
- package/dist/{chunk-EA2YI7LA.mjs → chunks/chunk-XOMJOYJG.mjs} +2 -2
- package/dist/chunks/chunk-XOMJOYJG.mjs.map +1 -0
- package/dist/{chunk-VWGQMUPD.mjs → chunks/chunk-YXOJODMQ.mjs} +3 -3
- package/dist/chunks/chunk-YXOJODMQ.mjs.map +1 -0
- package/dist/{chunk-XSVIGDQR.mjs → chunks/chunk-Z7KBTB2P.mjs} +2 -2
- package/dist/chunks/chunk-Z7KBTB2P.mjs.map +1 -0
- package/dist/{chunk-F7BJWPT6.mjs → chunks/chunk-ZSXWDZMQ.mjs} +6 -6
- package/dist/chunks/chunk-ZSXWDZMQ.mjs.map +1 -0
- package/dist/{chunk-CRAB2MFE.mjs → chunks/chunk-ZUZABDZC.mjs} +2 -2
- package/dist/chunks/chunk-ZUZABDZC.mjs.map +1 -0
- package/dist/commands/index.mjs +11 -11
- package/dist/createTextEditor.mjs +29 -29
- package/dist/index.mjs +31 -31
- package/dist/plugins/columnWidthPin.mjs +2 -2
- package/dist/plugins/contextToolbar.mjs +3 -3
- package/dist/plugins/defineTextEditorPlugin.mjs +2 -2
- package/dist/plugins/inputRules.mjs +6 -6
- package/dist/plugins/keymap.mjs +4 -4
- package/dist/plugins/mention.mjs +4 -3
- package/dist/plugins/mentionController.mjs +2 -2
- package/dist/plugins/placeholder.mjs +3 -3
- package/dist/plugins/registry.mjs +2 -2
- package/dist/plugins/selectionHighlight.mjs +3 -3
- package/dist/plugins/slashCommands.mjs +3 -3
- package/dist/plugins/tableOverlay.mjs +4 -4
- package/dist/plugins/trailingNode.mjs +2 -2
- package/dist/schema/index.mjs +6 -6
- package/dist/serialization/index.mjs +3 -3
- package/dist/texteditor.classes.mjs +2 -2
- package/dist/texteditor.constants.mjs +2 -2
- package/dist/texteditor.props.mjs +2 -2
- package/dist/texteditor.refs.mjs +2 -2
- package/dist/texteditor.state.mjs +2 -2
- package/dist/ui/focus.mjs +2 -2
- package/dist/ui/index.mjs +7 -7
- package/dist/ui/keyboard.mjs +2 -2
- package/dist/ui/menu.mjs +2 -2
- package/dist/ui/positioning.mjs +3 -3
- package/dist/ui/scroll.mjs +2 -2
- package/dist/utils/index.mjs +4 -4
- package/package.json +6 -10
- package/LICENSE +0 -23
- package/dist/chunk-22B454VC.mjs.map +0 -1
- package/dist/chunk-3RKMABZR.mjs.map +0 -1
- package/dist/chunk-6GY64GPU.mjs.map +0 -1
- package/dist/chunk-6YDCG63C.mjs.map +0 -1
- package/dist/chunk-6ZN5XRH2.mjs.map +0 -1
- package/dist/chunk-72T5I4O4.mjs.map +0 -1
- package/dist/chunk-7QCHSEN2.mjs.map +0 -1
- package/dist/chunk-AJOKUIQD.mjs.map +0 -1
- package/dist/chunk-AUTGNC2Q.mjs.map +0 -1
- package/dist/chunk-CRAB2MFE.mjs.map +0 -1
- package/dist/chunk-DXPG5XMX.mjs.map +0 -1
- package/dist/chunk-E2KXUP3F.mjs.map +0 -1
- package/dist/chunk-EA2YI7LA.mjs.map +0 -1
- package/dist/chunk-F7BJWPT6.mjs.map +0 -1
- package/dist/chunk-FFCQLWS5.mjs.map +0 -1
- package/dist/chunk-GG56GLXC.mjs.map +0 -1
- package/dist/chunk-GGPBV4BM.mjs.map +0 -1
- package/dist/chunk-H3RFOYCT.mjs.map +0 -1
- package/dist/chunk-IUQKSDKG.mjs.map +0 -1
- package/dist/chunk-KNZAMA6H.mjs.map +0 -1
- package/dist/chunk-MNKMKFLQ.mjs.map +0 -1
- package/dist/chunk-MWT5PK3Z.mjs.map +0 -1
- package/dist/chunk-NWRVBNBW.mjs.map +0 -1
- package/dist/chunk-OGEMGWLR.mjs.map +0 -1
- package/dist/chunk-PRFYR67X.mjs.map +0 -1
- package/dist/chunk-PT2O4RV7.mjs.map +0 -1
- package/dist/chunk-PT5V6UYE.mjs.map +0 -1
- package/dist/chunk-RH45QRSV.mjs.map +0 -1
- package/dist/chunk-RQ2HHNI6.mjs.map +0 -1
- package/dist/chunk-TB7ZSSR2.mjs.map +0 -1
- package/dist/chunk-TBQVZVKA.mjs.map +0 -1
- package/dist/chunk-VWGQMUPD.mjs.map +0 -1
- package/dist/chunk-XKY2VYPW.mjs.map +0 -1
- package/dist/chunk-XSVIGDQR.mjs.map +0 -1
- package/dist/chunk-YHMP6AN3.mjs.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { createMarkdownInputRules } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
6
|
-
import '../chunk-
|
|
1
|
+
export { createMarkdownInputRules } from '../chunks/chunk-LHZDU6AA.mjs';
|
|
2
|
+
import '../chunks/chunk-YXOJODMQ.mjs';
|
|
3
|
+
import '../chunks/chunk-UHENKXGQ.mjs';
|
|
4
|
+
import '../chunks/chunk-4C4R23A3.mjs';
|
|
5
|
+
import '../chunks/chunk-MMU3VGMT.mjs';
|
|
6
|
+
import '../chunks/chunk-FLGC65SR.mjs';
|
|
7
7
|
//# sourceMappingURL=inputRules.mjs.map
|
|
8
8
|
//# sourceMappingURL=inputRules.mjs.map
|
package/dist/plugins/keymap.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { baseKeymap, blockSelectAll, createEditorKeymap, keymap } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
1
|
+
export { baseKeymap, blockSelectAll, createEditorKeymap, keymap } from '../chunks/chunk-QZUFYVD5.mjs';
|
|
2
|
+
import '../chunks/chunk-UHENKXGQ.mjs';
|
|
3
|
+
import '../chunks/chunk-4C4R23A3.mjs';
|
|
4
|
+
import '../chunks/chunk-FLGC65SR.mjs';
|
|
5
5
|
//# sourceMappingURL=keymap.mjs.map
|
|
6
6
|
//# sourceMappingURL=keymap.mjs.map
|
package/dist/plugins/mention.mjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export { createMentionPlugin, insertMention, mentionPluginKey } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { createMentionPlugin, insertMention, mentionPluginKey } from '../chunks/chunk-4BI7WWVV.mjs';
|
|
2
|
+
import '../chunks/chunk-MMU3VGMT.mjs';
|
|
3
|
+
import '../chunks/chunk-25Y5HLDY.mjs';
|
|
4
|
+
import '../chunks/chunk-FLGC65SR.mjs';
|
|
4
5
|
//# sourceMappingURL=mention.mjs.map
|
|
5
6
|
//# sourceMappingURL=mention.mjs.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { createMentionController } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { createMentionController } from '../chunks/chunk-UN74246B.mjs';
|
|
2
|
+
import '../chunks/chunk-FLGC65SR.mjs';
|
|
3
3
|
//# sourceMappingURL=mentionController.mjs.map
|
|
4
4
|
//# sourceMappingURL=mentionController.mjs.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { createPlaceholderPlugin } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { createPlaceholderPlugin } from '../chunks/chunk-F2THMQFM.mjs';
|
|
2
|
+
import '../chunks/chunk-25Y5HLDY.mjs';
|
|
3
|
+
import '../chunks/chunk-FLGC65SR.mjs';
|
|
4
4
|
//# sourceMappingURL=placeholder.mjs.map
|
|
5
5
|
//# sourceMappingURL=placeholder.mjs.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { addProseMirrorPlugin, removeProseMirrorPlugin } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { addProseMirrorPlugin, removeProseMirrorPlugin } from '../chunks/chunk-MSPB65AH.mjs';
|
|
2
|
+
import '../chunks/chunk-FLGC65SR.mjs';
|
|
3
3
|
//# sourceMappingURL=registry.mjs.map
|
|
4
4
|
//# sourceMappingURL=registry.mjs.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { createSelectionHighlightPlugin, preserveSelection, selectionHighlightKey } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { createSelectionHighlightPlugin, preserveSelection, selectionHighlightKey } from '../chunks/chunk-XO4UUELZ.mjs';
|
|
2
|
+
import '../chunks/chunk-25Y5HLDY.mjs';
|
|
3
|
+
import '../chunks/chunk-FLGC65SR.mjs';
|
|
4
4
|
//# sourceMappingURL=selectionHighlight.mjs.map
|
|
5
5
|
//# sourceMappingURL=selectionHighlight.mjs.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { createSlashPlugin, executeSlashCommand, executeSlashCommandInline, slashPluginKey } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { createSlashPlugin, executeSlashCommand, executeSlashCommandInline, slashPluginKey } from '../chunks/chunk-NZCWIEXE.mjs';
|
|
2
|
+
import '../chunks/chunk-25Y5HLDY.mjs';
|
|
3
|
+
import '../chunks/chunk-FLGC65SR.mjs';
|
|
4
4
|
//# sourceMappingURL=slashCommands.mjs.map
|
|
5
5
|
//# sourceMappingURL=slashCommands.mjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { createTableOverlayPlugin } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
1
|
+
export { createTableOverlayPlugin } from '../chunks/chunk-KA3KNPLZ.mjs';
|
|
2
|
+
import '../chunks/chunk-RE46J3VH.mjs';
|
|
3
|
+
import '../chunks/chunk-25Y5HLDY.mjs';
|
|
4
|
+
import '../chunks/chunk-FLGC65SR.mjs';
|
|
5
5
|
//# sourceMappingURL=tableOverlay.mjs.map
|
|
6
6
|
//# sourceMappingURL=tableOverlay.mjs.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { createTrailingNodePlugin } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { createTrailingNodePlugin } from '../chunks/chunk-XOMJOYJG.mjs';
|
|
2
|
+
import '../chunks/chunk-FLGC65SR.mjs';
|
|
3
3
|
//# sourceMappingURL=trailingNode.mjs.map
|
|
4
4
|
//# sourceMappingURL=trailingNode.mjs.map
|
package/dist/schema/index.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { baseMarks, baseNodes, createEditorSchema, extendNodeSpec, getEditorSchema, marks_exports as marks } from '../chunk-
|
|
2
|
-
export { nodes_exports as nodes } from '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
6
|
-
import '../chunk-
|
|
1
|
+
export { baseMarks, baseNodes, createEditorSchema, extendNodeSpec, getEditorSchema, marks_exports as marks } from '../chunks/chunk-QMEKZ64Z.mjs';
|
|
2
|
+
export { nodes_exports as nodes } from '../chunks/chunk-ZSXWDZMQ.mjs';
|
|
3
|
+
import '../chunks/chunk-C2TRJCIH.mjs';
|
|
4
|
+
import '../chunks/chunk-MMU3VGMT.mjs';
|
|
5
|
+
import '../chunks/chunk-25Y5HLDY.mjs';
|
|
6
|
+
import '../chunks/chunk-FLGC65SR.mjs';
|
|
7
7
|
//# sourceMappingURL=index.mjs.map
|
|
8
8
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { htmlToDoc } from '../chunk-
|
|
2
|
-
export { docToHtml } from '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { htmlToDoc } from '../chunks/chunk-LYB4TGKX.mjs';
|
|
2
|
+
export { docToHtml } from '../chunks/chunk-UORFAHNO.mjs';
|
|
3
|
+
import '../chunks/chunk-FLGC65SR.mjs';
|
|
4
4
|
//# sourceMappingURL=index.mjs.map
|
|
5
5
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { textEditorClasses } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
export { textEditorClasses } from './chunks/chunk-25Y5HLDY.mjs';
|
|
2
|
+
import './chunks/chunk-FLGC65SR.mjs';
|
|
3
3
|
//# sourceMappingURL=texteditor.classes.mjs.map
|
|
4
4
|
//# sourceMappingURL=texteditor.classes.mjs.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { TEXT_EDITOR_ALLOWED_TYPES, TEXT_EDITOR_FILE_SIZE } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
export { TEXT_EDITOR_ALLOWED_TYPES, TEXT_EDITOR_FILE_SIZE } from './chunks/chunk-DAVC2Z22.mjs';
|
|
2
|
+
import './chunks/chunk-FLGC65SR.mjs';
|
|
3
3
|
//# sourceMappingURL=texteditor.constants.mjs.map
|
|
4
4
|
//# sourceMappingURL=texteditor.constants.mjs.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { defaultTextEditorProps } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
export { defaultTextEditorProps } from './chunks/chunk-C6CEVLOL.mjs';
|
|
2
|
+
import './chunks/chunk-FLGC65SR.mjs';
|
|
3
3
|
//# sourceMappingURL=texteditor.props.mjs.map
|
|
4
4
|
//# sourceMappingURL=texteditor.props.mjs.map
|
package/dist/texteditor.refs.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { defaultTextEditorRefs } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
export { defaultTextEditorRefs } from './chunks/chunk-VXO6D7N5.mjs';
|
|
2
|
+
import './chunks/chunk-FLGC65SR.mjs';
|
|
3
3
|
//# sourceMappingURL=texteditor.refs.mjs.map
|
|
4
4
|
//# sourceMappingURL=texteditor.refs.mjs.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { defaultTextEditorState } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
export { defaultTextEditorState } from './chunks/chunk-4NWX3EPS.mjs';
|
|
2
|
+
import './chunks/chunk-FLGC65SR.mjs';
|
|
3
3
|
//# sourceMappingURL=texteditor.state.mjs.map
|
|
4
4
|
//# sourceMappingURL=texteditor.state.mjs.map
|
package/dist/ui/focus.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { isClickOutside, isMouseLeavingBlockArea, setRovingTabindex } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { isClickOutside, isMouseLeavingBlockArea, setRovingTabindex } from '../chunks/chunk-Z7KBTB2P.mjs';
|
|
2
|
+
import '../chunks/chunk-FLGC65SR.mjs';
|
|
3
3
|
//# sourceMappingURL=focus.mjs.map
|
|
4
4
|
//# sourceMappingURL=focus.mjs.map
|
package/dist/ui/index.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { isClickOutside, isMouseLeavingBlockArea, setRovingTabindex } from '../chunk-
|
|
2
|
-
export { computeEdgeScrollSpeed } from '../chunk-
|
|
3
|
-
export { computePopoverPosition, computeSubmenuPosition } from '../chunk-
|
|
4
|
-
export { assignActiveDescendantId, filterMenuItemsByText, getVisibleMenuItems } from '../chunk-
|
|
5
|
-
export { computeArrowNavIndex, computeFocusTrapTarget } from '../chunk-
|
|
6
|
-
export { clampToViewport } from '../chunk-
|
|
7
|
-
import '../chunk-
|
|
1
|
+
export { isClickOutside, isMouseLeavingBlockArea, setRovingTabindex } from '../chunks/chunk-Z7KBTB2P.mjs';
|
|
2
|
+
export { computeEdgeScrollSpeed } from '../chunks/chunk-P4N6CW2J.mjs';
|
|
3
|
+
export { computePopoverPosition, computeSubmenuPosition } from '../chunks/chunk-PRW2CBOO.mjs';
|
|
4
|
+
export { assignActiveDescendantId, filterMenuItemsByText, getVisibleMenuItems } from '../chunks/chunk-Q7MBG5CT.mjs';
|
|
5
|
+
export { computeArrowNavIndex, computeFocusTrapTarget } from '../chunks/chunk-ZUZABDZC.mjs';
|
|
6
|
+
export { clampToViewport } from '../chunks/chunk-RE46J3VH.mjs';
|
|
7
|
+
import '../chunks/chunk-FLGC65SR.mjs';
|
|
8
8
|
//# sourceMappingURL=index.mjs.map
|
|
9
9
|
//# sourceMappingURL=index.mjs.map
|
package/dist/ui/keyboard.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { computeArrowNavIndex, computeFocusTrapTarget } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { computeArrowNavIndex, computeFocusTrapTarget } from '../chunks/chunk-ZUZABDZC.mjs';
|
|
2
|
+
import '../chunks/chunk-FLGC65SR.mjs';
|
|
3
3
|
//# sourceMappingURL=keyboard.mjs.map
|
|
4
4
|
//# sourceMappingURL=keyboard.mjs.map
|
package/dist/ui/menu.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { assignActiveDescendantId, filterMenuItemsByText, getVisibleMenuItems } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { assignActiveDescendantId, filterMenuItemsByText, getVisibleMenuItems } from '../chunks/chunk-Q7MBG5CT.mjs';
|
|
2
|
+
import '../chunks/chunk-FLGC65SR.mjs';
|
|
3
3
|
//# sourceMappingURL=menu.mjs.map
|
|
4
4
|
//# sourceMappingURL=menu.mjs.map
|
package/dist/ui/positioning.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { computePopoverPosition, computeSubmenuPosition } from '../chunk-
|
|
2
|
-
export { clampToViewport } from '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { computePopoverPosition, computeSubmenuPosition } from '../chunks/chunk-PRW2CBOO.mjs';
|
|
2
|
+
export { clampToViewport } from '../chunks/chunk-RE46J3VH.mjs';
|
|
3
|
+
import '../chunks/chunk-FLGC65SR.mjs';
|
|
4
4
|
//# sourceMappingURL=positioning.mjs.map
|
|
5
5
|
//# sourceMappingURL=positioning.mjs.map
|
package/dist/ui/scroll.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { computeEdgeScrollSpeed } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { computeEdgeScrollSpeed } from '../chunks/chunk-P4N6CW2J.mjs';
|
|
2
|
+
import '../chunks/chunk-FLGC65SR.mjs';
|
|
3
3
|
//# sourceMappingURL=scroll.mjs.map
|
|
4
4
|
//# sourceMappingURL=scroll.mjs.map
|
package/dist/utils/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { clampToViewport, computeBlockControlsStyle, computeDropIndicatorStyle, computeDropTargetIndex, inlineStartAbsolute, inlineStartFixed, setInlineStart } from '../chunk-
|
|
2
|
-
export { sanitizeCssValue } from '../chunk-
|
|
3
|
-
export { sanitizeImageUrl, sanitizeUrl } from '../chunk-
|
|
4
|
-
import '../chunk-
|
|
1
|
+
export { clampToViewport, computeBlockControlsStyle, computeDropIndicatorStyle, computeDropTargetIndex, inlineStartAbsolute, inlineStartFixed, setInlineStart } from '../chunks/chunk-RE46J3VH.mjs';
|
|
2
|
+
export { sanitizeCssValue } from '../chunks/chunk-C2TRJCIH.mjs';
|
|
3
|
+
export { sanitizeImageUrl, sanitizeUrl } from '../chunks/chunk-MMU3VGMT.mjs';
|
|
4
|
+
import '../chunks/chunk-FLGC65SR.mjs';
|
|
5
5
|
|
|
6
6
|
// src/utils/dom.ts
|
|
7
7
|
function generateEditorId() {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@primeui/texteditor-core",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "1.0.0-rc.1",
|
|
4
4
|
"author": "PrimeTek Informatics",
|
|
5
5
|
"description": "TextEditor API for PrimeUI.",
|
|
6
6
|
"keywords": [
|
|
@@ -8,13 +8,8 @@
|
|
|
8
8
|
"primeui"
|
|
9
9
|
],
|
|
10
10
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
11
|
-
"repository": {
|
|
12
|
-
"type": "git",
|
|
13
|
-
"url": "git+https://github.com/primefaces/primeui.git",
|
|
14
|
-
"directory": "packages/components/texteditor/texteditor-core"
|
|
15
|
-
},
|
|
16
11
|
"bugs": {
|
|
17
|
-
"url": "https://
|
|
12
|
+
"url": "https://support.primeui.dev"
|
|
18
13
|
},
|
|
19
14
|
"main": "./dist/index.mjs",
|
|
20
15
|
"exports": {
|
|
@@ -41,7 +36,8 @@
|
|
|
41
36
|
"files": [
|
|
42
37
|
"dist",
|
|
43
38
|
"README.md",
|
|
44
|
-
"LICENSE"
|
|
39
|
+
"LICENSE.md",
|
|
40
|
+
"THIRD-PARTY-NOTICES.md"
|
|
45
41
|
],
|
|
46
42
|
"dependencies": {
|
|
47
43
|
"prosemirror-commands": "^1.7.1",
|
|
@@ -56,8 +52,8 @@
|
|
|
56
52
|
"prosemirror-tables": "^1.8.5",
|
|
57
53
|
"prosemirror-transform": "^1.12.0",
|
|
58
54
|
"prosemirror-view": "^1.41.7",
|
|
59
|
-
"@primeui/core": "0.0
|
|
60
|
-
"@primeui/texteditor-types": "0.0
|
|
55
|
+
"@primeui/core": "1.0.0-rc.1",
|
|
56
|
+
"@primeui/texteditor-types": "1.0.0-rc.1"
|
|
61
57
|
},
|
|
62
58
|
"scripts": {
|
|
63
59
|
"build": "cross-env NODE_ENV=production INPUT_DIR=src/ OUTPUT_DIR=dist/ pnpm run build:package",
|
package/LICENSE
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# License
|
|
2
|
-
|
|
3
|
-
MIT License
|
|
4
|
-
|
|
5
|
-
Copyright (c) 2026 PrimeTek
|
|
6
|
-
|
|
7
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
9
|
-
in the Software without restriction, including without limitation the rights
|
|
10
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
12
|
-
furnished to do so, subject to the following conditions:
|
|
13
|
-
|
|
14
|
-
The above copyright notice and this permission notice shall be included in all
|
|
15
|
-
copies or substantial portions of the Software.
|
|
16
|
-
|
|
17
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
23
|
-
SOFTWARE.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/position.ts"],"names":[],"mappings":"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","file":"chunk-22B454VC.mjs","sourcesContent":["/**\n * RTL-aware positioning utilities.\n *\n * getBoundingClientRect() always returns physical (left/right) coordinates.\n * In LTR we set `left`; in RTL we set `right` so the element anchors to the\n * correct edge.\n */\n\nfunction isRtl(): boolean {\n return document.documentElement.dir === 'rtl' || getComputedStyle(document.documentElement).direction === 'rtl';\n}\n\n/**\n * Returns an inline-start style for a **viewport-positioned** (fixed) element.\n * In LTR → { left: `${value}px` }\n * In RTL → { right: `${viewportWidth - value - elWidth}px` }\n */\nexport function inlineStartFixed(left: number, elWidth: number): Record<string, string> {\n if (!isRtl()) {\n return { left: `${left}px` };\n }\n\n return { right: `${window.innerWidth - left - elWidth}px` };\n}\n\n/**\n * Returns an inline-start style for an **absolutely-positioned** element\n * inside a container.\n *\n * @param offsetLeft Physical left offset relative to the container (e.g. elRect.left - containerRect.left)\n * @param elWidth Width of the positioned element (use 0 for point positioning like triggers)\n * @param containerWidth Width of the containing element\n */\nexport function inlineStartAbsolute(offsetLeft: number, elWidth: number, containerWidth: number): Record<string, string> {\n if (!isRtl()) {\n return { left: `${offsetLeft}px` };\n }\n\n return { right: `${containerWidth - offsetLeft - elWidth}px` };\n}\n\n/**\n * Sets inline-start on an HTMLElement's style directly (for imperative DOM code like tableOverlay).\n * Clears the opposite property to avoid conflicts.\n */\nexport function setInlineStart(el: HTMLElement, offsetLeft: number, containerWidth: number, elWidth: number = 0): void {\n if (!isRtl()) {\n el.style.left = `${offsetLeft}px`;\n el.style.right = '';\n } else {\n el.style.right = `${containerWidth - offsetLeft - elWidth}px`;\n el.style.left = '';\n }\n}\n\n/**\n * Computes absolute-positioned style for block controls anchored to a block element\n * within the editor container. Handles RTL by anchoring to inline-end (right) edge.\n */\nexport function computeBlockControlsStyle(blockEl: HTMLElement | null, editorEl: HTMLElement | null): Record<string, string> {\n if (!blockEl || !editorEl) return {};\n\n const blockRect = blockEl.getBoundingClientRect();\n const editorRect = editorEl.getBoundingClientRect();\n const rtl = isRtl();\n\n return {\n position: 'absolute',\n top: `${blockRect.top - editorRect.top + editorEl.scrollTop}px`,\n ...(rtl ? { right: `${editorRect.right - blockRect.right}px` } : { left: `${blockRect.left - editorRect.left}px` })\n };\n}\n\n/**\n * Computes absolute-positioned style for the block drop indicator line.\n * Position is between blocks (or after the last block when targetIndex >= block count).\n */\nexport function computeDropIndicatorStyle(editorEl: HTMLElement | null, dropTargetIndex: number, blockClassName: string): Record<string, string> {\n if (dropTargetIndex < 0 || !editorEl) return {};\n\n const blocks = editorEl.querySelectorAll(`.${blockClassName}`);\n const editorRect = editorEl.getBoundingClientRect();\n // The indicator is absolute-positioned inside editorEl, which is also the\n // scroll container, so its top must be in scrolled content coordinates —\n // add scrollTop, otherwise it drifts off-screen once the content is scrolled.\n const scrollTop = editorEl.scrollTop;\n let top: number;\n\n if (dropTargetIndex < blocks.length) {\n const blockRect = blocks[dropTargetIndex].getBoundingClientRect();\n\n top = blockRect.top - editorRect.top + scrollTop;\n } else {\n const lastBlock = blocks[blocks.length - 1];\n const blockRect = lastBlock.getBoundingClientRect();\n\n top = blockRect.bottom - editorRect.top + scrollTop;\n }\n\n return { top: `${top}px` };\n}\n\n/**\n * Computes the target drop index for block drag-and-drop based on mouse position.\n * Returns -1 if the target would be at the dragged block's current position or right after it\n * (no-op drop), otherwise returns the index where the block should be inserted.\n */\nexport function computeDropTargetIndex(event: DragEvent, editorEl: HTMLElement, draggedBlockIndex: number, blockClassName: string): number {\n const blocks = editorEl.querySelectorAll(`.${blockClassName}`);\n const mouseY = event.clientY;\n let targetIndex = blocks.length;\n\n for (let i = 0; i < blocks.length; i++) {\n const rect = blocks[i].getBoundingClientRect();\n const midY = rect.top + rect.height / 2;\n\n if (mouseY < midY) {\n targetIndex = i;\n break;\n }\n }\n\n // No-op drop positions\n if (targetIndex === draggedBlockIndex || targetIndex === draggedBlockIndex + 1) {\n return -1;\n }\n\n return targetIndex;\n}\n\n/**\n * Clamps a viewport-relative left value within margins, accounting for element width.\n * Returns the clamped physical left value (caller then passes to inlineStartFixed).\n */\nexport function clampToViewport(left: number, elWidth: number, margin: number): number {\n const viewportWidth = window.innerWidth;\n\n if (left < margin) {\n return margin;\n }\n\n if (left + elWidth > viewportWidth - margin) {\n return viewportWidth - elWidth - margin;\n }\n\n return left;\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugins/tableOverlay.ts"],"names":[],"mappings":"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","file":"chunk-3RKMABZR.mjs","sourcesContent":["import { Plugin, PluginKey } from 'prosemirror-state';\nimport type { EditorView } from 'prosemirror-view';\nimport type { TableActiveState, TableOverlayRect } from '@primeui/texteditor-types';\nimport { CellSelection } from 'prosemirror-tables';\nimport { textEditorClasses as classes } from '../texteditor.classes';\nimport { setInlineStart } from '../utils/position';\n\nconst tableOverlayKey = new PluginKey('tableOverlay');\n\ninterface TableOverlayCallbacks {\n onActiveStateChange: (state: TableActiveState | null) => void;\n onOverlayRectChange: (rect: TableOverlayRect | null) => void;\n onColumnTriggerClick: (colIndex: number, event: MouseEvent) => void;\n onRowTriggerClick: (rowIndex: number, event: MouseEvent) => void;\n onCellTriggerClick: (event: MouseEvent) => void;\n onAddColumn: () => void;\n onAddRow: () => void;\n}\n\nfunction getTableActiveState(view: EditorView): TableActiveState | null {\n const { $from } = view.state.selection;\n\n for (let depth = $from.depth; depth > 0; depth--) {\n const node = $from.node(depth);\n\n if (node.type.name === 'table_cell' || node.type.name === 'table_header') {\n for (let tableDepth = depth - 1; tableDepth > 0; tableDepth--) {\n if ($from.node(tableDepth).type.name === 'table') {\n const tableNode = $from.node(tableDepth);\n let tableDOM = view.nodeDOM($from.before(tableDepth)) as HTMLElement | null;\n\n if (!tableDOM) return null;\n\n if (tableDOM.tagName !== 'TABLE') {\n tableDOM = tableDOM.querySelector('table');\n }\n\n if (!tableDOM) return null;\n\n const cellDOM = view.nodeDOM($from.before(depth)) as HTMLTableCellElement | null;\n\n if (!cellDOM) return null;\n\n const row = cellDOM.parentElement as HTMLTableRowElement;\n const colIndex = Array.from(row.cells).indexOf(cellDOM);\n const rowIndex = Array.from(tableDOM.querySelectorAll('tr')).indexOf(row);\n const rowCount = tableNode.childCount;\n const colCount = tableNode.firstChild?.childCount || 0;\n\n return { table: tableDOM as HTMLTableElement, colIndex, rowIndex, colCount, rowCount };\n }\n }\n }\n }\n\n return null;\n}\n\nfunction computeOverlayRect(activeState: TableActiveState): TableOverlayRect | null {\n const { table, colIndex, rowIndex } = activeState;\n const tableRect = table.getBoundingClientRect();\n const rows = table.querySelectorAll('tr');\n const currentRow = rows[rowIndex];\n\n if (!currentRow) return null;\n\n const currentCell = currentRow.cells[colIndex];\n\n if (!currentCell) return null;\n\n const cellRect = currentCell.getBoundingClientRect();\n\n const columnBorders: number[] = [];\n const firstRow = rows[0];\n\n if (firstRow) {\n let x = tableRect.left;\n\n for (let i = 0; i < firstRow.cells.length; i++) {\n x += firstRow.cells[i].getBoundingClientRect().width;\n columnBorders.push(x);\n }\n }\n\n return {\n tableRect,\n cellRect,\n isLastColumn: colIndex === activeState.colCount - 1,\n isLastRow: rowIndex === activeState.rowCount - 1,\n columnBorders\n };\n}\n\nfunction getTableWrapper(tableEl: HTMLElement): HTMLElement | null {\n const parent = tableEl.parentElement;\n\n return parent?.classList.contains('tableWrapper') ? parent : null;\n}\n\ntype TriggerElement = HTMLDivElement & { _teCleanup?: () => void };\n\nfunction createTrigger(className: string, onClick: (event: MouseEvent) => void): TriggerElement {\n const el = document.createElement('div') as TriggerElement;\n\n el.className = className;\n el.contentEditable = 'false';\n\n const handler = (event: MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n onClick(event);\n };\n\n el.addEventListener('mousedown', handler);\n el._teCleanup = () => el.removeEventListener('mousedown', handler);\n\n return el;\n}\n\nexport function createTableOverlayPlugin(callbacks: TableOverlayCallbacks) {\n let currentActiveState: TableActiveState | null = null;\n\n return new Plugin({\n key: tableOverlayKey,\n view() {\n // Selection outline\n let overlayEl: HTMLDivElement | null = null;\n let cellTriggerEl: HTMLDivElement | null = null;\n\n // Column/row triggers\n let colTriggerEl: HTMLDivElement | null = null;\n let rowTriggerEl: HTMLDivElement | null = null;\n\n // Add buttons\n let addColEl: HTMLDivElement | null = null;\n let addRowEl: HTMLDivElement | null = null;\n\n // ResizeObserver for live updates\n let resizeObserver: ResizeObserver | null = null;\n let observedTable: HTMLElement | null = null;\n let lastActiveState: TableActiveState | null = null;\n let isCellSelectionMode = false;\n\n let currentWrapper: HTMLElement | null = null;\n let rafId = 0;\n\n const removeAll = () => {\n [overlayEl, cellTriggerEl, colTriggerEl, rowTriggerEl, addColEl, addRowEl].forEach((el) => {\n (el as TriggerElement | null)?._teCleanup?.();\n });\n overlayEl?.remove();\n colTriggerEl?.remove();\n rowTriggerEl?.remove();\n addColEl?.remove();\n addRowEl?.remove();\n overlayEl = null;\n cellTriggerEl = null;\n colTriggerEl = null;\n rowTriggerEl = null;\n addColEl = null;\n addRowEl = null;\n currentWrapper = null;\n lastActiveState = null;\n\n if (resizeObserver && observedTable) {\n resizeObserver.unobserve(observedTable);\n observedTable = null;\n }\n };\n\n const ensureElements = (wrapper: HTMLElement) => {\n if (currentWrapper === wrapper && overlayEl) return;\n\n removeAll();\n currentWrapper = wrapper;\n\n // Selection outline with cell trigger (hidden until positioned)\n overlayEl = document.createElement('div');\n overlayEl.className = classes.tableSelectionOutline;\n overlayEl.style.visibility = 'hidden';\n\n cellTriggerEl = createTrigger(`${classes.tableTrigger} ${classes.tableTriggerCell}`, (event) => {\n callbacks.onCellTriggerClick(event);\n });\n overlayEl.appendChild(cellTriggerEl);\n wrapper.appendChild(overlayEl);\n\n // Column trigger\n colTriggerEl = createTrigger(`${classes.tableTrigger} ${classes.tableTriggerCol}`, (event) => {\n if (lastActiveState) callbacks.onColumnTriggerClick(lastActiveState.colIndex, event);\n });\n colTriggerEl.style.visibility = 'hidden';\n wrapper.appendChild(colTriggerEl);\n\n // Row trigger\n rowTriggerEl = createTrigger(`${classes.tableTrigger} ${classes.tableTriggerRow}`, (event) => {\n if (lastActiveState) callbacks.onRowTriggerClick(lastActiveState.rowIndex, event);\n });\n rowTriggerEl.style.visibility = 'hidden';\n wrapper.appendChild(rowTriggerEl);\n\n // Add column button\n addColEl = createTrigger(`${classes.tableAdd} ${classes.tableAddCol}`, () => {\n callbacks.onAddColumn();\n });\n addColEl.style.visibility = 'hidden';\n addColEl.innerHTML = '<svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"><path d=\"M6 1v10M1 6h10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>';\n wrapper.appendChild(addColEl);\n\n // Add row button\n addRowEl = createTrigger(`${classes.tableAdd} ${classes.tableAddRow}`, () => {\n callbacks.onAddRow();\n });\n addRowEl.style.visibility = 'hidden';\n addRowEl.innerHTML = '<svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"><path d=\"M6 1v10M1 6h10\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"/></svg>';\n wrapper.appendChild(addRowEl);\n };\n\n const showElements = () => {\n if (overlayEl) overlayEl.style.visibility = '';\n if (colTriggerEl) colTriggerEl.style.visibility = '';\n if (rowTriggerEl) rowTriggerEl.style.visibility = '';\n if (addColEl) addColEl.style.visibility = '';\n if (addRowEl) addRowEl.style.visibility = '';\n };\n\n // Defer to the next frame so element rects are read AFTER the table's\n // layout settles (e.g. right after a column is added or the table is\n // resized); otherwise triggers/handles latch onto a stale width.\n const schedulePosition = () => {\n if (rafId) cancelAnimationFrame(rafId);\n\n rafId = requestAnimationFrame(() => {\n rafId = 0;\n positionElements();\n });\n };\n\n const positionElements = () => {\n if (!currentWrapper || !overlayEl) return;\n\n const wrapperRect = currentWrapper.getBoundingClientRect();\n const tableEl = currentWrapper.querySelector('table');\n\n if (!tableEl) return;\n\n const tableRect = tableEl.getBoundingClientRect();\n const w = wrapperRect.width;\n // Absolutely-positioned elements live in the wrapper's scrolled\n // content box; viewport rects don't include that scroll, so add it\n // back or the handles latch to the wrong place once scrolled.\n const sx = currentWrapper.scrollLeft;\n const sy = currentWrapper.scrollTop;\n\n // Skip positioning if table hasn't been laid out yet\n if (tableRect.width === 0 || tableRect.height === 0) return;\n\n if (isCellSelectionMode) {\n // Multi-cell: outline from .selectedCell rects\n const selectedCells = currentWrapper.querySelectorAll('.selectedCell');\n\n if (selectedCells.length > 0) {\n let minTop = Infinity;\n let minLeft = Infinity;\n let maxBottom = -Infinity;\n let maxRight = -Infinity;\n\n selectedCells.forEach((cell) => {\n const rect = cell.getBoundingClientRect();\n\n minTop = Math.min(minTop, rect.top);\n minLeft = Math.min(minLeft, rect.left);\n maxBottom = Math.max(maxBottom, rect.bottom);\n maxRight = Math.max(maxRight, rect.right);\n });\n\n const selWidth = maxRight - minLeft;\n\n overlayEl.style.top = `${minTop - wrapperRect.top + sy}px`;\n setInlineStart(overlayEl, minLeft - wrapperRect.left + sx, w, selWidth);\n overlayEl.style.width = `${selWidth}px`;\n overlayEl.style.height = `${maxBottom - minTop}px`;\n }\n } else if (lastActiveState) {\n // Single cell outline\n const rows = tableEl.querySelectorAll('tr');\n const row = rows[lastActiveState.rowIndex];\n\n if (row) {\n const cell = row.cells[lastActiveState.colIndex];\n\n if (cell) {\n const cellRect = cell.getBoundingClientRect();\n\n overlayEl.style.top = `${cellRect.top - wrapperRect.top + sy}px`;\n setInlineStart(overlayEl, cellRect.left - wrapperRect.left + sx, w, cellRect.width);\n overlayEl.style.width = `${cellRect.width}px`;\n overlayEl.style.height = `${cellRect.height}px`;\n }\n }\n }\n\n // Column trigger — top center of active cell's column\n if (colTriggerEl && lastActiveState) {\n const rows = tableEl.querySelectorAll('tr');\n const firstRow = rows[0];\n\n if (firstRow && firstRow.cells[lastActiveState.colIndex]) {\n const cellRect = firstRow.cells[lastActiveState.colIndex].getBoundingClientRect();\n\n colTriggerEl.style.top = `${cellRect.top - wrapperRect.top + sy}px`;\n setInlineStart(colTriggerEl, cellRect.left - wrapperRect.left + sx + cellRect.width / 2, w);\n colTriggerEl.style.display = '';\n } else {\n colTriggerEl.style.display = 'none';\n }\n }\n\n // Row trigger — inline-start center of active cell's row\n if (rowTriggerEl && lastActiveState) {\n const rows = tableEl.querySelectorAll('tr');\n const activeRow = rows[lastActiveState.rowIndex];\n\n if (activeRow && activeRow.cells[0]) {\n const cellRect = activeRow.cells[0].getBoundingClientRect();\n\n rowTriggerEl.style.top = `${cellRect.top - wrapperRect.top + sy + cellRect.height / 2}px`;\n setInlineStart(rowTriggerEl, cellRect.left - wrapperRect.left + sx, w);\n rowTriggerEl.style.display = '';\n } else {\n rowTriggerEl.style.display = 'none';\n }\n }\n\n // Add column button — inline-end edge of table, full height\n if (addColEl) {\n const rtl = document.documentElement.dir === 'rtl' || getComputedStyle(document.documentElement).direction === 'rtl';\n\n addColEl.style.top = `${tableRect.top - wrapperRect.top + sy}px`;\n\n if (rtl) {\n addColEl.style.right = `${wrapperRect.right - tableRect.left - sx + 4}px`;\n addColEl.style.left = '';\n } else {\n addColEl.style.left = `${tableRect.right - wrapperRect.left + sx + 4}px`;\n addColEl.style.right = '';\n }\n\n addColEl.style.height = `${tableRect.height}px`;\n }\n\n // Add row button — bottom edge of table, full width\n if (addRowEl) {\n addRowEl.style.top = `${tableRect.bottom - wrapperRect.top + sy + 4}px`;\n setInlineStart(addRowEl, tableRect.left - wrapperRect.left + sx, w, tableRect.width);\n addRowEl.style.width = `${tableRect.width}px`;\n }\n\n showElements();\n };\n\n const observeTable = (tableEl: HTMLElement) => {\n if (observedTable === tableEl) return;\n\n if (resizeObserver && observedTable) {\n resizeObserver.unobserve(observedTable);\n }\n\n if (!resizeObserver) {\n resizeObserver = new ResizeObserver(() => schedulePosition());\n }\n\n resizeObserver.observe(tableEl);\n observedTable = tableEl;\n };\n\n return {\n update(view) {\n const isCellSel = view.state.selection instanceof CellSelection;\n\n if (isCellSel) {\n isCellSelectionMode = true;\n\n // During CellSelection, keep elements but reposition\n if (currentWrapper) {\n positionElements();\n }\n\n if (currentActiveState) {\n currentActiveState = null;\n callbacks.onActiveStateChange(null);\n callbacks.onOverlayRectChange(null);\n }\n\n return;\n }\n\n isCellSelectionMode = false;\n\n const newState = getTableActiveState(view);\n\n if (newState) {\n currentActiveState = newState;\n callbacks.onActiveStateChange(newState);\n callbacks.onOverlayRectChange(computeOverlayRect(newState));\n\n const wrapper = getTableWrapper(newState.table);\n\n if (wrapper) {\n ensureElements(wrapper);\n lastActiveState = newState;\n positionElements();\n schedulePosition();\n observeTable(newState.table);\n } else {\n lastActiveState = newState;\n }\n } else {\n removeAll();\n\n if (currentActiveState) {\n currentActiveState = null;\n callbacks.onActiveStateChange(null);\n callbacks.onOverlayRectChange(null);\n }\n }\n },\n destroy() {\n if (rafId) cancelAnimationFrame(rafId);\n removeAll();\n resizeObserver?.disconnect();\n resizeObserver = null;\n currentActiveState = null;\n callbacks.onActiveStateChange(null);\n callbacks.onOverlayRectChange(null);\n }\n };\n }\n });\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugins/registry.ts"],"names":[],"mappings":";AAIO,SAAS,oBAAA,CAAqB,MAAkB,MAAA,EAA4B;AAC/E,EAAA,MAAM,OAAA,GAAU,KAAK,KAAA,CAAM,OAAA;AAE3B,EAAA,IAAI,CAAC,OAAA,CAAQ,QAAA,CAAS,MAAM,CAAA,EAAG;AAC3B,IAAA,IAAA,CAAK,WAAA,CAAY,IAAA,CAAK,KAAA,CAAM,WAAA,CAAY,EAAE,OAAA,EAAS,CAAC,GAAG,OAAA,EAAS,MAAM,CAAA,EAAG,CAAC,CAAA;AAAA,EAC9E;AAEA,EAAA,OAAO,MAAM,uBAAA,CAAwB,IAAA,EAAM,MAAM,CAAA;AACrD;AAEO,SAAS,uBAAA,CAAwB,MAAkB,MAAA,EAAsB;AAC5E,EAAA,MAAM,IAAA,GAAO,KAAK,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAC,CAAA,KAAM,MAAM,MAAM,CAAA;AAE1D,EAAA,IAAI,IAAA,CAAK,MAAA,KAAW,IAAA,CAAK,KAAA,CAAM,QAAQ,MAAA,EAAQ;AAC3C,IAAA,IAAA,CAAK,WAAA,CAAY,KAAK,KAAA,CAAM,WAAA,CAAY,EAAE,OAAA,EAAS,IAAA,EAAM,CAAC,CAAA;AAAA,EAC9D;AACJ","file":"chunk-6GY64GPU.mjs","sourcesContent":["import type { Plugin } from 'prosemirror-state';\nimport type { EditorView } from 'prosemirror-view';\n\n// Attaches a ProseMirror plugin to a live view (preserving doc/selection); returns a remover.\nexport function addProseMirrorPlugin(view: EditorView, plugin: Plugin): () => void {\n const current = view.state.plugins;\n\n if (!current.includes(plugin)) {\n view.updateState(view.state.reconfigure({ plugins: [...current, plugin] }));\n }\n\n return () => removeProseMirrorPlugin(view, plugin);\n}\n\nexport function removeProseMirrorPlugin(view: EditorView, plugin: Plugin): void {\n const next = view.state.plugins.filter((p) => p !== plugin);\n\n if (next.length !== view.state.plugins.length) {\n view.updateState(view.state.reconfigure({ plugins: next }));\n }\n}\n"]}
|