@blankdotpage/cake 0.1.76 → 0.1.78

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 (29) hide show
  1. package/dist/cake/clipboard.d.ts.map +1 -1
  2. package/dist/cake/clipboard.js +29 -0
  3. package/dist/cake/core/runtime.d.ts +32 -1
  4. package/dist/cake/core/runtime.d.ts.map +1 -1
  5. package/dist/cake/core/runtime.js +121 -513
  6. package/dist/cake/editor/cake-editor.d.ts +6 -1
  7. package/dist/cake/editor/cake-editor.d.ts.map +1 -1
  8. package/dist/cake/editor/cake-editor.js +18 -3
  9. package/dist/cake/extensions/blockquote/blockquote.d.ts.map +1 -1
  10. package/dist/cake/extensions/blockquote/blockquote.js +9 -0
  11. package/dist/cake/extensions/bold/bold.d.ts.map +1 -1
  12. package/dist/cake/extensions/bold/bold.js +9 -14
  13. package/dist/cake/extensions/heading/heading.d.ts.map +1 -1
  14. package/dist/cake/extensions/heading/heading.js +11 -1
  15. package/dist/cake/extensions/italic/italic.d.ts +1 -7
  16. package/dist/cake/extensions/italic/italic.d.ts.map +1 -1
  17. package/dist/cake/extensions/italic/italic.js +27 -91
  18. package/dist/cake/extensions/link/link.d.ts.map +1 -1
  19. package/dist/cake/extensions/link/link.js +7 -0
  20. package/dist/cake/extensions/list/list.d.ts.map +1 -1
  21. package/dist/cake/extensions/list/list.js +52 -0
  22. package/dist/cake/extensions/strikethrough/strikethrough.d.ts.map +1 -1
  23. package/dist/cake/extensions/strikethrough/strikethrough.js +6 -0
  24. package/dist/cake/extensions/underline/underline.d.ts.map +1 -1
  25. package/dist/cake/extensions/underline/underline.js +6 -0
  26. package/dist/cake/react/index.d.ts +0 -1
  27. package/dist/cake/react/index.d.ts.map +1 -1
  28. package/dist/cake/react/index.js +1 -5
  29. package/package.json +1 -1
