@blankdotpage/cake 0.1.79-rc.25 → 0.1.79-rc.27

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.
@@ -106,6 +106,10 @@ export type InlineHtmlMark = {
106
106
  export type InlineHtmlSerializer = (mark: InlineHtmlMark, content: string, context: {
107
107
  escapeHtml: (text: string) => string;
108
108
  }) => string | null;
109
+ export type SerializeBlockToHtml = (block: Block, context: {
110
+ escapeHtml: (text: string) => string;
111
+ serializeBlock: (block: Block) => SerializeBlockResult;
112
+ }) => string | null;
109
113
  export type SelectionHtmlGroup = {
110
114
  key: string;
111
115
  open: string;
@@ -175,6 +179,7 @@ export declare function createRuntimeFromRegistry(registry: {
175
179
  domInlineRenderers: DomInlineRenderer[];
176
180
  domBlockRenderers: DomBlockRenderer[];
177
181
  inlineHtmlSerializers: InlineHtmlSerializer[];
182
+ serializeBlockToHtmlFns: SerializeBlockToHtml[];
178
183
  serializeSelectionLineToHtmlFns: SerializeSelectionLineToHtml[];
179
184
  }): Runtime;
180
185
  //# sourceMappingURL=runtime.d.ts.map
@@ -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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"}
@@ -41,6 +41,7 @@ export function createRuntimeForTests(extensions) {
41
41
  const domInlineRenderers = [];
42
42
  const domBlockRenderers = [];
43
43
  const inlineHtmlSerializers = [];
44
+ const serializeBlockToHtmlFns = [];
44
45
  const serializeSelectionLineToHtmlFns = [];
45
46
  const editor = {
46
47
  registerInlineWrapperAffinity: (specs) => {
@@ -134,6 +135,10 @@ export function createRuntimeForTests(extensions) {
134
135
  inlineHtmlSerializers.push(fn);
135
136
  return () => removeFromArray(inlineHtmlSerializers, fn);
136
137
  },
138
+ registerSerializeBlockToHtml: (fn) => {
139
+ serializeBlockToHtmlFns.push(fn);
140
+ return () => removeFromArray(serializeBlockToHtmlFns, fn);
141
+ },
137
142
  registerSerializeSelectionLineToHtml: (fn) => {
138
143
  serializeSelectionLineToHtmlFns.push(fn);
139
144
  return () => removeFromArray(serializeSelectionLineToHtmlFns, fn);
@@ -159,12 +164,13 @@ export function createRuntimeForTests(extensions) {
159
164
  domInlineRenderers,
160
165
  domBlockRenderers,
161
166
  inlineHtmlSerializers,
167
+ serializeBlockToHtmlFns,
162
168
  serializeSelectionLineToHtmlFns,
163
169
  });
164
170
  return runtime;
165
171
  }
166
172
  export function createRuntimeFromRegistry(registry) {
167
- const { toggleMarkerToSpec, inclusiveAtEndByKind, parseBlockFns, parseInlineFns, serializeBlockFns, serializeInlineFns, normalizeBlockFns, normalizeInlineFns, onEditFns, structuralReparsePolicies, domInlineRenderers, domBlockRenderers, inlineHtmlSerializers, serializeSelectionLineToHtmlFns, } = registry;
173
+ const { toggleMarkerToSpec, inclusiveAtEndByKind, parseBlockFns, parseInlineFns, serializeBlockFns, serializeInlineFns, normalizeBlockFns, normalizeInlineFns, onEditFns, structuralReparsePolicies, domInlineRenderers, domBlockRenderers, inlineHtmlSerializers, serializeBlockToHtmlFns, serializeSelectionLineToHtmlFns, } = registry;
168
174
  const isInclusiveAtEnd = (kind) => inclusiveAtEndByKind.get(kind) ?? true;
169
175
  const removedBlockSentinel = Symbol("removed-block");
170
176
  const removedInlineSentinel = Symbol("removed-inline");
@@ -1074,8 +1080,7 @@ export function createRuntimeFromRegistry(registry) {
1074
1080
  };
1075
1081
  }
1076
1082
  // Backspace at the start of a paragraph immediately after an atomic block
1077
- // swaps the paragraph above the atomic block (so the paragraph "moves up"
1078
- // and the atomic block "moves down").
1083
+ // deletes the atomic block and keeps the paragraph in place.
1079
1084
  if (command.type === "delete-backward" &&
1080
1085
  startBlock.type === "paragraph" &&
1081
1086
  startLoc.offsetInLine === 0 &&
@@ -1085,18 +1090,13 @@ export function createRuntimeFromRegistry(registry) {
1085
1090
  prevLine.block.type === "block-atom" &&
1086
1091
  pathsEqual(prevLine.parentPath, startLine.parentPath) &&
1087
1092
  prevLine.indexInParent === startLine.indexInParent - 1) {
1088
- const imageIndex = prevLine.indexInParent;
1089
- const paragraphIndex = startLine.indexInParent;
1090
- const nextParentBlocks = parentBlocks.slice();
1091
- const temp = nextParentBlocks[imageIndex];
1092
- nextParentBlocks[imageIndex] = nextParentBlocks[paragraphIndex];
1093
- nextParentBlocks[paragraphIndex] = temp;
1093
+ const blockAtomIndex = prevLine.indexInParent;
1094
+ const nextParentBlocks = parentBlocks.filter((_, i) => i !== blockAtomIndex);
1094
1095
  const nextDoc = {
1095
1096
  ...doc,
1096
1097
  blocks: updateBlocksAtPath(doc.blocks, parentPath, () => nextParentBlocks),
1097
1098
  };
1098
1099
  const nextModel = getEditorTextModelForDoc(nextDoc);
1099
- const nextLines = nextModel.getStructuralLines();
1100
1100
  const lineStarts = nextModel.getLineOffsets();
1101
1101
  const nextLineIndex = Math.max(0, startLoc.lineIndex - 1);
1102
1102
  return {
@@ -2342,23 +2342,20 @@ export function createRuntimeFromRegistry(registry) {
2342
2342
  const docCursorLength = textModel.getCursorLength();
2343
2343
  const cursorStart = Math.max(0, Math.min(docCursorLength, Math.min(normalized.start, normalized.end)));
2344
2344
  const cursorEnd = Math.max(0, Math.min(docCursorLength, Math.max(normalized.start, normalized.end)));
2345
- if (cursorStart === cursorEnd) {
2345
+ const isStandaloneAtomicSelection = lines.some((line) => {
2346
+ const block = line.block;
2347
+ const lineStart = line.lineStartOffset;
2348
+ const lineEnd = lineStart + line.cursorLength + (line.hasNewline ? 1 : 0);
2349
+ return (block.type === "block-atom" &&
2350
+ cursorStart === cursorEnd &&
2351
+ cursorStart === lineStart &&
2352
+ cursorEnd === lineEnd);
2353
+ });
2354
+ if (cursorStart === cursorEnd && !isStandaloneAtomicSelection) {
2346
2355
  return "";
2347
2356
  }
2348
2357
  const startLoc = textModel.resolveOffsetToLine(cursorStart);
2349
2358
  const endLoc = textModel.resolveOffsetToLine(cursorEnd);
2350
- function getSelectedWrapperBlock(params) {
2351
- const { line, startInLine, endInLine } = params;
2352
- if (!line || startInLine !== 0 || endInLine !== line.cursorLength) {
2353
- return null;
2354
- }
2355
- if (line.path.length <= 1) {
2356
- return null;
2357
- }
2358
- const wrapperPath = line.path.slice(0, -1);
2359
- const wrapper = getBlockAtPath(state.doc.blocks, wrapperPath);
2360
- return wrapper?.type === "block-wrapper" ? wrapper : null;
2361
- }
2362
2359
  const blocks = [];
2363
2360
  for (let lineIndex = startLoc.lineIndex; lineIndex <= endLoc.lineIndex; lineIndex += 1) {
2364
2361
  const line = lines[lineIndex];
@@ -2366,7 +2363,22 @@ export function createRuntimeFromRegistry(registry) {
2366
2363
  continue;
2367
2364
  }
2368
2365
  const block = line.block;
2369
- if (!block || block.type !== "paragraph") {
2366
+ const lineStart = line.lineStartOffset;
2367
+ const lineEnd = lineStart + line.cursorLength + (line.hasNewline ? 1 : 0);
2368
+ const selectsStandaloneAtomicLine = block.type === "block-atom" &&
2369
+ cursorStart === cursorEnd &&
2370
+ cursorStart === lineStart &&
2371
+ cursorEnd === lineEnd;
2372
+ const lineSelected = selectsStandaloneAtomicLine ||
2373
+ (cursorStart < lineEnd && cursorEnd > lineStart);
2374
+ if (!lineSelected) {
2375
+ continue;
2376
+ }
2377
+ if (block.type === "block-atom") {
2378
+ blocks.push(block);
2379
+ continue;
2380
+ }
2381
+ if (block.type !== "paragraph") {
2370
2382
  continue;
2371
2383
  }
2372
2384
  const runs = paragraphToRuns(block);
@@ -2377,19 +2389,19 @@ export function createRuntimeFromRegistry(registry) {
2377
2389
  const selectedRuns = sliceRuns(runs, startInLine, endInLine).selected;
2378
2390
  const content = runsToInlines(normalizeRuns(selectedRuns));
2379
2391
  const paragraph = { type: "paragraph", content };
2380
- const wrapper = getSelectedWrapperBlock({
2381
- line,
2382
- startInLine,
2383
- endInLine,
2384
- });
2385
- if (wrapper) {
2386
- blocks.push({
2387
- type: "block-wrapper",
2388
- kind: wrapper.kind,
2389
- data: wrapper.data,
2390
- blocks: [paragraph],
2391
- });
2392
- continue;
2392
+ // Check if this line is inside a block-wrapper (e.g., heading)
2393
+ if (line.path.length > 1) {
2394
+ const wrapperPath = line.path.slice(0, -1);
2395
+ const wrapper = getBlockAtPath(state.doc.blocks, wrapperPath);
2396
+ if (wrapper && wrapper.type === "block-wrapper") {
2397
+ blocks.push({
2398
+ type: "block-wrapper",
2399
+ kind: wrapper.kind,
2400
+ data: wrapper.data,
2401
+ blocks: [paragraph],
2402
+ });
2403
+ continue;
2404
+ }
2393
2405
  }
2394
2406
  blocks.push(paragraph);
2395
2407
  }
@@ -2433,23 +2445,20 @@ export function createRuntimeFromRegistry(registry) {
2433
2445
  const docCursorLength = textModel.getCursorLength();
2434
2446
  const cursorStart = Math.max(0, Math.min(docCursorLength, Math.min(normalized.start, normalized.end)));
2435
2447
  const cursorEnd = Math.max(0, Math.min(docCursorLength, Math.max(normalized.start, normalized.end)));
2436
- if (cursorStart === cursorEnd) {
2448
+ const isStandaloneAtomicSelection = lines.some((line) => {
2449
+ const block = line.block;
2450
+ const lineStart = line.lineStartOffset;
2451
+ const lineEnd = lineStart + line.cursorLength + (line.hasNewline ? 1 : 0);
2452
+ return (block.type === "block-atom" &&
2453
+ cursorStart === cursorEnd &&
2454
+ cursorStart === lineStart &&
2455
+ cursorEnd === lineEnd);
2456
+ });
2457
+ if (cursorStart === cursorEnd && !isStandaloneAtomicSelection) {
2437
2458
  return "";
2438
2459
  }
2439
2460
  const startLoc = textModel.resolveOffsetToLine(cursorStart);
2440
2461
  const endLoc = textModel.resolveOffsetToLine(cursorEnd);
2441
- function getSelectedWrapperBlock(params) {
2442
- const { line, startInLine, endInLine } = params;
2443
- if (!line || startInLine !== 0 || endInLine !== line.cursorLength) {
2444
- return null;
2445
- }
2446
- if (line.path.length <= 1) {
2447
- return null;
2448
- }
2449
- const wrapperPath = line.path.slice(0, -1);
2450
- const wrapper = getBlockAtPath(state.doc.blocks, wrapperPath);
2451
- return wrapper?.type === "block-wrapper" ? wrapper : null;
2452
- }
2453
2462
  let html = "";
2454
2463
  let activeGroup = null;
2455
2464
  const closeGroup = () => {
@@ -2465,7 +2474,37 @@ export function createRuntimeFromRegistry(registry) {
2465
2474
  continue;
2466
2475
  }
2467
2476
  const block = line.block;
2468
- if (!block || block.type !== "paragraph") {
2477
+ const lineStart = line.lineStartOffset;
2478
+ const lineEnd = lineStart + line.cursorLength + (line.hasNewline ? 1 : 0);
2479
+ const selectsStandaloneAtomicLine = block.type === "block-atom" &&
2480
+ cursorStart === cursorEnd &&
2481
+ cursorStart === lineStart &&
2482
+ cursorEnd === lineEnd;
2483
+ const lineSelected = selectsStandaloneAtomicLine ||
2484
+ (cursorStart < lineEnd && cursorEnd > lineStart);
2485
+ if (!lineSelected) {
2486
+ continue;
2487
+ }
2488
+ if (block.type === "block-atom") {
2489
+ closeGroup();
2490
+ let blockHtml = null;
2491
+ for (const serializeBlockToHtml of serializeBlockToHtmlFns) {
2492
+ blockHtml = serializeBlockToHtml(block, {
2493
+ escapeHtml,
2494
+ serializeBlock,
2495
+ });
2496
+ if (blockHtml !== null) {
2497
+ break;
2498
+ }
2499
+ }
2500
+ if (blockHtml === null) {
2501
+ const markdown = serializeBlock(block).source;
2502
+ blockHtml = markdown ? `<div>${escapeHtml(markdown)}</div>` : "";
2503
+ }
2504
+ html += blockHtml;
2505
+ continue;
2506
+ }
2507
+ if (block.type !== "paragraph") {
2469
2508
  continue;
2470
2509
  }
2471
2510
  const runs = paragraphToRuns(block);
@@ -2478,11 +2517,14 @@ export function createRuntimeFromRegistry(registry) {
2478
2517
  const lineText = runs
2479
2518
  .map((r) => (r.type === "text" ? r.text : " "))
2480
2519
  .join("");
2481
- const wrapperBlock = getSelectedWrapperBlock({
2482
- line,
2483
- startInLine,
2484
- endInLine,
2485
- });
2520
+ let wrapperBlock = null;
2521
+ if (line.path.length > 1) {
2522
+ const wrapperPath = line.path.slice(0, -1);
2523
+ const wrapper = getBlockAtPath(state.doc.blocks, wrapperPath);
2524
+ if (wrapper && wrapper.type === "block-wrapper") {
2525
+ wrapperBlock = wrapper;
2526
+ }
2527
+ }
2486
2528
  let lineResult = null;
2487
2529
  for (const serializeLineToHtml of serializeSelectionLineToHtmlFns) {
2488
2530
  lineResult = serializeLineToHtml({
@@ -1,5 +1,5 @@
1
1
  import type { Block, Inline, Selection } from "../core/types";
2
- import { type EditCommand, type KeyBinding, type ParseBlockResult, type ParseInlineResult, type SerializeBlockResult, type SerializeInlineResult, type RuntimeState, type StructuralReparsePolicy, type ToggleInlineSpec, type DomBlockRenderer, type DomInlineRenderer, type ExtensionContext, type InlineWrapperAffinity, type InlineHtmlSerializer, type SerializeSelectionLineToHtml, type EditResult } from "../core/runtime";
2
+ import { type EditCommand, type KeyBinding, type ParseBlockResult, type ParseInlineResult, type SerializeBlockResult, type SerializeInlineResult, type RuntimeState, type StructuralReparsePolicy, type ToggleInlineSpec, type DomBlockRenderer, type DomInlineRenderer, type ExtensionContext, type InlineWrapperAffinity, type InlineHtmlSerializer, type SerializeBlockToHtml, type SerializeSelectionLineToHtml, type EditResult } from "../core/runtime";
3
3
  import type { CakeExtension, CakeUIComponent } from "./extension-types";
4
4
  import type { SelectionRect } from "./selection/selection-geometry";
5
5
  import { type LineInfo } from "./internal/editor-text-model";
@@ -50,6 +50,7 @@ export declare class CakeEditor {
50
50
  private domInlineRenderers;
51
51
  private domBlockRenderers;
52
52
  private inlineHtmlSerializers;
53
+ private serializeBlockToHtmlFns;
53
54
  private serializeSelectionLineToHtmlFns;
54
55
  private uiComponents;
55
56
  private extensionDisposers;
@@ -171,6 +172,7 @@ export declare class CakeEditor {
171
172
  registerInlineRenderer(fn: DomInlineRenderer): () => void;
172
173
  registerBlockRenderer(fn: DomBlockRenderer): () => void;
173
174
  registerInlineHtmlSerializer(fn: InlineHtmlSerializer): () => void;
175
+ registerSerializeBlockToHtml(fn: SerializeBlockToHtml): () => void;
174
176
  registerSerializeSelectionLineToHtml(fn: SerializeSelectionLineToHtml): () => void;
175
177
  registerUI(component: CakeUIComponent): () => void;
176
178
  destroy(): void;
@@ -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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"}
@@ -122,6 +122,7 @@ export class CakeEditor {
122
122
  this.domInlineRenderers = [];
123
123
  this.domBlockRenderers = [];
124
124
  this.inlineHtmlSerializers = [];
125
+ this.serializeBlockToHtmlFns = [];
125
126
  this.serializeSelectionLineToHtmlFns = [];
126
127
  this.uiComponents = [];
127
128
  this.extensionDisposers = [];
@@ -261,6 +262,7 @@ export class CakeEditor {
261
262
  domInlineRenderers: this.domInlineRenderers,
262
263
  domBlockRenderers: this.domBlockRenderers,
263
264
  inlineHtmlSerializers: this.inlineHtmlSerializers,
265
+ serializeBlockToHtmlFns: this.serializeBlockToHtmlFns,
264
266
  serializeSelectionLineToHtmlFns: this.serializeSelectionLineToHtmlFns,
265
267
  });
266
268
  this.installExtensions(options.extensions ?? bundledExtensions);
@@ -395,6 +397,10 @@ export class CakeEditor {
395
397
  this.inlineHtmlSerializers.push(fn);
396
398
  return () => removeFromArray(this.inlineHtmlSerializers, fn);
397
399
  }
400
+ registerSerializeBlockToHtml(fn) {
401
+ this.serializeBlockToHtmlFns.push(fn);
402
+ return () => removeFromArray(this.serializeBlockToHtmlFns, fn);
403
+ }
398
404
  registerSerializeSelectionLineToHtml(fn) {
399
405
  this.serializeSelectionLineToHtmlFns.push(fn);
400
406
  return () => removeFromArray(this.serializeSelectionLineToHtmlFns, fn);
@@ -2640,40 +2646,32 @@ export class CakeEditor {
2640
2646
  const prev = lineIndex > 0 ? lines[lineIndex - 1] : null;
2641
2647
  const current = lines[lineIndex] ?? null;
2642
2648
  const next = lineIndex + 1 < lines.length ? lines[lineIndex + 1] : null;
2643
- // v1 behavior:
2644
- // - Backspace at start of a line immediately after an atomic block swaps the text line above the atomic.
2645
- // - If the caret is on the atomic line start (browser/measurement edge cases), apply the swap with the next line.
2646
- let swapA = null;
2647
- let swapB = null;
2649
+ // Delete the neighboring atomic line when backspacing from the start of the
2650
+ // following text line, or when the caret lands on the atomic line itself.
2651
+ let deleteLineIndex = null;
2648
2652
  if (prev?.isAtomic) {
2649
- swapA = lineIndex - 1;
2650
- swapB = lineIndex;
2653
+ deleteLineIndex = lineIndex - 1;
2651
2654
  }
2652
2655
  else if (current?.isAtomic && next && !next.isAtomic) {
2653
- swapA = lineIndex;
2654
- swapB = lineIndex + 1;
2656
+ deleteLineIndex = lineIndex;
2655
2657
  }
2656
2658
  else {
2657
2659
  return false;
2658
2660
  }
2659
2661
  const sourceLines = this.state.source.split("\n");
2660
- if (swapA < 0 ||
2661
- swapB < 0 ||
2662
- swapA >= sourceLines.length ||
2663
- swapB >= sourceLines.length) {
2662
+ if (deleteLineIndex < 0 ||
2663
+ deleteLineIndex >= sourceLines.length) {
2664
2664
  return false;
2665
2665
  }
2666
- const aSource = sourceLines[swapA];
2667
- const bSource = sourceLines[swapB];
2668
- if (aSource === undefined || bSource === undefined) {
2666
+ const deletedLine = sourceLines[deleteLineIndex];
2667
+ if (deletedLine === undefined) {
2669
2668
  return false;
2670
2669
  }
2671
- sourceLines[swapA] = bSource;
2672
- sourceLines[swapB] = aSource;
2670
+ sourceLines.splice(deleteLineIndex, 1);
2673
2671
  const newSource = sourceLines.join("\n");
2674
2672
  const nextState = this.runtime.createState(newSource);
2675
2673
  let lineStartSource = 0;
2676
- for (let index = 0; index < swapA; index += 1) {
2674
+ for (let index = 0; index < deleteLineIndex; index += 1) {
2677
2675
  lineStartSource += (sourceLines[index]?.length ?? 0) + 1;
2678
2676
  }
2679
2677
  const cursorPos = nextState.map.sourceToCursor(lineStartSource, "forward").cursorOffset;
@@ -152,7 +152,7 @@ function measureLineRows(params) {
152
152
  {
153
153
  startOffset: 0,
154
154
  endOffset: 0,
155
- rect: { ...fallbackLineBox, width: 0 },
155
+ rect: fallbackLineBox,
156
156
  },
157
157
  ];
158
158
  }
@@ -0,0 +1,3 @@
1
+ import { type CakeExtension } from "../../core/runtime";
2
+ export declare const dividerExtension: CakeExtension;
3
+ //# sourceMappingURL=divider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"divider.d.ts","sourceRoot":"","sources":["../../../../src/cake/extensions/divider/divider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAInB,MAAM,oBAAoB,CAAC;AA2C5B,eAAO,MAAM,gBAAgB,EAAE,aA8H9B,CAAC"}
@@ -0,0 +1,114 @@
1
+ import { CursorSourceBuilder } from "../../core/mapping/cursor-source-map";
2
+ const DIVIDER_KIND = "divider";
3
+ const DIVIDER_PATTERN = /^-{3,}$/;
4
+ function findLineStartInSource(source, sourceOffset) {
5
+ let lineStart = sourceOffset;
6
+ while (lineStart > 0 && source[lineStart - 1] !== "\n") {
7
+ lineStart -= 1;
8
+ }
9
+ return lineStart;
10
+ }
11
+ function handleDividerAutoformat(source, sourcePos) {
12
+ const lineStart = findLineStartInSource(source, sourcePos);
13
+ let lineEnd = source.indexOf("\n", sourcePos);
14
+ if (lineEnd === -1) {
15
+ lineEnd = source.length;
16
+ }
17
+ if (source.slice(lineStart, sourcePos) !== "--") {
18
+ return null;
19
+ }
20
+ if (source.slice(sourcePos, lineEnd) !== "") {
21
+ return null;
22
+ }
23
+ const lineReplacement = lineEnd === source.length ? "---\n" : "---";
24
+ const nextSource = source.slice(0, lineStart) + lineReplacement + source.slice(lineEnd);
25
+ return {
26
+ nextSource,
27
+ nextSourceCursor: lineStart + lineReplacement.length,
28
+ };
29
+ }
30
+ export const dividerExtension = (editor) => {
31
+ const disposers = [];
32
+ disposers.push(editor.registerParseBlock((source, start) => {
33
+ let lineEnd = source.indexOf("\n", start);
34
+ if (lineEnd === -1) {
35
+ lineEnd = source.length;
36
+ }
37
+ const line = source.slice(start, lineEnd).trim();
38
+ if (!DIVIDER_PATTERN.test(line)) {
39
+ return null;
40
+ }
41
+ return {
42
+ block: {
43
+ type: "block-atom",
44
+ kind: DIVIDER_KIND,
45
+ },
46
+ nextPos: lineEnd,
47
+ };
48
+ }));
49
+ disposers.push(editor.registerSerializeBlock((block) => {
50
+ if (block.type !== "block-atom" || block.kind !== DIVIDER_KIND) {
51
+ return null;
52
+ }
53
+ const builder = new CursorSourceBuilder();
54
+ builder.appendSourceOnly("---");
55
+ return builder.build();
56
+ }));
57
+ disposers.push(editor.registerNormalizeBlock((block) => {
58
+ if (block.type !== "block-atom" || block.kind !== DIVIDER_KIND) {
59
+ return block;
60
+ }
61
+ return block;
62
+ }));
63
+ disposers.push(editor.registerBlockRenderer((block, context) => {
64
+ if (block.type !== "block-atom" || block.kind !== DIVIDER_KIND) {
65
+ return null;
66
+ }
67
+ const element = document.createElement("div");
68
+ element.setAttribute("data-block-atom", DIVIDER_KIND);
69
+ element.setAttribute("data-block-extension", DIVIDER_KIND);
70
+ element.setAttribute("data-line-index", String(context.getLineIndex()));
71
+ element.classList.add("cake-line");
72
+ context.incrementLineIndex();
73
+ element.setAttribute("contenteditable", "false");
74
+ const divider = document.createElement("hr");
75
+ divider.className = "cake-divider";
76
+ element.appendChild(divider);
77
+ return element;
78
+ }));
79
+ disposers.push(editor.registerSerializeBlockToHtml((block) => {
80
+ if (block.type !== "block-atom" || block.kind !== DIVIDER_KIND) {
81
+ return null;
82
+ }
83
+ return "<hr>";
84
+ }));
85
+ disposers.push(editor.registerOnEdit((command, state) => {
86
+ if (command.type !== "insert" || command.text !== "-") {
87
+ return null;
88
+ }
89
+ const { source, selection, map, runtime } = state;
90
+ if (selection.start !== selection.end) {
91
+ return null;
92
+ }
93
+ const cursorPos = Math.max(0, Math.min(map.cursorLength, selection.start));
94
+ const sourcePos = map.cursorToSource(cursorPos, selection.affinity ?? "forward");
95
+ const autoformat = handleDividerAutoformat(source, sourcePos);
96
+ if (!autoformat) {
97
+ return null;
98
+ }
99
+ const next = runtime.createState(autoformat.nextSource);
100
+ const caretCursor = next.map.sourceToCursor(autoformat.nextSourceCursor, "forward");
101
+ return {
102
+ source: autoformat.nextSource,
103
+ selection: {
104
+ start: caretCursor.cursorOffset,
105
+ end: caretCursor.cursorOffset,
106
+ affinity: caretCursor.affinity,
107
+ },
108
+ };
109
+ }));
110
+ return () => disposers
111
+ .splice(0)
112
+ .reverse()
113
+ .forEach((d) => d());
114
+ };
@@ -0,0 +1,2 @@
1
+ export { dividerExtension } from "./divider";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cake/extensions/divider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1 @@
1
+ export { dividerExtension } from "./divider";
@@ -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;AAwc5B,eAAO,MAAM,gBAAgB,EAAE,aAwQ9B,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;AAqd5B,eAAO,MAAM,gBAAgB,EAAE,aAwQ9B,CAAC"}
@@ -179,6 +179,15 @@ function getNormalizedHeadingPasteText(text, state) {
179
179
  if (!currentHeading) {
180
180
  return null;
181
181
  }
182
+ const contentStart = lineStart + currentHeading[0].length;
183
+ const contentBeforeCursor = source.slice(contentStart, sourcePos);
184
+ const contentAfterCursor = source.slice(sourcePos, lineEnd);
185
+ const isEmptyHeadingPlaceholder = contentBeforeCursor.trim() === "" && contentAfterCursor.trim() === "";
186
+ const isMarkerLikeHeadingPrefix = /^(?:#{1,6}\s*)+$/.test(contentBeforeCursor) &&
187
+ contentAfterCursor.trim() === "";
188
+ if (!isEmptyHeadingPlaceholder && !isMarkerLikeHeadingPrefix) {
189
+ return null;
190
+ }
182
191
  return headingMatch[2];
183
192
  }
184
193
  function handleLineBreakInHeading(state) {
@@ -3,6 +3,7 @@ import { combinedEmphasisExtension } from "./combined-emphasis/combined-emphasis
3
3
  import { linkExtension } from "./link/link";
4
4
  export type { OnRequestLinkInput, LinkExtensionOptions } from "./link/link";
5
5
  import { blockquoteExtension } from "./blockquote/blockquote";
6
+ import { dividerExtension } from "./divider/divider";
6
7
  import { italicExtension } from "./italic/italic";
7
8
  import { headingExtension } from "./heading/heading";
8
9
  import { imageExtension } from "./image/image";
@@ -12,7 +13,7 @@ import { strikethroughExtension } from "./strikethrough/strikethrough";
12
13
  import { underlineExtension } from "./underline/underline";
13
14
  import { mentionExtension } from "./mention/mention";
14
15
  import { structuralReparsePolicyExtension } from "./shared/structural-reparse-policy";
15
- export { boldExtension, combinedEmphasisExtension, linkExtension, blockquoteExtension, italicExtension, headingExtension, imageExtension, plainTextListExtension, scrollbarExtension, strikethroughExtension, underlineExtension, mentionExtension, structuralReparsePolicyExtension, };
16
+ export { boldExtension, combinedEmphasisExtension, linkExtension, blockquoteExtension, dividerExtension, italicExtension, headingExtension, imageExtension, plainTextListExtension, scrollbarExtension, strikethroughExtension, underlineExtension, mentionExtension, structuralReparsePolicyExtension, };
16
17
  export declare const bundledExtensionsWithoutImage: import("../..").CakeExtension[];
17
18
  export declare const bundledExtensions: import("../..").CakeExtension[];
18
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cake/extensions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AAEtF,OAAO,EACL,aAAa,EACb,yBAAyB,EACzB,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,gCAAgC,GACjC,CAAC;AAEF,eAAO,MAAM,6BAA6B,iCAWzC,CAAC;AAEF,eAAO,MAAM,iBAAiB,iCAG7B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cake/extensions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AAEtF,OAAO,EACL,aAAa,EACb,yBAAyB,EACzB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,gCAAgC,GACjC,CAAC;AAEF,eAAO,MAAM,6BAA6B,iCAYzC,CAAC;AAEF,eAAO,MAAM,iBAAiB,iCAG7B,CAAC"}
@@ -2,6 +2,7 @@ import { boldExtension } from "./bold/bold";
2
2
  import { combinedEmphasisExtension } from "./combined-emphasis/combined-emphasis";
3
3
  import { linkExtension } from "./link/link";
4
4
  import { blockquoteExtension } from "./blockquote/blockquote";
5
+ import { dividerExtension } from "./divider/divider";
5
6
  import { italicExtension } from "./italic/italic";
6
7
  import { headingExtension } from "./heading/heading";
7
8
  import { imageExtension } from "./image/image";
@@ -11,10 +12,11 @@ import { strikethroughExtension } from "./strikethrough/strikethrough";
11
12
  import { underlineExtension } from "./underline/underline";
12
13
  import { mentionExtension } from "./mention/mention";
13
14
  import { structuralReparsePolicyExtension } from "./shared/structural-reparse-policy";
14
- export { boldExtension, combinedEmphasisExtension, linkExtension, blockquoteExtension, italicExtension, headingExtension, imageExtension, plainTextListExtension, scrollbarExtension, strikethroughExtension, underlineExtension, mentionExtension, structuralReparsePolicyExtension, };
15
+ export { boldExtension, combinedEmphasisExtension, linkExtension, blockquoteExtension, dividerExtension, italicExtension, headingExtension, imageExtension, plainTextListExtension, scrollbarExtension, strikethroughExtension, underlineExtension, mentionExtension, structuralReparsePolicyExtension, };
15
16
  export const bundledExtensionsWithoutImage = [
16
17
  structuralReparsePolicyExtension,
17
18
  blockquoteExtension,
19
+ dividerExtension,
18
20
  headingExtension,
19
21
  plainTextListExtension,
20
22
  combinedEmphasisExtension,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blankdotpage/cake",
3
- "version": "0.1.79-rc.25",
3
+ "version": "0.1.79-rc.27",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",