@mdzip/editor 1.3.1 → 1.3.11

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 (52) hide show
  1. package/README.md +200 -4
  2. package/dist/archive-utils.d.ts.map +1 -1
  3. package/dist/archive-utils.js +1 -34
  4. package/dist/archive-utils.js.map +1 -1
  5. package/dist/asset-cache.d.ts +92 -0
  6. package/dist/asset-cache.d.ts.map +1 -0
  7. package/dist/asset-cache.js +392 -0
  8. package/dist/asset-cache.js.map +1 -0
  9. package/dist/diff-view-css.d.ts +2 -0
  10. package/dist/diff-view-css.d.ts.map +1 -0
  11. package/dist/diff-view-css.js +49 -0
  12. package/dist/diff-view-css.js.map +1 -0
  13. package/dist/diff-view.d.ts +112 -0
  14. package/dist/diff-view.d.ts.map +1 -0
  15. package/dist/diff-view.js +573 -0
  16. package/dist/diff-view.js.map +1 -0
  17. package/dist/diff.d.ts +2 -1
  18. package/dist/diff.d.ts.map +1 -1
  19. package/dist/diff.js +3 -1
  20. package/dist/diff.js.map +1 -1
  21. package/dist/index.d.ts +1 -0
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +1 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/library-info.d.ts +37 -0
  26. package/dist/library-info.d.ts.map +1 -0
  27. package/dist/library-info.js +46 -0
  28. package/dist/library-info.js.map +1 -0
  29. package/dist/mermaid.d.ts +46 -0
  30. package/dist/mermaid.d.ts.map +1 -0
  31. package/dist/mermaid.js +107 -0
  32. package/dist/mermaid.js.map +1 -0
  33. package/dist/preview.d.ts +10 -0
  34. package/dist/preview.d.ts.map +1 -0
  35. package/dist/preview.js +9 -0
  36. package/dist/preview.js.map +1 -0
  37. package/dist/rendering.d.ts +175 -2
  38. package/dist/rendering.d.ts.map +1 -1
  39. package/dist/rendering.js +132 -14
  40. package/dist/rendering.js.map +1 -1
  41. package/dist/view-css.d.ts.map +1 -1
  42. package/dist/view-css.js +133 -1
  43. package/dist/view-css.js.map +1 -1
  44. package/dist/view.d.ts +148 -1
  45. package/dist/view.d.ts.map +1 -1
  46. package/dist/view.js +805 -22
  47. package/dist/view.js.map +1 -1
  48. package/dist/workspace.d.ts +15 -0
  49. package/dist/workspace.d.ts.map +1 -1
  50. package/dist/workspace.js +42 -4
  51. package/dist/workspace.js.map +1 -1
  52. package/package.json +26 -4
package/dist/rendering.js CHANGED
@@ -20,6 +20,53 @@ function resolvePurifier() {
20
20
  purifier = DOMPurify(globalWindow);
21
21
  return purifier;
22
22
  }
