@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.
Files changed (179) hide show
  1. package/custom-elements.json +662 -144
  2. package/dist/components/actions/icon-button/icon-button.d.ts +2 -2
  3. package/dist/components/actions/icon-button/icon-button.d.ts.map +1 -1
  4. package/dist/components/actions/icon-button/icon-button.js +3 -3
  5. package/dist/components/actions/icon-button/icon-button.js.map +1 -1
  6. package/dist/components/components.js +1263 -273
  7. package/dist/components/content/avatar/avatar.d.ts +6 -6
  8. package/dist/components/content/avatar/avatar.d.ts.map +1 -1
  9. package/dist/components/content/avatar/avatar.js +9 -9
  10. package/dist/components/content/avatar/avatar.js.map +1 -1
  11. package/dist/components/content/icon/icon-aliases.d.ts.map +1 -1
  12. package/dist/components/content/icon/icon-aliases.js +4 -0
  13. package/dist/components/content/icon/icon-aliases.js.map +1 -1
  14. package/dist/components/content/icon/icon-gallery-status.d.ts.map +1 -1
  15. package/dist/components/content/icon/icon-gallery-status.js +3 -26
  16. package/dist/components/content/icon/icon-gallery-status.js.map +1 -1
  17. package/dist/components/content/icon/icon-registry.d.ts.map +1 -1
  18. package/dist/components/content/icon/icon-registry.js +2 -0
  19. package/dist/components/content/icon/icon-registry.js.map +1 -1
  20. package/dist/components/content/icon/icon.d.ts +2 -2
  21. package/dist/components/content/icon/icon.d.ts.map +1 -1
  22. package/dist/components/content/icon/icon.js +3 -3
  23. package/dist/components/content/icon/icon.js.map +1 -1
  24. package/dist/components/content/icon/icon.styles.d.ts.map +1 -1
  25. package/dist/components/content/icon/icon.styles.js +8 -2
  26. package/dist/components/content/icon/icon.styles.js.map +1 -1
  27. package/dist/components/content/rich-text/rich-text.d.ts +7 -6
  28. package/dist/components/content/rich-text/rich-text.d.ts.map +1 -1
  29. package/dist/components/content/rich-text/rich-text.js +8 -7
  30. package/dist/components/content/rich-text/rich-text.js.map +1 -1
  31. package/dist/components/content/text/text.d.ts +2 -2
  32. package/dist/components/content/text/text.js +3 -3
  33. package/dist/components/content/title/title.d.ts +5 -5
  34. package/dist/components/content/title/title.d.ts.map +1 -1
  35. package/dist/components/content/title/title.js +6 -6
  36. package/dist/components/content/title/title.js.map +1 -1
  37. package/dist/components/content/tooltip/tooltip.d.ts +2 -2
  38. package/dist/components/content/tooltip/tooltip.d.ts.map +1 -1
  39. package/dist/components/content/tooltip/tooltip.js +4 -4
  40. package/dist/components/content/tooltip/tooltip.js.map +1 -1
  41. package/dist/components/{dist-C09E9-dJ.js → dist-B_Mnmrj4.js} +1 -1
  42. package/dist/components/{dist-CjaG8dOI.js → dist-ByH8hQze.js} +2 -2
  43. package/dist/components/{dist-BB7TxeMK.js → dist-CRwuSgMM.js} +2 -2
  44. package/dist/components/{dist-la_b3ZSq.js → dist-CSrO_mYe.js} +1 -1
  45. package/dist/components/{dist-762GHPyH.js → dist-CX3DK4i7.js} +3 -3
  46. package/dist/components/{dist-DZoFKUO-.js → dist-CbCO0WCd.js} +1 -1
  47. package/dist/components/{dist-B_3OW7pC.js → dist-CgDuh26K.js} +1 -1
  48. package/dist/components/{dist-DaavuU6W.js → dist-DXZ-cFAl.js} +2 -2
  49. package/dist/components/{dist-CRsR6ckU.js → dist-LX8LuMac.js} +1 -1
  50. package/dist/components/{dist-BJI4-6iQ.js → dist-eVFegyjM.js} +1 -1
  51. package/dist/components/{dist-C6gnorjP.js → dist-fIxe0l7k.js} +9 -1
  52. package/dist/components/{icon-Cd4BloIM.js → icon-C_zwJZ_g.js} +14 -4
  53. package/dist/components/{icon-button-CXN0yaVx.js → icon-button-CEz4MB9H.js} +10 -10
  54. package/dist/components/inputs/code-editor/code-editor.styles.js +2 -2
  55. package/dist/components/inputs/text-editor/text-editor.annotation-sentinels.d.ts +3 -5
  56. package/dist/components/inputs/text-editor/text-editor.annotation-sentinels.d.ts.map +1 -1
  57. package/dist/components/inputs/text-editor/text-editor.annotation-sentinels.js +30 -44
  58. package/dist/components/inputs/text-editor/text-editor.annotation-sentinels.js.map +1 -1
  59. package/dist/components/inputs/text-editor/text-editor.annotations.d.ts.map +1 -1
  60. package/dist/components/inputs/text-editor/text-editor.annotations.js +31 -5
  61. package/dist/components/inputs/text-editor/text-editor.annotations.js.map +1 -1
  62. package/dist/components/inputs/text-editor/text-editor.commands.d.ts +14 -2
  63. package/dist/components/inputs/text-editor/text-editor.commands.d.ts.map +1 -1
  64. package/dist/components/inputs/text-editor/text-editor.commands.js +115 -36
  65. package/dist/components/inputs/text-editor/text-editor.commands.js.map +1 -1
  66. package/dist/components/inputs/text-editor/text-editor.cursor.d.ts +7 -0
  67. package/dist/components/inputs/text-editor/text-editor.cursor.d.ts.map +1 -0
  68. package/dist/components/inputs/text-editor/text-editor.cursor.js +207 -0
  69. package/dist/components/inputs/text-editor/text-editor.cursor.js.map +1 -0
  70. package/dist/components/inputs/text-editor/text-editor.d.ts +65 -13
  71. package/dist/components/inputs/text-editor/text-editor.d.ts.map +1 -1
  72. package/dist/components/inputs/text-editor/text-editor.emphasis.d.ts +32 -0
  73. package/dist/components/inputs/text-editor/text-editor.emphasis.d.ts.map +1 -0
  74. package/dist/components/inputs/text-editor/text-editor.emphasis.js +229 -0
  75. package/dist/components/inputs/text-editor/text-editor.emphasis.js.map +1 -0
  76. package/dist/components/inputs/text-editor/text-editor.js +177 -18
  77. package/dist/components/inputs/text-editor/text-editor.js.map +1 -1
  78. package/dist/components/inputs/text-editor/text-editor.links.d.ts +8 -0
  79. package/dist/components/inputs/text-editor/text-editor.links.d.ts.map +1 -1
  80. package/dist/components/inputs/text-editor/text-editor.links.js +30 -4
  81. package/dist/components/inputs/text-editor/text-editor.links.js.map +1 -1
  82. package/dist/components/inputs/text-editor/text-editor.markdown.d.ts.map +1 -1
  83. package/dist/components/inputs/text-editor/text-editor.markdown.js +52 -18
  84. package/dist/components/inputs/text-editor/text-editor.markdown.js.map +1 -1
  85. package/dist/components/inputs/text-editor/text-editor.mentions.d.ts +78 -11
  86. package/dist/components/inputs/text-editor/text-editor.mentions.d.ts.map +1 -1
  87. package/dist/components/inputs/text-editor/text-editor.mentions.js +190 -41
  88. package/dist/components/inputs/text-editor/text-editor.mentions.js.map +1 -1
  89. package/dist/components/inputs/text-editor/text-editor.ordered-list.d.ts +0 -2
  90. package/dist/components/inputs/text-editor/text-editor.ordered-list.d.ts.map +1 -1
  91. package/dist/components/inputs/text-editor/text-editor.ordered-list.js +21 -1
  92. package/dist/components/inputs/text-editor/text-editor.ordered-list.js.map +1 -1
  93. package/dist/components/inputs/text-editor/text-editor.styles.d.ts.map +1 -1
  94. package/dist/components/inputs/text-editor/text-editor.styles.js +11 -10
  95. package/dist/components/inputs/text-editor/text-editor.styles.js.map +1 -1
  96. package/dist/components/inputs/text-editor/text-editor.syntax.d.ts +9 -0
  97. package/dist/components/inputs/text-editor/text-editor.syntax.d.ts.map +1 -0
  98. package/dist/components/inputs/text-editor/text-editor.syntax.js +20 -0
  99. package/dist/components/inputs/text-editor/text-editor.syntax.js.map +1 -0
  100. package/dist/components/layout/page/page.d.ts +23 -5
  101. package/dist/components/layout/page/page.d.ts.map +1 -1
  102. package/dist/components/layout/page/page.js +39 -34
  103. package/dist/components/layout/page/page.js.map +1 -1
  104. package/dist/components/layout/page/page.styles.d.ts.map +1 -1
  105. package/dist/components/layout/page/page.styles.js +2 -0
  106. package/dist/components/layout/page/page.styles.js.map +1 -1
  107. package/dist/components/layout/page-sections/page-section-controls.d.ts +0 -70
  108. package/dist/components/layout/page-sections/page-section-controls.d.ts.map +1 -1
  109. package/dist/components/layout/page-sections/page-section-controls.js +0 -3
  110. package/dist/components/layout/page-sections/page-section-controls.js.map +1 -1
  111. package/dist/components/layout/sheet/sheet.d.ts +3 -7
  112. package/dist/components/layout/sheet/sheet.d.ts.map +1 -1
  113. package/dist/components/layout/sheet/sheet.js +4 -18
  114. package/dist/components/layout/sheet/sheet.js.map +1 -1
  115. package/dist/components/layout/sheet/sheet.styles.d.ts.map +1 -1
  116. package/dist/components/layout/sheet/sheet.styles.js +0 -4
  117. package/dist/components/layout/sheet/sheet.styles.js.map +1 -1
  118. package/dist/components/layout/sheet/sheet.template.d.ts.map +1 -1
  119. package/dist/components/layout/sheet/sheet.template.js +5 -2
  120. package/dist/components/layout/sheet/sheet.template.js.map +1 -1
  121. package/dist/components/layout/window/window.d.ts +2 -4
  122. package/dist/components/layout/window/window.d.ts.map +1 -1
  123. package/dist/components/layout/window/window.js +4 -14
  124. package/dist/components/layout/window/window.js.map +1 -1
  125. package/dist/components/layout/window/window.template.d.ts.map +1 -1
  126. package/dist/components/layout/window/window.template.js +5 -2
  127. package/dist/components/layout/window/window.template.js.map +1 -1
  128. package/dist/components/lists-and-tables/cells/icon-cell/icon-cell.d.ts +2 -2
  129. package/dist/components/lists-and-tables/cells/icon-cell/icon-cell.js +3 -3
  130. package/dist/components/lists-and-tables/cells/text-cell/text-cell.d.ts +2 -2
  131. package/dist/components/lists-and-tables/cells/text-cell/text-cell.js +3 -3
  132. package/dist/components/lists-and-tables/cells/title-cell/title-cell.d.ts +2 -2
  133. package/dist/components/lists-and-tables/cells/title-cell/title-cell.js +3 -3
  134. package/dist/components/lists-and-tables/list/list.d.ts +4 -2
  135. package/dist/components/lists-and-tables/list/list.d.ts.map +1 -1
  136. package/dist/components/lists-and-tables/list/list.js +23 -5
  137. package/dist/components/lists-and-tables/list/list.js.map +1 -1
  138. package/dist/components/navigation/document-tab-bar/document-tab-bar.template.js +1 -1
  139. package/dist/components/navigation/document-tab-bar/document-tab-bar.template.js.map +1 -1
  140. package/dist/components/navigation/link/link.d.ts +2 -2
  141. package/dist/components/navigation/link/link.d.ts.map +1 -1
  142. package/dist/components/navigation/link/link.js +3 -2
  143. package/dist/components/navigation/link/link.js.map +1 -1
  144. package/dist/components/navigation/menu-bar/menu-bar.d.ts +4 -2
  145. package/dist/components/navigation/menu-bar/menu-bar.d.ts.map +1 -1
  146. package/dist/components/navigation/menu-bar/menu-bar.js +4 -2
  147. package/dist/components/navigation/menu-bar/menu-bar.js.map +1 -1
  148. package/dist/components/status-and-feedback/activity-indicator/activity-indicator.d.ts +3 -3
  149. package/dist/components/status-and-feedback/activity-indicator/activity-indicator.d.ts.map +1 -1
  150. package/dist/components/status-and-feedback/activity-indicator/activity-indicator.js +4 -4
  151. package/dist/components/status-and-feedback/activity-indicator/activity-indicator.js.map +1 -1
  152. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.d.ts +8 -0
  153. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.d.ts.map +1 -1
  154. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.js +14 -0
  155. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.js.map +1 -1
  156. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.styles.d.ts.map +1 -1
  157. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.styles.js +22 -1
  158. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.styles.js.map +1 -1
  159. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.template.d.ts.map +1 -1
  160. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.template.js +6 -2
  161. package/dist/components/status-and-feedback/inline-dialog/inline-dialog.template.js.map +1 -1
  162. package/dist/components/status-and-feedback/modal-dialog/modal-dialog.d.ts +3 -1
  163. package/dist/components/status-and-feedback/modal-dialog/modal-dialog.d.ts.map +1 -1
  164. package/dist/components/status-and-feedback/modal-dialog/modal-dialog.js +5 -0
  165. package/dist/components/status-and-feedback/modal-dialog/modal-dialog.js.map +1 -1
  166. package/dist/components/status-and-feedback/modal-dialog/modal-dialog.template.d.ts.map +1 -1
  167. package/dist/components/status-and-feedback/modal-dialog/modal-dialog.template.js +4 -0
  168. package/dist/components/status-and-feedback/modal-dialog/modal-dialog.template.js.map +1 -1
  169. package/dist/components/status-and-feedback/notification/notification-region.d.ts.map +1 -1
  170. package/dist/components/status-and-feedback/notification/notification-region.js +74 -1
  171. package/dist/components/status-and-feedback/notification/notification-region.js.map +1 -1
  172. package/dist/components/status-and-feedback/notification/notification.d.ts +11 -0
  173. package/dist/components/status-and-feedback/notification/notification.d.ts.map +1 -1
  174. package/dist/components/status-and-feedback/notification/notification.js +13 -0
  175. package/dist/components/status-and-feedback/notification/notification.js.map +1 -1
  176. package/dist/favicon.svg +8 -2
  177. package/dist/nldd.min.js +536 -496
  178. package/dist/types/vue.d.ts +33 -25
  179. 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
