@blankdotpage/cake 0.1.77 → 0.1.79-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/cake/core/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../../src/cake/core/runtime.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,6 @@ export function isApplyEditCommand(command) {
19
19
  command.type === "delete-forward");
20
20
  }
21
21
  const defaultSelection = { start: 0, end: 0, affinity: "forward" };
22
- const WORD_CHARACTER_PATTERN = /[\p{L}\p{N}_]/u;
23
22
  function removeFromArray(arr, value) {
24
23
  const index = arr.indexOf(value);
25
24
  if (index === -1) {
@@ -360,17 +359,13 @@ export function createRuntimeFromRegistry(registry) {
360
359
  }
361
360
  content.push(normalizedInline);
362
361
  }
363
- const mergedContent = mergeAdjacentInlines(content);
364
- if (mergedContent !== content) {
365
- changed = true;
366
- }
367
362
  if (!changed) {
368
363
  normalizedBlockCache.set(block, next);
369
364
  return next;
370
365
  }
371
366
  const normalized = {
372
367
  ...next,
373
- content: mergedContent,
368
+ content,
374
369
  };
375
370
  normalizedBlockCache.set(block, normalized);
376
371
  return normalized;
@@ -426,52 +421,17 @@ export function createRuntimeFromRegistry(registry) {
426
421
  }
427
422
  let next = pre;
428
423
  if (next.type === "inline-wrapper") {
429
- const children = mergeAdjacentInlines(next.children
430
- .map((child) => normalizeInline(child))
431
- .filter((child) => child !== null));
432
424
  next = {
433
425
  ...next,
434
- children,
426
+ children: next.children
427
+ .map((child) => normalizeInline(child))
428
+ .filter((child) => child !== null),
435
429
  };
436
430
  }
437
431
  const normalized = applyInlineNormalizers(next);
438
432
  normalizedInlineCache.set(inline, normalized ?? removedInlineSentinel);
439
433
  return normalized;
440
434
  }