23
+ const BASE_FORBID_TAGS = ['base', 'embed', 'form', 'iframe', 'input', 'link', 'meta', 'object', 'script', 'style'];
24
+ const BASE_FORBID_ATTR = ['style'];
25
+ function lower(value) {
26
+ return value.toLowerCase();
27
+ }
28
+ function buildSanitizeOptions(contributions) {
29
+ const allowSvg = contributions.some((contribution) => contribution.allowSvg);
30
+ const addTags = [...new Set(contributions.flatMap((contribution) => contribution.addTags ?? []))];
31
+ const addAttr = ['class', ...new Set(contributions.flatMap((contribution) => contribution.addAttr ?? []))];
32
+ const unforbidTags = new Set(contributions.flatMap((contribution) => contribution.unforbidTags ?? []).map(lower));
33
+ const unforbidAttr = new Set(contributions.flatMap((contribution) => contribution.unforbidAttr ?? []).map(lower));
34
+ return {
35
+ USE_PROFILES: allowSvg ? { html: true, svg: true, svgFilters: true } : { html: true },
36
+ ADD_TAGS: addTags,
37
+ ADD_ATTR: addAttr,
38
+ FORBID_TAGS: BASE_FORBID_TAGS.filter((tag) => !unforbidTags.has(tag)),
39
+ FORBID_ATTR: BASE_FORBID_ATTR.filter((attr) => !unforbidAttr.has(attr)),
40
+ ALLOW_DATA_ATTR: false
41
+ };
42
+ }
43
+ /**
44
+ * Sanitizes rendered HTML with the editor's default DOMPurify policy.
45
+ *
46
+ * Note the policy strips data attributes and inline styles. Markdown render
47
+ * extensions that need to find placeholders again in `mount()` should use
48
+ * class or id markers and carry payloads out-of-band (e.g. a side map keyed
49
+ * by marker id), not element attributes.
50
+ *
51
+ * Pass `contributions` (an extension's {@link MdzipSanitizeContribution}s) to
52
+ * widen the policy just enough for richer output such as inline SVG.
53
+ */
54
+ export function sanitizeMdzipHtml(html, contributions = []) {
55
+ return resolvePurifier().sanitize(html, buildSanitizeOptions(contributions));
56
+ }
57
+ /** Predicate matching one or more exact archive paths (case-insensitive). */
58
+ export function mdzipPathMatcher(...paths) {
59
+ const wanted = new Set(paths.map((path) => path.toLowerCase()));
60
+ return ({ path }) => wanted.has(path.toLowerCase());
61
+ }
62
+ /** Predicate matching file extensions (case-insensitive, dot optional). */
63
+ export function mdzipExtensionMatcher(...extensions) {
64
+ const wanted = extensions.map((ext) => (ext.startsWith('.') ? ext : `.${ext}`).toLowerCase());
65
+ return ({ path }) => {
66
+ const lower = path.toLowerCase();
67
+ return wanted.some((ext) => lower.endsWith(ext));
68
+ };
69
+ }
23
70
  const marked = new Marked({
24
71
  renderer: {
25
72
  code(token) {
@@ -37,7 +84,11 @@ const marked = new Marked({
37
84
  // Fall through to escaped plain code.
38
85
  }
39
86
  }
40
- return `<pre><code>${escapeHtml(token.text)}</code></pre>`;
87
+ // Preserve the requested language as a class even when it is not a
88
+ // highlightable language (e.g. `mermaid`), so render extensions and
89
+ // client-side highlighters can still find and claim the block.
90
+ const className = requestedLanguage ? ` class="language-${escapeHtml(requestedLanguage)}"` : '';
91
+ return `<pre><code${className}>${escapeHtml(token.text)}</code></pre>`;
41
92
  },
42
93
  table(token) {
43
94
  const renderCell = (cell) => {
@@ -54,30 +105,97 @@ const marked = new Marked({
54
105
  }
55
106
  }
56
107
  });
108
+ function renderDefaultMarkdownUnsanitized(markdown) {
109
+ const rendered = marked.parse(markdown, { async: false });
110
+ return typeof rendered === 'string' ? rendered : escapeHtml(markdown);
111
+ }
57
112
  export const defaultSafeMarkdownRenderer = {
113
+ sanitizesOutput: true,
58
114
  render(markdown) {
59
- const rendered = marked.parse(markdown, { async: false });
60
- const html = typeof rendered === 'string' ? rendered : escapeHtml(markdown);
61
- return resolvePurifier().sanitize(html, {
62
- USE_PROFILES: { html: true },
63
- ADD_ATTR: ['class'],
64
- FORBID_TAGS: ['base', 'embed', 'form', 'iframe', 'input', 'link', 'meta', 'object', 'script', 'style'],
65
- FORBID_ATTR: ['style'],
66
- ALLOW_DATA_ATTR: false
67
- });
115
+ return sanitizeMdzipHtml(renderDefaultMarkdownUnsanitized(markdown));
68
116
  }
69
117
  };
118
+ function isThenable(value) {
119
+ return typeof value?.then === 'function';
120
+ }
121
+ function createAbortError() {
122
+ return new DOMException('The markdown render was aborted.', 'AbortError');
123
+ }
124
+ /**
125
+ * Applies one pipeline stage, staying synchronous when the incoming value is
126
+ * synchronous. The async path checks the abort signal between stages so a
127
+ * superseded render stops early.
128
+ */
129
+ function chainRenderStage(value, stage, signal) {
130
+ if (isThenable(value)) {
131
+ return Promise.resolve(value).then((resolved) => {
132
+ if (signal?.aborted) {
133
+ throw createAbortError();
134
+ }
135
+ return stage(resolved);
136
+ });
137
+ }
138
+ return stage(value);
139
+ }
70
140
  export class MdzipRenderingService {
71
- constructor(renderer = defaultSafeMarkdownRenderer) {
141
+ constructor(renderer = defaultSafeMarkdownRenderer, extensions = []) {
72
142
  this.renderer = renderer;
143
+ this.extensions = extensions;
73
144
  }
145
+ /**
146
+ * Legacy synchronous render. Behavior is unchanged: the configured
147
+ * renderer's output is returned as-is (the default renderer sanitizes
148
+ * internally). Extensions do not run here — use {@link renderMarkdown}.
149
+ */
74
150
  render(request) {
75
151
  const markdown = request.assetResolver
76
152
  ? rewriteAssetSources(request.markdown, request.assetResolver)
77
153
  : request.markdown;
78
- return {
79
- html: this.renderer.render(markdown)
80
- };
154
+ const html = this.renderer.render(markdown);
155
+ if (isThenable(html)) {
156
+ throw new Error('render() requires a synchronous markdown renderer. Use renderMarkdown() for asynchronous pipelines.');
157
+ }
158
+ return { html };
159
+ }
160
+ /**
161
+ * Full extension pipeline:
162
+ *
163
+ * transformMarkdown* -> renderer -> transformHtml* -> sanitize
164
+ *
165
+ * Returns a plain string when every stage is synchronous, so the common
166
+ * no-extensions path costs no microtask hop. Exactly one DOMPurify pass
167
+ * runs per render: the default renderer skips its internal pass when
168
+ * `transformHtml` extensions are registered, and renderers declaring
169
+ * `sanitizesOutput` skip the pipeline pass when no `transformHtml`
170
+ * extension is registered.
171
+ */
172
+ renderMarkdown(markdown, context) {
173
+ const htmlTransforms = this.extensions.filter((ext) => ext.transformHtml);
174
+ let value = markdown;
175
+ for (const ext of this.extensions) {
176
+ if (ext.transformMarkdown) {
177
+ value = chainRenderStage(value, (md) => ext.transformMarkdown(md, context), context.signal);
178
+ }
179
+ }
180
+ value = chainRenderStage(value, (md) => {
181
+ if (this.renderer === defaultSafeMarkdownRenderer && htmlTransforms.length > 0) {
182
+ // Render unsanitized so the single DOMPurify pass runs after the
183
+ // transformHtml stage instead of twice.
184
+ return renderDefaultMarkdownUnsanitized(md);
185
+ }
186
+ return this.renderer.render(md, context);
187
+ }, context.signal);
188
+ for (const ext of htmlTransforms) {
189
+ value = chainRenderStage(value, (html) => ext.transformHtml(html, context), context.signal);
190
+ }
191
+ const skipSanitize = htmlTransforms.length === 0 && this.renderer.sanitizesOutput === true;
192
+ if (!skipSanitize) {
193
+ const contributions = this.extensions
194
+ .map((ext) => ext.sanitize)
195
+ .filter((contribution) => contribution !== undefined);
196
+ value = chainRenderStage(value, (html) => sanitizeMdzipHtml(html, contributions), context.signal);
197
+ }
198
+ return value;
81
199
  }
82
200
  }
83
201
  function rewriteAssetSources(markdown, resolver) {
@@ -1 +1 @@
1
- {"version":3,"file":"rendering.js","sourceRoot":"","sources":["../src/rendering.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rendering.js","sourceRoot":"","sources":["../src/rendering.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"view-css.d.ts","sourceRoot":"","sources":["../src/view-css.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,aAAa,QAk5CzB,CAAC"}
1
+ {"version":3,"file":"view-css.d.ts","sourceRoot":"","sources":["../src/view-css.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,aAAa,QAshDzB,CAAC"}
package/dist/view-css.js CHANGED
@@ -720,6 +720,16 @@ export const WORKSPACE_CSS = `
720
720
  overflow: auto;
721
721
  }
722
722
 
723
+ .mdzip-root .entry-pane {
724
+ overflow: auto;
725
+ }
726
+
727
+ .mdzip-root .pane-stack.entry-claimed .edit-pane,
728
+ .mdzip-root .pane-stack.entry-claimed .preview-pane,
729
+ .mdzip-root .pane-stack.entry-claimed .split-resizer {
730
+ display: none !important;
731
+ }
732
+
723
733
  .mdzip-root .edit-pane {
724
734
  overflow: hidden;
725
735
  flex-direction: column;
@@ -1017,6 +1027,70 @@ export const WORKSPACE_CSS = `
1017
1027
  border-radius: 4px;
1018
1028
  }
1019
1029
 
1030
+ /* Progressive image hydration. Each archive image mounts inside a collapsed
1031
+ slot so the text stays compact and immediately readable; when the image
1032
+ resolves, the slot eases open (0fr -> 1fr) to the height reserved from its
1033
+ sniffed dimensions, in a single slide, and the pixels drop into the exact
1034
+ box with no further reflow. */
1035
+ .mdzip-root .preview-content .mdzip-image-slot {
1036
+ display: inline-grid;
1037
+ grid-template-rows: 0fr;
1038
+ overflow: hidden;
1039
+ vertical-align: bottom;
1040
+ transition: grid-template-rows 0.28s ease;
1041
+ }
1042
+
1043
+ .mdzip-root .preview-content .mdzip-image-slot.mdzip-image-open {
1044
+ grid-template-rows: 1fr;
1045
+ }
1046
+
1047
+ .mdzip-root .preview-content .mdzip-image-slot > img {
1048
+ min-height: 0;
1049
+ }
1050
+
1051
+ .mdzip-root .preview-content img.mdzip-image-loading {
1052
+ background: var(--mdzip-control-background-color, rgba(127, 127, 127, 0.12));
1053
+ animation: mdzip-image-pulse 1.2s ease-in-out infinite;
1054
+ }
1055
+
1056
+ @keyframes mdzip-image-pulse {
1057
+ 0%, 100% { opacity: 1; }
1058
+ 50% { opacity: 0.55; }
1059
+ }
1060
+
1061
+ @media (prefers-reduced-motion: reduce) {
1062
+ .mdzip-root .preview-content .mdzip-image-slot {
1063
+ transition: none;
1064
+ }
1065
+ .mdzip-root .preview-content img.mdzip-image-loading {
1066
+ animation: none;
1067
+ }
1068
+ }
1069
+
1070
+ .mdzip-root .preview-content .mdzip-mermaid {
1071
+ display: flex;
1072
+ justify-content: center;
1073
+ margin: 1em 0;
1074
+ }
1075
+
1076
+ .mdzip-root .preview-content .mdzip-mermaid > svg {
1077
+ max-width: 100%;
1078
+ height: auto;
1079
+ }
1080
+
1081
+ .mdzip-root .preview-content .mdzip-mermaid-error {
1082
+ margin: 1em 0;
1083
+ padding: 0.75em 1em;
1084
+ border-radius: 6px;
1085
+ border: 1px solid var(--mdzip-error-border-color, rgba(220, 70, 70, 0.5));
1086
+ background: var(--mdzip-error-background-color, rgba(220, 70, 70, 0.08));
1087
+ color: var(--mdzip-error-color, #b03030);
1088
+ font-family: "Cascadia Code", Consolas, monospace;
1089
+ font-size: 0.85em;
1090
+ white-space: pre-wrap;
1091
+ word-break: break-word;
1092
+ }
1093
+
1020
1094
  .mdzip-root .plain-text-preview {
1021
1095
  margin: 0;
1022
1096
  white-space: pre-wrap;
@@ -1195,13 +1269,26 @@ export const WORKSPACE_CSS = `
1195
1269
  margin: 12px 0 0;
1196
1270
  }
1197
1271
 
1272
+ .mdzip-root .metadata-dialog {
1273
+ width: min(760px, calc(100vw - 32px));
1274
+ }
1275
+
1276
+ .mdzip-root .metadata-dialog h4 {
1277
+ margin: 18px 0 0;
1278
+ font-size: 13px;
1279
+ }
1280
+
1281
+ .mdzip-root .metadata-dialog h4 + dl {
1282
+ margin-top: 6px;
1283
+ }
1284
+
1198
1285
  .mdzip-root .metadata-row {
1199
1286
  display: grid;
1200
1287
  grid-template-columns: 110px minmax(0, 1fr);
1201
1288
  gap: 12px;
1202
1289
  padding: 7px 0;
1203
1290
  border-bottom: 1px solid var(--mdzip-border-color);
1204
- font-size: 12px;
1291
+ font-size: 14px;
1205
1292
  }
1206
1293
 
1207
1294
  .mdzip-root .metadata-row:last-child {
@@ -1219,6 +1306,51 @@ export const WORKSPACE_CSS = `
1219
1306
  overflow-wrap: anywhere;
1220
1307
  }
1221
1308
 
1309
+ .mdzip-root .library-row dt a {
1310
+ color: var(--mdzip-link-color);
1311
+ text-decoration: none;
1312
+ }
1313
+
1314
+ .mdzip-root .library-row dt a:hover,
1315
+ .mdzip-root .library-row dt a:focus-visible {
1316
+ text-decoration: underline;
1317
+ }
1318
+
1319
+ .mdzip-root .library-row {
1320
+ grid-template-columns: minmax(230px, 0.75fr) minmax(280px, 1.25fr);
1321
+ }
1322
+
1323
+ .mdzip-root .library-row dt {
1324
+ display: flex;
1325
+ gap: 8px;
1326
+ align-items: baseline;
1327
+ white-space: nowrap;
1328
+ }
1329
+
1330
+ .mdzip-root .library-version {
1331
+ color: var(--mdzip-muted-foreground-color);
1332
+ font-weight: 400;
1333
+ }
1334
+
1335
+ .mdzip-root .library-row dd {
1336
+ white-space: nowrap;
1337
+ }
1338
+
1339
+ .mdzip-root .library-description {
1340
+ color: var(--mdzip-muted-foreground-color);
1341
+ }
1342
+
1343
+ @media (max-width: 640px) {
1344
+ .mdzip-root .library-row {
1345
+ grid-template-columns: 1fr;
1346
+ gap: 3px;
1347
+ }
1348
+
1349
+ .mdzip-root .library-row dd {
1350
+ white-space: normal;
1351
+ }
1352
+ }
1353
+
1222
1354
  @media (max-width: 900px) {
1223
1355
  .mdzip-root { --nav-pane-width: 220px; }
1224
1356
  }
@@ -1 +1 @@
1
- {"version":3,"file":"view-css.js","sourceRoot":"","sources":["../src/view-css.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,MAAM,wBAAwB,GAAG,qBAAqB,CAAC,UAAU,CAC/D,UAAU,EACV,kBAAkB,CACnB,CAAC;AACF,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,UAAU,CAC7D,UAAU,EACV,kBAAkB,CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;IAUzB,mBAAmB;;;;;;;;;;;;;;;;;IAiBnB,wBAAwB;;;;;IAKxB,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAk3C1B,CAAC"}
1
+ {"version":3,"file":"view-css.js","sourceRoot":"","sources":["../src/view-css.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,MAAM,wBAAwB,GAAG,qBAAqB,CAAC,UAAU,CAC/D,UAAU,EACV,kBAAkB,CACnB,CAAC;AACF,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,UAAU,CAC7D,UAAU,EACV,kBAAkB,CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;IAUzB,mBAAmB;;;;;;;;;;;;;;;;;IAiBnB,wBAAwB;;;;;IAKxB,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAs/C1B,CAAC"}
package/dist/view.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  import type { MdzWorkspace, MdzWorkspaceAsset } from '@mdzip/core-js';
2
+ import { type MdzipAssetCache } from './asset-cache.js';
2
3
  import type { MdzipDocumentChangeEvent, MdzipEditorSnapshot, MdzipRemoveAssetOptions, MdzipWorkspaceOpenOptions } from './workspace.js';
4
+ import { type MdzipEntryRenderer, type MdzipMarkdownRenderer, type MdzipMarkdownRenderExtension } from './rendering.js';
3
5
  import type { MdzipWorkspaceSnapshot } from './workspace.js';
4
6
  export type MdzipWorkspaceLayout = 'preview' | 'source' | 'split';
5
7
  export type MdzipNavigationMode = 'editor' | 'host' | 'none';
@@ -14,6 +16,16 @@ export type MdzipConversionAction = {
14
16
  kind: 'image-file';
15
17
  file: File;
16
18
  };
19
+ export interface MdzipConversionContext {
20
+ insertMarkdown(text: string): Promise<boolean>;
21
+ convertToMdz(): Promise<boolean>;
22
+ }
23
+ export interface MdzipLibraryInfo {
24
+ name: string;
25
+ version: string;
26
+ repositoryUrl?: string;
27
+ description?: string;
28
+ }
17
29
  export type MdzipControlPreset = 'preview' | 'viewer' | 'standalone-editor' | 'hosted-editor' | 'custom';
18
30
  export interface MdzipTitleControlPolicy {
19
31
  visible?: boolean;
@@ -99,6 +111,13 @@ export interface MdzipWorkspaceSave {
99
111
  snapshot: MdzipWorkspaceSnapshot;
100
112
  }
101
113
  export interface MdzipWorkspaceViewOptions {
114
+ /**
115
+ * Additional host or framework libraries to show in Document Information.
116
+ * Framework wrappers populate this automatically.
117
+ */
118
+ libraries?: readonly MdzipLibraryInfo[];
119
+ /** Optional persistent cache for lazily resolved archive assets. */
120
+ assetCache?: MdzipAssetCache;
102
121
  controls?: MdzipControlPreset | MdzipControlPolicy;
103
122
  initialLayout?: MdzipWorkspaceLayout;
104
123
  initialColorScheme?: MdzipColorScheme;
@@ -129,6 +148,21 @@ export interface MdzipWorkspaceViewOptions {
129
148
  onDirtyChanged?: (snapshot: MdzipWorkspaceSnapshot) => void;
130
149
  onValidationChanged?: (snapshot: MdzipWorkspaceSnapshot) => void;
131
150
  onColorSchemeChanged?: (colorScheme: MdzipColorScheme) => void;
151
+ /**
152
+ * Fires when the preview HTML for the current selection has been mounted
153
+ * into the DOM (image `src`s already resolved to their session URLs).
154
+ * Lets hosts reveal or animate preview content without observing private
155
+ * editor DOM or guessing at timing. Not fired when an entry renderer
156
+ * claims the pane or when the active path has no preview.
157
+ */
158
+ onPreviewRendered?: (snapshot: MdzipWorkspaceSnapshot) => void;
159
+ /**
160
+ * Fires after {@link onPreviewRendered} once every `<img>` in the mounted
161
+ * preview has finished loading (or errored) — i.e. the preview and its
162
+ * images are visually ready. Fires immediately after render when the
163
+ * preview contains no images. See also {@link MdzipWorkspaceView.whenRendered}.
164
+ */
165
+ onAssetsHydrated?: (snapshot: MdzipWorkspaceSnapshot) => void;
132
166
  onFailed?: (error: unknown) => void;
133
167
  /**
134
168
  * Lets the host take over the markdown→MDZ conversion flow (triggered by the
@@ -138,11 +172,36 @@ export interface MdzipWorkspaceViewOptions {
138
172
  * callback) to keep the built-in dialog. If the callback throws or rejects,
139
173
  * the error is reported via `onFailed` and the built-in dialog is shown.
140
174
  */
141
- onConversionRequested?: (action: MdzipConversionAction) => boolean | Promise<boolean>;
175
+ onConversionRequested?: (action: MdzipConversionAction, context: MdzipConversionContext) => boolean | Promise<boolean>;
176
+ /**
177
+ * Replaces the default markdown renderer. Output is sanitized by the
178
+ * pipeline unless the renderer declares `sanitizesOutput`. May render
179
+ * asynchronously; stale results are dropped when the selection moves on.
180
+ */
181
+ markdownRenderer?: MdzipMarkdownRenderer;
182
+ /**
183
+ * Composable extensions over the markdown pipeline (transformMarkdown,
184
+ * transformHtml, mount). Sanitization stays in the pipeline.
185
+ */
186
+ markdownExtensions?: readonly MdzipMarkdownRenderExtension[];
187
+ /**
188
+ * Entry renderers that can claim the full pane stack for selected archive
189
+ * entries. First match by descending priority wins; built-in rendering is
190
+ * the fallback. Handles are destroyed on selection change and destroy().
191
+ */
192
+ entryRenderers?: readonly MdzipEntryRenderer[];
193
+ }
194
+ /** Options accepted by {@link MdzipWorkspaceView.setRenderingOptions}. */
195
+ export interface MdzipRenderingOptions {
196
+ /** Pass `null` to restore the default renderer. */
197
+ markdownRenderer?: MdzipMarkdownRenderer | null;
198
+ markdownExtensions?: readonly MdzipMarkdownRenderExtension[];
199
+ entryRenderers?: readonly MdzipEntryRenderer[];
142
200
  }
143
201
  export declare function resolveMdzipControlPolicy(controls: MdzipControlPreset | MdzipControlPolicy | undefined): MdzipResolvedControlPolicy;
144
202
  export declare class MdzipWorkspaceView {
145
203
  private workspace;
204
+ private assetSession;
146
205
  private unsub;
147
206
  private readonly options;
148
207
  private readonly controlPolicy;
@@ -165,6 +224,8 @@ export declare class MdzipWorkspaceView {
165
224
  private readonly pendingNewFolders;
166
225
  private pendingReplacePath;
167
226
  private conversionHookPending;
227
+ private conversionDocumentGeneration;
228
+ private openGeneration;
168
229
  private dragSourcePath;
169
230
  private dragOverElement;
170
231
  private tooltipState;
@@ -174,6 +235,19 @@ export declare class MdzipWorkspaceView {
174
235
  private readonly readOnlyCompartment;
175
236
  private updatingCm;
176
237
  private syncing;
238
+ private markdownRenderer?;
239
+ private markdownExtensions;
240
+ private entryRenderers;
241
+ private renderingService;
242
+ private previewMemo;
243
+ private previewGeneration;
244
+ private previewAbort;
245
+ private previewHandles;
246
+ private previewHydrated;
247
+ private renderedWaiters;
248
+ private entryState;
249
+ private entryMatchMissKey;
250
+ private entryGeneration;
177
251
  private readonly elRoot;
178
252
  private readonly elDocumentStrip;
179
253
  private readonly elToolbar;
@@ -206,6 +280,7 @@ export declare class MdzipWorkspaceView {
206
280
  private readonly elSplitResizer;
207
281
  private readonly elPreviewPane;
208
282
  private readonly elPreviewContent;
283
+ private readonly elEntryPane;
209
284
  private readonly elTitleDialog;
210
285
  private readonly elTitleInput;
211
286
  private readonly elTitleValidation;
@@ -213,6 +288,7 @@ export declare class MdzipWorkspaceView {
213
288
  private readonly elTitleResetBtn;
214
289
  private readonly elMetadataDialog;
215
290
  private readonly elMetadataList;
291
+ private readonly elLibraryList;
216
292
  private readonly elConversionDialog;
217
293
  private readonly elConversionConfirmBtn;
218
294
  private readonly elNavMenu;
@@ -281,7 +357,75 @@ export declare class MdzipWorkspaceView {
281
357
  convertToMdz(): Promise<boolean>;
282
358
  focus(): void;
283
359
  destroy(): void;
360
+ /**
361
+ * Replaces the rendering configuration without recreating the view (and
362
+ * therefore without re-opening the workspace). Wrappers call this when
363
+ * renderer props change; the cost is one preview re-render and entry
364
+ * renderer re-match.
365
+ */
366
+ setRenderingOptions(options: MdzipRenderingOptions): void;
367
+ /**
368
+ * Tears down all custom rendering state: aborts in-flight renders, destroys
369
+ * mounted extension and entry renderer handles, and clears memo caches.
370
+ * Used when the workspace is replaced or the view is destroyed.
371
+ */
372
+ private resetRenderingState;
373
+ private replaceAssetSession;
374
+ private resetPreviewState;
375
+ private destroyPreviewHandles;
376
+ private updatePreview;
377
+ private applyPreviewHtml;
378
+ private mountPreviewHtml;
379
+ /**
380
+ * Mounts the rendered text immediately with image placeholders, then swaps
381
+ * each archive image in as it resolves. `onPreviewRendered` fires once the
382
+ * text is in the DOM; `onAssetsHydrated` fires once every referenced image
383
+ * has resolved and had its final `src` assigned (or there are none).
384
+ */
385
+ private mountProgressivePreview;
386
+ /**
387
+ * Reveals a collapsed image slot. Flushing layout before toggling the class
388
+ * lets the `0fr -> 1fr` grid transition run from the collapsed state instead
389
+ * of being coalesced into the initial mount; CSS snaps it open instantly
390
+ * under `prefers-reduced-motion`.
391
+ */
392
+ private openImageSlot;
393
+ /**
394
+ * Wires `<img>` load/error handling for a resolved archive image.
395
+ *
396
+ * `resolveImage()` already succeeded, so an `error` here is environmental
397
+ * rather than a missing asset — most often a host whose CSP `img-src` blocks
398
+ * the `blob:` object URL. When that happens we retry once with a `data:` URL
399
+ * (which many such hosts still permit), and only if that also fails do we
400
+ * surface the failure via `onFailed` instead of leaving a silent blank box.
401
+ */
402
+ private attachImageLoadHandlers;
403
+ private reportImageLoadFailure;
404
+ private mountPreviewExtensions;
405
+ private firePreviewRendered;
406
+ private fireAssetsHydrated;
407
+ private flushRenderedWaiters;
408
+ /**
409
+ * Resolves once the current preview (including any images) is mounted and
410
+ * hydrated. Resolves immediately when the latest preview is already ready.
411
+ * Useful for revealing or animating content without observing private DOM.
412
+ */
413
+ whenRendered(): Promise<void>;
414
+ private createMarkdownContext;
415
+ /**
416
+ * Entry renderer lifecycle. Renders are keyed by
417
+ * (path, pathType, mode, sourceFormat): same key keeps the mounted handle
418
+ * (calling `update()` when colorScheme or manifest changed), a changed key
419
+ * destroys it and re-runs matching. Rename/move/delete of the backing entry
420
+ * changes the path and is therefore handled as a selection change.
421
+ */
422
+ private syncEntryRenderer;
423
+ private maybeUpdateEntryRenderer;
424
+ private matchEntryRenderer;
425
+ private teardownEntryRenderer;
426
+ private createEntryContext;
284
427
  private createCmEditor;
428
+ private ensureCmEditor;
285
429
  private render;
286
430
  private allowFileActions;
287
431
  private prunePendingFolders;
@@ -298,7 +442,10 @@ export declare class MdzipWorkspaceView {
298
442
  private downloadSavedBlob;
299
443
  private saveTitle;
300
444
  private renderMetadata;
445
+ private createMetadataRow;
446
+ private createLibraryRow;
301
447
  private requestMdzConversion;
448
+ private createConversionContext;
302
449
  private openConversionDialog;
303
450
  private confirmMdzConversion;
304
451
  private handlePaste;
@@ -1 +1 @@
1
- {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../src/view.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGtE,OAAO,KAAK,EACV,wBAAwB,EACxB,mBAAmB,EACnB,uBAAuB,EACvB,yBAAyB,EAC1B,MAAM,gBAAgB,CAAC;AAmBxB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAuC7D,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAClE,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAC7D,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,CAAC;AAChD,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEtD,MAAM,MAAM,kBAAkB,GAC1B,MAAM,GACN,QAAQ,GACR,eAAe,GACf,WAAW,GACX,WAAW,iBAAiB,EAAE,GAC9B,aAAa,GACb,cAAc,GACd,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,MAAM,GACN,cAAc,CAAC;AAEnB,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC;AAqBvC,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GACT,QAAQ,GACR,mBAAmB,GACnB,eAAe,GACf,QAAQ,CAAC;AAEb,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAC;IAC1C,MAAM,CAAC,EAAE,OAAO,GAAG,wBAAwB,CAAC;IAC5C,UAAU,CAAC,EAAE,OAAO,GAAG,4BAA4B,CAAC;IACpD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,+BAA+B;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gCAAgC;IAC/C,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,oCAAoC;IACnD,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,+BAA+B,CAAC;IACvC,MAAM,EAAE,gCAAgC,CAAC;IACzC,UAAU,EAAE,oCAAoC,CAAC;IACjD,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,sBAAsB,CAAC;CAClC;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,sBAAsB,CAAC;CAClC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,kBAAkB,GAAG,kBAAkB,CAAC;IACnD,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,kBAAkB,CAAC,EAAE,gBAAgB,CAAC;IACtC,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAC1E,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACxE,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAC/D,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAC9D,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAC3D;;;;;;;;;;;;;OAaG;IACH,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAC9D,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAC/D,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAChE,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAC5D,mBAAmB,CAAC,EAAE,CAAC,QAAQ,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACjE,oBAAoB,CAAC,EAAE,CAAC,WAAW,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC/D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACvF;AA8FD,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,kBAAkB,GAAG,kBAAkB,GAAG,SAAS,GAC5D,0BAA0B,CA4B5B;AAmRD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;IAC3D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;IAErD,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,gBAAgB,CAAsC;IAC9D,OAAO,CAAC,YAAY,CAAO;IAC3B,OAAO,CAAC,UAAU,CAAO;IACzB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAqE;IACzF,OAAO,CAAC,eAAe,CAMP;IAChB,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IACvD,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,YAAY,CAAuD;IAC3E,OAAO,CAAC,gBAAgB,CAA8C;IACtE,OAAO,CAAC,gBAAgB,CAA8C;IAEtE,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAqB;IACzD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAc;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAc;IAC5C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAc;IAC/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAc;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAc;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoB;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAc;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAc;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAc;IAC5C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAc;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAc;IAC5C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAc;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAc;IAC5C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAChD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAc;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoB;IACpD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAc;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAc;IAC7C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAc;IACjD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAoB;IAC3D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAc;IAClD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAc;IAC/C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IACrD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAc;IAC7C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAc;IACjD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAoB;IACvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAc;gBAExB,SAAS,EAAE,WAAW,EAAE,OAAO,GAAE,yBAA8B;IA4ElF;;;;;;OAMG;IACU,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,GAAE,yBAA8B,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/E,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,GAAE,yBAA8B,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BnG;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACU,aAAa,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,GAAE,yBAA8B,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B9F,KAAK,IAAI,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAI5C,SAAS,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAIjC,kBAAkB,IAAI,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAI/D,aAAa,IAAI,IAAI;IAIf,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAI1E,WAAW,CACtB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,OAAO,CAAC;IAIN,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIjD,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9D,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpD,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAIjE,UAAU,IAAI,iBAAiB,EAAE;IAIjC,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO;IASjD,cAAc,CAAC,OAAO,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAsB1E,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IActC,KAAK,IAAI,IAAI;IAIb,OAAO,IAAI,IAAI;IAkBtB,OAAO,CAAC,cAAc;IAmFtB,OAAO,CAAC,MAAM;IAqNd,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,YAAY;IA2XpB,OAAO,CAAC,eAAe;YAaT,QAAQ;IAetB,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,yBAAyB;IAiBjC,OAAO,CAAC,wBAAwB;IAKhC,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,WAAW;YAgBL,IAAI;IAsBlB,OAAO,CAAC,iBAAiB;YAkBX,SAAS;IAcvB,OAAO,CAAC,cAAc;IAwBtB,OAAO,CAAC,oBAAoB;IA6B5B,OAAO,CAAC,oBAAoB;YAMd,oBAAoB;YAmBpB,WAAW;YA8BX,eAAe;YAcf,gBAAgB;IAmB9B,OAAO,CAAC,mBAAmB;IAsD3B,OAAO,CAAC,wBAAwB;IAwChC,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,mBAAmB;IAwB3B,OAAO,CAAC,mBAAmB;IAmC3B,OAAO,CAAC,qBAAqB;YAqBf,aAAa;IAqC3B,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,OAAO;IAKf;;;;;;;;;OASG;IACI,cAAc,CAAC,WAAW,EAAE,gBAAgB,GAAG,IAAI;IAQ1D,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,YAAY;YA4DN,mBAAmB;IAgFjC,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,kBAAkB;YAqCZ,iBAAiB;YAyCjB,UAAU;IAWxB,OAAO,CAAC,mBAAmB;YAcb,gBAAgB;IAa9B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,yBAAyB;YAwBnB,qBAAqB;YAmBrB,mBAAmB;YAUnB,aAAa;YAyBb,qBAAqB;IASnC,OAAO,CAAC,oBAAoB;IAoE5B,OAAO,CAAC,kBAAkB;YASZ,mBAAmB;YAcnB,eAAe;IAgC7B,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,mBAAmB;CAc5B"}
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../src/view.ts"],"names":[],"mappings":"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"}