@charcuterie/ui 3.13.0 → 3.14.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.
- package/dist/markdownEditorCodeMirror/MarkdownView.d.ts +140 -0
- package/dist/markdownEditorCodeMirror/MarkdownView.d.ts.map +1 -0
- package/dist/markdownEditorCodeMirror/MarkdownView.js +268 -0
- package/dist/markdownEditorCodeMirror/MarkdownView.js.map +1 -0
- package/dist/markdownEditorCodeMirror/index.d.ts +14 -3
- package/dist/markdownEditorCodeMirror/index.d.ts.map +1 -1
- package/dist/markdownEditorCodeMirror/index.js +12 -3
- package/dist/markdownEditorCodeMirror/index.js.map +1 -1
- package/dist/markdownEditorCodeMirror/livePreview.d.ts +42 -2
- package/dist/markdownEditorCodeMirror/livePreview.d.ts.map +1 -1
- package/dist/markdownEditorCodeMirror/livePreview.js +243 -26
- package/dist/markdownEditorCodeMirror/livePreview.js.map +1 -1
- package/dist/markdownEditorCodeMirror/livePreviewRanges.d.ts.map +1 -1
- package/dist/markdownEditorCodeMirror/livePreviewRanges.js +49 -7
- package/dist/markdownEditorCodeMirror/livePreviewRanges.js.map +1 -1
- package/dist/markdownEditorCodeMirror/safeUrls.d.ts +46 -0
- package/dist/markdownEditorCodeMirror/safeUrls.d.ts.map +1 -0
- package/dist/markdownEditorCodeMirror/safeUrls.js +123 -0
- package/dist/markdownEditorCodeMirror/safeUrls.js.map +1 -0
- package/package.json +1 -1
- package/src/MarkdownEditor/MarkdownEditor.mdx +5 -0
- package/src/markdownEditorCodeMirror/MarkdownEditorCodeMirror.mdx +11 -0
- package/src/markdownEditorCodeMirror/MarkdownView.mdx +157 -0
- package/src/markdownEditorCodeMirror/MarkdownView.stories.tsx +314 -0
- package/src/markdownEditorCodeMirror/MarkdownView.test.tsx +288 -0
- package/src/markdownEditorCodeMirror/MarkdownView.tsx +373 -0
- package/src/markdownEditorCodeMirror/index.ts +17 -2
- package/src/markdownEditorCodeMirror/livePreview.ts +329 -33
- package/src/markdownEditorCodeMirror/livePreviewRanges.ts +64 -7
- package/src/markdownEditorCodeMirror/safeUrls.test.ts +0 -0
- package/src/markdownEditorCodeMirror/safeUrls.ts +142 -0
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
* that resolves to nothing paints nothing, silently.
|
|
26
26
|
*/
|
|
27
27
|
import { syntaxTree } from "@codemirror/language";
|
|
28
|
-
import { Prec, StateEffect, StateField, } from "@codemirror/state";
|
|
28
|
+
import { Facet, Prec, StateEffect, StateField, } from "@codemirror/state";
|
|
29
29
|
import { Decoration, EditorView, keymap, ViewPlugin, WidgetType, } from "@codemirror/view";
|
|
30
30
|
import { toLivePreviewRanges, toLivePreviewTableRanges, } from "./livePreviewRanges.js";
|
|
31
31
|
/** Marks a rendered link so the click handler can find its target. */
|
|
@@ -43,6 +43,29 @@ const URL_ATTRIBUTE = "data-charcuterie-url";
|
|
|
43
43
|
* cases; a captured absolute offset silently is not.
|
|
44
44
|
*/
|
|
45
45
|
const CELL_OFFSET_ATTRIBUTE = "data-charcuterie-cell-offset";
|
|
46
|
+
/**
|
|
47
|
+
* The facet itself is exported so a consumer can put **only this**
|
|
48
|
+
* in a `Compartment` and flip one answer without reconfiguring the
|
|
49
|
+
* whole extension — which would tear down and recreate the
|
|
50
|
+
* `StateField`s beside it.
|
|
51
|
+
*
|
|
52
|
+
* A later input wins per key, and a key nobody stated keeps the
|
|
53
|
+
* default. That is a merge rather than "the last one wins outright",
|
|
54
|
+
* so an override that only cares about checkboxes cannot silently
|
|
55
|
+
* turn document semantics back off.
|
|
56
|
+
*/
|
|
57
|
+
export const livePreviewOptions = Facet.define({
|
|
58
|
+
combine: (values) => values.reduce((merged, value) => ({
|
|
59
|
+
hasDocumentSemantics: value.hasDocumentSemantics ??
|
|
60
|
+
merged.hasDocumentSemantics,
|
|
61
|
+
isTaskListInteractive: value.isTaskListInteractive ??
|
|
62
|
+
merged.isTaskListInteractive,
|
|
63
|
+
}), {
|
|
64
|
+
hasDocumentSemantics: false,
|
|
65
|
+
isTaskListInteractive: true,
|
|
66
|
+
}),
|
|
67
|
+
});
|
|
68
|
+
const toOptions = (state) => state.facet(livePreviewOptions);
|
|
46
69
|
/** Toggle the "edit Markdown" mode. */
|
|
47
70
|
export const setLivePreviewRawMode = StateEffect.define();
|
|
48
71
|
/**
|
|
@@ -92,6 +115,57 @@ const isEditorFocusedField = StateField.define({
|
|
|
92
115
|
* change into an effect, so state can depend on it.
|
|
93
116
|
*/
|
|
94
117
|
const focusTracker = EditorView.focusChangeEffect.of((_state, isFocusing) => setIsEditorFocused.of(isFocusing));
|
|
118
|
+
/**
|
|
119
|
+
* How the read view says "heading" to something that is not looking
|
|
120
|
+
* at the font size.
|
|
121
|
+
*
|
|
122
|
+
* The editing surface deliberately has none of this. Its content is
|
|
123
|
+
* a `role="textbox"`, and ARIA flattens a textbox's contents to
|
|
124
|
+
* text — a heading role inside one is not exposed, so adding it
|
|
125
|
+
* there would be a decoration that lies about what it does. The read
|
|
126
|
+
* view is a `role="article"`, where the same markup is a real
|
|
127
|
+
* heading and the reader's H key steps between sections.
|
|
128
|
+
*
|
|
129
|
+
* A `Decoration.line` carries the role, which is exactly right for
|
|
130
|
+
* an ATX heading: the parser only ever emits `ATXHeading1`…`6`, and
|
|
131
|
+
* one of those is one line by definition.
|
|
132
|
+
*/
|
|
133
|
+
const HEADING_LEVELS = {
|
|
134
|
+
heading1: "1",
|
|
135
|
+
heading2: "2",
|
|
136
|
+
heading3: "3",
|
|
137
|
+
heading4: "4",
|
|
138
|
+
heading5: "5",
|
|
139
|
+
heading6: "6",
|
|
140
|
+
};
|
|
141
|
+
const toLineAttributes = (lineKind, hasDocumentSemantics) => {
|
|
142
|
+
const level = HEADING_LEVELS[lineKind];
|
|
143
|
+
return hasDocumentSemantics && level
|
|
144
|
+
? { "aria-level": level, role: "heading" }
|
|
145
|
+
: undefined;
|
|
146
|
+
};
|
|
147
|
+
/**
|
|
148
|
+
* A link's DOM, in a surface where a real anchor is allowed.
|
|
149
|
+
*
|
|
150
|
+
* The editor cannot have one. Its content is `contenteditable`, and
|
|
151
|
+
* an `<a href>` inside an editable region is a focus target the
|
|
152
|
+
* caret has to share the line with — which is why the editor paints
|
|
153
|
+
* a `<span>` and opens the URL from a `mousedown` handler instead,
|
|
154
|
+
* and why clicking link *text* there cannot place a caret.
|
|
155
|
+
*
|
|
156
|
+
* A read view has no caret to protect, so the link is simply a link:
|
|
157
|
+
* tabbable, activated by Enter, copyable from the context menu, and
|
|
158
|
+
* announced as a link rather than as coloured text. That difference
|
|
159
|
+
* is the one place the two surfaces deliberately emit different DOM,
|
|
160
|
+
* and it is a strictly larger set of things a reader can do.
|
|
161
|
+
*/
|
|
162
|
+
const toLinkAttributes = (url) => ({
|
|
163
|
+
href: url,
|
|
164
|
+
// Not optional with `target="_blank"`: without it the opened page
|
|
165
|
+
// gets a live `window.opener` back into this one.
|
|
166
|
+
rel: "noopener noreferrer",
|
|
167
|
+
target: "_blank",
|
|
168
|
+
});
|
|
95
169
|
const LINE_CLASSES = {
|
|
96
170
|
blockquote: "cm-md-blockquote",
|
|
97
171
|
code: "cm-md-codeblock",
|
|
@@ -135,6 +209,14 @@ class ImageWidget extends WidgetType {
|
|
|
135
209
|
const image = document.createElement("img");
|
|
136
210
|
image.setAttribute("src", this.url);
|
|
137
211
|
image.setAttribute("alt", this.alt);
|
|
212
|
+
/**
|
|
213
|
+
* A remote image in a document nobody here wrote is a beacon:
|
|
214
|
+
* fetching it tells its host that this reader opened this file,
|
|
215
|
+
* and the default `Referer` tells it which page they opened it
|
|
216
|
+
* from. The image is still fetched — that is what rendering it
|
|
217
|
+
* means — but it learns nothing about where from.
|
|
218
|
+
*/
|
|
219
|
+
image.setAttribute("referrerpolicy", "no-referrer");
|
|
138
220
|
image.className = "cm-md-image";
|
|
139
221
|
// The document's height is unknown until the image decodes, and
|
|
140
222
|
// CodeMirror caches line heights. Without a remeasure the lines
|
|
@@ -157,13 +239,16 @@ class ImageWidget extends WidgetType {
|
|
|
157
239
|
class TaskWidget extends WidgetType {
|
|
158
240
|
isChecked;
|
|
159
241
|
label;
|
|
160
|
-
|
|
242
|
+
isInteractive;
|
|
243
|
+
constructor(isChecked, label, isInteractive) {
|
|
161
244
|
super();
|
|
162
245
|
this.isChecked = isChecked;
|
|
163
246
|
this.label = label;
|
|
247
|
+
this.isInteractive = isInteractive;
|
|
164
248
|
}
|
|
165
249
|
eq(other) {
|
|
166
250
|
return (other.isChecked === this.isChecked &&
|
|
251
|
+
other.isInteractive === this.isInteractive &&
|
|
167
252
|
other.label === this.label);
|
|
168
253
|
}
|
|
169
254
|
toDOM(view) {
|
|
@@ -183,6 +268,28 @@ class TaskWidget extends WidgetType {
|
|
|
183
268
|
* reader sees.
|
|
184
269
|
*/
|
|
185
270
|
checkbox.setAttribute("aria-label", this.label === "" ? "Task" : this.label);
|
|
271
|
+
/**
|
|
272
|
+
* A read view's checkbox is **inert by default**, and `disabled`
|
|
273
|
+
* rather than hidden or repainted as a glyph.
|
|
274
|
+
*
|
|
275
|
+
* The state is a fact about the document and belongs on screen;
|
|
276
|
+
* the ability to change it is not, when the document is a file
|
|
277
|
+
* fetched at a commit hash and there is nowhere for a tick to go.
|
|
278
|
+
* A disabled checkbox says both of those at once — it shows
|
|
279
|
+
* checked or unchecked, and it announces "unavailable", so the
|
|
280
|
+
* reader is never left clicking something that swallows the
|
|
281
|
+
* click.
|
|
282
|
+
*
|
|
283
|
+
* A consumer that *does* have somewhere to put the change passes
|
|
284
|
+
* `onToggleTask`, and this comes back to life. That is the same
|
|
285
|
+
* shape as `onUploadImage` on the editors: omit the handler and
|
|
286
|
+
* the capability is simply not offered, which beats offering one
|
|
287
|
+
* that half works.
|
|
288
|
+
*/
|
|
289
|
+
if (!this.isInteractive) {
|
|
290
|
+
checkbox.disabled = true;
|
|
291
|
+
return checkbox;
|
|
292
|
+
}
|
|
186
293
|
checkbox.addEventListener("mousedown", (event) => {
|
|
187
294
|
// The checkbox owns the click; without this CodeMirror also
|
|
188
295
|
// moves the caret into the widget's slot on the way past.
|
|
@@ -211,11 +318,12 @@ class TaskWidget extends WidgetType {
|
|
|
211
318
|
* common case, and one fewer element per cell in a table that might
|
|
212
319
|
* have a hundred.
|
|
213
320
|
*/
|
|
214
|
-
const toSegmentNode = (segment, view) => {
|
|
321
|
+
const toSegmentNode = (segment, view, hasDocumentSemantics) => {
|
|
215
322
|
if (segment.type === "image") {
|
|
216
323
|
const image = document.createElement("img");
|
|
217
324
|
image.setAttribute("src", segment.url);
|
|
218
325
|
image.setAttribute("alt", segment.alt);
|
|
326
|
+
image.setAttribute("referrerpolicy", "no-referrer");
|
|
219
327
|
image.className = "cm-md-image";
|
|
220
328
|
image.addEventListener("load", () => {
|
|
221
329
|
view.requestMeasure();
|
|
@@ -225,15 +333,27 @@ const toSegmentNode = (segment, view) => {
|
|
|
225
333
|
if (segment.markKinds.length === 0 && !segment.url) {
|
|
226
334
|
return document.createTextNode(segment.text);
|
|
227
335
|
}
|
|
228
|
-
|
|
229
|
-
|
|
336
|
+
// A link in a cell follows the same rule as a link in a
|
|
337
|
+
// paragraph: an anchor where an anchor is allowed, a painted span
|
|
338
|
+
// with a click handler where the caret owns the line.
|
|
339
|
+
const element = segment.url && hasDocumentSemantics
|
|
340
|
+
? document.createElement("a")
|
|
341
|
+
: document.createElement("span");
|
|
342
|
+
element.className = segment.markKinds
|
|
230
343
|
.map((markKind) => MARK_CLASSES[markKind])
|
|
231
344
|
.join(" ");
|
|
232
345
|
if (segment.url) {
|
|
233
|
-
|
|
346
|
+
if (hasDocumentSemantics) {
|
|
347
|
+
for (const [name, value] of Object.entries(toLinkAttributes(segment.url))) {
|
|
348
|
+
element.setAttribute(name, value);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
else {
|
|
352
|
+
element.setAttribute(URL_ATTRIBUTE, segment.url);
|
|
353
|
+
}
|
|
234
354
|
}
|
|
235
|
-
|
|
236
|
-
return
|
|
355
|
+
element.textContent = segment.text;
|
|
356
|
+
return element;
|
|
237
357
|
};
|
|
238
358
|
/**
|
|
239
359
|
* A table, standing in for its own pipes.
|
|
@@ -259,11 +379,13 @@ class TableWidget extends WidgetType {
|
|
|
259
379
|
source;
|
|
260
380
|
rows;
|
|
261
381
|
tableFrom;
|
|
262
|
-
|
|
382
|
+
hasDocumentSemantics;
|
|
383
|
+
constructor(source, rows, tableFrom, hasDocumentSemantics) {
|
|
263
384
|
super();
|
|
264
385
|
this.source = source;
|
|
265
386
|
this.rows = rows;
|
|
266
387
|
this.tableFrom = tableFrom;
|
|
388
|
+
this.hasDocumentSemantics = hasDocumentSemantics;
|
|
267
389
|
}
|
|
268
390
|
eq(other) {
|
|
269
391
|
return other.source === this.source;
|
|
@@ -282,7 +404,7 @@ class TableWidget extends WidgetType {
|
|
|
282
404
|
cellElement.style.textAlign = cell.alignment;
|
|
283
405
|
cellElement.setAttribute(CELL_OFFSET_ATTRIBUTE, String(cell.from - this.tableFrom));
|
|
284
406
|
for (const segment of cell.segments) {
|
|
285
|
-
cellElement.append(toSegmentNode(segment, view));
|
|
407
|
+
cellElement.append(toSegmentNode(segment, view, this.hasDocumentSemantics));
|
|
286
408
|
}
|
|
287
409
|
rowElement.append(cellElement);
|
|
288
410
|
}
|
|
@@ -294,6 +416,31 @@ class TableWidget extends WidgetType {
|
|
|
294
416
|
}
|
|
295
417
|
table.append(body);
|
|
296
418
|
scroll.append(table);
|
|
419
|
+
/**
|
|
420
|
+
* The way back into the markdown, and only where there is one.
|
|
421
|
+
*
|
|
422
|
+
* A read view has no caret to put in a cell, so this handler
|
|
423
|
+
* would be a click that steals the selection and gives nothing
|
|
424
|
+
* back — and `cursor: text` on the cells would be advertising
|
|
425
|
+
* an edit that cannot happen. The table there is simply a table.
|
|
426
|
+
*/
|
|
427
|
+
if (this.hasDocumentSemantics) {
|
|
428
|
+
scroll.classList.add("cm-md-table-static");
|
|
429
|
+
/**
|
|
430
|
+
* A scroll box a keyboard can reach.
|
|
431
|
+
*
|
|
432
|
+
* A table wider than its column scrolls sideways, and in the
|
|
433
|
+
* editor that box is inside a `contenteditable` — already
|
|
434
|
+
* focusable, already scrollable with the arrow keys. Here it
|
|
435
|
+
* is inside content that is deliberately *not* a tab stop, so
|
|
436
|
+
* without this the only way to see column four is a pointer.
|
|
437
|
+
* axe reports it as `scrollable-region-focusable` and is
|
|
438
|
+
* right: it is WCAG 2.1.1, and it is the one thing a read view
|
|
439
|
+
* has to add back that the editor got for free.
|
|
440
|
+
*/
|
|
441
|
+
scroll.tabIndex = 0;
|
|
442
|
+
return scroll;
|
|
443
|
+
}
|
|
297
444
|
scroll.addEventListener("mousedown", (event) => {
|
|
298
445
|
const target = event.target;
|
|
299
446
|
if (!(target instanceof HTMLElement)) {
|
|
@@ -333,18 +480,27 @@ class TableWidget extends WidgetType {
|
|
|
333
480
|
}
|
|
334
481
|
const toDecorations = (view) => {
|
|
335
482
|
const isRawMode = view.state.field(livePreviewRawModeField, false);
|
|
483
|
+
const { hasDocumentSemantics, isTaskListInteractive } = toOptions(view.state);
|
|
336
484
|
const text = view.state.doc.toString();
|
|
337
485
|
/**
|
|
338
|
-
* An unfocused editor reveals nothing
|
|
486
|
+
* An unfocused editor reveals nothing, and a document reveals
|
|
487
|
+
* nothing ever.
|
|
339
488
|
*
|
|
340
|
-
* Without
|
|
341
|
-
* counts as "inside" whatever construct starts the
|
|
342
|
-
* task whose description opens with a heading
|
|
343
|
-
* load and no other heading's. It looked like
|
|
344
|
-
* and was really a focus bug: there is no caret
|
|
345
|
-
* until someone puts one there.
|
|
489
|
+
* Without the focus half, the caret's default resting place —
|
|
490
|
+
* offset 0 — counts as "inside" whatever construct starts the
|
|
491
|
+
* document, so a task whose description opens with a heading
|
|
492
|
+
* rendered its `#` on load and no other heading's. It looked like
|
|
493
|
+
* a concealment bug and was really a focus bug: there is no caret
|
|
494
|
+
* in the document until someone puts one there.
|
|
495
|
+
*
|
|
496
|
+
* The document half is stated rather than inherited. A read view's
|
|
497
|
+
* content is not editable, so it cannot take focus and `hasFocus`
|
|
498
|
+
* is already false — but that is a property of how CodeMirror
|
|
499
|
+
* happens to treat a `contenteditable="false"` element, and
|
|
500
|
+
* "markup never comes back in a read view" is a promise the
|
|
501
|
+
* component makes, not a side effect it is relying on.
|
|
346
502
|
*/
|
|
347
|
-
const selections = view.hasFocus
|
|
503
|
+
const selections = view.hasFocus && !hasDocumentSemantics
|
|
348
504
|
? view.state.selection.ranges.map((range) => ({
|
|
349
505
|
from: range.from,
|
|
350
506
|
to: range.to,
|
|
@@ -369,6 +525,7 @@ const toDecorations = (view) => {
|
|
|
369
525
|
}
|
|
370
526
|
case "line": {
|
|
371
527
|
decorations.push(Decoration.line({
|
|
528
|
+
attributes: toLineAttributes(range.lineKind, hasDocumentSemantics),
|
|
372
529
|
class: LINE_CLASSES[range.lineKind],
|
|
373
530
|
}).range(range.from));
|
|
374
531
|
break;
|
|
@@ -376,9 +533,14 @@ const toDecorations = (view) => {
|
|
|
376
533
|
case "mark": {
|
|
377
534
|
decorations.push(Decoration.mark({
|
|
378
535
|
attributes: range.url
|
|
379
|
-
?
|
|
536
|
+
? hasDocumentSemantics
|
|
537
|
+
? toLinkAttributes(range.url)
|
|
538
|
+
: { [URL_ATTRIBUTE]: range.url }
|
|
380
539
|
: undefined,
|
|
381
540
|
class: MARK_CLASSES[range.markKind],
|
|
541
|
+
...(range.url && hasDocumentSemantics
|
|
542
|
+
? { tagName: "a" }
|
|
543
|
+
: {}),
|
|
382
544
|
}).range(range.from, range.to));
|
|
383
545
|
break;
|
|
384
546
|
}
|
|
@@ -392,7 +554,7 @@ const toDecorations = (view) => {
|
|
|
392
554
|
}
|
|
393
555
|
case "task": {
|
|
394
556
|
decorations.push(Decoration.replace({
|
|
395
|
-
widget: new TaskWidget(range.isChecked, range.label),
|
|
557
|
+
widget: new TaskWidget(range.isChecked, range.label, isTaskListInteractive),
|
|
396
558
|
}).range(range.from, range.to));
|
|
397
559
|
break;
|
|
398
560
|
}
|
|
@@ -418,7 +580,9 @@ const toDecorations = (view) => {
|
|
|
418
580
|
*/
|
|
419
581
|
const toTableDecorations = (state) => {
|
|
420
582
|
const isRawMode = state.field(livePreviewRawModeField, false);
|
|
421
|
-
const
|
|
583
|
+
const { hasDocumentSemantics } = toOptions(state);
|
|
584
|
+
const selections = state.field(isEditorFocusedField, false) &&
|
|
585
|
+
!hasDocumentSemantics
|
|
422
586
|
? state.selection.ranges.map((range) => ({
|
|
423
587
|
from: range.from,
|
|
424
588
|
to: range.to,
|
|
@@ -435,7 +599,7 @@ const toTableDecorations = (state) => {
|
|
|
435
599
|
// what makes the table a paragraph in the flow rather than
|
|
436
600
|
// a very tall character.
|
|
437
601
|
block: true,
|
|
438
|
-
widget: new TableWidget(text.slice(range.from, range.to), range.rows, range.from),
|
|
602
|
+
widget: new TableWidget(text.slice(range.from, range.to), range.rows, range.from, hasDocumentSemantics),
|
|
439
603
|
}).range(range.from, range.to)), true);
|
|
440
604
|
};
|
|
441
605
|
const livePreviewTableField = StateField.define({
|
|
@@ -445,6 +609,11 @@ const livePreviewTableField = StateField.define({
|
|
|
445
609
|
transaction.selection !== undefined ||
|
|
446
610
|
transaction.effects.some((effect) => effect.is(setLivePreviewRawMode) ||
|
|
447
611
|
effect.is(setIsEditorFocused)) ||
|
|
612
|
+
// A `Compartment` reconfigure — `MarkdownView` turning its
|
|
613
|
+
// checkboxes on or off — arrives as neither a doc change
|
|
614
|
+
// nor an effect this field would otherwise notice.
|
|
615
|
+
transaction.startState.facet(livePreviewOptions) !==
|
|
616
|
+
transaction.state.facet(livePreviewOptions) ||
|
|
448
617
|
// Parsing is incremental and time-sliced, so a long
|
|
449
618
|
// document's tables arrive over several transactions that
|
|
450
619
|
// change nothing else. Comparing the tree by identity is
|
|
@@ -471,7 +640,12 @@ const livePreviewPlugin = ViewPlugin.fromClass(class {
|
|
|
471
640
|
update.viewportChanged ||
|
|
472
641
|
// Focus is a decoration input now — see `toDecorations`.
|
|
473
642
|
update.focusChanged ||
|
|
474
|
-
update.transactions.some((transaction) => transaction.effects.some((effect) => effect.is(setLivePreviewRawMode)))
|
|
643
|
+
update.transactions.some((transaction) => transaction.effects.some((effect) => effect.is(setLivePreviewRawMode))) ||
|
|
644
|
+
// The same `Compartment` reconfigure the block pass watches
|
|
645
|
+
// for: a checkbox that just became operable is a widget
|
|
646
|
+
// that has to be rebuilt.
|
|
647
|
+
update.startState.facet(livePreviewOptions) !==
|
|
648
|
+
update.state.facet(livePreviewOptions)) {
|
|
475
649
|
this.decorations = toDecorations(update.view);
|
|
476
650
|
}
|
|
477
651
|
}
|
|
@@ -651,6 +825,18 @@ const livePreviewTheme = EditorView.theme({
|
|
|
651
825
|
cursor: "pointer",
|
|
652
826
|
textDecoration: "underline",
|
|
653
827
|
},
|
|
828
|
+
/**
|
|
829
|
+
* The read view's links are real anchors, so they are in the tab
|
|
830
|
+
* order — and a focus ring is the whole reason that is worth
|
|
831
|
+
* having. CodeMirror injects its own stylesheet and nothing here
|
|
832
|
+
* is DOM Tailwind scans, so the ring is written from the same
|
|
833
|
+
* custom properties the `focus-visible` utilities generate.
|
|
834
|
+
*/
|
|
835
|
+
".cm-md-link:focus-visible": {
|
|
836
|
+
borderRadius: "var(--radius-sm)",
|
|
837
|
+
outline: "var(--focus-ring-width) solid var(--color-focus-ring)",
|
|
838
|
+
outlineOffset: "var(--focus-ring-offset)",
|
|
839
|
+
},
|
|
654
840
|
/**
|
|
655
841
|
* The dimmed marker.
|
|
656
842
|
*
|
|
@@ -718,6 +904,21 @@ const livePreviewTheme = EditorView.theme({
|
|
|
718
904
|
backgroundColor: "var(--color-surface-sunken)",
|
|
719
905
|
fontWeight: "var(--font-weight-semibold)",
|
|
720
906
|
},
|
|
907
|
+
/**
|
|
908
|
+
* A read view's table takes no click, so it stops advertising
|
|
909
|
+
* one. `cursor: text` on a cell is a promise that clicking there
|
|
910
|
+
* puts a caret in the markdown behind it, and there is no
|
|
911
|
+
* markdown behind it to reach.
|
|
912
|
+
*/
|
|
913
|
+
".cm-md-table-static .cm-md-table-rendered td, .cm-md-table-static .cm-md-table-rendered th": {
|
|
914
|
+
cursor: "auto",
|
|
915
|
+
},
|
|
916
|
+
/** A focusable box says so when it has focus. */
|
|
917
|
+
".cm-md-table-static:focus-visible": {
|
|
918
|
+
borderRadius: "var(--radius-sm)",
|
|
919
|
+
outline: "var(--focus-ring-width) solid var(--color-focus-ring)",
|
|
920
|
+
outlineOffset: "var(--focus-ring-offset)",
|
|
921
|
+
},
|
|
721
922
|
/**
|
|
722
923
|
* The scroll box, not the table.
|
|
723
924
|
*
|
|
@@ -754,7 +955,8 @@ const livePreviewTheme = EditorView.theme({
|
|
|
754
955
|
const rawModeClass = EditorView.editorAttributes.of((view) => view.state.field(livePreviewRawModeField, false)
|
|
755
956
|
? { class: "cm-md-raw" }
|
|
756
957
|
: null);
|
|
757
|
-
export const livePreview = () => [
|
|
958
|
+
export const livePreview = (options = {}) => [
|
|
959
|
+
livePreviewOptions.of(options),
|
|
758
960
|
livePreviewRawModeField,
|
|
759
961
|
isEditorFocusedField,
|
|
760
962
|
focusTracker,
|
|
@@ -764,8 +966,23 @@ export const livePreview = () => [
|
|
|
764
966
|
livePreviewTableField,
|
|
765
967
|
livePreviewPlugin,
|
|
766
968
|
livePreviewTheme,
|
|
767
|
-
|
|
768
|
-
|
|
969
|
+
/**
|
|
970
|
+
* The two extensions a **document** does not get, and both are
|
|
971
|
+
* absences with a reason rather than an oversight.
|
|
972
|
+
*
|
|
973
|
+
* `openLinkOnClick` exists because the editor's links are painted
|
|
974
|
+
* `<span>`s that a `mousedown` has to translate into a
|
|
975
|
+
* navigation. A document's links are real `<a href>` elements, so
|
|
976
|
+
* installing this as well would open every link twice — once from
|
|
977
|
+
* the handler and once from the browser.
|
|
978
|
+
*
|
|
979
|
+
* `tableStepKeymap` steps the *caret* into a rendered table so its
|
|
980
|
+
* markdown can be reached. A document has no caret and nothing
|
|
981
|
+
* behind the table to reach.
|
|
982
|
+
*/
|
|
983
|
+
options.hasDocumentSemantics
|
|
984
|
+
? []
|
|
985
|
+
: [openLinkOnClick, tableStepKeymap],
|
|
769
986
|
rawModeClass,
|
|
770
987
|
];
|
|
771
988
|
//# sourceMappingURL=livePreview.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"livePreview.js","sourceRoot":"","sources":["../../src/markdownEditorCodeMirror/livePreview.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"livePreview.js","sourceRoot":"","sources":["../../src/markdownEditorCodeMirror/livePreview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAMjD,OAAO,EACL,KAAK,EACL,IAAI,EACJ,WAAW,EACX,UAAU,GACX,MAAM,mBAAmB,CAAA;AAK1B,OAAO,EACL,UAAU,EACV,UAAU,EACV,MAAM,EACN,UAAU,EACV,UAAU,GACX,MAAM,kBAAkB,CAAA;AAQzB,OAAO,EACL,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,wBAAwB,CAAA;AAE/B,sEAAsE;AACtE,MAAM,aAAa,GAAG,sBAAsB,CAAA;AAE5C;;;;;;;;;;;GAWG;AACH,MAAM,qBAAqB,GAAG,8BAA8B,CAAA;AA+B5D;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAG5C;IACA,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAClB,MAAM,CAAC,MAAM,CACX,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAClB,oBAAoB,EAClB,KAAK,CAAC,oBAAoB;YAC1B,MAAM,CAAC,oBAAoB;QAC7B,qBAAqB,EACnB,KAAK,CAAC,qBAAqB;YAC3B,MAAM,CAAC,qBAAqB;KAC/B,CAAC,EACF;QACE,oBAAoB,EAAE,KAAK;QAC3B,qBAAqB,EAAE,IAAI;KAC5B,CACF;CACJ,CAAC,CAAA;AAEF,MAAM,SAAS,GAAG,CAChB,KAAkB,EACY,EAAE,CAChC,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;AAEjC,uCAAuC;AACvC,MAAM,CAAC,MAAM,qBAAqB,GAChC,WAAW,CAAC,MAAM,EAAW,CAAA;AAE/B;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAClC,UAAU,CAAC,MAAM,CAAU;IACzB,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK;IACnB,MAAM,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE;QACjC,IAAI,aAAa,GAAG,SAAS,CAAA;QAE7B,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACzC,IAAI,MAAM,CAAC,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC;gBACrC,aAAa,GAAG,MAAM,CAAC,KAAK,CAAA;YAC9B,CAAC;QACH,CAAC;QAED,OAAO,aAAa,CAAA;IACtB,CAAC;CACF,CAAC,CAAA;AAEJ,MAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,EAAW,CAAA;AAExD;;;;;;;;;GASG;AACH,MAAM,oBAAoB,GAAG,UAAU,CAAC,MAAM,CAAU;IACtD,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK;IACnB,MAAM,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,EAAE;QACjC,IAAI,aAAa,GAAG,SAAS,CAAA;QAE7B,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;YACzC,IAAI,MAAM,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAClC,aAAa,GAAG,MAAM,CAAC,KAAK,CAAA;YAC9B,CAAC;QACH,CAAC;QAED,OAAO,aAAa,CAAA;IACtB,CAAC;CACF,CAAC,CAAA;AAEF;;;GAGG;AACH,MAAM,YAAY,GAAG,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAClD,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,UAAU,CAAC,CAC1D,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,cAAc,GAEhB;IACF,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;CACd,CAAA;AAED,MAAM,gBAAgB,GAAG,CACvB,QAA6B,EAC7B,oBAA6B,EAC7B,EAAE;IACF,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IAEtC,OAAO,oBAAoB,IAAI,KAAK;QAClC,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE;QAC1C,CAAC,CAAC,SAAS,CAAA;AACf,CAAC,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC;IACzC,IAAI,EAAE,GAAG;IACT,kEAAkE;IAClE,kDAAkD;IAClD,GAAG,EAAE,qBAAqB;IAC1B,MAAM,EAAE,QAAQ;CACjB,CAAC,CAAA;AAEF,MAAM,YAAY,GAAwC;IACxD,UAAU,EAAE,kBAAkB;IAC9B,IAAI,EAAE,iBAAiB;IACvB,QAAQ,EAAE,gBAAgB;IAC1B,QAAQ,EAAE,gBAAgB;IAC1B,QAAQ,EAAE,gBAAgB;IAC1B,QAAQ,EAAE,gBAAgB;IAC1B,QAAQ,EAAE,gBAAgB;IAC1B,QAAQ,EAAE,gBAAgB;IAC1B,KAAK,EAAE,aAAa;CACrB,CAAA;AAED,MAAM,YAAY,GAAwC;IACxD,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,YAAY;IAClB,QAAQ,EAAE,gBAAgB;IAC1B,QAAQ,EAAE,YAAY;IACtB,aAAa,EAAE,qBAAqB;IACpC,MAAM,EAAE,cAAc;IACtB,GAAG,EAAE,WAAW;CACjB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,WAAY,SAAQ,UAAU;IAEf;IACA;IAFnB,YACmB,GAAW,EACX,GAAW;QAE5B,KAAK,EAAE,CAAA;QAHU,QAAG,GAAH,GAAG,CAAQ;QACX,QAAG,GAAH,GAAG,CAAQ;IAG9B,CAAC;IAED,EAAE,CAAC,KAAkB;QACnB,OAAO,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAA;IACzD,CAAC;IAED,KAAK,CAAC,IAAgB;QACpB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAE3C,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QAEnC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QAEnC;;;;;;WAMG;QACH,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA;QAEnD,KAAK,CAAC,SAAS,GAAG,aAAa,CAAA;QAE/B,gEAAgE;QAChE,gEAAgE;QAChE,8DAA8D;QAC9D,UAAU;QACV,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;YAClC,IAAI,CAAC,cAAc,EAAE,CAAA;QACvB,CAAC,CAAC,CAAA;QAEF,OAAO,KAAK,CAAA;IACd,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,UAAW,SAAQ,UAAU;IAEd;IACA;IACA;IAHnB,YACmB,SAAkB,EAClB,KAAa,EACb,aAAsB;QAEvC,KAAK,EAAE,CAAA;QAJU,cAAS,GAAT,SAAS,CAAS;QAClB,UAAK,GAAL,KAAK,CAAQ;QACb,kBAAa,GAAb,aAAa,CAAS;IAGzC,CAAC;IAED,EAAE,CAAC,KAAiB;QAClB,OAAO,CACL,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS;YAClC,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa;YAC1C,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAC3B,CAAA;IACH,CAAC;IAED,KAAK,CAAC,IAAgB;QACpB,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAEhD,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAA;QAE1B,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAA;QAEjC,QAAQ,CAAC,SAAS,GAAG,YAAY,CAAA;QAEjC;;;;;;;;;;WAUG;QACH,QAAQ,CAAC,YAAY,CACnB,YAAY,EACZ,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CACxC,CAAA;QAED;;;;;;;;;;;;;;;;;WAiBG;QACH,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAA;YAExB,OAAO,QAAQ,CAAA;QACjB,CAAC;QAED,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;YAC/C,4DAA4D;YAC5D,0DAA0D;YAC1D,KAAK,CAAC,eAAe,EAAE,CAAA;QACzB,CAAC,CAAC,CAAA;QAEF,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;YAEpC,IAAI,CAAC,QAAQ,CAAC;gBACZ,OAAO,EAAE;oBACP,IAAI;oBACJ,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;oBACtC,EAAE,EAAE,IAAI,GAAG,CAAC;iBACb;aACF,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,WAAW;QACT,OAAO,KAAK,CAAA;IACd,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,aAAa,GAAG,CACpB,OAAgC,EAChC,IAAgB,EAChB,oBAA6B,EAC7B,EAAE;IACF,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAE3C,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;QAEtC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;QAEtC,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA;QAEnD,KAAK,CAAC,SAAS,GAAG,aAAa,CAAA;QAE/B,KAAK,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;YAClC,IAAI,CAAC,cAAc,EAAE,CAAA;QACvB,CAAC,CAAC,CAAA;QAEF,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACnD,OAAO,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9C,CAAC;IAED,wDAAwD;IACxD,kEAAkE;IAClE,sDAAsD;IACtD,MAAM,OAAO,GACX,OAAO,CAAC,GAAG,IAAI,oBAAoB;QACjC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;QAC7B,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;IAEpC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS;SAClC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;SACzC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEZ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,IAAI,oBAAoB,EAAE,CAAC;YACzB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CACxC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAC9B,EAAE,CAAC;gBACF,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YACnC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,CAAA;QAClD,CAAC;IACH,CAAC;IAED,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAA;IAElC,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAY,SAAQ,UAAU;IAEf;IACA;IACA;IACA;IAJnB,YACmB,MAAc,EACd,IAAoC,EACpC,SAAiB,EACjB,oBAA6B;QAE9C,KAAK,EAAE,CAAA;QALU,WAAM,GAAN,MAAM,CAAQ;QACd,SAAI,GAAJ,IAAI,CAAgC;QACpC,cAAS,GAAT,SAAS,CAAQ;QACjB,yBAAoB,GAApB,oBAAoB,CAAS;IAGhD,CAAC;IAED,EAAE,CAAC,KAAkB;QACnB,OAAO,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAA;IACrC,CAAC;IAED,KAAK,CAAC,IAAgB;QACpB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QAE5C,MAAM,CAAC,SAAS,GAAG,oBAAoB,CAAA;QAEvC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAE7C,KAAK,CAAC,SAAS,GAAG,sBAAsB,CAAA;QAExC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAE5C,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAE5C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;YAE/C,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBAC7B,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CACxC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAC3B,CAAA;gBAED,WAAW,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;gBAE5C,WAAW,CAAC,YAAY,CACtB,qBAAqB,EACrB,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CACnC,CAAA;gBAED,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACpC,WAAW,CAAC,MAAM,CAChB,aAAa,CACX,OAAO,EACP,IAAI,EACJ,IAAI,CAAC,oBAAoB,CAC1B,CACF,CAAA;gBACH,CAAC;gBAED,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;YAChC,CAAC;YAED,CAAC;YAAA,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAClD,CAAC;QAED,IAAI,IAAI,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;YAC/B,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACpB,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAElB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAEpB;;;;;;;WAOG;QACH,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;YAE1C;;;;;;;;;;;eAWG;YACH,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAA;YAEnB,OAAO,MAAM,CAAA;QACf,CAAC;QAED,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;YAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;YAE3B,IAAI,CAAC,CAAC,MAAM,YAAY,WAAW,CAAC,EAAE,CAAC;gBACrC,OAAM;YACR,CAAC;YAED,8DAA8D;YAC9D,iBAAiB;YACjB,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;gBACzC,OAAM;YACR,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAChC,IAAI,qBAAqB,GAAG,CAC7B,CAAA;YAED,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAM;YACR,CAAC;YAED,KAAK,CAAC,cAAc,EAAE,CAAA;YAEtB,MAAM,MAAM,GAAG,MAAM,CACnB,WAAW,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAChD,CAAA;YAED,IAAI,CAAC,KAAK,EAAE,CAAA;YAEZ,IAAI,CAAC,QAAQ,CAAC;gBACZ,SAAS,EAAE;oBACT,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM;iBACvC;aACF,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;;;OAOG;IACH,WAAW;QACT,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAED,MAAM,aAAa,GAAG,CAAC,IAAgB,EAAiB,EAAE;IACxD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAChC,uBAAuB,EACvB,KAAK,CACN,CAAA;IAED,MAAM,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,GACnD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAEvB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;IAEtC;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,UAAU,GACd,IAAI,CAAC,QAAQ,IAAI,CAAC,oBAAoB;QACpC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC1C,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,EAAE,EAAE,KAAK,CAAC,EAAE;SACb,CAAC,CAAC;QACL,CAAC,CAAC,EAAE,CAAA;IAER,MAAM,WAAW,GAAwB,EAAE,CAAA;IAE3C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;QACzC,KAAK,MAAM,KAAK,IAAI,mBAAmB,CAAC;YACtC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,SAAS,EAAE,SAAS,IAAI,KAAK;YAC7B,UAAU;YACV,IAAI;YACJ,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;SAC7B,CAAC,EAAE,CAAC;YACH,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,OAAO,CAAC,CAAC,CAAC;oBACb,WAAW,CAAC,IAAI,CACd,UAAU,CAAC,OAAO,CAAC;wBACjB,MAAM,EAAE,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;qBAC9C,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAC/B,CAAA;oBAED,MAAK;gBACP,CAAC;gBAED,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,WAAW,CAAC,IAAI,CACd,UAAU,CAAC,IAAI,CAAC;wBACd,UAAU,EAAE,gBAAgB,CAC1B,KAAK,CAAC,QAAQ,EACd,oBAAoB,CACrB;wBACD,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC;qBACpC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CACrB,CAAA;oBAED,MAAK;gBACP,CAAC;gBAED,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,WAAW,CAAC,IAAI,CACd,UAAU,CAAC,IAAI,CAAC;wBACd,UAAU,EAAE,KAAK,CAAC,GAAG;4BACnB,CAAC,CAAC,oBAAoB;gCACpB,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC;gCAC7B,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE;4BAClC,CAAC,CAAC,SAAS;wBACb,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC;wBACnC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,oBAAoB;4BACnC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE;4BAClB,CAAC,CAAC,EAAE,CAAC;qBACR,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAC/B,CAAA;oBAED,MAAK;gBACP,CAAC;gBAED,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACd,WAAW,CAAC,IAAI,CACd,KAAK,CAAC,WAAW;wBACf,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAC1B,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,EAAE,CACT;wBACH,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;4BACd,KAAK,EAAE,cAAc;yBACtB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CACnC,CAAA;oBAED,MAAK;gBACP,CAAC;gBAED,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,WAAW,CAAC,IAAI,CACd,UAAU,CAAC,OAAO,CAAC;wBACjB,MAAM,EAAE,IAAI,UAAU,CACpB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,KAAK,EACX,qBAAqB,CACtB;qBACF,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAC/B,CAAA;oBAED,MAAK;gBACP,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,gEAAgE;IAChE,gEAAgE;IAChE,uDAAuD;IACvD,OAAO,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;AAC1C,CAAC,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,kBAAkB,GAAG,CAAC,KAAkB,EAAE,EAAE;IAChD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAC3B,uBAAuB,EACvB,KAAK,CACN,CAAA;IAED,MAAM,EAAE,oBAAoB,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;IAEjD,MAAM,UAAU,GACd,KAAK,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC;QACxC,CAAC,oBAAoB;QACnB,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACrC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,EAAE,EAAE,KAAK,CAAC,EAAE;SACb,CAAC,CAAC;QACL,CAAC,CAAC,EAAE,CAAA;IAER,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;IAEjC,OAAO,UAAU,CAAC,GAAG,CACnB,wBAAwB,CAAC;QACvB,SAAS,EAAE,SAAS,IAAI,KAAK;QAC7B,UAAU;QACV,IAAI;QACJ,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC;KACxB,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACf,UAAU,CAAC,OAAO,CAAC;QACjB,yDAAyD;QACzD,2DAA2D;QAC3D,yBAAyB;QACzB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI,WAAW,CACrB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,EAChC,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,IAAI,EACV,oBAAoB,CACrB;KACF,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAC/B,EACD,IAAI,CACL,CAAA;AACH,CAAC,CAAA;AAED,MAAM,qBAAqB,GACzB,UAAU,CAAC,MAAM,CAAgB;IAC/B,MAAM,EAAE,kBAAkB;IAC1B,MAAM,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE;QACnC,IACE,WAAW,CAAC,UAAU;YACtB,WAAW,CAAC,SAAS,KAAK,SAAS;YACnC,WAAW,CAAC,OAAO,CAAC,IAAI,CACtB,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,EAAE,CAAC,qBAAqB,CAAC;gBAChC,MAAM,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAChC;YACD,2DAA2D;YAC3D,yDAAyD;YACzD,mDAAmD;YACnD,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,kBAAkB,CAAC;gBAC9C,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC;YAC7C,oDAAoD;YACpD,0DAA0D;YAC1D,yDAAyD;YACzD,2BAA2B;YAC3B,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC;gBAC3B,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,EACpC,CAAC;YACD,OAAO,kBAAkB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QAC9C,CAAC;QAED,OAAO,WAAW,CAAA;IACpB,CAAC;IACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;CACvD,CAAC,CAAA;AAEJ,MAAM,iBAAiB,GAAG,UAAU,CAAC,SAAS,CAC5C;IACE,WAAW,CAAe;IAE1B,YAAY,IAAgB;QAC1B,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC;IAED,MAAM,CAAC,MAAkB;QACvB,8DAA8D;QAC9D,6DAA6D;QAC7D,2CAA2C;QAC3C,IACE,MAAM,CAAC,UAAU;YACjB,MAAM,CAAC,YAAY;YACnB,MAAM,CAAC,eAAe;YACtB,yDAAyD;YACzD,MAAM,CAAC,YAAY;YACnB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CACvC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAClC,MAAM,CAAC,EAAE,CAAC,qBAAqB,CAAC,CACjC,CACF;YACD,4DAA4D;YAC5D,wDAAwD;YACxD,0BAA0B;YAC1B,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,kBAAkB,CAAC;gBACzC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,EACxC,CAAC;YACD,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC/C,CAAC;IACH,CAAC;CACF,EACD;IACE,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW;CAC5C,CACF,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,GACf,CAAC,SAAkB,EAAE,EAAE,CAAC,CAAC,IAAgB,EAAE,EAAE;IAC3C,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAA;IAErC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CACrC,IAAI,EACJ,SAAS,CACV,CAAC,IAAI,CAAA;IAEN,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAE7C,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IAE3C,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,MAAM,GAAkB,IAAI,CAAA;IAEhC,IAAI,CAAC,KAAK;SACP,KAAK,CAAC,qBAAqB,CAAC;SAC5B,OAAO,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE;QACxC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAA;QAExC,OAAO,KAAK,CAAA;IACd,CAAC,CAAC,CAAA;IAEJ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC;QACZ,cAAc,EAAE,IAAI;QACpB,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;KAC9B,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAEH;;;;GAIG;AACH,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAC/B,MAAM,CAAC,EAAE,CAAC;IACR,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE;IAC5C,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE;CAC5C,CAAC,CACH,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,eAAe,GAAG,UAAU,CAAC,gBAAgB,CAAC;IAClD,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;QACnB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAE3B,IAAI,CAAC,CAAC,MAAM,YAAY,WAAW,CAAC,EAAE,CAAC;YACrC,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,GAAG,GAAG,MAAM;aACf,OAAO,CAAC,IAAI,aAAa,GAAG,CAAC;YAC9B,EAAE,YAAY,CAAC,aAAa,CAAC,CAAA;QAE/B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,KAAK,CAAA;QACd,CAAC;QAED,KAAK,CAAC,cAAc,EAAE,CAAA;QAEtB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAA;QAEjD,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAC,CAAA;AAEF;;;;;;;GAOG;AACH,MAAM,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC;IACxC;;;;;;;;;;;;;;;OAeG;IACH,cAAc,EAAE;QACd,UAAU,EAAE,kBAAkB;KAC/B;IACD;;;OAGG;IACH,0BAA0B,EAAE;QAC1B,UAAU,EAAE,kBAAkB;KAC/B;IACD,mBAAmB,EAAE;QACnB,iBAAiB,EACf,6CAA6C;QAC/C,KAAK,EAAE,gCAAgC;QACvC,kBAAkB,EAAE,QAAQ;KAC7B;IACD,aAAa,EAAE;QACb,KAAK,EAAE,kCAAkC;QACzC,UAAU,EAAE,kBAAkB;KAC/B;IACD,kBAAkB,EAAE;QAClB,eAAe,EAAE,6BAA6B;QAC9C,UAAU,EAAE,kBAAkB;KAC/B;IACD,iBAAiB,EAAE;QACjB,SAAS,EAAE,QAAQ;KACpB;IACD,iBAAiB,EAAE;QACjB,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,MAAM;KACnB;IACD,iBAAiB,EAAE;QACjB,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,KAAK;KAClB;IACD,iBAAiB,EAAE;QACjB,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,KAAK;QACjB,UAAU,EAAE,MAAM;KACnB;IACD,iBAAiB,EAAE;QACjB,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,KAAK;KAClB;IACD,iBAAiB,EAAE;QACjB,UAAU,EAAE,KAAK;KAClB;IACD,iBAAiB,EAAE;QACjB,KAAK,EAAE,gCAAgC;QACvC,UAAU,EAAE,KAAK;KAClB;IACD,cAAc,EAAE;QACd,YAAY,EAAE,kBAAkB;QAChC,OAAO,EAAE,cAAc;QACvB,QAAQ,EAAE,MAAM;QAChB,aAAa,EAAE,KAAK;KACrB;IACD,aAAa,EAAE;QACb,KAAK,EAAE,oCAAoC;QAC3C,MAAM,EAAE,SAAS;QACjB,cAAc,EAAE,WAAW;KAC5B;IACD;;;;;;OAMG;IACH,2BAA2B,EAAE;QAC3B,YAAY,EAAE,kBAAkB;QAChC,OAAO,EACL,uDAAuD;QACzD,aAAa,EAAE,0BAA0B;KAC1C;IACD;;;;;;;OAOG;IACH,eAAe,EAAE;QACf,KAAK,EAAE,4BAA4B;KACpC;IACD,sBAAsB,EAAE;QACtB,KAAK,EAAE,gCAAgC;QACvC,cAAc,EAAE,cAAc;KAC/B;IACD,eAAe,EAAE;QACf,UAAU,EAAE,KAAK;KAClB;IACD;;;;OAIG;IACH,cAAc,EAAE;QACd,UAAU,EAAE,kBAAkB;KAC/B;IACD,uBAAuB,EAAE;QACvB,cAAc,EAAE,UAAU;KAC3B;IACD,oDAAoD,EAAE;QACpD,MAAM,EAAE,sCAAsC;QAC9C,MAAM,EAAE,MAAM;QACd;;;;;;;;WAQG;QACH,YAAY,EAAE,YAAY;QAC1B,OAAO,EAAE,+BAA+B;QACxC,aAAa,EAAE,KAAK;QACpB,UAAU,EAAE,QAAQ;QACpB,SAAS,EAAE,QAAQ;KACpB;IACD;;;;;;;OAOG;IACH,8EAA8E,EAC5E;QACE,OAAO,EAAE,UAAU;KACpB;IACH;;;;OAIG;IACH,0BAA0B,EAAE;QAC1B,eAAe,EAAE,6BAA6B;QAC9C,UAAU,EAAE,6BAA6B;KAC1C;IACD;;;;;OAKG;IACH,4FAA4F,EAC1F;QACE,MAAM,EAAE,MAAM;KACf;IACH,iDAAiD;IACjD,mCAAmC,EAAE;QACnC,YAAY,EAAE,kBAAkB;QAChC,OAAO,EACL,uDAAuD;QACzD,aAAa,EAAE,0BAA0B;KAC1C;IACD;;;;;;;;OAQG;IACH,qBAAqB,EAAE;QACrB,MAAM,EAAE,kBAAkB;QAC1B,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,MAAM;KAClB;IACD,aAAa,EAAE;QACb,WAAW,EAAE,kCAAkC;QAC/C,eAAe,EAAE,QAAQ;QACzB,aAAa,EAAE,QAAQ;KACxB;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,4BAA4B;KACpC;CACF,CAAC,CAAA;AAEF;;;;;GAKG;AACH;;;GAGG;AACH,MAAM,YAAY,GAAG,UAAU,CAAC,gBAAgB,CAAC,EAAE,CACjD,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC;IAC9C,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE;IACxB,CAAC,CAAC,IAAI,CACX,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,UAA8B,EAAE,EACrB,EAAE,CAAC;IACd,kBAAkB,CAAC,EAAE,CAAC,OAAO,CAAC;IAC9B,uBAAuB;IACvB,oBAAoB;IACpB,YAAY;IACZ,+DAA+D;IAC/D,kEAAkE;IAClE,uCAAuC;IACvC,qBAAqB;IACrB,iBAAiB;IACjB,gBAAgB;IAChB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,oBAAoB;QAC1B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,CAAC,eAAe,EAAE,eAAe,CAAC;IACtC,YAAY;CACb,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"livePreviewRanges.d.ts","sourceRoot":"","sources":["../../src/markdownEditorCodeMirror/livePreviewRanges.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,KAAK,EAGV,IAAI,EACL,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"livePreviewRanges.d.ts","sourceRoot":"","sources":["../../src/markdownEditorCodeMirror/livePreviewRanges.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
* the textarea version gets structurally — kept here by never
|
|
43
43
|
* having a serialiser at all.
|
|
44
44
|
*/
|
|
45
|
+
import { toSafeImageUrl, toSafeLinkUrl, } from "./safeUrls.js";
|
|
45
46
|
const HEADING_LINE_KINDS = {
|
|
46
47
|
ATXHeading1: "heading1",
|
|
47
48
|
ATXHeading2: "heading2",
|
|
@@ -491,10 +492,17 @@ const toWalker = ({ isRawMode, selections, text, }) => {
|
|
|
491
492
|
const urlNode = toChildNamed(node, "URL");
|
|
492
493
|
const openMark = node.firstChild;
|
|
493
494
|
const closeMark = openMark?.nextSibling;
|
|
495
|
+
const safeUrl = urlNode
|
|
496
|
+
? toSafeImageUrl(text.slice(urlNode.from, urlNode.to))
|
|
497
|
+
: undefined;
|
|
494
498
|
// An image whose caret is inside it is markup again: you
|
|
495
|
-
// cannot edit a URL you cannot see.
|
|
499
|
+
// cannot edit a URL you cannot see. An image whose URL did
|
|
500
|
+
// not survive `toSafeImageUrl` stays markup **always**,
|
|
501
|
+
// which is the honest answer for a document this surface
|
|
502
|
+
// did not write: the reader is shown the source rather than
|
|
503
|
+
// a broken frame or a silently dropped line.
|
|
496
504
|
if (!isRawMode &&
|
|
497
|
-
|
|
505
|
+
safeUrl !== undefined &&
|
|
498
506
|
openMark &&
|
|
499
507
|
closeMark &&
|
|
500
508
|
!isInside(selections, node.from, node.to)) {
|
|
@@ -503,10 +511,24 @@ const toWalker = ({ isRawMode, selections, text, }) => {
|
|
|
503
511
|
from: node.from,
|
|
504
512
|
to: node.to,
|
|
505
513
|
type: "image",
|
|
506
|
-
url:
|
|
514
|
+
url: safeUrl,
|
|
507
515
|
});
|
|
508
516
|
return false;
|
|
509
517
|
}
|
|
518
|
+
/**
|
|
519
|
+
* An image whose URL was refused shows its **whole**
|
|
520
|
+
* construct, markers and all.
|
|
521
|
+
*
|
|
522
|
+
* Not descending is what does it: the ``
|
|
523
|
+
* would otherwise reach the generic concealment rule below
|
|
524
|
+
* and vanish, leaving the alt text welded to a URL with no
|
|
525
|
+
* punctuation between them. This is the same result the
|
|
526
|
+
* refused-link path gets, by the same reasoning — a reader
|
|
527
|
+
* shown the source can see what the file tried to do.
|
|
528
|
+
*/
|
|
529
|
+
if (safeUrl === undefined && !isRawMode) {
|
|
530
|
+
return false;
|
|
531
|
+
}
|
|
510
532
|
return true;
|
|
511
533
|
}
|
|
512
534
|
if (name === "Link") {
|
|
@@ -515,13 +537,31 @@ const toWalker = ({ isRawMode, selections, text, }) => {
|
|
|
515
537
|
const isRevealed = isInside(selections, node.from, node.to);
|
|
516
538
|
const openMark = node.firstChild;
|
|
517
539
|
const closeMark = openMark?.nextSibling;
|
|
518
|
-
|
|
540
|
+
const safeUrl = urlNode
|
|
541
|
+
? toSafeLinkUrl(text.slice(urlNode.from, urlNode.to))
|
|
542
|
+
: undefined;
|
|
543
|
+
/**
|
|
544
|
+
* A link whose URL did not survive the guard is **not a
|
|
545
|
+
* link at all**, and not a link-coloured span that quietly
|
|
546
|
+
* does nothing either.
|
|
547
|
+
*
|
|
548
|
+
* Returning here skips the `linkText` mark *and* the two
|
|
549
|
+
* `pushMarker` calls below, so `[click me](javascript:…)`
|
|
550
|
+
* keeps its brackets, keeps its parentheses and reads as
|
|
551
|
+
* exactly the characters the file contains. A reader who
|
|
552
|
+
* can see the trap is better served than one shown a
|
|
553
|
+
* confident blue word that silently refuses to work.
|
|
554
|
+
*/
|
|
555
|
+
if (safeUrl === undefined) {
|
|
556
|
+
return true;
|
|
557
|
+
}
|
|
558
|
+
if (openMark && closeMark) {
|
|
519
559
|
ranges.push({
|
|
520
560
|
from: openMark.to,
|
|
521
561
|
markKind: "linkText",
|
|
522
562
|
to: closeMark.from,
|
|
523
563
|
type: "mark",
|
|
524
|
-
url:
|
|
564
|
+
url: safeUrl,
|
|
525
565
|
});
|
|
526
566
|
}
|
|
527
567
|
// Children are walked so nested emphasis inside link text
|
|
@@ -538,14 +578,16 @@ const toWalker = ({ isRawMode, selections, text, }) => {
|
|
|
538
578
|
// parent, which is the whole of gap 2 in Docket's handoff:
|
|
539
579
|
// paste a link, get a link, with no `[](…)` typed at all.
|
|
540
580
|
const parentName = nodeRef.node.parent?.name;
|
|
581
|
+
const safeUrl = toSafeLinkUrl(text.slice(nodeRef.from, nodeRef.to));
|
|
541
582
|
if (parentName !== "Link" &&
|
|
542
|
-
parentName !== "Image"
|
|
583
|
+
parentName !== "Image" &&
|
|
584
|
+
safeUrl !== undefined) {
|
|
543
585
|
ranges.push({
|
|
544
586
|
from: nodeRef.from,
|
|
545
587
|
markKind: "autolink",
|
|
546
588
|
to: nodeRef.to,
|
|
547
589
|
type: "mark",
|
|
548
|
-
url:
|
|
590
|
+
url: safeUrl,
|
|
549
591
|
});
|
|
550
592
|
}
|
|
551
593
|
else {
|