@nldd/design-system 0.8.86 → 0.8.88
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/custom-elements.json +662 -144
- package/dist/components/actions/icon-button/icon-button.d.ts +2 -2
- package/dist/components/actions/icon-button/icon-button.d.ts.map +1 -1
- package/dist/components/actions/icon-button/icon-button.js +3 -3
- package/dist/components/actions/icon-button/icon-button.js.map +1 -1
- package/dist/components/components.js +1263 -273
- package/dist/components/content/avatar/avatar.d.ts +6 -6
- package/dist/components/content/avatar/avatar.d.ts.map +1 -1
- package/dist/components/content/avatar/avatar.js +9 -9
- package/dist/components/content/avatar/avatar.js.map +1 -1
- package/dist/components/content/icon/icon-aliases.d.ts.map +1 -1
- package/dist/components/content/icon/icon-aliases.js +4 -0
- package/dist/components/content/icon/icon-aliases.js.map +1 -1
- package/dist/components/content/icon/icon-gallery-status.d.ts.map +1 -1
- package/dist/components/content/icon/icon-gallery-status.js +3 -26
- package/dist/components/content/icon/icon-gallery-status.js.map +1 -1
- package/dist/components/content/icon/icon-registry.d.ts.map +1 -1
- package/dist/components/content/icon/icon-registry.js +2 -0
- package/dist/components/content/icon/icon-registry.js.map +1 -1
- package/dist/components/content/icon/icon.d.ts +2 -2
- package/dist/components/content/icon/icon.d.ts.map +1 -1
- package/dist/components/content/icon/icon.js +3 -3
- package/dist/components/content/icon/icon.js.map +1 -1
- package/dist/components/content/icon/icon.styles.d.ts.map +1 -1
- package/dist/components/content/icon/icon.styles.js +8 -2
- package/dist/components/content/icon/icon.styles.js.map +1 -1
- package/dist/components/content/rich-text/rich-text.d.ts +7 -6
- package/dist/components/content/rich-text/rich-text.d.ts.map +1 -1
- package/dist/components/content/rich-text/rich-text.js +8 -7
- package/dist/components/content/rich-text/rich-text.js.map +1 -1
- package/dist/components/content/text/text.d.ts +2 -2
- package/dist/components/content/text/text.js +3 -3
- package/dist/components/content/title/title.d.ts +5 -5
- package/dist/components/content/title/title.d.ts.map +1 -1
- package/dist/components/content/title/title.js +6 -6
- package/dist/components/content/title/title.js.map +1 -1
- package/dist/components/content/tooltip/tooltip.d.ts +2 -2
- package/dist/components/content/tooltip/tooltip.d.ts.map +1 -1
- package/dist/components/content/tooltip/tooltip.js +4 -4
- package/dist/components/content/tooltip/tooltip.js.map +1 -1
- package/dist/components/{dist-C09E9-dJ.js → dist-B_Mnmrj4.js} +1 -1
- package/dist/components/{dist-CjaG8dOI.js → dist-ByH8hQze.js} +2 -2
- package/dist/components/{dist-BB7TxeMK.js → dist-CRwuSgMM.js} +2 -2
- package/dist/components/{dist-la_b3ZSq.js → dist-CSrO_mYe.js} +1 -1
- package/dist/components/{dist-762GHPyH.js → dist-CX3DK4i7.js} +3 -3
- package/dist/components/{dist-DZoFKUO-.js → dist-CbCO0WCd.js} +1 -1
- package/dist/components/{dist-B_3OW7pC.js → dist-CgDuh26K.js} +1 -1
- package/dist/components/{dist-DaavuU6W.js → dist-DXZ-cFAl.js} +2 -2
- package/dist/components/{dist-CRsR6ckU.js → dist-LX8LuMac.js} +1 -1
- package/dist/components/{dist-BJI4-6iQ.js → dist-eVFegyjM.js} +1 -1
- package/dist/components/{dist-C6gnorjP.js → dist-fIxe0l7k.js} +9 -1
- package/dist/components/{icon-Cd4BloIM.js → icon-C_zwJZ_g.js} +14 -4
- package/dist/components/{icon-button-CXN0yaVx.js → icon-button-CEz4MB9H.js} +10 -10
- package/dist/components/inputs/code-editor/code-editor.styles.js +2 -2
- package/dist/components/inputs/text-editor/text-editor.annotation-sentinels.d.ts +3 -5
- package/dist/components/inputs/text-editor/text-editor.annotation-sentinels.d.ts.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.annotation-sentinels.js +30 -44
- package/dist/components/inputs/text-editor/text-editor.annotation-sentinels.js.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.annotations.d.ts.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.annotations.js +31 -5
- package/dist/components/inputs/text-editor/text-editor.annotations.js.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.commands.d.ts +14 -2
- package/dist/components/inputs/text-editor/text-editor.commands.d.ts.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.commands.js +115 -36
- package/dist/components/inputs/text-editor/text-editor.commands.js.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.cursor.d.ts +7 -0
- package/dist/components/inputs/text-editor/text-editor.cursor.d.ts.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.cursor.js +207 -0
- package/dist/components/inputs/text-editor/text-editor.cursor.js.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.d.ts +65 -13
- package/dist/components/inputs/text-editor/text-editor.d.ts.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.emphasis.d.ts +32 -0
- package/dist/components/inputs/text-editor/text-editor.emphasis.d.ts.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.emphasis.js +229 -0
- package/dist/components/inputs/text-editor/text-editor.emphasis.js.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.js +177 -18
- package/dist/components/inputs/text-editor/text-editor.js.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.links.d.ts +8 -0
- package/dist/components/inputs/text-editor/text-editor.links.d.ts.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.links.js +30 -4
- package/dist/components/inputs/text-editor/text-editor.links.js.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.markdown.d.ts.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.markdown.js +52 -18
- package/dist/components/inputs/text-editor/text-editor.markdown.js.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.mentions.d.ts +78 -11
- package/dist/components/inputs/text-editor/text-editor.mentions.d.ts.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.mentions.js +190 -41
- package/dist/components/inputs/text-editor/text-editor.mentions.js.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.ordered-list.d.ts +0 -2
- package/dist/components/inputs/text-editor/text-editor.ordered-list.d.ts.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.ordered-list.js +21 -1
- package/dist/components/inputs/text-editor/text-editor.ordered-list.js.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.styles.d.ts.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.styles.js +11 -10
- package/dist/components/inputs/text-editor/text-editor.styles.js.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.syntax.d.ts +9 -0
- package/dist/components/inputs/text-editor/text-editor.syntax.d.ts.map +1 -0
- package/dist/components/inputs/text-editor/text-editor.syntax.js +20 -0
- package/dist/components/inputs/text-editor/text-editor.syntax.js.map +1 -0
- package/dist/components/layout/page/page.d.ts +23 -5
- package/dist/components/layout/page/page.d.ts.map +1 -1
- package/dist/components/layout/page/page.js +39 -34
- package/dist/components/layout/page/page.js.map +1 -1
- package/dist/components/layout/page/page.styles.d.ts.map +1 -1
- package/dist/components/layout/page/page.styles.js +2 -0
- package/dist/components/layout/page/page.styles.js.map +1 -1
- package/dist/components/layout/page-sections/page-section-controls.d.ts +0 -70
- package/dist/components/layout/page-sections/page-section-controls.d.ts.map +1 -1
- package/dist/components/layout/page-sections/page-section-controls.js +0 -3
- package/dist/components/layout/page-sections/page-section-controls.js.map +1 -1
- package/dist/components/layout/sheet/sheet.d.ts +3 -7
- package/dist/components/layout/sheet/sheet.d.ts.map +1 -1
- package/dist/components/layout/sheet/sheet.js +4 -18
- package/dist/components/layout/sheet/sheet.js.map +1 -1
- package/dist/components/layout/sheet/sheet.styles.d.ts.map +1 -1
- package/dist/components/layout/sheet/sheet.styles.js +0 -4
- package/dist/components/layout/sheet/sheet.styles.js.map +1 -1
- package/dist/components/layout/sheet/sheet.template.d.ts.map +1 -1
- package/dist/components/layout/sheet/sheet.template.js +5 -2
- package/dist/components/layout/sheet/sheet.template.js.map +1 -1
- package/dist/components/layout/window/window.d.ts +2 -4
- package/dist/components/layout/window/window.d.ts.map +1 -1
- package/dist/components/layout/window/window.js +4 -14
- package/dist/components/layout/window/window.js.map +1 -1
- package/dist/components/layout/window/window.template.d.ts.map +1 -1
- package/dist/components/layout/window/window.template.js +5 -2
- package/dist/components/layout/window/window.template.js.map +1 -1
- package/dist/components/lists-and-tables/cells/icon-cell/icon-cell.d.ts +2 -2
- package/dist/components/lists-and-tables/cells/icon-cell/icon-cell.js +3 -3
- package/dist/components/lists-and-tables/cells/text-cell/text-cell.d.ts +2 -2
- package/dist/components/lists-and-tables/cells/text-cell/text-cell.js +3 -3
- package/dist/components/lists-and-tables/cells/title-cell/title-cell.d.ts +2 -2
- package/dist/components/lists-and-tables/cells/title-cell/title-cell.js +3 -3
- package/dist/components/lists-and-tables/list/list.d.ts +4 -2
- package/dist/components/lists-and-tables/list/list.d.ts.map +1 -1
- package/dist/components/lists-and-tables/list/list.js +23 -5
- package/dist/components/lists-and-tables/list/list.js.map +1 -1
- package/dist/components/navigation/document-tab-bar/document-tab-bar.template.js +1 -1
- package/dist/components/navigation/document-tab-bar/document-tab-bar.template.js.map +1 -1
- package/dist/components/navigation/link/link.d.ts +2 -2
- package/dist/components/navigation/link/link.d.ts.map +1 -1
- package/dist/components/navigation/link/link.js +3 -2
- package/dist/components/navigation/link/link.js.map +1 -1
- package/dist/components/navigation/menu-bar/menu-bar.d.ts +4 -2
- package/dist/components/navigation/menu-bar/menu-bar.d.ts.map +1 -1
- package/dist/components/navigation/menu-bar/menu-bar.js +4 -2
- package/dist/components/navigation/menu-bar/menu-bar.js.map +1 -1
- package/dist/components/status-and-feedback/activity-indicator/activity-indicator.d.ts +3 -3
- package/dist/components/status-and-feedback/activity-indicator/activity-indicator.d.ts.map +1 -1
- package/dist/components/status-and-feedback/activity-indicator/activity-indicator.js +4 -4
- package/dist/components/status-and-feedback/activity-indicator/activity-indicator.js.map +1 -1
- package/dist/components/status-and-feedback/inline-dialog/inline-dialog.d.ts +8 -0
- package/dist/components/status-and-feedback/inline-dialog/inline-dialog.d.ts.map +1 -1
- package/dist/components/status-and-feedback/inline-dialog/inline-dialog.js +14 -0
- package/dist/components/status-and-feedback/inline-dialog/inline-dialog.js.map +1 -1
- package/dist/components/status-and-feedback/inline-dialog/inline-dialog.styles.d.ts.map +1 -1
- package/dist/components/status-and-feedback/inline-dialog/inline-dialog.styles.js +22 -1
- package/dist/components/status-and-feedback/inline-dialog/inline-dialog.styles.js.map +1 -1
- package/dist/components/status-and-feedback/inline-dialog/inline-dialog.template.d.ts.map +1 -1
- package/dist/components/status-and-feedback/inline-dialog/inline-dialog.template.js +6 -2
- package/dist/components/status-and-feedback/inline-dialog/inline-dialog.template.js.map +1 -1
- package/dist/components/status-and-feedback/modal-dialog/modal-dialog.d.ts +3 -1
- package/dist/components/status-and-feedback/modal-dialog/modal-dialog.d.ts.map +1 -1
- package/dist/components/status-and-feedback/modal-dialog/modal-dialog.js +5 -0
- package/dist/components/status-and-feedback/modal-dialog/modal-dialog.js.map +1 -1
- package/dist/components/status-and-feedback/modal-dialog/modal-dialog.template.d.ts.map +1 -1
- package/dist/components/status-and-feedback/modal-dialog/modal-dialog.template.js +4 -0
- package/dist/components/status-and-feedback/modal-dialog/modal-dialog.template.js.map +1 -1
- package/dist/components/status-and-feedback/notification/notification-region.d.ts.map +1 -1
- package/dist/components/status-and-feedback/notification/notification-region.js +74 -1
- package/dist/components/status-and-feedback/notification/notification-region.js.map +1 -1
- package/dist/components/status-and-feedback/notification/notification.d.ts +11 -0
- package/dist/components/status-and-feedback/notification/notification.d.ts.map +1 -1
- package/dist/components/status-and-feedback/notification/notification.js +13 -0
- package/dist/components/status-and-feedback/notification/notification.js.map +1 -1
- package/dist/favicon.svg +8 -2
- package/dist/nldd.min.js +536 -496
- package/dist/types/vue.d.ts +33 -25
- package/package.json +1 -1
|
@@ -67,54 +67,41 @@ export function desiredSentinels(groups, cleanText, canPlace = canPlaceSentinel)
|
|
|
67
67
|
}
|
|
68
68
|
return out;
|
|
69
69
|
}
|
|
70
|
-
/**
|
|
71
|
-
|
|
72
|
-
export function buildDesiredDoc(cleanText, desired) {
|
|
70
|
+
/** How many sentinels each clean position wants (touching groups want two). */
|
|
71
|
+
function desiredCounts(desired) {
|
|
73
72
|
const counts = new Map();
|
|
74
73
|
for (const d of desired)
|
|
75
74
|
counts.set(d.pos, (counts.get(d.pos) ?? 0) + 1);
|
|
76
|
-
|
|
77
|
-
for (let i = 0; i <= cleanText.length; i++) {
|
|
78
|
-
const n = counts.get(i) ?? 0;
|
|
79
|
-
if (n)
|
|
80
|
-
out += ANNOTATION_SENTINEL.repeat(n);
|
|
81
|
-
if (i < cleanText.length)
|
|
82
|
-
out += cleanText[i];
|
|
83
|
-
}
|
|
84
|
-
return out;
|
|
75
|
+
return counts;
|
|
85
76
|
}
|
|
86
77
|
/** Minimal changes (in current-doc coords) to turn `doc` into a document that holds
|
|
87
78
|
* exactly the sentinels the groups want — touching only sentinel characters, never
|
|
88
|
-
* the real text. `doc
|
|
89
|
-
*
|
|
79
|
+
* the real text. One walk over `doc`, comparing the sentinel run at each clean
|
|
80
|
+
* position with the number wanted there. Building the target document first would
|
|
81
|
+
* cost a second copy of the text on every edit. */
|
|
90
82
|
export function reconcileSentinels(doc, groups, canPlace = canPlaceSentinel) {
|
|
91
|
-
|
|
92
|
-
|
|
83
|
+
// The clean text is only needed to judge placement, so with nothing to place
|
|
84
|
+
// (every sentinel in the document is a stray) it is not worth building.
|
|
85
|
+
const cleanText = groups.length ? stripSentinels(doc) : '';
|
|
86
|
+
const want = desiredCounts(desiredSentinels(groups, cleanText, canPlace));
|
|
93
87
|
const changes = [];
|
|
94
|
-
let
|
|
95
|
-
let
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
else if (
|
|
104
|
-
changes.push({ from:
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
// Non-sentinel mismatch should be impossible (clean text is identical).
|
|
113
|
-
i++;
|
|
114
|
-
j++;
|
|
115
|
-
}
|
|
88
|
+
let pos = 0; // over doc
|
|
89
|
+
let clean = 0; // over the clean text
|
|
90
|
+
for (;;) {
|
|
91
|
+
let have = 0;
|
|
92
|
+
while (pos + have < doc.length && doc[pos + have] === ANNOTATION_SENTINEL)
|
|
93
|
+
have++;
|
|
94
|
+
const need = want.get(clean) ?? 0;
|
|
95
|
+
if (have > need)
|
|
96
|
+
changes.push({ from: pos + need, to: pos + have });
|
|
97
|
+
else if (need > have)
|
|
98
|
+
changes.push({ from: pos + have, to: pos + have, insert: ANNOTATION_SENTINEL.repeat(need - have) });
|
|
99
|
+
pos += have;
|
|
100
|
+
if (pos >= doc.length)
|
|
101
|
+
return changes;
|
|
102
|
+
pos++; // the text character this position holds
|
|
103
|
+
clean++;
|
|
116
104
|
}
|
|
117
|
-
return changes;
|
|
118
105
|
}
|
|
119
106
|
const LINE_START_MARKER = /^(\s*)(#{1,6}\s|[-*+]\s|\d+[.)]\s|>|`{3,}|~{3,})/;
|
|
120
107
|
/** Default placement guard. Blocks the sentinel where U+2060 would break the
|
|
@@ -124,8 +111,9 @@ export function canPlaceSentinel(cleanText, pos, _kind) {
|
|
|
124
111
|
// Line start (or the whole leading marker) directly ahead -> a sentinel here
|
|
125
112
|
// pushes the marker off column 0 (or between marker and text) and kills the block.
|
|
126
113
|
const lineStart = cleanText.lastIndexOf('\n', pos - 1) + 1;
|
|
127
|
-
const
|
|
128
|
-
const
|
|
114
|
+
const lineEnd = cleanText.indexOf('\n', pos) === -1 ? cleanText.length : cleanText.indexOf('\n', pos);
|
|
115
|
+
const lineText = cleanText.slice(lineStart, lineEnd);
|
|
116
|
+
const marker = lineText.match(LINE_START_MARKER);
|
|
129
117
|
if (marker) {
|
|
130
118
|
const markerEnd = lineStart + marker[0].length;
|
|
131
119
|
// Block only positions *within* the marker (before it, or between the marker
|
|
@@ -137,9 +125,7 @@ export function canPlaceSentinel(cleanText, pos, _kind) {
|
|
|
137
125
|
return false;
|
|
138
126
|
}
|
|
139
127
|
// Inside a strikethrough run on this line: count unescaped `~~` before pos.
|
|
140
|
-
const
|
|
141
|
-
const rel = pos - lineStart;
|
|
142
|
-
const before = lineText.slice(0, rel);
|
|
128
|
+
const before = lineText.slice(0, pos - lineStart);
|
|
143
129
|
const strikes = (before.match(/~~/g) ?? []).length;
|
|
144
130
|
if (strikes % 2 === 1)
|
|
145
131
|
return false; // odd number of ~~ before -> inside a run
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-editor.annotation-sentinels.js","sourceRoot":"","sources":["../../../../src/components/inputs/text-editor/text-editor.annotation-sentinels.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;qDAeqD;AAErD,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEvC,qEAAqE;AACrE,MAAM,UAAU,cAAc,CAAC,IAAY;IAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,WAAW,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AAC3C,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC5C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,mBAAmB;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrF,OAAO,GAAG,CAAC;AACZ,CAAC;AAQD,qEAAqE;AACrE,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,MAAc;IAC1D,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,mBAAmB;YAAE,CAAC,EAAE,CAAC;IAC3F,OAAO,CAAC,CAAC;AACV,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,MAAc;IACrD,OAAO,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED;mEACmE;AACnE,MAAM,UAAU,UAAU,CAAC,uBAAiC,EAAE,QAAgB;IAC7E,IAAI,MAAM,GAAG,QAAQ,CAAC;IACtB,KAAK,MAAM,CAAC,IAAI,uBAAuB;QAAE,IAAI,CAAC,IAAI,MAAM;YAAE,MAAM,EAAE,CAAC;IACnE,OAAO,MAAM,CAAC;AACf,CAAC;AAaD;;oDAEoD;AACpD,MAAM,UAAU,gBAAgB,CAAC,MAAoB,EAAE,SAAiB,EAAE,WAAqB,gBAAgB;IAC9G,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI;YAAE,SAAS;QAC7B,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACnF,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED;
|
|
1
|
+
{"version":3,"file":"text-editor.annotation-sentinels.js","sourceRoot":"","sources":["../../../../src/components/inputs/text-editor/text-editor.annotation-sentinels.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;qDAeqD;AAErD,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEvC,qEAAqE;AACrE,MAAM,UAAU,cAAc,CAAC,IAAY;IAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,WAAW,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AAC3C,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC5C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,mBAAmB;YAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrF,OAAO,GAAG,CAAC;AACZ,CAAC;AAQD,qEAAqE;AACrE,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,MAAc;IAC1D,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,mBAAmB;YAAE,CAAC,EAAE,CAAC;IAC3F,OAAO,CAAC,CAAC;AACV,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,MAAc;IACrD,OAAO,MAAM,GAAG,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED;mEACmE;AACnE,MAAM,UAAU,UAAU,CAAC,uBAAiC,EAAE,QAAgB;IAC7E,IAAI,MAAM,GAAG,QAAQ,CAAC;IACtB,KAAK,MAAM,CAAC,IAAI,uBAAuB;QAAE,IAAI,CAAC,IAAI,MAAM;YAAE,MAAM,EAAE,CAAC;IACnE,OAAO,MAAM,CAAC;AACf,CAAC;AAaD;;oDAEoD;AACpD,MAAM,UAAU,gBAAgB,CAAC,MAAoB,EAAE,SAAiB,EAAE,WAAqB,gBAAgB;IAC9G,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI;YAAE,SAAS;QAC7B,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACnF,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,+EAA+E;AAC/E,SAAS,aAAa,CAAC,OAA0B;IAChD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,OAAO;QAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC;AACf,CAAC;AASD;;;;oDAIoD;AACpD,MAAM,UAAU,kBAAkB,CAAC,GAAW,EAAE,MAAoB,EAAE,WAAqB,gBAAgB;IAC1G,6EAA6E;IAC7E,wEAAwE;IACxE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,MAAM,IAAI,GAAG,aAAa,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW;IACxB,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,sBAAsB;IACrC,SAAS,CAAC;QACT,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,OAAO,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,mBAAmB;YAAE,IAAI,EAAE,CAAC;QAClF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,IAAI,GAAG,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC;aAC/D,IAAI,IAAI,GAAG,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI,EAAE,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1H,GAAG,IAAI,IAAI,CAAC;QACZ,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM;YAAE,OAAO,OAAO,CAAC;QACtC,GAAG,EAAE,CAAC,CAAC,yCAAyC;QAChD,KAAK,EAAE,CAAC;IACT,CAAC;AACF,CAAC;AAED,MAAM,iBAAiB,GAAG,kDAAkD,CAAC;AAE7E;;qFAEqF;AACrF,MAAM,UAAU,gBAAgB,CAAC,SAAiB,EAAE,GAAW,EAAE,KAAsB;IACtF,6EAA6E;IAC7E,mFAAmF;IACnF,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACtG,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACjD,IAAI,MAAM,EAAE,CAAC;QACZ,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC/C,6EAA6E;QAC7E,6EAA6E;QAC7E,8EAA8E;QAC9E,6EAA6E;QAC7E,iFAAiF;QACjF,IAAI,GAAG,GAAG,SAAS;YAAE,OAAO,KAAK,CAAC;IACnC,CAAC;IACD,4EAA4E;IAC5E,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IACnD,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,0CAA0C;IAC/E,OAAO,IAAI,CAAC;AACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-editor.annotations.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/text-editor/text-editor.annotations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAiC,KAAK,SAAS,EAAc,MAAM,mBAAmB,CAAC;AAyB3G,MAAM,WAAW,UAAU;IAC1B,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,mEAAmE;AACnE,UAAU,QAAQ;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACX;AAED,wEAAwE;AACxE,eAAO,MAAM,cAAc,oEAA8C,CAAC;AAM1E;;oFAEoF;AACpF,eAAO,MAAM,cAAc;UAA8B,MAAM;QAAM,MAAM;cAAY,MAAM;EAAK,CAAC;AAEnG;;uFAEuF;AACvF,eAAO,MAAM,gBAAgB;QAA4B,MAAM;UAAQ,QAAQ,EAAE;EAAK,CAAC;AAEvF;6EAC6E;AAC7E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,QAAQ,EAAE,CAE1E;AA6DD;;iEAEiE;AACjE,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"text-editor.annotations.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/text-editor/text-editor.annotations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAiC,KAAK,SAAS,EAAc,MAAM,mBAAmB,CAAC;AAyB3G,MAAM,WAAW,UAAU;IAC1B,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,mEAAmE;AACnE,UAAU,QAAQ;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACX;AAED,wEAAwE;AACxE,eAAO,MAAM,cAAc,oEAA8C,CAAC;AAM1E;;oFAEoF;AACpF,eAAO,MAAM,cAAc;UAA8B,MAAM;QAAM,MAAM;cAAY,MAAM;EAAK,CAAC;AAEnG;;uFAEuF;AACvF,eAAO,MAAM,gBAAgB;QAA4B,MAAM;UAAQ,QAAQ,EAAE;EAAK,CAAC;AAEvF;6EAC6E;AAC7E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,QAAQ,EAAE,CAE1E;AA6DD;;iEAEiE;AACjE,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;AAkR5E;;;4BAG4B;AAI5B,wBAAgB,WAAW,CAAC,UAAU,EAAE,oBAAoB,GAAG,SAAS,CAWvE"}
|
|
@@ -98,13 +98,20 @@ class AnnotationBadge extends WidgetType {
|
|
|
98
98
|
const cs = getComputedStyle(dom);
|
|
99
99
|
const box = textCaretBox(dom) ?? { top: badge.top, bottom: badge.bottom };
|
|
100
100
|
// Inside edge: the text's end (before the badge's left margin). Outside edge:
|
|
101
|
-
//
|
|
102
|
-
//
|
|
103
|
-
//
|
|
104
|
-
//
|
|
101
|
+
// the tint's own right edge on its last line, which is where the text after
|
|
102
|
+
// the annotation starts. The badge's right edge plus its margin stops short
|
|
103
|
+
// of that by the tint's inline padding, and CodeMirror measures the position
|
|
104
|
+
// after the sentinel from the text on the other side, so the caret there
|
|
105
|
+
// jumped by that padding depending on the direction it arrived from. The
|
|
106
|
+
// badge sits on the annotation's last line, so the last client rect is the
|
|
107
|
+
// right one for a multi-line annotation; the bounding box would be the union
|
|
108
|
+
// of every line and push the caret to the far right edge.
|
|
109
|
+
const tint = dom.closest('.cm-annotation');
|
|
110
|
+
const rects = tint ? tint.getClientRects() : null;
|
|
111
|
+
const lastLine = rects && rects.length ? rects[rects.length - 1] : null;
|
|
105
112
|
const x = pos <= 0
|
|
106
113
|
? badge.left - parseFloat(cs.marginLeft)
|
|
107
|
-
: badge.right + parseFloat(cs.marginRight);
|
|
114
|
+
: (lastLine ? lastLine.right : badge.right + parseFloat(cs.marginRight));
|
|
108
115
|
return { left: x, right: x, top: box.top, bottom: box.bottom };
|
|
109
116
|
}
|
|
110
117
|
}
|
|
@@ -160,7 +167,14 @@ function resolveGroup(group, doc, sents) {
|
|
|
160
167
|
const endSent = textTo < doc.length && doc[textTo] === S ? textTo : null;
|
|
161
168
|
return { docFrom, textTo, startSent, endSent };
|
|
162
169
|
}
|
|
170
|
+
const NOTHING = { deco: Decoration.none, atomic: Decoration.none };
|
|
163
171
|
function buildAll(state, label) {
|
|
172
|
+
// Without annotations there is nothing to draw, and the document is not worth
|
|
173
|
+
// walking: reading it out, stripping it and scanning it for sentinels are three
|
|
174
|
+
// passes over the whole text, and they would run on every keystroke and every
|
|
175
|
+
// cursor move of an editor that never turned the overlay on.
|
|
176
|
+
if (!state.field(annotationField).length)
|
|
177
|
+
return NOTHING;
|
|
164
178
|
const doc = state.doc.toString();
|
|
165
179
|
const sel = state.selection.main;
|
|
166
180
|
const sents = sentinelPositions(doc);
|
|
@@ -227,6 +241,10 @@ function makeAnnotationRender(label) {
|
|
|
227
241
|
return StateField.define({
|
|
228
242
|
create: (state) => buildAll(state, label),
|
|
229
243
|
update: (value, tr) => {
|
|
244
|
+
// Nothing drawn and nothing to draw: skip the rebuild entirely, so an
|
|
245
|
+
// editor without annotations pays nothing per keystroke.
|
|
246
|
+
if (value === NOTHING && !tr.state.field(annotationField).length)
|
|
247
|
+
return value;
|
|
230
248
|
if (tr.docChanged || !tr.startState.selection.eq(tr.state.selection) || tr.effects.some((e) => e.is(setAnnotations))) {
|
|
231
249
|
return buildAll(tr.state, label);
|
|
232
250
|
}
|
|
@@ -242,6 +260,14 @@ const annotationSentinelFilter = EditorState.transactionFilter.of((tr) => {
|
|
|
242
260
|
const set = tr.effects.find((e) => e.is(setAnnotations));
|
|
243
261
|
if (!tr.docChanged && !set)
|
|
244
262
|
return tr;
|
|
263
|
+
// No annotations before this transaction and none arriving (as a fresh set, or
|
|
264
|
+
// riding along with a paste): there are no sentinels to maintain, so the
|
|
265
|
+
// document is left alone. Without this an editor that never turned the overlay
|
|
266
|
+
// on still read the whole text out four times per keystroke and appended a
|
|
267
|
+
// transaction to store an empty anchor list.
|
|
268
|
+
const arriving = set || tr.effects.some((e) => e.is(pasteAnnotations) || e.is(annotationMove));
|
|
269
|
+
if (!arriving && !(tr.startState.field(annotationField, false) ?? []).length)
|
|
270
|
+
return tr;
|
|
245
271
|
const postUserDoc = tr.newDoc.toString(); // after the user's changes, before sentinels
|
|
246
272
|
const cleanLen = stripSentinels(postUserDoc).length;
|
|
247
273
|
let anns;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-editor.annotations.js","sourceRoot":"","sources":["../../../../src/components/inputs/text-editor/text-editor.annotations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"text-editor.annotations.js","sourceRoot":"","sources":["../../../../src/components/inputs/text-editor/text-editor.annotations.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,8 @@ export interface TextEditorActiveFormats {
|
|
|
9
9
|
link: boolean;
|
|
10
10
|
bulletList: boolean;
|
|
11
11
|
orderedList: boolean;
|
|
12
|
+
/** A GFM task item (`- [ ]` / `- [x]`); also reports as bulletList. */
|
|
13
|
+
taskList: boolean;
|
|
12
14
|
quote: boolean;
|
|
13
15
|
heading: HeadingLevel;
|
|
14
16
|
}
|
|
@@ -24,7 +26,10 @@ export interface TextEditorState {
|
|
|
24
26
|
canRedo: boolean;
|
|
25
27
|
}
|
|
26
28
|
export declare const EMPTY_FORMATS: TextEditorActiveFormats;
|
|
27
|
-
/** Wrap
|
|
29
|
+
/** Wrap each selection range with `marker`, or unwrap it when it is already
|
|
30
|
+
* wrapped. A caret at the very end of the wrapped text steps out of the run
|
|
31
|
+
* instead: bold, type, bold ends with the caret after the bold, ready for the
|
|
32
|
+
* next word, not with the bold undone. */
|
|
28
33
|
export declare function toggleInlineWrap(view: EditorView, marker: string, nodeName: string): void;
|
|
29
34
|
/** Set the selected lines to heading `level`, or toggle them back to body. */
|
|
30
35
|
export declare function toggleHeading(view: EditorView, level: HeadingLevel): void;
|
|
@@ -32,10 +37,17 @@ export declare function toggleHeading(view: EditorView, level: HeadingLevel): vo
|
|
|
32
37
|
* Suited to a picker where choosing a level always applies it. */
|
|
33
38
|
export declare function setHeading(view: EditorView, level: HeadingLevel): void;
|
|
34
39
|
export declare function toggleBulletList(view: EditorView): void;
|
|
40
|
+
/** Turn the selected lines into GFM task items (`- [ ] `), or back into plain
|
|
41
|
+
* bullets when they all are tasks already. A bullet or numbered item keeps its
|
|
42
|
+
* indent and becomes a task; toggling off leaves a bullet rather than bare text,
|
|
43
|
+
* so the list survives and only the box goes. Checking a box is not this
|
|
44
|
+
* command's job. */
|
|
45
|
+
export declare function toggleTaskList(view: EditorView): void;
|
|
46
|
+
export type ListType = 'none' | 'bullet' | 'ordered' | 'task';
|
|
35
47
|
/** Set the selected lines to a list of `type`, replacing any existing list
|
|
36
48
|
* marker; `'none'` strips it. Ordered items are numbered within the selection.
|
|
37
49
|
* Unlike the toggles, this cleanly switches between list types (for a picker). */
|
|
38
|
-
export declare function setList(view: EditorView, type:
|
|
50
|
+
export declare function setList(view: EditorView, type: ListType): void;
|
|
39
51
|
/** Nest the selected list item(s) under the nearest preceding item at the same
|
|
40
52
|
* level, indenting only as far as that parent's content column. That keeps the
|
|
41
53
|
* item a valid nested list — 4+ spaces with no parent would parse as an indented
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-editor.commands.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/text-editor/text-editor.commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"text-editor.commands.d.ts","sourceRoot":"","sources":["../../../../src/components/inputs/text-editor/text-editor.commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAUnD,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAErD,MAAM,WAAW,uBAAuB;IACvC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,uEAAuE;IACvE,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,uBAAuB,CAAC;IAChC,8DAA8D;IAC9D,KAAK,EAAE,OAAO,CAAC;IACf,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,4EAA4E;IAC5E,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,eAAO,MAAM,aAAa,EAAE,uBAY3B,CAAC;AAgBF;;;2CAG2C;AAC3C,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAuDzF;AAqED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAQzE;AAED;mEACmE;AACnE,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAKtE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAavD;AAID;;;;qBAIqB;AACrB,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CASrD;AAOD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9D;;mFAEmF;AACnF,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,CA6B9D;AAED;;;gFAGgF;AAChF,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CA4BtD;AAED;;;;;gFAKgF;AAChF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CA4BvD;AAED;wFACwF;AACxF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAc3D;AAED,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAG5D;AAED;;;;;iFAKiF;AACjF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAqBjE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAQlD;AAeD,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,SAAK,GAAG,IAAI,CAuB5D;AAED,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAetD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,uBAAuB,CAiC3E"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { EditorSelection } from '@codemirror/state';
|
|
2
|
-
import {
|
|
2
|
+
import { EMPHASIS_MARKERS, heldEmphasisField, holdEmphasis, repairChangesFor } from './text-editor.emphasis.js';
|
|
3
|
+
import { enclosingNamed } from './text-editor.syntax.js';
|
|
3
4
|
export const EMPTY_FORMATS = {
|
|
4
5
|
bold: false,
|
|
5
6
|
italic: false,
|
|
@@ -9,15 +10,12 @@ export const EMPTY_FORMATS = {
|
|
|
9
10
|
link: false,
|
|
10
11
|
bulletList: false,
|
|
11
12
|
orderedList: false,
|
|
13
|
+
taskList: false,
|
|
12
14
|
quote: false,
|
|
13
15
|
heading: 0,
|
|
14
16
|
};
|
|
15
17
|
function enclosing(view, pos, nodeName, side = 1) {
|
|
16
|
-
|
|
17
|
-
if (n.name === nodeName)
|
|
18
|
-
return n;
|
|
19
|
-
}
|
|
20
|
-
return null;
|
|
18
|
+
return enclosingNamed(view.state, pos, side, nodeName);
|
|
21
19
|
}
|
|
22
20
|
/** An inline format is "active" for the caret only when the node encloses it on
|
|
23
21
|
* *both* sides. At the outer edge (just before the opening marker or just after
|
|
@@ -28,7 +26,10 @@ function enclosingInline(view, pos, nodeName) {
|
|
|
28
26
|
const right = enclosing(view, pos, nodeName, 1);
|
|
29
27
|
return left && right && left.from === right.from && left.to === right.to ? right : null;
|
|
30
28
|
}
|
|
31
|
-
/** Wrap
|
|
29
|
+
/** Wrap each selection range with `marker`, or unwrap it when it is already
|
|
30
|
+
* wrapped. A caret at the very end of the wrapped text steps out of the run
|
|
31
|
+
* instead: bold, type, bold ends with the caret after the bold, ready for the
|
|
32
|
+
* next word, not with the bold undone. */
|
|
32
33
|
export function toggleInlineWrap(view, marker, nodeName) {
|
|
33
34
|
// CodeMirror's `readOnly` facet only gates its own built-in commands, not a raw
|
|
34
35
|
// `view.dispatch`, so every editing helper here must refuse a read-only view
|
|
@@ -36,24 +37,54 @@ export function toggleInlineWrap(view, marker, nodeName) {
|
|
|
36
37
|
// read-only (or disabled) editor.
|
|
37
38
|
if (view.state.readOnly)
|
|
38
39
|
return;
|
|
40
|
+
const { state } = view;
|
|
39
41
|
const len = marker.length;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
+
const held = state.field(heldEmphasisField, false);
|
|
43
|
+
view.dispatch(state.changeByRange((range) => {
|
|
44
|
+
// A drag or a double-click takes the space after a word along, and
|
|
45
|
+
// `**woord **` is not bold: a closing run may not follow whitespace. So the
|
|
46
|
+
// markers go around the text and the whitespace stays where it was (#212).
|
|
47
|
+
const text = state.sliceDoc(range.from, range.to);
|
|
48
|
+
const lead = /^\s*/.exec(text)[0].length;
|
|
49
|
+
if (!range.empty && lead === text.length)
|
|
50
|
+
return { range };
|
|
51
|
+
const from = range.from + lead;
|
|
52
|
+
const to = range.to - /\s*$/.exec(text)[0].length;
|
|
53
|
+
// The run the range is in: parsed, or held while a typed space has broken it.
|
|
54
|
+
const wrap = enclosing(view, from, nodeName)
|
|
55
|
+
?? (held && held.name === nodeName && from >= held.from && to <= held.to ? held : null);
|
|
42
56
|
if (wrap) {
|
|
57
|
+
const content = state.sliceDoc(wrap.from + len, wrap.to - len);
|
|
58
|
+
if (range.empty && from === wrap.to - len && content.trim()) {
|
|
59
|
+
// Step out. Whitespace typed at the end goes outside the markers first,
|
|
60
|
+
// so the caret lands after it, and after any space already there: where
|
|
61
|
+
// the next word starts.
|
|
62
|
+
const run = { from: wrap.from, to: wrap.to, name: nodeName, marker: state.sliceDoc(wrap.from, wrap.from + len), live: false };
|
|
63
|
+
const changes = EMPHASIS_MARKERS.has(nodeName) ? repairChangesFor(state, run) : [];
|
|
64
|
+
let pos = wrap.to;
|
|
65
|
+
while (/[ \t]/.test(state.sliceDoc(pos, pos + 1)))
|
|
66
|
+
pos++;
|
|
67
|
+
return { changes, range: EditorSelection.cursor(pos) };
|
|
68
|
+
}
|
|
69
|
+
const changes = state.changes([
|
|
70
|
+
{ from: wrap.from, to: wrap.from + len },
|
|
71
|
+
{ from: wrap.to - len, to: wrap.to },
|
|
72
|
+
]);
|
|
43
73
|
return {
|
|
44
|
-
changes
|
|
45
|
-
|
|
46
|
-
{ from: wrap.to - len, to: wrap.to },
|
|
47
|
-
],
|
|
48
|
-
range: EditorSelection.range(Math.max(wrap.from, range.from - len), Math.max(wrap.from, range.to - len)),
|
|
74
|
+
changes,
|
|
75
|
+
range: EditorSelection.range(changes.mapPos(range.anchor), changes.mapPos(range.head)),
|
|
49
76
|
};
|
|
50
77
|
}
|
|
51
78
|
return {
|
|
52
79
|
changes: [
|
|
53
|
-
{ from
|
|
54
|
-
{ from:
|
|
80
|
+
{ from, insert: marker },
|
|
81
|
+
{ from: to, insert: marker },
|
|
55
82
|
],
|
|
56
|
-
range: EditorSelection.range(
|
|
83
|
+
range: EditorSelection.range(from + len, to + len),
|
|
84
|
+
// Empty markers parse as nothing, so the hold on them is started by hand.
|
|
85
|
+
effects: range.empty && range === state.selection.main && EMPHASIS_MARKERS.has(nodeName)
|
|
86
|
+
? holdEmphasis.of({ from, to: from + 2 * len, name: nodeName, marker })
|
|
87
|
+
: undefined,
|
|
57
88
|
};
|
|
58
89
|
}));
|
|
59
90
|
view.focus();
|
|
@@ -74,13 +105,35 @@ function minimalLineChange(line, next) {
|
|
|
74
105
|
s++;
|
|
75
106
|
return { from: line.from + p, to: line.from + old.length - s, insert: next.slice(p, next.length - s) };
|
|
76
107
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
108
|
+
/** Dispatch line-level changes with the selection carried along. A caret that
|
|
109
|
+
* sits exactly where a marker is inserted (column 0 of an empty line, say) is
|
|
110
|
+
* mapped to *after* the insertion, so what is typed next lands in the item and
|
|
111
|
+
* not in front of its marker. Plain mapping would leave it before. */
|
|
112
|
+
function dispatchLineChanges(view, changes) {
|
|
113
|
+
if (changes.length) {
|
|
114
|
+
const { state } = view;
|
|
115
|
+
const set = state.changes(changes);
|
|
116
|
+
const sel = state.selection.main;
|
|
117
|
+
view.dispatch({ changes: set, selection: { anchor: set.mapPos(sel.anchor, 1), head: set.mapPos(sel.head, 1) } });
|
|
118
|
+
}
|
|
119
|
+
view.focus();
|
|
120
|
+
}
|
|
121
|
+
/** The selected line range, and whether it is a single blank line. The line
|
|
122
|
+
* commands skip blank lines because they separate items, but when the blank
|
|
123
|
+
* line is the only one selected (an empty document, a fresh paragraph) it is
|
|
124
|
+
* the whole target and must take the marker. */
|
|
125
|
+
function selectedLines(view) {
|
|
80
126
|
const { state } = view;
|
|
81
127
|
const { from, to } = state.selection.main;
|
|
82
128
|
const first = state.doc.lineAt(from).number;
|
|
83
129
|
const last = state.doc.lineAt(to).number;
|
|
130
|
+
return { first, last, loneBlank: first === last && state.doc.line(first).text.trim() === '' };
|
|
131
|
+
}
|
|
132
|
+
function mapSelectedLines(view, transform) {
|
|
133
|
+
if (view.state.readOnly)
|
|
134
|
+
return; // guards toggleHeading/setHeading/toggleBulletList/toggleQuote
|
|
135
|
+
const { state } = view;
|
|
136
|
+
const { first, last } = selectedLines(view);
|
|
84
137
|
const changes = [];
|
|
85
138
|
for (let i = first; i <= last; i++) {
|
|
86
139
|
const line = state.doc.line(i);
|
|
@@ -88,9 +141,7 @@ function mapSelectedLines(view, transform) {
|
|
|
88
141
|
if (change)
|
|
89
142
|
changes.push(change);
|
|
90
143
|
}
|
|
91
|
-
|
|
92
|
-
view.dispatch({ changes });
|
|
93
|
-
view.focus();
|
|
144
|
+
dispatchLineChanges(view, changes);
|
|
94
145
|
}
|
|
95
146
|
function everySelectedLine(view, predicate) {
|
|
96
147
|
const { state } = view;
|
|
@@ -128,16 +179,39 @@ export function toggleBulletList(view) {
|
|
|
128
179
|
// "+ item" line would report active yet the toggle couldn't strip it (it'd add
|
|
129
180
|
// another "- " instead), so state and toggle would disagree.
|
|
130
181
|
const re = /^(\s*)[-*+]\s+/;
|
|
131
|
-
const
|
|
182
|
+
const { loneBlank } = selectedLines(view);
|
|
183
|
+
const allBulleted = !loneBlank && everySelectedLine(view, (t) => re.test(t) || t.trim() === '');
|
|
132
184
|
mapSelectedLines(view, (t) => {
|
|
133
|
-
if (t.trim() === '')
|
|
185
|
+
if (t.trim() === '' && !loneBlank)
|
|
134
186
|
return t;
|
|
135
187
|
if (allBulleted)
|
|
136
188
|
return t.replace(re, '$1');
|
|
137
189
|
return re.test(t) ? t : t.replace(/^(\s*)/, '$1- ');
|
|
138
190
|
});
|
|
139
191
|
}
|
|
140
|
-
const
|
|
192
|
+
const TASK_RE = /^(\s*)[-*+]\s+\[[ xX]\]\s+/;
|
|
193
|
+
/** Turn the selected lines into GFM task items (`- [ ] `), or back into plain
|
|
194
|
+
* bullets when they all are tasks already. A bullet or numbered item keeps its
|
|
195
|
+
* indent and becomes a task; toggling off leaves a bullet rather than bare text,
|
|
196
|
+
* so the list survives and only the box goes. Checking a box is not this
|
|
197
|
+
* command's job. */
|
|
198
|
+
export function toggleTaskList(view) {
|
|
199
|
+
const { loneBlank } = selectedLines(view);
|
|
200
|
+
const allTasks = !loneBlank && everySelectedLine(view, (t) => TASK_RE.test(t) || t.trim() === '');
|
|
201
|
+
mapSelectedLines(view, (t) => {
|
|
202
|
+
if (t.trim() === '' && !loneBlank)
|
|
203
|
+
return t;
|
|
204
|
+
if (allTasks)
|
|
205
|
+
return t.replace(TASK_RE, '$1- ');
|
|
206
|
+
if (TASK_RE.test(t))
|
|
207
|
+
return t;
|
|
208
|
+
return t.replace(LIST_STRIP_RE, '$1').replace(/^(\s*)/, '$1- [ ] ');
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
const LIST_STRIP_RE = /^(\s*)(?:[-*+]|\d+[.)])(?:\s+|$)/;
|
|
212
|
+
// The checkbox of a task item, once its bullet has been stripped. It belongs to
|
|
213
|
+
// the marker, so switching a task list to another type takes it along.
|
|
214
|
+
const TASK_BOX_RE = /^(\s*)\[[ xX]\]\s+/;
|
|
141
215
|
/** Set the selected lines to a list of `type`, replacing any existing list
|
|
142
216
|
* marker; `'none'` strips it. Ordered items are numbered within the selection.
|
|
143
217
|
* Unlike the toggles, this cleanly switches between list types (for a picker). */
|
|
@@ -145,9 +219,7 @@ export function setList(view, type) {
|
|
|
145
219
|
if (view.state.readOnly)
|
|
146
220
|
return;
|
|
147
221
|
const { state } = view;
|
|
148
|
-
const {
|
|
149
|
-
const first = state.doc.lineAt(from).number;
|
|
150
|
-
const last = state.doc.lineAt(to).number;
|
|
222
|
+
const { first, last, loneBlank } = selectedLines(view);
|
|
151
223
|
const changes = [];
|
|
152
224
|
let number = 0;
|
|
153
225
|
for (let i = first; i <= last; i++) {
|
|
@@ -155,11 +227,17 @@ export function setList(view, type) {
|
|
|
155
227
|
// 'none' clears the leading indent too — bare text can't carry list
|
|
156
228
|
// indentation (4+ spaces would even parse as a code block); the list types
|
|
157
229
|
// keep it ($1) so nesting survives a switch between bullet and ordered.
|
|
158
|
-
const
|
|
230
|
+
const withoutMarker = line.text.replace(LIST_STRIP_RE, type === 'none' ? '' : '$1');
|
|
231
|
+
// A blank line between items separates them and takes no marker. A line
|
|
232
|
+
// that carried a marker stays an item across the switch, even with no text
|
|
233
|
+
// behind it yet, and a lone blank line is the whole target.
|
|
234
|
+
const wasItem = withoutMarker !== line.text;
|
|
235
|
+
// Only on a line that was an item: elsewhere a leading "[x] " is text.
|
|
236
|
+
const stripped = wasItem ? withoutMarker.replace(TASK_BOX_RE, type === 'none' ? '' : '$1') : withoutMarker;
|
|
159
237
|
let next = stripped;
|
|
160
|
-
if (type !== 'none' && stripped.trim() !== '') {
|
|
238
|
+
if (type !== 'none' && (stripped.trim() !== '' || wasItem || loneBlank)) {
|
|
161
239
|
number += 1;
|
|
162
|
-
const marker = type === 'bullet' ? '- ' : `${number}. `;
|
|
240
|
+
const marker = type === 'bullet' ? '- ' : type === 'task' ? '- [ ] ' : `${number}. `;
|
|
163
241
|
next = stripped.replace(/^(\s*)/, `$1${marker}`);
|
|
164
242
|
}
|
|
165
243
|
// Only rewrite the marker, not the whole line — keeps annotations alive.
|
|
@@ -167,9 +245,7 @@ export function setList(view, type) {
|
|
|
167
245
|
if (change)
|
|
168
246
|
changes.push(change);
|
|
169
247
|
}
|
|
170
|
-
|
|
171
|
-
view.dispatch({ changes });
|
|
172
|
-
view.focus();
|
|
248
|
+
dispatchLineChanges(view, changes);
|
|
173
249
|
}
|
|
174
250
|
/** Nest the selected list item(s) under the nearest preceding item at the same
|
|
175
251
|
* level, indenting only as far as that parent's content column. That keeps the
|
|
@@ -389,9 +465,11 @@ export function toggleCodeBlock(view) {
|
|
|
389
465
|
export function readActiveFormats(view) {
|
|
390
466
|
const { state } = view;
|
|
391
467
|
const pos = state.selection.main.head;
|
|
468
|
+
const held = state.field(heldEmphasisField, false);
|
|
392
469
|
// Inline marks light up only when the caret is *within* them on both sides,
|
|
393
470
|
// so an edge caret (where typed text lands outside the format) stays inactive.
|
|
394
|
-
|
|
471
|
+
// A run held while a typed space has broken it counts as within too.
|
|
472
|
+
const has = (name) => enclosingInline(view, pos, name) !== null || held?.name === name;
|
|
395
473
|
const lineText = state.doc.lineAt(pos).text;
|
|
396
474
|
const lineStart = state.doc.lineAt(pos).from;
|
|
397
475
|
const headingMatch = lineText.match(/^(#{1,6})\s/);
|
|
@@ -410,6 +488,7 @@ export function readActiveFormats(view) {
|
|
|
410
488
|
// can spill into the next line and flip-flop the toolbar state.)
|
|
411
489
|
bulletList: !codeBlock && /^\s*[-*+]\s/.test(lineText),
|
|
412
490
|
orderedList: !codeBlock && /^\s*\d+[.)]\s/.test(lineText),
|
|
491
|
+
taskList: !codeBlock && TASK_RE.test(lineText),
|
|
413
492
|
// Quote from the Blockquote node at the line's *start* — that catches lazy
|
|
414
493
|
// continuation lines (part of the quote but with no '>') too, while resolving
|
|
415
494
|
// at line.from (not the caret) keeps it stable at the line end.
|