@blankdotpage/cake 0.1.48 → 0.1.50
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/dist/cake/editor/cake-editor.d.ts.map +1 -1
- package/dist/cake/editor/cake-editor.js +2 -1
- package/dist/cake/extensions/heading/heading.d.ts.map +1 -1
- package/dist/cake/extensions/heading/heading.js +9 -3
- package/dist/cake/extensions/list/list.d.ts.map +1 -1
- package/dist/cake/extensions/list/list.js +9 -2
- package/dist/cake/extensions/shared/line-content.d.ts +10 -0
- package/dist/cake/extensions/shared/line-content.d.ts.map +1 -0
- package/dist/cake/extensions/shared/line-content.js +36 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cake-editor.d.ts","sourceRoot":"","sources":["../../../src/cake/editor/cake-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAE1B,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAmBxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"cake-editor.d.ts","sourceRoot":"","sources":["../../../src/cake/editor/cake-editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ import { cursorOffsetToVisibleOffset, getVisibleText, visibleOffsetToCursorOffse
|
|
|
8
8
|
import { hitTestFromLayout, measureLayoutModelFromDom, } from "./selection/selection-layout-dom";
|
|
9
9
|
import { moveSelectionVertically as moveSelectionVerticallyInLayout } from "./selection/selection-navigation";
|
|
10
10
|
import { isMacPlatform } from "../shared/platform";
|
|
11
|
+
import { graphemeSegments } from "../shared/segmenter";
|
|
11
12
|
import { getWordBoundaries, nextWordBreak, prevWordBreak, } from "../shared/word-break";
|
|
12
13
|
import { htmlToMarkdownForPaste } from "../../cake/clipboard";
|
|
13
14
|
const defaultSelection = { start: 0, end: 0, affinity: "forward" };
|
|
@@ -479,7 +480,7 @@ export class CakeEditor {
|
|
|
479
480
|
const processInline = (inline) => {
|
|
480
481
|
if (inline.type === "text") {
|
|
481
482
|
// Count grapheme clusters (cursor positions)
|
|
482
|
-
const graphemes =
|
|
483
|
+
const graphemes = graphemeSegments(inline.text);
|
|
483
484
|
const endOffset = offset + graphemes.length;
|
|
484
485
|
if (offset < targetOffset && targetOffset < endOffset) {
|
|
485
486
|
// Found the position inside the text
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heading.d.ts","sourceRoot":"","sources":["../../../../src/cake/extensions/heading/heading.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAKnB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"heading.d.ts","sourceRoot":"","sources":["../../../../src/cake/extensions/heading/heading.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAKnB,MAAM,oBAAoB,CAAC;AAiV5B,eAAO,MAAM,gBAAgB,EAAE,aA2M9B,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CursorSourceBuilder } from "../../core/mapping/cursor-source-map";
|
|
2
2
|
import { mergeInlineForRender } from "../../dom/render";
|
|
3
|
+
import { getLineBlockContent } from "../shared/line-content";
|
|
3
4
|
const HEADING_KIND = "heading";
|
|
4
5
|
const HEADING_PATTERN = /^(#{1,3}) /;
|
|
5
6
|
function findLineStartInSource(source, sourceOffset) {
|
|
@@ -233,13 +234,18 @@ function handleToggleHeading(state, targetLevel) {
|
|
|
233
234
|
else {
|
|
234
235
|
// Line is not a heading - add the heading marker
|
|
235
236
|
const newMarker = "#".repeat(targetLevel) + " ";
|
|
237
|
+
const lineContentWithoutBlockMarkers = getLineBlockContent(lineContent, runtime);
|
|
236
238
|
newSource =
|
|
237
239
|
source.slice(0, lineStart) +
|
|
238
240
|
newMarker +
|
|
239
|
-
|
|
241
|
+
lineContentWithoutBlockMarkers +
|
|
240
242
|
source.slice(lineEnd);
|
|
241
|
-
|
|
242
|
-
|
|
243
|
+
const removedPrefixLength = lineContent.endsWith(lineContentWithoutBlockMarkers)
|
|
244
|
+
? lineContent.length - lineContentWithoutBlockMarkers.length
|
|
245
|
+
: 0;
|
|
246
|
+
const cursorLineOffset = sourcePos - lineStart;
|
|
247
|
+
const adjustedLineOffset = Math.max(0, cursorLineOffset - Math.min(cursorLineOffset, removedPrefixLength));
|
|
248
|
+
newCursorOffset = lineStart + newMarker.length + adjustedLineOffset;
|
|
243
249
|
}
|
|
244
250
|
// Create new state and map cursor through it
|
|
245
251
|
const next = runtime.createState(newSource);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/cake/extensions/list/list.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAGnB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/cake/extensions/list/list.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAGnB,MAAM,oBAAoB,CAAC;AAknC5B,+CAA+C;AAC/C,MAAM,MAAM,uBAAuB,GAAG;IAAE,IAAI,EAAE,oBAAoB,CAAA;CAAE,CAAC;AAErE,iDAAiD;AACjD,MAAM,MAAM,yBAAyB,GAAG;IAAE,IAAI,EAAE,sBAAsB,CAAA;CAAE,CAAC;AAEzE,kCAAkC;AAClC,MAAM,MAAM,WAAW,GAAG,uBAAuB,GAAG,yBAAyB,CAAC;AAE9E,eAAO,MAAM,sBAAsB,EAAE,aA8HpC,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { mergeInlineForRender } from "../../dom/render";
|
|
2
2
|
import { parseListRange, serializeListRange, convertToPlainText, getLineInfo, getListPrefixLength, isListLine, parseListItem, countNumberedItemsBefore, } from "./list-ast";
|
|
3
|
+
import { getLineBlockContent } from "../shared/line-content";
|
|
3
4
|
// Match list lines - capture exactly one space after marker, rest goes to content
|
|
4
5
|
const LIST_LINE_REGEX = /^(\s*)([-*+]|\d+\.)( )(.*)$/;
|
|
5
6
|
function matchListLine(line) {
|
|
@@ -627,10 +628,16 @@ function handleToggleList(state, isBullet) {
|
|
|
627
628
|
const indentLevel = Math.floor(baseIndent.length / 2);
|
|
628
629
|
let content;
|
|
629
630
|
if (listItem) {
|
|
630
|
-
content =
|
|
631
|
+
content = getLineBlockContent(line, runtime);
|
|
631
632
|
}
|
|
632
633
|
else {
|
|
633
|
-
|
|
634
|
+
const lineContent = getLineBlockContent(line, runtime);
|
|
635
|
+
if (baseIndent.length > 0 && lineContent.startsWith(baseIndent)) {
|
|
636
|
+
content = lineContent.slice(baseIndent.length);
|
|
637
|
+
}
|
|
638
|
+
else {
|
|
639
|
+
content = lineContent;
|
|
640
|
+
}
|
|
634
641
|
}
|
|
635
642
|
let newPrefix;
|
|
636
643
|
if (isBullet) {
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Runtime } from "../../core/runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Extract editable block content from a single source line.
|
|
4
|
+
*
|
|
5
|
+
* This strips structural wrappers (headings, blockquotes, etc.) and list
|
|
6
|
+
* markers so command toggles can convert between block types without leaking
|
|
7
|
+
* source-only marker syntax into the next block.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getLineBlockContent(lineSource: string, runtime: Runtime): string;
|
|
10
|
+
//# sourceMappingURL=line-content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"line-content.d.ts","sourceRoot":"","sources":["../../../../src/cake/extensions/shared/line-content.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAmBlD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAkBhF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { parseListItem } from "../list/list-ast";
|
|
2
|
+
function serializeBlockContent(block, runtime) {
|
|
3
|
+
if (block.type === "paragraph") {
|
|
4
|
+
const doc = { type: "doc", blocks: [block] };
|
|
5
|
+
return runtime.serialize(doc).source;
|
|
6
|
+
}
|
|
7
|
+
if (block.type === "block-wrapper") {
|
|
8
|
+
return block.blocks
|
|
9
|
+
.map((child) => serializeBlockContent(child, runtime))
|
|
10
|
+
.join("\n");
|
|
11
|
+
}
|
|
12
|
+
return "";
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Extract editable block content from a single source line.
|
|
16
|
+
*
|
|
17
|
+
* This strips structural wrappers (headings, blockquotes, etc.) and list
|
|
18
|
+
* markers so command toggles can convert between block types without leaking
|
|
19
|
+
* source-only marker syntax into the next block.
|
|
20
|
+
*/
|
|
21
|
+
export function getLineBlockContent(lineSource, runtime) {
|
|
22
|
+
if (lineSource === "") {
|
|
23
|
+
return "";
|
|
24
|
+
}
|
|
25
|
+
const doc = runtime.parse(lineSource);
|
|
26
|
+
const firstBlock = doc.blocks[0];
|
|
27
|
+
if (!firstBlock) {
|
|
28
|
+
return "";
|
|
29
|
+
}
|
|
30
|
+
const wrapperFreeContent = serializeBlockContent(firstBlock, runtime);
|
|
31
|
+
const listItem = parseListItem(wrapperFreeContent);
|
|
32
|
+
if (listItem) {
|
|
33
|
+
return listItem.content;
|
|
34
|
+
}
|
|
35
|
+
return wrapperFreeContent;
|
|
36
|
+
}
|