441
- function mergeAdjacentInlines(inlines) {
442
- if (inlines.length < 2) {
443
- return inlines;
444
- }
445
- const merged = [];
446
- let changed = false;
447
- for (const inline of inlines) {
448
- const previous = merged[merged.length - 1];
449
- if (previous?.type === "text" && inline.type === "text") {
450
- merged[merged.length - 1] = {
451
- ...previous,
452
- text: previous.text + inline.text,
453
- };
454
- changed = true;
455
- continue;
456
- }
457
- if (previous?.type === "inline-wrapper" &&
458
- inline.type === "inline-wrapper" &&
459
- previous.kind === inline.kind &&
460
- stableStringify(previous.data) === stableStringify(inline.data)) {
461
- merged[merged.length - 1] = {
462
- ...previous,
463
- children: mergeAdjacentInlines([
464
- ...previous.children,
465
- ...inline.children,
466
- ]),
467
- };
468
- changed = true;
469
- continue;
470
- }
471
- merged.push(inline);
472
- }
473
- return changed ? merged : inlines;
474
- }
475
435
  function createTopLevelBlockSegment(block) {
476
436
  const serialized = serializeBlock(block);
477
437
  return {
@@ -623,15 +583,9 @@ export function createRuntimeFromRegistry(registry) {
623
583
  ? previousSegmented
624
584
  : undefined;
625
585
  const segmented = buildSegmentedDocState(normalized, reusablePrevious);
626
- const cursorLength = segmented.map.cursorLength;
627
- const clampedSelection = {
628
- ...selection,
629
- start: Math.max(0, Math.min(cursorLength, selection.start)),
630
- end: Math.max(0, Math.min(cursorLength, selection.end)),
631
- };
632
586
  return {
633
587
  source: segmented.source,
634
- selection: normalizeSelection(clampedSelection),
588
+ selection,
635
589
  map: segmented.map,
636
590
  doc: normalized,
637
591
  runtime: runtime,
@@ -783,8 +737,7 @@ export function createRuntimeFromRegistry(registry) {
783
737
  previousState: useIncrementalSegmentedDerivation ? state : undefined,
784
738
  });
785
739
  const interimAffinity = structural.nextAffinity ?? "forward";
786
- const interimCursor = Math.max(0, Math.min(interim.map.cursorLength, structural.nextCursor));
787
- const caretSource = interim.map.cursorToSource(interimCursor, interimAffinity);
740
+ const caretSource = interim.map.cursorToSource(structural.nextCursor, interimAffinity);
788
741
  if (useIncrementalSegmentedDerivation) {
789
742
  const caretCursor = interim.map.sourceToCursor(caretSource, interimAffinity);
790
743
  return {
@@ -871,27 +824,6 @@ export function createRuntimeFromRegistry(registry) {
871
824
  replaceText.length > 0 &&
872
825
  range.start === range.end &&
873
826
  textModel.getGraphemeAtCursor(range.start) === "\u200B";
874
- if (command.type === "insert" && shouldReplacePlaceholder) {
875
- const leadingWhitespace = replaceText.match(/^\s+/)?.[0] ?? "";
876
- const around = marksAroundCursor(doc, range.start);
877
- if (leadingWhitespace.length > 0) {
878
- if (isMarksPrefix(around.left, around.right) &&
879
- around.right.length > around.left.length) {
880
- const whitespaceInsert = insertTextBeforePendingPlaceholderInDoc(doc, range.start, leadingWhitespace, around.left);
881
- if (whitespaceInsert) {
882
- const trailingText = replaceText.slice(leadingWhitespace.length);
883
- if (trailingText.length === 0) {
884
- return whitespaceInsert;
885
- }
886
- return applyStructuralEdit({ type: "insert", text: trailingText }, whitespaceInsert.doc, {
887
- start: whitespaceInsert.nextCursor,
888
- end: whitespaceInsert.nextCursor,
889
- affinity: whitespaceInsert.nextAffinity,
890
- });
891
- }
892
- }
893
- }
894
- }
895
827
  const effectiveRange = shouldReplacePlaceholder
896
828
  ? { start: range.start, end: Math.min(docCursorLength, range.start + 1) }
897
829
  : range;
@@ -1244,28 +1176,6 @@ export function createRuntimeFromRegistry(registry) {
1244
1176
  }
1245
1177
  return true;
1246
1178
  }
1247
- function removeMarkByKind(marks, kind) {
1248
- let removed = false;
1249
- return marks.filter((mark) => {
1250
- if (!removed && mark.kind === kind) {
1251
- removed = true;
1252
- return false;
1253
- }
1254
- return true;
1255
- });
1256
- }
1257
- function mergeMarksPreservingOrder(...groups) {
1258
- const next = [];
1259
- for (const group of groups) {
1260
- for (const mark of group) {
1261
- if (next.some((existing) => existing.key === mark.key)) {
1262
- continue;
1263
- }
1264
- next.push(mark);
1265
- }
1266
- }
1267
- return next;
1268
- }
1269
1179
  function sliceRuns(runs, startCursor, endCursor) {
1270
1180
  const [left, rest] = splitRunsAt(runs, startCursor);
1271
1181
  const [selected, right] = splitRunsAt(rest, Math.max(0, endCursor - startCursor));
@@ -1374,237 +1284,6 @@ export function createRuntimeFromRegistry(registry) {
1374
1284
  const right = marksAtGraphemeIndex(runs, loc.offsetInLine);
1375
1285
  return { left: left ?? [], right: right ?? [] };
1376
1286
  }
1377
- function createPendingPlaceholderStateAtCursor(state, cursorOffset, marks) {
1378
- const textModel = getEditorTextModelForDoc(state.doc);
1379
- const lines = textModel.getStructuralLines();
1380
- const loc = textModel.resolveOffsetToLine(cursorOffset);
1381
- const line = lines[loc.lineIndex];
1382
- if (!line) {
1383
- return null;
1384
- }
1385
- const block = getBlockAtPath(state.doc.blocks, line.path);
1386
- if (!block || block.type !== "paragraph") {
1387
- return null;
1388
- }
1389
- const placeholder = "\u200B";
1390
- const runs = paragraphToRuns(block);
1391
- const { before, after } = sliceRuns(runs, loc.offsetInLine, loc.offsetInLine);
1392
- const mergedRuns = normalizeRuns([
1393
- ...before,
1394
- { type: "text", text: placeholder, marks },
1395
- ...after,
1396
- ]);
1397
- const nextBlock = {
1398
- ...block,
1399
- content: runsToInlines(mergedRuns),
1400
- };
1401
- const parentPath = line.path.slice(0, -1);
1402
- const indexInParent = line.path[line.path.length - 1] ?? 0;
1403
- const nextDoc = {
1404
- ...state.doc,
1405
- blocks: updateBlocksAtPath(state.doc.blocks, parentPath, (blocks) => blocks.map((child, index) => index === indexInParent ? nextBlock : child)),
1406
- };
1407
- const next = createStateFromDoc(nextDoc);
1408
- const sourceHint = state.map.cursorToSource(cursorOffset, "backward");
1409
- const searchStart = Math.max(0, sourceHint - 4);
1410
- const placeholderStart = next.source.indexOf(placeholder, searchStart) ?? -1;
1411
- const resolvedPlaceholderStart = placeholderStart !== -1 ? placeholderStart : next.source.indexOf(placeholder);
1412
- if (resolvedPlaceholderStart === -1) {
1413
- return null;
1414
- }
1415
- const startCursor = next.map.sourceToCursor(resolvedPlaceholderStart, "forward");
1416
- return {
1417
- ...next,
1418
- selection: {
1419
- start: startCursor.cursorOffset,
1420
- end: startCursor.cursorOffset,
1421
- affinity: "forward",
1422
- },
1423
- };
1424
- }
1425
- function rewritePendingPlaceholderAtCursor(state, cursorOffset, marks) {
1426
- const textModel = getEditorTextModelForDoc(state.doc);
1427
- const lines = textModel.getStructuralLines();
1428
- const loc = textModel.resolveOffsetToLine(cursorOffset);
1429
- const line = lines[loc.lineIndex];
1430
- if (!line) {
1431
- return null;
1432
- }
1433
- const block = getBlockAtPath(state.doc.blocks, line.path);
1434
- if (!block || block.type !== "paragraph") {
1435
- return null;
1436
- }
1437
- const placeholder = "\u200B";
1438
- const runs = paragraphToRuns(block);
1439
- const { before, after } = sliceRuns(runs, loc.offsetInLine, loc.offsetInLine);
1440
- const replacement = [];
1441
- const firstAfter = after[0];
1442
- if (firstAfter?.type === "text" && firstAfter.text.startsWith(placeholder)) {
1443
- if (marks && marks.length > 0) {
1444
- replacement.push({ type: "text", text: placeholder, marks });
1445
- }
1446
- if (firstAfter.text.length > placeholder.length) {
1447
- replacement.push({
1448
- ...firstAfter,
1449
- text: firstAfter.text.slice(placeholder.length),
1450
- });
1451
- }
1452
- replacement.push(...after.slice(1));
1453
- }
1454
- else {
1455
- const lastBefore = before[before.length - 1];
1456
- if (lastBefore?.type !== "text" ||
1457
- !lastBefore.text.endsWith(placeholder)) {
1458
- return null;
1459
- }
1460
- const prefix = lastBefore.text.slice(0, -placeholder.length);
1461
- if (prefix) {
1462
- replacement.push({ ...lastBefore, text: prefix });
1463
- }
1464
- if (marks && marks.length > 0) {
1465
- replacement.push({ type: "text", text: placeholder, marks });
1466
- }
1467
- replacement.push(...after);
1468
- before.pop();
1469
- }
1470
- const mergedRuns = normalizeRuns([...before, ...replacement]);
1471
- const nextBlock = {
1472
- ...block,
1473
- content: runsToInlines(mergedRuns),
1474
- };
1475
- const parentPath = line.path.slice(0, -1);
1476
- const indexInParent = line.path[line.path.length - 1] ?? 0;
1477
- const nextDoc = {
1478
- ...state.doc,
1479
- blocks: updateBlocksAtPath(state.doc.blocks, parentPath, (blocks) => blocks.map((child, index) => index === indexInParent ? nextBlock : child)),
1480
- };
1481
- const next = createStateFromDoc(nextDoc);
1482
- return {
1483
- ...next,
1484
- selection: {
1485
- start: cursorOffset,
1486
- end: cursorOffset,
1487
- affinity: marks && marks.length > 0 ? "forward" : "backward",
1488
- },
1489
- };
1490
- }
1491
- function updatePendingPlaceholderMarksAtCursor(state, cursorOffset, marks) {
1492
- return rewritePendingPlaceholderAtCursor(state, cursorOffset, marks);
1493
- }
1494
- function removePendingPlaceholderAtCursor(state, cursorOffset) {
1495
- return rewritePendingPlaceholderAtCursor(state, cursorOffset, null);
1496
- }
1497
- function getPendingPlaceholderMarksAtCursor(state, cursorOffset) {
1498
- const textModel = getEditorTextModelForDoc(state.doc);
1499
- const lines = textModel.getStructuralLines();
1500
- const loc = textModel.resolveOffsetToLine(cursorOffset);
1501
- const line = lines[loc.lineIndex];
1502
- if (!line) {
1503
- return null;
1504
- }
1505
- const block = getBlockAtPath(state.doc.blocks, line.path);
1506
- if (!block || block.type !== "paragraph") {
1507
- return null;
1508
- }
1509
- const placeholder = "\u200B";
1510
- const runs = paragraphToRuns(block);
1511
- const { before, after } = sliceRuns(runs, loc.offsetInLine, loc.offsetInLine);
1512
- const firstAfter = after[0];
1513
- if (firstAfter?.type === "text" && firstAfter.text.startsWith(placeholder)) {
1514
- return firstAfter.marks;
1515
- }
1516
- const lastBefore = before[before.length - 1];
1517
- if (lastBefore?.type === "text" &&
1518
- lastBefore.text.endsWith(placeholder)) {
1519
- return lastBefore.marks;
1520
- }
1521
- return null;
1522
- }
1523
- function insertTextBeforePendingPlaceholderInDoc(doc, cursorOffset, text, marks) {
1524
- const textModel = getEditorTextModelForDoc(doc);
1525
- const lines = textModel.getStructuralLines();
1526
- const loc = textModel.resolveOffsetToLine(cursorOffset);
1527
- const line = lines[loc.lineIndex];
1528
- if (!line) {
1529
- return null;
1530
- }
1531
- const block = getBlockAtPath(doc.blocks, line.path);
1532
- if (!block || block.type !== "paragraph") {
1533
- return null;
1534
- }
1535
- const placeholder = "\u200B";
1536
- const runs = paragraphToRuns(block);
1537
- const { before, after } = sliceRuns(runs, loc.offsetInLine, loc.offsetInLine);
1538
- const firstAfter = after[0];
1539
- if (firstAfter?.type !== "text" ||
1540
- !firstAfter.text.startsWith(placeholder)) {
1541
- return null;
1542
- }
1543
- const mergedRuns = normalizeRuns([
1544
- ...before,
1545
- ...(text.length > 0 ? [{ type: "text", text, marks }] : []),
1546
- firstAfter,
1547
- ...after.slice(1),
1548
- ]);
1549
- const nextBlock = {
1550
- ...block,
1551
- content: runsToInlines(mergedRuns),
1552
- };
1553
- const parentPath = line.path.slice(0, -1);
1554
- const indexInParent = line.path[line.path.length - 1] ?? 0;
1555
- const nextDoc = {
1556
- ...doc,
1557
- blocks: updateBlocksAtPath(doc.blocks, parentPath, (blocks) => blocks.map((child, index) => index === indexInParent ? nextBlock : child)),
1558
- };
1559
- return {
1560
- doc: nextDoc,
1561
- nextCursor: cursorOffset + Array.from(graphemeSegments(text)).length,
1562
- nextAffinity: "forward",
1563
- };
1564
- }
1565
- function hasInlineMarkerBoundaryBefore(source, markerStart) {
1566
- if (markerStart <= 0) {
1567
- return true;
1568
- }
1569
- return !WORD_CHARACTER_PATTERN.test(source[markerStart - 1] ?? "");
1570
- }
1571
- function pickSafeCollapsedToggleMarkerSpec(params) {
1572
- const { defaultSpec, source, insertAt, affinity } = params;
1573
- const candidates = Array.from(toggleMarkerToSpec.values()).filter((spec, index, all) => spec.kind === defaultSpec.kind &&
1574
- all.findIndex((candidate) => candidate.kind === spec.kind &&
1575
- candidate.open === spec.open &&
1576
- candidate.close === spec.close) === index);
1577
- if (candidates.length <= 1) {
1578
- return defaultSpec;
1579
- }
1580
- const previousChar = source[insertAt - 1] ?? "";
1581
- const nextChar = source[insertAt] ?? "";
1582
- let bestSpec = defaultSpec;
1583
- let bestScore = Number.POSITIVE_INFINITY;
1584
- for (const spec of candidates) {
1585
- if (spec.open === "_" &&
1586
- !hasInlineMarkerBoundaryBefore(source, insertAt)) {
1587
- continue;
1588
- }
1589
- let score = 0;
1590
- if (previousChar && spec.open[0] === previousChar) {
1591
- score += affinity === "forward" ? 8 : 3;
1592
- }
1593
- if (nextChar &&
1594
- spec.close[spec.close.length - 1] === nextChar) {
1595
- score += affinity === "backward" ? 8 : 3;
1596
- }
1597
- if (spec.open === defaultSpec.open &&
1598
- spec.close === defaultSpec.close) {
1599
- score -= 0.5;
1600
- }
1601
- if (score < bestScore) {
1602
- bestSpec = spec;
1603
- bestScore = score;
1604
- }
1605
- }
1606
- return bestSpec;
1607
- }
1608
1287
  function preferredAffinityAtGap(left, right, fallback) {
1609
1288
  if (isMarksPrefix(left, right) && right.length > left.length) {
1610
1289
  return "forward";
@@ -1857,49 +1536,51 @@ export function createRuntimeFromRegistry(registry) {
1857
1536
  const openLen = openMarker.length;
1858
1537
  const closeLen = closeMarker.length;
1859
1538
  const placeholder = "\u200B";
1860
- const markerMark = {
1861
- kind: markerKind,
1862
- data: undefined,
1863
- key: markKey(markerKind, undefined),
1864
- };
1865
1539
  if (selection.start === selection.end) {
1866
1540
  const caret = selection.start;
1867
- const pendingPlaceholderMarks = getPendingPlaceholderMarksAtCursor(state, caret);
1868
- if (pendingPlaceholderMarks) {
1869
- const hasMarker = pendingPlaceholderMarks.some((mark) => mark.kind === markerKind);
1870
- const around = marksAroundCursor(state.doc, caret);
1871
- const nextMarks = hasMarker
1872
- ? removeMarkByKind(pendingPlaceholderMarks, markerKind)
1873
- : mergeMarksPreservingOrder(around.left, pendingPlaceholderMarks, [markerMark]);
1874
- const next = nextMarks.length > 0
1875
- ? updatePendingPlaceholderMarksAtCursor(state, caret, nextMarks)
1876
- : removePendingPlaceholderAtCursor(state, caret);
1877
- if (next) {
1878
- return {
1879
- ...next,
1880
- selection: {
1881
- start: caret,
1882
- end: caret,
1883
- affinity: "forward",
1884
- },
1885
- };
1886
- }
1887
- }
1888
1541
  // When the caret is at the end boundary of an inline wrapper, toggling the
1889
1542
  // wrapper should "exit" it (so the next character types outside). This is
1890
1543
  // best expressed in cursor space by flipping affinity to "forward" when we
1891
1544
  // are leaving a wrapper of the requested kind.
1892
1545
  const around = marksAroundCursor(state.doc, caret);
1893
1546
  if (isMarksPrefix(around.right, around.left) &&
1894
- around.left.length > around.right.length &&
1895
- (selection.affinity ?? "forward") === "backward") {
1547
+ around.left.length > around.right.length) {
1896
1548
  const exiting = around.left.slice(around.right.length);
1897
1549
  if (exiting.some((mark) => mark.kind === markerKind)) {
1898
- const remainingMarks = removeMarkByKind(around.left, markerKind);
1899
- if (!marksEqual(remainingMarks, around.right)) {
1900
- const next = createPendingPlaceholderStateAtCursor(state, caret, remainingMarks);
1901
- if (next) {
1902
- return next;
1550
+ const toggledExitingIndex = exiting.findIndex((mark) => mark.kind === markerKind);
1551
+ if (exiting.length > 1 &&
1552
+ toggledExitingIndex !== -1 &&
1553
+ toggledExitingIndex < exiting.length - 1) {
1554
+ return {
1555
+ ...state,
1556
+ selection: {
1557
+ start: caret,
1558
+ end: caret,
1559
+ affinity: "forward",
1560
+ },
1561
+ };
1562
+ }
1563
+ if (exiting.length > 1) {
1564
+ const insertAtForward = map.cursorToSource(caret, "forward");
1565
+ const insertAtBackward = map.cursorToSource(caret, "backward");
1566
+ const between = source.slice(insertAtBackward, insertAtForward);
1567
+ const markerIndex = between.indexOf(closeMarker);
1568
+ if (markerIndex !== -1) {
1569
+ const insertAt = insertAtBackward + markerIndex + closeLen;
1570
+ const nextSource = source.slice(0, insertAt) +
1571
+ placeholder +
1572
+ source.slice(insertAt);
1573
+ const next = createState(nextSource);
1574
+ const placeholderStart = insertAt;
1575
+ const startCursor = next.map.sourceToCursor(placeholderStart, "forward");
1576
+ return {
1577
+ ...next,
1578
+ selection: {
1579
+ start: startCursor.cursorOffset,
1580
+ end: startCursor.cursorOffset,
1581
+ affinity: "forward",
1582
+ },
1583
+ };
1903
1584
  }
1904
1585
  }
1905
1586
  return {
@@ -1919,20 +1600,6 @@ export function createRuntimeFromRegistry(registry) {
1919
1600
  around.right.length > around.left.length) {
1920
1601
  const entering = around.right.slice(around.left.length);
1921
1602
  if (entering.some((mark) => mark.kind === markerKind)) {
1922
- const remainingMarks = removeMarkByKind(around.right, markerKind);
1923
- const next = remainingMarks.length > 0
1924
- ? updatePendingPlaceholderMarksAtCursor(state, caret, remainingMarks)
1925
- : removePendingPlaceholderAtCursor(state, caret);
1926
- if (next) {
1927
- return {
1928
- ...next,
1929
- selection: {
1930
- start: caret,
1931
- end: caret,
1932
- affinity: "backward",
1933
- },
1934
- };
1935
- }
1936
1603
  const insertAtBackward = map.cursorToSource(caret, "backward");
1937
1604
  const insertAtForward = map.cursorToSource(caret, "forward");
1938
1605
  const after = source.slice(insertAtBackward);
@@ -1991,18 +1658,6 @@ export function createRuntimeFromRegistry(registry) {
1991
1658
  }
1992
1659
  }
1993
1660
  }
1994
- if (isMarksPrefix(around.right, around.left) &&
1995
- around.left.length > around.right.length &&
1996
- (selection.affinity ?? "forward") === "backward" &&
1997
- !around.left.some((mark) => mark.kind === markerKind)) {
1998
- const next = createPendingPlaceholderStateAtCursor(state, caret, [
1999
- ...around.left,
2000
- markerMark,
2001
- ]);
2002
- if (next) {
2003
- return next;
2004
- }
2005
- }
2006
1661
  // Otherwise, insert an empty marker pair with a zero-width placeholder
2007
1662
  // selected so the next typed character replaces it.
2008
1663
  //
@@ -2024,63 +1679,34 @@ export function createRuntimeFromRegistry(registry) {
2024
1679
  return null;
2025
1680
  })();
2026
1681
  // When at a boundary between cursor positions (insertAtBackward !== insertAtForward),
2027
- // only prefer insertAtBackward if the caret is intentionally anchored inside the
2028
- // left formatting context. If the caret affinity is forward, the user explicitly
2029
- // exited that wrapper and new markers belong on the forward side of the gap.
2030
- // Still guard against inserting a longer marker into a shorter boundary run,
2031
- // which would create ambiguous source (e.g., *italic**​***).
1682
+ // prefer insertAtBackward to keep new markers inside the current formatting context.
1683
+ // However, only do this if the new marker length is <= the boundary marker length,
1684
+ // otherwise we create ambiguous marker sequences (e.g., *italic**​*** doesn't parse).
2032
1685
  const betweenLen = insertAtForward - insertAtBackward;
2033
- const preferBackward = insertAtBackward !== insertAtForward &&
2034
- (selection.affinity ?? "forward") === "backward" &&
2035
- openLen <= betweenLen;
1686
+ const preferBackward = insertAtBackward !== insertAtForward && openLen <= betweenLen;
2036
1687
  const insertAt = placeholderPos ?? (preferBackward ? insertAtBackward : insertAtForward);
2037
- const insertMarkerSpec = placeholderPos === null
2038
- ? pickSafeCollapsedToggleMarkerSpec({
2039
- defaultSpec: markerSpec,
2040
- source,
2041
- insertAt,
2042
- affinity: selection.affinity ?? "forward",
2043
- })
2044
- : markerSpec;
2045
- const insertOpenMarker = insertMarkerSpec.open;
2046
- const insertCloseMarker = insertMarkerSpec.close;
2047
- const insertOpenLen = insertOpenMarker.length;
2048
- const baseMarks = (selection.affinity ?? "forward") === "backward"
2049
- ? around.left
2050
- : around.right;
2051
- const nextMarks = [
2052
- ...baseMarks.filter((mark) => mark.kind !== markerKind),
2053
- markerMark,
2054
- ];
2055
- if (placeholderPos !== null) {
2056
- const next = updatePendingPlaceholderMarksAtCursor(state, caret, nextMarks);
2057
- if (next) {
2058
- return next;
2059
- }
2060
- }
2061
- const docInserted = createPendingPlaceholderStateAtCursor(state, caret, nextMarks);
2062
- if (docInserted) {
2063
- return docInserted;
2064
- }
2065
1688
  const nextSource = placeholderPos !== null
2066
1689
  ? source.slice(0, insertAt) +
2067
- insertOpenMarker +
1690
+ openMarker +
2068
1691
  placeholder +
2069
- insertCloseMarker +
1692
+ closeMarker +
2070
1693
  source.slice(insertAt + placeholder.length)
2071
1694
  : source.slice(0, insertAt) +
2072
- insertOpenMarker +
1695
+ openMarker +
2073
1696
  placeholder +
2074
- insertCloseMarker +
1697
+ closeMarker +
2075
1698
  source.slice(insertAt);
2076
1699
  const next = createState(nextSource);
2077
- const placeholderStart = insertAt + insertOpenLen;
1700
+ const placeholderStart = insertAt + openLen;
2078
1701
  const startCursor = next.map.sourceToCursor(placeholderStart, "forward");
2079
- return createStateFromDoc(next.doc, {
2080
- start: startCursor.cursorOffset,
2081
- end: startCursor.cursorOffset,
2082
- affinity: "forward",
2083
- });
1702
+ return {
1703
+ ...next,
1704
+ selection: {
1705
+ start: startCursor.cursorOffset,
1706
+ end: startCursor.cursorOffset,
1707
+ affinity: "forward",
1708
+ },
1709
+ };
2084
1710
  }
2085
1711
  const cursorStart = Math.min(selection.start, selection.end);
2086
1712
  const cursorEnd = Math.max(selection.start, selection.end);
@@ -2142,6 +1768,11 @@ export function createRuntimeFromRegistry(registry) {
2142
1768
  const hasTargetMark = visibleRunsForDecision.some((run) => run.marks.some((mark) => mark.kind === markerKind));
2143
1769
  const canUnwrap = hasTargetMark &&
2144
1770
  visibleRunsForDecision.every((run) => run.marks.some((mark) => mark.kind === markerKind));
1771
+ const markerMark = {
1772
+ kind: markerKind,
1773
+ data: undefined,
1774
+ key: markKey(markerKind, undefined),
1775
+ };
2145
1776
  const removeMark = (marks) => {
2146
1777
  if (!marks.some((mark) => mark.kind === markerKind)) {
2147
1778
  return marks;
@@ -240,6 +240,7 @@ export declare class CakeEditor {
240
240
  replaceText(oldText: string, newText: string): void;
241
241
  setSelection(selection: Selection, options?: {
242
242
  scrollIntoView?: boolean;
243
+ applyDomSelection?: boolean;
243
244
  }): void;
244
245
  setValue({ value, selection }: {
245
246
  value: string;
@@ -280,6 +281,7 @@ export declare class CakeEditor {
280
281
  private getAtomicBlockSelectionFromClick;
281
282
  private handleClick;
282
283
  private handleKeyDown;
284
+ private isAtCollapsedListContentStart;
283
285
  private resolveExtensionKeybinding;
284
286
  private handleCopy;
285
287
  private handleCut;
@@ -1 +1 @@
1
- {"version":3,"file":"cake-editor.d.ts","sourceRoot":"","sources":["../../../src/cake/editor/cake-editor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cake-editor.d.ts","sourceRoot":"","sources":["../../../src/cake/editor/cake-editor.ts"],"names":[],"mappings":"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"}
@@ -7,9 +7,10 @@ import { hitTestFromLayout, measureLayoutModelFromDom, } from "./selection/selec
7
7
  import { moveSelectionVertically as moveSelectionVerticallyInLayout } from "./selection/selection-navigation";
8
8
  import { EditorTextModel, } from "./internal/editor-text-model";
9
9
  import { isMacPlatform } from "../shared/platform";
10
- import { graphemeCount } from "../shared/segmenter";
10
+ import { graphemeCount, graphemeSegments } from "../shared/segmenter";
11
11
  import { getWordBoundaries, nextWordBreak, prevWordBreak, } from "../shared/word-break";
12
12
  import { htmlToMarkdownForPaste } from "../../cake/clipboard";
13
+ const LIST_LINE_PREFIX_REGEX = /^(\s*)([-*+]|\d+\.)( )/;
13
14
  const defaultSelection = { start: 0, end: 0, affinity: "forward" };
14
15
  const COMPOSITION_COMMIT_CLEAR_DELAY_MS = 50;
15
16
  const HISTORY_GROUPING_INTERVAL_MS = 500;
@@ -986,10 +987,11 @@ export class CakeEditor {
986
987
  this.state = this.runtime.updateSelection(this.state, selection, {
987
988
  kind: "programmatic",
988
989
  });
989
- if (!this.isComposing) {
990
+ const shouldApplyDomSelection = options?.applyDomSelection ?? true;
991
+ if (!this.isComposing && shouldApplyDomSelection) {
990
992
  this.applySelection(this.state.selection);
991
993
  }
992
- if (options?.scrollIntoView ?? true) {
994
+ if (shouldApplyDomSelection && (options?.scrollIntoView ?? true)) {
993
995
  this.scheduleScrollCaretIntoView();
994
996
  }
995
997
  }
@@ -999,7 +1001,9 @@ export class CakeEditor {
999
1001
  return;
1000
1002
  }
1001
1003
  if (!valueChanged && selection !== undefined) {
1002
- this.setSelection(selection);
1004
+ this.setSelection(selection, {
1005
+ applyDomSelection: this.hasFocus(),
1006
+ });
1003
1007
  return;
1004
1008
  }
1005
1009
  const nextSelection = selection ?? this.state.selection;
@@ -1926,6 +1930,19 @@ export class CakeEditor {
1926
1930
  });
1927
1931
  return;
1928
1932
  }
1933
+ if (event.key === "Backspace" &&
1934
+ !event.metaKey &&
1935
+ !event.ctrlKey &&
1936
+ !event.altKey &&
1937
+ this.isAtCollapsedListContentStart()) {
1938
+ event.preventDefault();
1939
+ this.keydownHandledBeforeInput = true;
1940
+ this.applyEdit({ type: "delete-backward" });
1941
+ queueMicrotask(() => {
1942
+ this.keydownHandledBeforeInput = false;
1943
+ });
1944
+ return;
1945
+ }
1929
1946
  if (event.key === "ArrowLeft") {
1930
1947
  this.verticalNavGoalX = null;
1931
1948
  if (isLineModifier) {
@@ -2105,6 +2122,27 @@ export class CakeEditor {
2105
2122
  }
2106
2123
  }
2107
2124
  }
2125
+ isAtCollapsedListContentStart() {
2126
+ const selection = this.state.selection;
2127
+ if (selection.start !== selection.end) {
2128
+ return false;
2129
+ }
2130
+ const lineOffsets = this.textModel.getLineOffsets();
2131
+ const { lineIndex, offsetInLine } = this.textModel.resolveOffsetToLine(selection.start);
2132
+ const lineInfo = this.textModel.getLines()[lineIndex];
2133
+ if (!lineInfo) {
2134
+ return false;
2135
+ }
2136
+ const lineStart = lineOffsets[lineIndex] ?? 0;
2137
+ const lineEnd = lineStart + lineInfo.cursorLength;
2138
+ const lineText = this.state.source.slice(lineStart, lineEnd);
2139
+ const match = lineText.match(LIST_LINE_PREFIX_REGEX);
2140
+ if (!match) {
2141
+ return false;
2142
+ }
2143
+ const prefixLength = Array.from(graphemeSegments(match[0])).length;
2144
+ return offsetInLine === prefixLength;
2145
+ }
2108
2146
  resolveExtensionKeybinding(event) {
2109
2147
  const eventKey = event.key.length === 1 ? event.key.toLowerCase() : event.key;
2110
2148
  for (const binding of this.keybindings) {
@@ -2296,6 +2334,12 @@ export class CakeEditor {
2296
2334
  // while our beforeinput-handled suppression window is still active. In that case,
2297
2335
  // we must not drop the edit; reconcile if the DOM diverged from the model.
2298
2336
  if (this.beforeInputHandled) {
2337
+ if (event.inputType === "deleteContentBackward" ||
2338
+ event.inputType === "deleteContentForward" ||
2339
+ event.inputType === "deleteByLineBoundary" ||
2340
+ event.inputType === "deleteByCut") {
2341
+ return;
2342
+ }
2299
2343
  const domText = this.readDomText();
2300
2344
  const modelText = this.textModel.getVisibleText();
2301
2345
  if (domText === modelText) {
@@ -1 +1 @@
1
- {"version":3,"file":"bold.d.ts","sourceRoot":"","sources":["../../../../src/cake/extensions/bold/bold.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAInB,MAAM,oBAAoB,CAAC;AAU5B,eAAO,MAAM,aAAa,EAAE,aA0J3B,CAAC"}
1
+ {"version":3,"file":"bold.d.ts","sourceRoot":"","sources":["../../../../src/cake/extensions/bold/bold.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAInB,MAAM,oBAAoB,CAAC;AAS5B,eAAO,MAAM,aAAa,EAAE,aA6I3B,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import { CursorSourceBuilder } from "../../core/mapping/cursor-source-map";
2
- import { serializeItalicInlineWithMarker } from "../italic/italic";
3
2
  const BOLD_KIND = "bold";
4
3
  export const boldExtension = (editor) => {
5
4
  const disposers = [];
@@ -69,20 +68,10 @@ export const boldExtension = (editor) => {
69
68
  }
70
69
  const builder = new CursorSourceBuilder();
71
70
  builder.appendSourceOnly("**");
72
- const defaultChildResults = inline.children.map((child) => context.serializeInline(child));
73
- let previousSource = "";
74
- inline.children.forEach((child, index) => {
75
- const nextSource = defaultChildResults[index + 1]?.source ?? "";
76
- const serialized = child.type === "inline-wrapper" &&
77
- child.kind === "italic" &&
78
- (previousSource.endsWith("*") ||
79
- nextSource.startsWith("*") ||
80
- (index === 0 && inline.children.length > 1))
81
- ? serializeItalicInlineWithMarker(child, context, "_")
82
- : (defaultChildResults[index] ?? context.serializeInline(child));
71
+ for (const child of inline.children) {
72
+ const serialized = context.serializeInline(child);
83
73
  builder.appendSerialized(serialized);
84
- previousSource = serialized.source;
85
- });
74
+ }
86
75
  builder.appendSourceOnly("**");
87
76
  return builder.build();
88
77
  }));
@@ -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;AAwa5B,eAAO,MAAM,gBAAgB,EAAE,aA8N9B,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;AAwa5B,eAAO,MAAM,gBAAgB,EAAE,aA2N9B,CAAC"}
@@ -351,7 +351,7 @@ export const headingExtension = (editor) => {
351
351
  if (selection.start !== selection.end) {
352
352
  return null;
353
353
  }
354
- const cursorPos = Math.max(0, Math.min(map.cursorLength, selection.start));
354
+ const cursorPos = selection.start;
355
355
  const sourcePos = map.cursorToSource(cursorPos, selection.affinity ?? "forward");
356
356
  const lineStart = findLineStartInSource(source, sourcePos);
357
357
  const prefix = source.slice(lineStart, sourcePos);
@@ -1,9 +1,3 @@
1
- import { type CakeExtension, type SerializeInlineResult } from "../../core/runtime";
2
- import type { Inline } from "../../core/types";
3
- export declare function serializeItalicInlineWithMarker(inline: Inline & {
4
- type: "inline-wrapper";
5
- }, context: {
6
- serializeInline: (inline: Inline) => SerializeInlineResult;
7
- }, marker: "*" | "_"): SerializeInlineResult;
1
+ import { type CakeExtension } from "../../core/runtime";
8
2
  export declare const italicExtension: CakeExtension;
9
3
  //# sourceMappingURL=italic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"italic.d.ts","sourceRoot":"","sources":["../../../../src/cake/extensions/italic/italic.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAIlB,KAAK,qBAAqB,EAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAS,MAAM,EAAE,MAAM,kBAAkB,CAAC;AA+BtD,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,EAC3C,OAAO,EAAE;IACP,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,qBAAqB,CAAC;CAC5D,EACD,MAAM,EAAE,GAAG,GAAG,GAAG,GAChB,qBAAqB,CAGvB;AAmGD,eAAO,MAAM,eAAe,EAAE,aA8J7B,CAAC"}
1
+ {"version":3,"file":"italic.d.ts","sourceRoot":"","sources":["../../../../src/cake/extensions/italic/italic.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAInB,MAAM,oBAAoB,CAAC;AAuC5B,eAAO,MAAM,eAAe,EAAE,aA0I7B,CAAC"}
@@ -1,92 +1,25 @@
1
1
  import { CursorSourceBuilder } from "../../core/mapping/cursor-source-map";
2
2
  import { hasInlineMarkerBoundaryBefore } from "../shared/inline-marker-boundary";
3
3
  const ITALIC_KIND = "italic";
4
- function buildItalicSerialization(childResults, marker) {
5
- const builder = new CursorSourceBuilder();
6
- builder.appendSourceOnly(marker);
7
- for (const child of childResults) {
8
- builder.appendSerialized(child);
9
- }
10
- builder.appendSourceOnly(marker);
11
- return builder.build();
12
- }
13
- function canParseSerializedUnderscoreRun(source, start, close) {
14
- return (source[start + 1] === "*" ||
15
- source[close - 1] === "*" ||
16
- source[close + 1] === "*");
17
- }
18
- export function serializeItalicInlineWithMarker(inline, context, marker) {
19
- const childResults = inline.children.map((child) => context.serializeInline(child));
20
- return buildItalicSerialization(childResults, marker);
21
- }
22
- function serializeInlineSequenceWithSafeItalic(inlines, context) {
23
- const builder = new CursorSourceBuilder();
24
- const defaultResults = inlines.map((inline) => context.serializeInline(inline));
25
- let previousSource = "";
26
- inlines.forEach((inline, index) => {
27
- const nextSource = defaultResults[index + 1]?.source ?? "";
28
- const serialized = inline.type === "inline-wrapper" &&
29
- inline.kind === ITALIC_KIND &&
30
- (previousSource.endsWith("*") || nextSource.startsWith("*"))
31
- ? serializeItalicInlineWithMarker(inline, context, "_")
32
- : (defaultResults[index] ?? context.serializeInline(inline));
33
- builder.appendSerialized(serialized);
34
- previousSource = serialized.source;
35
- });
36
- return builder.build();
37
- }
38
4
  function findItalicClose(source, start, end, marker) {
39
5
  if (marker === "_") {
40
6
  return source.indexOf("_", start + 1);
41
7
  }
8
+ let fallback = -1;
42
9
  for (let i = start + 1; i < end; i += 1) {
43
10
  if (source[i] !== "*") {
44
11
  continue;
45
12
  }
46
- let runStart = i;
47
- while (runStart > start + 1 && source[runStart - 1] === "*") {
48
- runStart -= 1;
49
- }
50
- let runEnd = i;
51
- while (runEnd + 1 < end && source[runEnd + 1] === "*") {
52
- runEnd += 1;
53
- }
54
- const runLength = runEnd - runStart + 1;
55
- if (runLength === 1) {
56
- if (hasUnmatchedBoldRun(source, start + 1, i)) {
57
- continue;
58
- }
13
+ const prevIsStar = source[i - 1] === "*";
14
+ const nextIsStar = source[i + 1] === "*";
15
+ if (!prevIsStar && !nextIsStar) {
59
16
  return i;
60
17
  }
61
- const hasUnmatchedBold = hasUnmatchedBoldRun(source, start + 1, runStart);
62
- const hasBoldCloserAhead = source.indexOf("**", runEnd + 1) !== -1;
63
- if (!hasBoldCloserAhead) {
64
- if (runLength === 2 && hasUnmatchedBold) {
65
- i = runEnd;
66
- continue;
67
- }
68
- if (runLength >= 3 && hasUnmatchedBold) {
69
- return runEnd;
70
- }
71
- return runStart;
18
+ if (fallback === -1) {
19
+ fallback = i;
72
20
  }
73
- i = runEnd;
74
21
  }
75
- return -1;
76
- }
77
- function hasUnmatchedBoldRun(source, start, end) {
78
- let parity = 0;
79
- for (let i = start; i < end; i += 1) {
80
- if (source[i] !== "*" || source[i + 1] !== "*") {
81
- continue;
82
- }
83
- if (source[i - 1] === "*" || source[i + 2] === "*") {
84
- continue;
85
- }
86
- parity ^= 1;
87
- i += 1;
88
- }
89
- return parity === 1;
22
+ return fallback;
90
23
  }
91
24
  export const italicExtension = (editor) => {
92
25
  const disposers = [];
@@ -112,6 +45,9 @@ export const italicExtension = (editor) => {
112
45
  if (char !== "_" && char !== "*") {
113
46
  return null;
114
47
  }
48
+ if (char === "_" && !hasInlineMarkerBoundaryBefore(source, start)) {
49
+ return null;
50
+ }
115
51
  // Don't match ** (that's bold)
116
52
  if (char === "*" && source[start + 1] === "*") {
117
53
  return null;
@@ -126,11 +62,6 @@ export const italicExtension = (editor) => {
126
62
  if (close === -1 || close >= end) {
127
63
  return null;
128
64
  }
129
- if (char === "_" &&
130
- !hasInlineMarkerBoundaryBefore(source, start) &&
131
- !canParseSerializedUnderscoreRun(source, start, close)) {
132
- return null;
133
- }
134
65
  // Don't match empty delimiters like ** that could be start of bold
135
66
  if (close === start + 1 && close + 1 < end) {
136
67
  return null;
@@ -145,22 +76,21 @@ export const italicExtension = (editor) => {
145
76
  nextPos: close + 1,
146
77
  };
147
78
  }));
148
- disposers.push(editor.registerSerializeBlock((block, context) => {
149
- if (block.type !== "paragraph") {
150
- return null;
151
- }
152
- return serializeInlineSequenceWithSafeItalic(block.content, context);
153
- }));
154
79
  disposers.push(editor.registerSerializeInline((inline, context) => {
155
80
  if (inline.type !== "inline-wrapper" || inline.kind !== ITALIC_KIND) {
156
81
  return null;
157
82
  }
158
- const childResults = inline.children.map((child) => context.serializeInline(child));
159
- const firstChildSource = childResults[0]?.source ?? "";
160
- const lastChildSource = childResults[childResults.length - 1]?.source ?? "";
161
- const useUnderscore = childResults.length > 1 &&
162
- (firstChildSource.startsWith("*") || lastChildSource.endsWith("*"));
163
- return buildItalicSerialization(childResults, useUnderscore ? "_" : "*");
83
+ const builder = new CursorSourceBuilder();
84
+ // Use asterisk for serialization to match v1 behavior
85
+ // This prevents issues when typing **bold** where intermediate state
86
+ // *world* would get serialized as _world_ causing marker conversion
87
+ builder.appendSourceOnly("*");
88
+ for (const child of inline.children) {
89
+ const serialized = context.serializeInline(child);
90
+ builder.appendSerialized(serialized);
91
+ }
92
+ builder.appendSourceOnly("*");
93
+ return builder.build();
164
94
  }));
165
95
  disposers.push(editor.registerNormalizeInline((inline) => {
166
96
  if (inline.type !== "inline-wrapper" || inline.kind !== ITALIC_KIND) {
@@ -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;AA2qC5B,+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,aA6LpC,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;AA2qC5B,+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,aA0NpC,CAAC"}
@@ -967,9 +967,9 @@ export const plainTextListExtension = (editor) => {
967
967
  return null;
968
968
  }
969
969
  const contentStart = Math.min(prefixLength, lineCursorLength);
970
+ const selectedContent = lineText.slice(listMatch.prefix.length);
970
971
  const contentHtml = startInLine <= contentStart && endInLine >= lineCursorLength
971
- ? context.state.runtime
972
- .serializeSelectionToHtml(context.state, {
972
+ ? context.state.runtime.serializeSelectionToHtml(context.state, {
973
973
  start: context.line.lineStartOffset +
974
974
  Math.min(contentStart, context.lineCursorLength),
975
975
  end: context.line.lineStartOffset + lineCursorLength,
@@ -981,7 +981,7 @@ export const plainTextListExtension = (editor) => {
981
981
  const type = listMatch.number === null ? "ul" : "ol";
982
982
  const indent = Math.floor(listMatch.indent.length / 2);
983
983
  return {
984
- html: `<li>${contentHtml}</li>`,
984
+ html: `<li>${contentHtml || selectedContent}</li>`,
985
985
  group: {
986
986
  key: `${type}:${indent}`,
987
987
  open: `<${type}>`,
@@ -1005,26 +1005,56 @@ export const plainTextListExtension = (editor) => {
1005
1005
  element.setAttribute("data-line-index", String(context.getLineIndex()));
1006
1006
  element.classList.add("cake-line", "is-list");
1007
1007
  context.incrementLineIndex();
1008
+ const markerPrefix = `${listMatch.marker}${listMatch.space}`;
1009
+ const sourcePrefix = `${listMatch.indent}${markerPrefix}`;
1008
1010
  const indentLevel = Math.floor(listMatch.indent.length / 2);
1011
+ element.style.paddingLeft = "0";
1012
+ element.style.textIndent = "0";
1013
+ element.style.display = "grid";
1014
+ element.style.gridTemplateColumns = "max-content minmax(0, 1fr)";
1015
+ element.style.alignItems = "start";
1016
+ element.style.columnGap = "0";
1009
1017
  if (indentLevel > 0) {
1010
- element.style.setProperty("--cake-list-indent", `${indentLevel * 2}ch`);
1018
+ element.style.paddingLeft = `${indentLevel * 2}ch`;
1011
1019
  }
1012
- const markerPrefix = `${listMatch.marker}${listMatch.space}`;
1013
- element.style.setProperty("--cake-list-marker", `${markerPrefix.length}ch`);
1020
+ const marker = createListMarker({
1021
+ markerPrefix,
1022
+ createTextRun: context.createTextRun,
1023
+ });
1024
+ const content = document.createElement("span");
1025
+ content.setAttribute("data-cake-list-content", "true");
1026
+ content.style.display = "block";
1027
+ content.style.minWidth = "0";
1014
1028
  if (block.content.length === 0) {
1015
1029
  const textNode = document.createTextNode("");
1016
1030
  context.createTextRun(textNode);
1017
- element.append(textNode);
1018
- element.append(document.createElement("br"));
1031
+ content.append(textNode);
1032
+ content.append(document.createElement("br"));
1019
1033
  }
1020
1034
  else {
1021
1035
  const mergedContent = mergeInlineForRender(block.content);
1036
+ let didStripMarker = false;
1022
1037
  for (const inline of mergedContent) {
1038
+ if (!didStripMarker && inline.type === "text") {
1039
+ const trailingText = splitListTextInline({
1040
+ text: inline.text,
1041
+ sourcePrefix,
1042
+ createTextRun: context.createTextRun,
1043
+ });
1044
+ if (trailingText) {
1045
+ if (trailingText.textContent) {
1046
+ content.append(trailingText);
1047
+ }
1048
+ didStripMarker = true;
1049
+ continue;
1050
+ }
1051
+ }
1023
1052
  for (const node of context.renderInline(inline)) {
1024
- element.append(node);
1053
+ content.append(node);
1025
1054
  }
1026
1055
  }
1027
1056
  }
1057
+ element.append(marker, content);
1028
1058
  return element;
1029
1059
  }));
1030
1060
  return () => disposers
@@ -1032,3 +1062,20 @@ export const plainTextListExtension = (editor) => {
1032
1062
  .reverse()
1033
1063
  .forEach((d) => d());
1034
1064
  };
1065
+ function createListMarker(params) {
1066
+ const marker = document.createElement("span");
1067
+ marker.setAttribute("data-cake-list-marker", "true");
1068
+ marker.style.whiteSpace = "pre";
1069
+ const markerText = document.createTextNode(params.markerPrefix);
1070
+ params.createTextRun(markerText);
1071
+ marker.append(markerText);
1072
+ return marker;
1073
+ }
1074
+ function splitListTextInline(params) {
1075
+ if (!params.text.startsWith(params.sourcePrefix)) {
1076
+ return null;
1077
+ }
1078
+ const trailingText = document.createTextNode(params.text.slice(params.sourcePrefix.length));
1079
+ params.createTextRun(trailingText);
1080
+ return trailingText;
1081
+ }
@@ -66,7 +66,6 @@ export interface CakeEditorRef {
66
66
  getSelection: () => {
67
67
  start: number;
68
68
  end: number;
69
- affinity?: "backward" | "forward";
70
69
  } | null;
71
70
  getCursorLength: () => number;
72
71
  insertText: (text: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cake/react/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cake/react/index.tsx"],"names":[],"mappings":"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"}
@@ -216,11 +216,7 @@ export const CakeEditor = forwardRef(function CakeEditor(props, outerRef) {
216
216
  if (!selection) {
217
217
  return null;
218
218
  }
219
- return {
220
- start: selection.start,
221
- end: selection.end,
222
- affinity: selection.affinity,
223
- };
219
+ return { start: selection.start, end: selection.end };
224
220
  },
225
221
  getText: () => engineRef.current?.getText() ?? "",
226
222
  getTextSelection: () => engineRef.current?.getTextSelection() ?? { start: 0, end: 0 },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blankdotpage/cake",
3
- "version": "0.1.77",
3
+ "version": "0.1.79-rc.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",