@@ -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 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 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";
@@ -48,6 +48,8 @@ export declare class CakeEditor {
48
48
  private activeMarksResolvers;
49
49
  private domInlineRenderers;
50
50
  private domBlockRenderers;
51
+ private inlineHtmlSerializers;
52
+ private serializeSelectionLineToHtmlFns;
51
53
  private uiComponents;
52
54
  private extensionDisposers;
53
55
  private textModel;
@@ -165,6 +167,8 @@ export declare class CakeEditor {
165
167
  suppressNextBeforeInput(): void;
166
168
  registerInlineRenderer(fn: DomInlineRenderer): () => void;
167
169
  registerBlockRenderer(fn: DomBlockRenderer): () => void;
170
+ registerInlineHtmlSerializer(fn: InlineHtmlSerializer): () => void;
171
+ registerSerializeSelectionLineToHtml(fn: SerializeSelectionLineToHtml): () => void;
168
172
  registerUI(component: CakeUIComponent): () => void;
169
173
  destroy(): void;
170
174
  setReadOnly(readOnly: boolean): void;
@@ -236,6 +240,7 @@ export declare class CakeEditor {
236
240
  replaceText(oldText: string, newText: string): void;
237
241
  setSelection(selection: Selection, options?: {
238
242
  scrollIntoView?: boolean;
243
+ applyDomSelection?: boolean;
239
244
  }): void;
240
245
  setValue({ value, selection }: {
241
246
  value: string;
@@ -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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"}
@@ -120,6 +120,8 @@ export class CakeEditor {
120
120
  this.activeMarksResolvers = [];
121
121
  this.domInlineRenderers = [];
122
122
  this.domBlockRenderers = [];
123
+ this.inlineHtmlSerializers = [];
124
+ this.serializeSelectionLineToHtmlFns = [];
123
125
  this.uiComponents = [];
124
126
  this.extensionDisposers = [];
125
127
  this.textModel = new EditorTextModel();
@@ -256,6 +258,8 @@ export class CakeEditor {
256
258
  structuralReparsePolicies: this.structuralReparsePolicies,
257
259
  domInlineRenderers: this.domInlineRenderers,
258
260
  domBlockRenderers: this.domBlockRenderers,
261
+ inlineHtmlSerializers: this.inlineHtmlSerializers,
262
+ serializeSelectionLineToHtmlFns: this.serializeSelectionLineToHtmlFns,
259
263
  });
260
264
  this.installExtensions(options.extensions ?? bundledExtensions);
261
265
  this.state = this.runtime.createState(options.value, options.selection ?? defaultSelection);
@@ -381,6 +385,14 @@ export class CakeEditor {
381
385
  this.domBlockRenderers.push(fn);
382
386
  return () => removeFromArray(this.domBlockRenderers, fn);
383
387
  }
388
+ registerInlineHtmlSerializer(fn) {
389
+ this.inlineHtmlSerializers.push(fn);
390
+ return () => removeFromArray(this.inlineHtmlSerializers, fn);
391
+ }
392
+ registerSerializeSelectionLineToHtml(fn) {
393
+ this.serializeSelectionLineToHtmlFns.push(fn);
394
+ return () => removeFromArray(this.serializeSelectionLineToHtmlFns, fn);
395
+ }
384
396
  registerUI(component) {
385
397
  this.uiComponents.push(component);
386
398
  return () => removeFromArray(this.uiComponents, component);
@@ -974,10 +986,11 @@ export class CakeEditor {
974
986
  this.state = this.runtime.updateSelection(this.state, selection, {
975
987
  kind: "programmatic",
976
988
  });
977
- if (!this.isComposing) {
989
+ const shouldApplyDomSelection = options?.applyDomSelection ?? true;
990
+ if (!this.isComposing && shouldApplyDomSelection) {
978
991
  this.applySelection(this.state.selection);
979
992
  }
980
- if (options?.scrollIntoView ?? true) {
993
+ if (shouldApplyDomSelection && (options?.scrollIntoView ?? true)) {
981
994
  this.scheduleScrollCaretIntoView();
982
995
  }
983
996
  }
@@ -987,7 +1000,9 @@ export class CakeEditor {
987
1000
  return;
988
1001
  }
989
1002
  if (!valueChanged && selection !== undefined) {
990
- this.setSelection(selection);
1003
+ this.setSelection(selection, {
1004
+ applyDomSelection: this.hasFocus(),
1005
+ });
991
1006
  return;
992
1007
  }
993
1008
  const nextSelection = selection ?? this.state.selection;
@@ -1 +1 @@
1
- {"version":3,"file":"blockquote.d.ts","sourceRoot":"","sources":["../../../../src/cake/extensions/blockquote/blockquote.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAKnB,MAAM,oBAAoB,CAAC;AAgI5B,eAAO,MAAM,mBAAmB,EAAE,aAkHjC,CAAC"}
1
+ {"version":3,"file":"blockquote.d.ts","sourceRoot":"","sources":["../../../../src/cake/extensions/blockquote/blockquote.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAKnB,MAAM,oBAAoB,CAAC;AAgI5B,eAAO,MAAM,mBAAmB,EAAE,aAiIjC,CAAC"}
@@ -173,6 +173,15 @@ export const blockquoteExtension = (editor) => {
173
173
  }
174
174
  return element;
175
175
  }));
176
+ disposers.push(editor.registerSerializeSelectionLineToHtml((context) => {
177
+ if (context.wrapperBlock?.type !== "block-wrapper" ||
178
+ context.wrapperBlock.kind !== BLOCKQUOTE_KIND) {
179
+ return null;
180
+ }
181
+ return {
182
+ html: `<blockquote>${context.selectedHtml}</blockquote>`,
183
+ };
184
+ }));
176
185
  return () => disposers
177
186
  .splice(0)
178
187
  .reverse()
@@ -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,aAkJ3B,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
  }));
@@ -107,6 +96,12 @@ export const boldExtension = (editor) => {
107
96
  }
108
97
  return element;
109
98
  }));
99
+ disposers.push(editor.registerInlineHtmlSerializer((mark, content) => {
100
+ if (mark.kind !== BOLD_KIND) {
101
+ return null;
102
+ }
103
+ return `<strong>${content}</strong>`;
104
+ }));
110
105
  return () => {
111
106
  disposers
112
107
  .splice(0)
@@ -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,aA2M9B,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);
@@ -458,6 +458,16 @@ export const headingExtension = (editor) => {
458
458
  }
459
459
  return lineElement;
460
460
  }));
461
+ disposers.push(editor.registerSerializeSelectionLineToHtml((context) => {
462
+ if (context.wrapperBlock?.type !== "block-wrapper" ||
463
+ context.wrapperBlock.kind !== HEADING_KIND) {
464
+ return null;
465
+ }
466
+ const level = Math.min(context.wrapperBlock.data?.level ?? 1, 6);
467
+ return {
468
+ html: `<h${level} style="margin:0">${context.selectedHtml}</h${level}>`,
469
+ };
470
+ }));
461
471
  return () => disposers
462
472
  .splice(0)