- /** Build the desired doc text: `cleanText` with a sentinel inserted at each desired
71
- * position (multiplicity honoured for touching groups). */
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
- let out = '';
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` and the target share the same clean text, so a two-pointer
89
- * walk yields sentinel-only inserts/deletes. */
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
- const cleanText = stripSentinels(doc);
92
- const desired = buildDesiredDoc(cleanText, desiredSentinels(groups, cleanText, canPlace));
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 i = 0; // over doc
95
- let j = 0; // over desired
96
- while (i < doc.length || j < desired.length) {
97
- const dc = i < doc.length ? doc[i] : '';
98
- const ec = j < desired.length ? desired[j] : '';
99
- if (dc === ec) {
100
- i++;
101
- j++;
102
- }
103
- else if (dc === ANNOTATION_SENTINEL) {
104
- changes.push({ from: i, to: i + 1 }); // stray sentinel -> delete
105
- i++;
106
- }
107
- else if (ec === ANNOTATION_SENTINEL) {
108
- changes.push({ from: i, to: i, insert: ANNOTATION_SENTINEL }); // missing -> insert
109
- j++;
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 rest = cleanText.slice(lineStart);
128
- const marker = rest.match(LINE_START_MARKER);
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 lineText = cleanText.slice(lineStart, cleanText.indexOf('\n', pos) === -1 ? undefined : cleanText.indexOf('\n', pos));
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":"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"}
1
+ {"version":3,"file":"text-editor.annotation-sentinels.js","sourceRoot":"","sources":["../../../../src/components/inputs/text-editor/text-editor.annotation-sentinels.ts"],"names":[],"mappings":"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"}
@@ -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;AA0P5E;;;4BAG4B;AAI5B,wBAAgB,WAAW,CAAC,UAAU,EAAE,oBAAoB,GAAG,SAAS,CAWvE"}
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
- // just past the badge (its right edge + margin). The badge is a single inline
102
- // box on the annotation's last line, so this stays correct for multi-line
103
- // annotations — where the tint's bounding box would be the union of every
104
- // line and push the caret to the far right edge.
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 (or, if already wrapped, unwrap) each selection range with `marker`. */
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: 'none' | 'bullet' | 'ordered'): void;
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;AASnD,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,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,uBAW3B,CAAC;AAmBF,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CA8BzF;AA8CD,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,CAYvD;AAID;;mFAEmF;AACnF,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,CA0BnF;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,CA8B3E"}
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 { syntaxTree } from '@codemirror/language';
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
- for (let n = syntaxTree(view.state).resolveInner(pos, side); n; n = n.parent) {
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 (or, if already wrapped, unwrap) each selection range with `marker`. */
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
- view.dispatch(view.state.changeByRange((range) => {
41
- const wrap = enclosing(view, range.from, nodeName);
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
- { from: wrap.from, to: wrap.from + len },
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: range.from, insert: marker },
54
- { from: range.to, insert: marker },
80
+ { from, insert: marker },
81
+ { from: to, insert: marker },
55
82
  ],
56
- range: EditorSelection.range(range.from + len, range.to + len),
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
- function mapSelectedLines(view, transform) {
78
- if (view.state.readOnly)
79
- return; // guards toggleHeading/setHeading/toggleBulletList/toggleQuote
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
- if (changes.length)
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 allBulleted = everySelectedLine(view, (t) => re.test(t) || t.trim() === '');
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 LIST_STRIP_RE = /^(\s*)(?:[-*+]|\d+[.)])\s+/;
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 { from, to } = state.selection.main;
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 stripped = line.text.replace(LIST_STRIP_RE, type === 'none' ? '' : '$1');
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
- if (changes.length)
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
- const has = (name) => enclosingInline(view, pos, name) !== null;
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.