@blankdotpage/cake 0.1.75 → 0.1.77

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,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;
@@ -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);
@@ -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,aA2I3B,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;AAU5B,eAAO,MAAM,aAAa,EAAE,aA0J3B,CAAC"}
@@ -69,14 +69,19 @@ export const boldExtension = (editor) => {
69
69
  }
70
70
  const builder = new CursorSourceBuilder();
71
71
  builder.appendSourceOnly("**");
72
+ const defaultChildResults = inline.children.map((child) => context.serializeInline(child));
73
+ let previousSource = "";
72
74
  inline.children.forEach((child, index) => {
75
+ const nextSource = defaultChildResults[index + 1]?.source ?? "";
73
76
  const serialized = child.type === "inline-wrapper" &&
74
77
  child.kind === "italic" &&
75
- index === 0 &&
76
- inline.children.length > 1
78
+ (previousSource.endsWith("*") ||
79
+ nextSource.startsWith("*") ||
80
+ (index === 0 && inline.children.length > 1))
77
81
  ? serializeItalicInlineWithMarker(child, context, "_")
78
- : context.serializeInline(child);
82
+ : (defaultChildResults[index] ?? context.serializeInline(child));
79
83
  builder.appendSerialized(serialized);
84
+ previousSource = serialized.source;
80
85
  });
81
86
  builder.appendSourceOnly("**");
82
87
  return builder.build();
@@ -102,6 +107,12 @@ export const boldExtension = (editor) => {
102
107
  }
103
108
  return element;
104
109
  }));
110
+ disposers.push(editor.registerInlineHtmlSerializer((mark, content) => {
111
+ if (mark.kind !== BOLD_KIND) {
112
+ return null;
113
+ }
114
+ return `<strong>${content}</strong>`;
115
+ }));
105
116
  return () => {
106
117
  disposers
107
118
  .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,aAwM9B,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,aA8N9B,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 = selection.start;
354
+ const cursorPos = Math.max(0, Math.min(map.cursorLength, 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 +1 @@
1
- {"version":3,"file":"italic.d.ts","sourceRoot":"","sources":["../../../../src/cake/extensions/italic/italic.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAGlB,KAAK,qBAAqB,EAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAmB/C,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;AAkCD,eAAO,MAAM,eAAe,EAAE,aAqI7B,CAAC"}
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"}
@@ -10,29 +10,83 @@ function buildItalicSerialization(childResults, marker) {
10
10
  builder.appendSourceOnly(marker);
11
11
  return builder.build();
12
12
  }
13
+ function canParseSerializedUnderscoreRun(source, start, close) {
14
+ return (source[start + 1] === "*" ||
15
+ source[close - 1] === "*" ||
16
+ source[close + 1] === "*");
17
+ }
13
18
  export function serializeItalicInlineWithMarker(inline, context, marker) {
14
19
  const childResults = inline.children.map((child) => context.serializeInline(child));
15
20
  return buildItalicSerialization(childResults, marker);
16
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
+ }
17
38
  function findItalicClose(source, start, end, marker) {
18
39
  if (marker === "_") {
19
40
  return source.indexOf("_", start + 1);
20
41
  }
21
- let fallback = -1;
22
42
  for (let i = start + 1; i < end; i += 1) {
23
43
  if (source[i] !== "*") {
24
44
  continue;
25
45
  }
26
- const prevIsStar = source[i - 1] === "*";
27
- const nextIsStar = source[i + 1] === "*";
28
- if (!prevIsStar && !nextIsStar) {
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
+ }
29
59
  return i;
30
60
  }
31
- if (fallback === -1) {
32
- fallback = i;
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;
33
72
  }
73
+ i = runEnd;
34
74
  }
35
- return fallback;
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;
36
90
  }
37
91
  export const italicExtension = (editor) => {
38
92
  const disposers = [];
@@ -58,9 +112,6 @@ export const italicExtension = (editor) => {
58
112
  if (char !== "_" && char !== "*") {
59
113
  return null;
60
114
  }
61
- if (char === "_" && !hasInlineMarkerBoundaryBefore(source, start)) {
62
- return null;
63
- }
64
115
  // Don't match ** (that's bold)
65
116
  if (char === "*" && source[start + 1] === "*") {
66
117
  return null;
@@ -75,6 +126,11 @@ export const italicExtension = (editor) => {
75
126
  if (close === -1 || close >= end) {
76
127
  return null;
77
128
  }
129
+ if (char === "_" &&
130
+ !hasInlineMarkerBoundaryBefore(source, start) &&
131
+ !canParseSerializedUnderscoreRun(source, start, close)) {
132
+ return null;
133
+ }
78
134
  // Don't match empty delimiters like ** that could be start of bold
79
135
  if (close === start + 1 && close + 1 < end) {
80
136
  return null;
@@ -89,6 +145,12 @@ export const italicExtension = (editor) => {
89
145
  nextPos: close + 1,
90
146
  };
91
147
  }));
148
+ disposers.push(editor.registerSerializeBlock((block, context) => {
149
+ if (block.type !== "paragraph") {
150
+ return null;
151
+ }
152
+ return serializeInlineSequenceWithSafeItalic(block.content, context);
153
+ }));
92
154
  disposers.push(editor.registerSerializeInline((inline, context) => {
93
155
  if (inline.type !== "inline-wrapper" || inline.kind !== ITALIC_KIND) {
94
156
  return null;
@@ -121,6 +183,12 @@ export const italicExtension = (editor) => {
121
183
  }
122
184
  return element;
123
185
  }));
186
+ disposers.push(editor.registerInlineHtmlSerializer((mark, content) => {
187
+ if (mark.kind !== ITALIC_KIND) {
188
+ return null;
189
+ }
190
+ return `<em>${content}</em>`;
191
+ }));
124
192
  return () => disposers
125
193
  .splice(0)
126
194
  .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,aA6LpC,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 contentHtml = startInLine <= contentStart && endInLine >= lineCursorLength
971
+ ? context.state.runtime
972
+ .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}</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()
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blankdotpage/cake",
3
- "version": "0.1.75",
3
+ "version": "0.1.77",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",