463
473
  .reverse()
@@ -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,aAsJ7B,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;
72
- }
73
- i = runEnd;
74
- }
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;
18
+ if (fallback === -1) {
19
+ fallback = i;
85
20
  }
86
- parity ^= 1;
87
- i += 1;
88
21
  }
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) {
@@ -183,6 +113,12 @@ export const italicExtension = (editor) => {
183
113
  }
184
114
  return element;
185
115
  }));
116
+ disposers.push(editor.registerInlineHtmlSerializer((mark, content) => {
117
+ if (mark.kind !== ITALIC_KIND) {
118
+ return null;
119
+ }
120
+ return `<em>${content}</em>`;
121
+ }));
186
122
  return () => disposers
187
123
  .splice(0)
188
124
  .reverse()
@@ -1 +1 @@
1
- {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../../src/cake/extensions/link/link.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAGnB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAwJ3D,8CAA8C;AAC9C,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,wCAAwC;AACxC,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,qDAAqD;AACrD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,kCAAkC;AAClC,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,aAAa,GAAG,iBAAiB,CAAC;AAE9E,MAAM,MAAM,kBAAkB,GAAG,CAC/B,MAAM,EAAE,UAAU,KACf,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAAC;AAEnD,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAC9B,CAAC;AA+ZF,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;AACvE,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,aAAa,CAAC"}
1
+ {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../../src/cake/extensions/link/link.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAGnB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAwJ3D,8CAA8C;AAC9C,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,wCAAwC;AACxC,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,qDAAqD;AACrD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,kCAAkC;AAClC,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,aAAa,GAAG,iBAAiB,CAAC;AAE9E,MAAM,MAAM,kBAAkB,GAAG,CAC/B,MAAM,EAAE,UAAU,KACf,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAAC;AAEnD,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,MAAM,CAAC,EAAE,mBAAmB,CAAC;CAC9B,CAAC;AAwaF,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;AACvE,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,aAAa,CAAC"}
@@ -422,6 +422,13 @@ function installLinkExtension(editor, options) {
422
422
  }
423
423
  return element;
424
424
  }));
425
+ disposers.push(editor.registerInlineHtmlSerializer((mark, content, context) => {
426
+ if (mark.kind !== LINK_KIND) {
427
+ return null;
428
+ }
429
+ const url = mark.data?.url ?? "";
430
+ return `<a href="${context.escapeHtml(url)}">${content}</a>`;
431
+ }));
425
432
  const LinkPopoverUI = ({ editor }) => (_jsx(CakeLinkPopover, { editor: editor, styles: options.styles }));
426
433
  disposers.push(editor.registerUI(LinkPopoverUI));
427
434
  return () => disposers
@@ -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;AA0qC5B,+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
+ {"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,aAgMpC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { mergeInlineForRender } from "../../dom/render";
2
2
  import { parseListRange, serializeListRange, convertToPlainText, getLineInfo, getListPrefixLength, isListLine, parseListItem, countNumberedItemsBefore, } from "./list-ast";
3
3
  import { getLineBlockContent } from "../shared/line-content";
4
+ import { graphemeSegments } from "../../shared/segmenter";
4
5
  // Match list lines - capture exactly one space after marker, rest goes to content
5
6
  const LIST_LINE_REGEX = /^(\s*)([-*+]|\d+\.)( )(.*)$/;
6
7
  function matchListLine(line) {
@@ -937,6 +938,57 @@ export const plainTextListExtension = (editor) => {
937
938
  }
938
939
  return null;
939
940
  }));
941
+ disposers.push(editor.registerSerializeSelectionLineToHtml((context) => {
942
+ const { wrapperBlock, lineText, startInLine, endInLine, lineCursorLength } = context;
943
+ const listMatch = matchListLine(lineText);
944
+ const prefixLength = listMatch
945
+ ? Array.from(graphemeSegments(listMatch.prefix)).length
946
+ : 0;
947
+ const selectsEntirePlainListItem = !wrapperBlock &&
948
+ Boolean(listMatch) &&
949
+ startInLine === 0 &&
950
+ endInLine >= lineCursorLength;
951
+ if (wrapperBlock?.type === "block-wrapper" &&
952
+ (wrapperBlock.kind === "bullet-list" ||
953
+ wrapperBlock.kind === "numbered-list") &&
954
+ startInLine === 0 &&
955
+ endInLine >= lineCursorLength) {
956
+ const type = wrapperBlock.kind === "numbered-list" ? "ol" : "ul";
957
+ return {
958
+ html: `<li>${context.selectedHtml}</li>`,
959
+ group: {
960
+ key: `${type}:0`,
961
+ open: `<${type}>`,
962
+ close: `</${type}>`,
963
+ },
964
+ };
965
+ }
966
+ if (!selectsEntirePlainListItem || !listMatch) {
967
+ return null;
968
+ }
969
+ const contentStart = Math.min(prefixLength, lineCursorLength);
970
+ const selectedContent = lineText.slice(listMatch.prefix.length);
971
+ const contentHtml = startInLine <= contentStart && endInLine >= lineCursorLength
972
+ ? context.state.runtime.serializeSelectionToHtml(context.state, {
973
+ start: context.line.lineStartOffset +
974
+ Math.min(contentStart, context.lineCursorLength),
975
+ end: context.line.lineStartOffset + lineCursorLength,
976
+ affinity: "forward",
977
+ })
978
+ .replace(/^<div><div>/, "")
979
+ .replace(/<\/div><\/div>$/, "")
980
+ : context.selectedHtml;
981
+ const type = listMatch.number === null ? "ul" : "ol";
982
+ const indent = Math.floor(listMatch.indent.length / 2);
983
+ return {
984
+ html: `<li>${contentHtml || selectedContent}</li>`,
985
+ group: {
986
+ key: `${type}:${indent}`,
987
+ open: `<${type}>`,
988
+ close: `</${type}>`,
989
+ },
990
+ };
991
+ }));
940
992
  disposers.push(editor.registerBlockRenderer((block, context) => {
941
993
  if (block.type !== "paragraph") {
942
994
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"strikethrough.d.ts","sourceRoot":"","sources":["../../../../src/cake/extensions/strikethrough/strikethrough.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAInB,MAAM,oBAAoB,CAAC;AAS5B,eAAO,MAAM,sBAAsB,EAAE,aAoHpC,CAAC"}
1
+ {"version":3,"file":"strikethrough.d.ts","sourceRoot":"","sources":["../../../../src/cake/extensions/strikethrough/strikethrough.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAInB,MAAM,oBAAoB,CAAC;AAS5B,eAAO,MAAM,sBAAsB,EAAE,aA4HpC,CAAC"}
@@ -82,6 +82,12 @@ export const strikethroughExtension = (editor) => {
82
82
  }
83
83
  return element;
84
84
  }));
85
+ disposers.push(editor.registerInlineHtmlSerializer((mark, content) => {
86
+ if (mark.kind !== STRIKE_KIND) {
87
+ return null;
88
+ }
89
+ return `<s>${content}</s>`;
90
+ }));
85
91
  return () => disposers
86
92
  .splice(0)
87
93
  .reverse()
@@ -1 +1 @@
1
- {"version":3,"file":"underline.d.ts","sourceRoot":"","sources":["../../../../src/cake/extensions/underline/underline.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAInB,MAAM,oBAAoB,CAAC;AAS5B,eAAO,MAAM,kBAAkB,EAAE,aAsHhC,CAAC"}
1
+ {"version":3,"file":"underline.d.ts","sourceRoot":"","sources":["../../../../src/cake/extensions/underline/underline.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAInB,MAAM,oBAAoB,CAAC;AAS5B,eAAO,MAAM,kBAAkB,EAAE,aA8HhC,CAAC"}
@@ -83,6 +83,12 @@ export const underlineExtension = (editor) => {
83
83
  }
84
84
  return element;
85
85
  }));
86
+ disposers.push(editor.registerInlineHtmlSerializer((mark, content) => {
87
+ if (mark.kind !== UNDERLINE_KIND) {
88
+ return null;
89
+ }
90
+ return `<u>${content}</u>`;
91
+ }));
86
92
  return () => disposers
87
93
  .splice(0)
88
94
  .reverse()
@@ -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":"AASA,OAAO,KAAK,EACV,aAAa,EAEb,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAuBzB,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;CACnC,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,iBAAiB,CAAC,EAAE,CAClB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,UAAU,GAAG,SAAS,KAC9B,IAAI,CAAC;IACV,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACpC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACjD,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,gBAAgB,EAAE,CAAC,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACtE,mBAAmB,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACnD,mBAAmB,EAAE,CACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,KACV;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,uBAAuB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE;;;;;;;;;;;;OAYG;IACH,cAAc,EAAE,CACd,OAAO,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,KACjC,OAAO,CAAC;IACb,WAAW,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAChD,QAAQ,EAAE,MAAM,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC1D,eAAe,EAAE,MAAM,MAAM,CAAC;IAC9B,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,cAAc,EAAE,MAAM,MAAM,EAAE,CAAC;CAChC;AAED,eAAO,MAAM,UAAU,kHA6StB,CAAC"}
@@ -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.76",
3
+ "version": "0.1.78",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",