ugly-app 0.1.724 → 0.1.725
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/cli/version.d.ts +1 -1
- package/dist/cli/version.js +1 -1
- package/dist/markdown/client/MdastViewer.d.ts.map +1 -1
- package/dist/markdown/client/MdastViewer.js +160 -38
- package/dist/markdown/client/MdastViewer.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/version.ts +1 -1
- package/src/markdown/client/MdastViewer.tsx +225 -50
package/dist/cli/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const CLI_VERSION = "0.1.
|
|
1
|
+
export declare const CLI_VERSION = "0.1.725";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/cli/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MdastViewer.d.ts","sourceRoot":"","sources":["../../../src/markdown/client/MdastViewer.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAuBH,OAAO,
|
|
1
|
+
{"version":3,"file":"MdastViewer.d.ts","sourceRoot":"","sources":["../../../src/markdown/client/MdastViewer.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAuBH,OAAO,EAYL,sBAAsB,EAKvB,MAAM,yBAAyB,CAAC;AAKjC,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,SAAS,CAAC;AAgCtD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,GAAG,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yGAAyG;IACzG,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACxE,mGAAmG;IACnG,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,+BA4GlD;AAwzBD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM;;;EAMvD"}
|
|
@@ -20,6 +20,7 @@ const MdastViewerContext = createContext({
|
|
|
20
20
|
scrollToView: false,
|
|
21
21
|
isDark: false,
|
|
22
22
|
onCheckboxToggle: undefined,
|
|
23
|
+
footnoteNumbers: new Map(),
|
|
23
24
|
});
|
|
24
25
|
function useMdastViewerData() {
|
|
25
26
|
return useContext(MdastViewerContext);
|
|
@@ -97,6 +98,9 @@ export function MdastViewer(props) {
|
|
|
97
98
|
};
|
|
98
99
|
}, [priorityOffset, shouldScroll, markdown, ast, scrollView]);
|
|
99
100
|
const themeClass = props.isDark ? 'prosemirror-dark' : 'prosemirror-light';
|
|
101
|
+
// Number footnotes by first-reference order so refs and the Notes list agree
|
|
102
|
+
// (the def list order in the source can differ from citation order).
|
|
103
|
+
const footnoteNumbers = useMemo(() => collectFootnoteOrder(ast), [ast]);
|
|
100
104
|
return (_jsx(MdastViewerContext.Provider, { value: {
|
|
101
105
|
width: props.width,
|
|
102
106
|
textIndex: props.textIndex ?? undefined,
|
|
@@ -106,6 +110,7 @@ export function MdastViewer(props) {
|
|
|
106
110
|
isDark: props.isDark ?? false,
|
|
107
111
|
onCheckboxToggle: props.onCheckboxToggle,
|
|
108
112
|
priorityOffset: props.priorityOffset,
|
|
113
|
+
footnoteNumbers,
|
|
109
114
|
}, children: _jsx("div", { ref: rootRef, className: `ProseMirror ${themeClass}`, style: {
|
|
110
115
|
maxWidth: props.width,
|
|
111
116
|
color: props.color,
|
|
@@ -114,6 +119,43 @@ export function MdastViewer(props) {
|
|
|
114
119
|
transformOrigin: props.scale ? 'top left' : undefined,
|
|
115
120
|
}, children: _jsx(MdastNodeRenderer, { node: ast }) }) }));
|
|
116
121
|
}
|
|
122
|
+
// --- Footnotes ---
|
|
123
|
+
/** Stable DOM ids for footnote ref <-> definition cross-linking. */
|
|
124
|
+
const footnoteDefDomId = (id) => `mdast-fn-${id}`;
|
|
125
|
+
const footnoteRefDomId = (id) => `mdast-fnref-${id}`;
|
|
126
|
+
/**
|
|
127
|
+
* Number footnotes by FIRST-REFERENCE order (the order they're cited in the
|
|
128
|
+
* body), so the inline marker and the Notes list agree even when the source
|
|
129
|
+
* lists the definitions in a different order. Notes that are defined but never
|
|
130
|
+
* referenced are appended after, so each one still gets a number.
|
|
131
|
+
*/
|
|
132
|
+
function collectFootnoteOrder(root) {
|
|
133
|
+
const order = new Map();
|
|
134
|
+
const defined = new Set();
|
|
135
|
+
const walk = (node) => {
|
|
136
|
+
if (!node || typeof node !== 'object')
|
|
137
|
+
return;
|
|
138
|
+
const n = node;
|
|
139
|
+
if (n.type === 'footnoteReference' &&
|
|
140
|
+
n.identifier &&
|
|
141
|
+
!order.has(n.identifier)) {
|
|
142
|
+
order.set(n.identifier, order.size + 1);
|
|
143
|
+
}
|
|
144
|
+
if (n.type === 'footnoteDefinition' && n.identifier) {
|
|
145
|
+
defined.add(n.identifier);
|
|
146
|
+
}
|
|
147
|
+
if (Array.isArray(n.children)) {
|
|
148
|
+
for (const child of n.children)
|
|
149
|
+
walk(child);
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
walk(root);
|
|
153
|
+
for (const id of defined) {
|
|
154
|
+
if (!order.has(id))
|
|
155
|
+
order.set(id, order.size + 1);
|
|
156
|
+
}
|
|
157
|
+
return order;
|
|
158
|
+
}
|
|
117
159
|
function MdastNodeRenderer({ node, isHeader }) {
|
|
118
160
|
const state = useMdastViewerData();
|
|
119
161
|
// Early return for cropped content
|
|
@@ -167,6 +209,10 @@ function MdastNodeRenderer({ node, isHeader }) {
|
|
|
167
209
|
return _jsx(MdastMermaidRenderer, { node: node });
|
|
168
210
|
case 'html':
|
|
169
211
|
return _jsx(MdastHtmlRenderer, { node: node });
|
|
212
|
+
case 'footnoteReference':
|
|
213
|
+
return _jsx(MdastFootnoteReferenceRenderer, { node: node });
|
|
214
|
+
case 'footnoteDefinition':
|
|
215
|
+
return _jsx(MdastFootnoteDefinitionRenderer, { node: node });
|
|
170
216
|
default:
|
|
171
217
|
// Unknown node type - render children if any
|
|
172
218
|
if ('children' in node && Array.isArray(node.children)) {
|
|
@@ -184,37 +230,91 @@ function MdastNodeRenderer({ node, isHeader }) {
|
|
|
184
230
|
const ROOT_BATCH_SIZE = 30;
|
|
185
231
|
/** Number of batches to render on the first paint (viewport + buffer) */
|
|
186
232
|
const INITIAL_BATCH_COUNT = 4;
|
|
187
|
-
/**
|
|
188
|
-
|
|
233
|
+
/** Estimated batch height used to reserve space for not-yet-mounted batches
|
|
234
|
+
* (matches the content-visibility intrinsic-size estimate below). */
|
|
235
|
+
const PLACEHOLDER_HEIGHT = 600;
|
|
189
236
|
const batchStyle = {
|
|
190
237
|
contentVisibility: 'auto',
|
|
191
|
-
containIntrinsicSize:
|
|
192
|
-
};
|
|
193
|
-
const placeholderStyle = {
|
|
194
|
-
height: 600,
|
|
238
|
+
containIntrinsicSize: `auto ${PLACEHOLDER_HEIGHT}px`,
|
|
195
239
|
};
|
|
196
240
|
function MdastRoot({ node }) {
|
|
197
241
|
const state = useMdastViewerData();
|
|
198
242
|
if (!('children' in node))
|
|
199
243
|
return null;
|
|
200
|
-
const
|
|
201
|
-
if (!
|
|
244
|
+
const allChildren = node.children;
|
|
245
|
+
if (!allChildren)
|
|
202
246
|
return null;
|
|
203
|
-
//
|
|
204
|
-
|
|
205
|
-
|
|
247
|
+
// Pull footnote definitions out of the flow and collect them into a single
|
|
248
|
+
// "Notes" section rendered at the end (regardless of where they sit in the
|
|
249
|
+
// source), so they're numbered, ordered, and link back to the citation.
|
|
250
|
+
const children = [];
|
|
251
|
+
const footnoteDefs = [];
|
|
252
|
+
for (const child of allChildren) {
|
|
253
|
+
if (child.type === 'footnoteDefinition') {
|
|
254
|
+
footnoteDefs.push(child);
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
children.push(child);
|
|
258
|
+
}
|
|
206
259
|
}
|
|
260
|
+
// For small documents, render directly without batching overhead.
|
|
261
|
+
const body = children.length <= ROOT_BATCH_SIZE * 2 ? (_jsx(_Fragment, { children: children.map((child, i) => (_jsx(MdastNodeRenderer, { node: child }, i))) })) : (
|
|
207
262
|
// For large documents, batch top-level children and apply
|
|
208
|
-
// content-visibility: auto so the browser skips layout/paint
|
|
209
|
-
//
|
|
210
|
-
|
|
211
|
-
return (
|
|
263
|
+
// content-visibility: auto so the browser skips layout/paint for
|
|
264
|
+
// off-screen sections. Batches mount progressively to reduce render cost.
|
|
265
|
+
_jsx(MdastRootBatched, { priorityOffset: state.priorityOffset, children: children }));
|
|
266
|
+
return (_jsxs(_Fragment, { children: [body, footnoteDefs.length > 0 && _jsx(MdastFootnotesSection, { defs: footnoteDefs })] }));
|
|
267
|
+
}
|
|
268
|
+
// --- Footnote renderers ---
|
|
269
|
+
/** Inline citation marker, e.g. text[1] — links down to its Notes entry. */
|
|
270
|
+
function MdastFootnoteReferenceRenderer({ node }) {
|
|
271
|
+
const { footnoteNumbers } = useMdastViewerData();
|
|
272
|
+
const id = node.identifier;
|
|
273
|
+
const num = footnoteNumbers.get(id) ?? '?';
|
|
274
|
+
return (_jsx("sup", { id: footnoteRefDomId(id), className: "mdast-footnote-ref", children: _jsx("a", { href: `#${footnoteDefDomId(id)}`, "aria-label": `Footnote ${num}`, children: num }) }));
|
|
275
|
+
}
|
|
276
|
+
/** A standalone footnote definition (rare — they're normally grouped into the
|
|
277
|
+
* Notes section by MdastRoot). Rendered inline for completeness. */
|
|
278
|
+
function MdastFootnoteDefinitionRenderer({ node }) {
|
|
279
|
+
return _jsx(MdastFootnoteItem, { node: node });
|
|
280
|
+
}
|
|
281
|
+
/** One entry in the Notes list: number · note body · back-link to the text. */
|
|
282
|
+
function MdastFootnoteItem({ node }) {
|
|
283
|
+
const def = node;
|
|
284
|
+
const id = def.identifier;
|
|
285
|
+
return (_jsxs("li", { id: footnoteDefDomId(id), className: "mdast-footnote-def", children: [def.children?.map((child, i) => (_jsx(MdastNodeRenderer, { node: child }, i))), _jsx("a", { href: `#${footnoteRefDomId(id)}`, className: "mdast-footnote-backref", "aria-label": "Back to text", children: ' ↩' })] }));
|
|
286
|
+
}
|
|
287
|
+
/** The "Notes" section: an ordered list of definitions sorted by citation
|
|
288
|
+
* order, so the `<ol>` numbering matches the inline markers. */
|
|
289
|
+
function MdastFootnotesSection({ defs }) {
|
|
290
|
+
const { footnoteNumbers } = useMdastViewerData();
|
|
291
|
+
const ordered = [...defs].sort((a, b) => {
|
|
292
|
+
const an = footnoteNumbers.get(a.identifier) ?? 0;
|
|
293
|
+
const bn = footnoteNumbers.get(b.identifier) ?? 0;
|
|
294
|
+
return an - bn;
|
|
295
|
+
});
|
|
296
|
+
return (_jsxs("section", { className: "mdast-footnotes", "aria-label": "Notes", children: [_jsx("hr", {}), _jsx("ol", { children: ordered.map((def, i) => (_jsx(MdastFootnoteItem, { node: def }, i))) })] }));
|
|
212
297
|
}
|
|
213
298
|
function MdastRootBatched(props) {
|
|
214
299
|
const { children, priorityOffset } = props;
|
|
215
300
|
const totalBatches = Math.ceil(children.length / ROOT_BATCH_SIZE);
|
|
216
|
-
|
|
217
|
-
//
|
|
301
|
+
// Mount a batch when it nears the viewport (monotonic — once mounted it stays).
|
|
302
|
+
// The previous strategy mounted batches top-down on every idle frame, which
|
|
303
|
+
// grows the document height UNDER the user and makes the scrollbar jump when
|
|
304
|
+
// you scroll toward the bottom. Proximity-mounting settles each batch's real
|
|
305
|
+
// height ~1 viewport ahead of the scroll, so the bar stays stable.
|
|
306
|
+
const [mounted, setMounted] = useState(() => {
|
|
307
|
+
const init = new Set();
|
|
308
|
+
for (let i = 0; i < Math.min(INITIAL_BATCH_COUNT, totalBatches); i++) {
|
|
309
|
+
init.add(i);
|
|
310
|
+
}
|
|
311
|
+
return init;
|
|
312
|
+
});
|
|
313
|
+
const slotRefs = useRef([]);
|
|
314
|
+
// Real measured heights, reused as placeholder reservations so an unmounted
|
|
315
|
+
// batch never mis-estimates its height once it has been seen.
|
|
316
|
+
const heights = useRef([]);
|
|
317
|
+
// Find which batch the priority offset falls into (deep-link / search target).
|
|
218
318
|
const priorityBatchIndex = useMemo(() => {
|
|
219
319
|
if (!isDefined(priorityOffset))
|
|
220
320
|
return -1;
|
|
@@ -229,39 +329,61 @@ function MdastRootBatched(props) {
|
|
|
229
329
|
}
|
|
230
330
|
return -1;
|
|
231
331
|
}, [priorityOffset, totalBatches, children]);
|
|
232
|
-
// Progressively mount more batches during idle time
|
|
233
332
|
useEffect(() => {
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
rafId = requestAnimationFrame(mountMore);
|
|
242
|
-
}
|
|
243
|
-
return next;
|
|
333
|
+
// Without IntersectionObserver (e.g. SSR/jsdom), fall back to mounting all.
|
|
334
|
+
if (typeof IntersectionObserver === 'undefined') {
|
|
335
|
+
setMounted(() => {
|
|
336
|
+
const all = new Set();
|
|
337
|
+
for (let i = 0; i < totalBatches; i++)
|
|
338
|
+
all.add(i);
|
|
339
|
+
return all;
|
|
244
340
|
});
|
|
245
|
-
|
|
246
|
-
|
|
341
|
+
return undefined;
|
|
342
|
+
}
|
|
343
|
+
const io = new IntersectionObserver((entries) => {
|
|
344
|
+
let added = false;
|
|
345
|
+
const next = new Set();
|
|
346
|
+
for (const entry of entries) {
|
|
347
|
+
if (!entry.isIntersecting)
|
|
348
|
+
continue;
|
|
349
|
+
const idx = Number(entry.target.dataset.batch);
|
|
350
|
+
if (!Number.isNaN(idx)) {
|
|
351
|
+
next.add(idx);
|
|
352
|
+
added = true;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
if (added)
|
|
356
|
+
setMounted((prev) => new Set([...prev, ...next]));
|
|
357
|
+
},
|
|
358
|
+
// Mount ~one viewport ahead so heights settle off-screen.
|
|
359
|
+
{ rootMargin: '1200px 0px' });
|
|
360
|
+
for (const el of slotRefs.current)
|
|
361
|
+
if (el)
|
|
362
|
+
io.observe(el);
|
|
247
363
|
return () => {
|
|
248
|
-
|
|
364
|
+
io.disconnect();
|
|
249
365
|
};
|
|
250
366
|
}, [totalBatches]);
|
|
367
|
+
// Remember each mounted batch's real height for stable placeholder sizing.
|
|
368
|
+
useEffect(() => {
|
|
369
|
+
for (let i = 0; i < slotRefs.current.length; i++) {
|
|
370
|
+
const el = slotRefs.current[i];
|
|
371
|
+
if (el && el.childElementCount > 0)
|
|
372
|
+
heights.current[i] = el.offsetHeight;
|
|
373
|
+
}
|
|
374
|
+
});
|
|
251
375
|
const batches = [];
|
|
252
376
|
for (let i = 0; i < totalBatches; i++) {
|
|
253
377
|
const start = i * ROOT_BATCH_SIZE;
|
|
254
378
|
const end = Math.min(start + ROOT_BATCH_SIZE, children.length);
|
|
255
|
-
// Mount if within the progressive count or is the priority batch (± 1 neighbor)
|
|
256
379
|
const isPriority = priorityBatchIndex >= 0 &&
|
|
257
380
|
i >= priorityBatchIndex - 1 &&
|
|
258
381
|
i <= priorityBatchIndex + 1;
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
}
|
|
382
|
+
const show = mounted.has(i) || isPriority;
|
|
383
|
+
batches.push(_jsx("div", { "data-batch": i, ref: (el) => {
|
|
384
|
+
slotRefs.current[i] = el;
|
|
385
|
+
}, style: show ? batchStyle : { height: heights.current[i] ?? PLACEHOLDER_HEIGHT }, children: show &&
|
|
386
|
+
children.slice(start, end).map((child, j) => (_jsx(MdastNodeRenderer, { node: child }, start + j))) }, i));
|
|
265
387
|
}
|
|
266
388
|
return _jsx(_Fragment, { children: batches });
|
|
267
389
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MdastViewer.js","sourceRoot":"","sources":["../../../src/markdown/client/MdastViewer.tsx"],"names":[],"mappings":";AAAA;;;;;;GAMG;AAEH,uDAAuD;AACvD,+DAA+D;AAC/D,OAAO,EACL,aAAa,EAIb,UAAU,EACV,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,EACL,cAAc,EACd,YAAY,EACZ,aAAa,EACb,0BAA0B,GAC3B,MAAM,0BAA0B,CAAC;AAiBlC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAiBtD,kBAAkB;AAElB,MAAM,kBAAkB,GAAG,aAAa,CAAyB;IAC/D,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,UAAU;IACnB,YAAY,EAAE,KAAK;IACnB,MAAM,EAAE,KAAK;IACb,gBAAgB,EAAE,SAAS;CAC5B,CAAC,CAAC;AAEH,SAAS,kBAAkB;IACzB,OAAO,UAAU,CAAC,kBAAkB,CAAC,CAAC;AACxC,CAAC;AAuBD,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,2EAA2E;IAC3E,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;IAEtC,kDAAkD;IAClD,SAAS,CAAC,GAAG,EAAE;QACb,qEAAqE;QACrE,IAAI,CAAC,UAAU,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,OAAO,aAAa,CAAC,GAAG,EAAE;gBACxB,aAAa,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE3B,MAAM,GAAG,GAAG,OAAO,CAAC,GAA2B,EAAE;QAC/C,IAAI,KAAK,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC,GAAG,CAAC;QAChC,MAAM,MAAM,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC,GAAG,CAAC;QAClB,iEAAiE;IACnE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IAEtC,6EAA6E;IAC7E,6EAA6E;IAC7E,2EAA2E;IAC3E,+EAA+E;IAC/E,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAC7D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO,SAAS,CAAC;QAClE,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,IAAI,SAAS;gBAAE,OAAO;YACtB,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAC3C,mBAAmB,CACpB,CAAC;YACF,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,IAAI,IAAI,GAAuB,IAAI,CAAC;gBACpC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;gBAChB,IAAI,OAAO,GAAuB,IAAI,CAAC;gBACvC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;oBACjB,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBACxC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;wBAAE,OAAO;oBAC7B,IAAI,CAAC,OAAO;wBAAE,OAAO,GAAG,EAAE,CAAC;oBAC3B,IAAI,EAAE,IAAI,cAAc,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;wBACxC,IAAI,GAAG,EAAE,CAAC;wBACV,MAAM,GAAG,EAAE,CAAC;oBACd,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,MAAM,QAAQ,GAAG,CAAC,IAAI,IAAI,OAAO,CAAuB,CAAC;gBACzD,IAAI,QAAQ,EAAE,CAAC;oBACb,UAAU,CAAC,YAAY,CAAC;wBACtB,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAA0C;wBACtE,QAAQ,EAAE,IAAI;wBACd,YAAY,EAAE,EAAE;qBACjB,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;YACH,CAAC;YACD,IAAI,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC;gBACjB,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC;QACF,MAAM,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAClC,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;YACjB,YAAY,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;IAE9D,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAE3E,OAAO,CACL,KAAC,kBAAkB,CAAC,QAAQ,IAC1B,KAAK,EAAE;YACL,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,SAAS;YACvC,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,UAAU;YACpC,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,KAAK;YACzC,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK;YAC7B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,cAAc,EAAE,KAAK,CAAC,cAAc;SACrC,YAED,cACE,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,eAAe,UAAU,EAAE,EACtC,KAAK,EAAE;gBACL,QAAQ,EAAE,KAAK,CAAC,KAAK;gBACrB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,SAAS;gBAC3D,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS;gBAC5D,eAAe,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;aACtD,YAED,KAAC,iBAAiB,IAAC,IAAI,EAAE,GAAG,GAAI,GAC5B,GACsB,CAC/B,CAAC;AACJ,CAAC;AASD,SAAS,iBAAiB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAqB;IAC9D,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;IAEnC,mCAAmC;IACnC,IACE,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;QAC1B,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAChC,KAAK,CAAC,OAAO,KAAK,UAAU,EAC5B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,KAAC,SAAS,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;QACnC,KAAK,WAAW;YACd,OAAO,KAAC,cAAc,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;QACxC,KAAK,SAAS;YACZ,OAAO,KAAC,oBAAoB,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;QAC9C,KAAK,MAAM;YACT,OAAO,KAAC,iBAAiB,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;QAC3C,KAAK,QAAQ;YACX,OAAO,KAAC,WAAW,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;QACrC,KAAK,UAAU;YACb,OAAO,KAAC,aAAa,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;QACvC,KAAK,QAAQ;YACX,OAAO,KAAC,WAAW,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;QACrC,KAAK,MAAM;YACT,OAAO,KAAC,iBAAiB,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;QAC3C,KAAK,OAAO;YACV,OAAO,KAAC,kBAAkB,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;QAC5C,KAAK,YAAY;YACf,OAAO,KAAC,eAAe,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;QACzC,KAAK,MAAM;YACT,OAAO,KAAC,cAAc,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;QACxC,KAAK,YAAY;YACf,OAAO,KAAC,eAAe,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;QACzC,KAAK,MAAM;YACT,OAAO,KAAC,iBAAiB,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;QAC3C,KAAK,UAAU;YACb,OAAO,KAAC,qBAAqB,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;QAC/C,KAAK,eAAe;YAClB,OAAO,cAAM,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,cAAM,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,KAAC,kBAAkB,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;QAC5C,KAAK,UAAU;YACb,OAAO,KAAC,qBAAqB,IAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAAC;QACnE,KAAK,WAAW;YACd,OAAO,KAAC,sBAAsB,IAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAAC;QACpE,KAAK,OAAO;YACV,OAAO,KAAC,kBAAkB,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;QAC5C,KAAK,SAAS;YACZ,OAAO,KAAC,oBAAoB,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;QAC9C,KAAK,MAAM;YACT,OAAO,KAAC,iBAAiB,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;QAC3C;YACE,6CAA6C;YAC7C,IAAI,UAAU,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvD,OAAO,CACL,4BACG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAC/B,KAAC,iBAAiB,IAAS,IAAI,EAAE,KAAK,IAAd,CAAC,CAAiB,CAC3C,CAAC,GACD,CACJ,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,+BAA+B;AAE/B;;;;GAIG;AACH,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B,yEAAyE;AACzE,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,2DAA2D;AAC3D,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAE3B,MAAM,UAAU,GAAkB;IAChC,iBAAiB,EAAE,MAAM;IACzB,oBAAoB,EAAE,YAAY;CACnC,CAAC;AAEF,MAAM,gBAAgB,GAAkB;IACtC,MAAM,EAAE,GAAG;CACZ,CAAC;AAEF,SAAS,SAAS,CAAC,EAAE,IAAI,EAAqB;IAC5C,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;IACnC,IAAI,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,iEAAiE;IACjE,IAAI,QAAQ,CAAC,MAAM,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;QAC3C,OAAO,CACL,4BACG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAC1B,KAAC,iBAAiB,IAAS,IAAI,EAAE,KAA+B,IAAxC,CAAC,CAA2C,CACrE,CAAC,GACD,CACJ,CAAC;IACJ,CAAC;IAED,0DAA0D;IAC1D,6DAA6D;IAC7D,0DAA0D;IAC1D,8BAA8B;IAC9B,OAAO,CACL,KAAC,gBAAgB,IAAC,cAAc,EAAE,KAAK,CAAC,cAAc,YACnD,QAAQ,GACQ,CACpB,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAGzB;IACC,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC;IAClE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CACpD,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAC5C,CAAC;IAEF,kDAAkD;IAClD,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,EAAE;QACtC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC;QAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,CAAC,GAAG,eAAe,CAAC;YACrC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACzE,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnC,MAAM,SAAS,GAAG,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,CAAC;YACxD,IAAI,cAAc,GAAG,SAAS,EAAE,CAAC;gBAC/B,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC,EAAE,CAAC,cAAc,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE7C,oDAAoD;IACpD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,YAAY,IAAI,YAAY;YAAE,OAAO;QAEzC,IAAI,KAAa,CAAC;QAClB,MAAM,SAAS,GAAG,GAAG,EAAE;YACrB,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE;gBACvB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,gBAAgB,EAAE,YAAY,CAAC,CAAC;gBAC7D,IAAI,IAAI,GAAG,YAAY,EAAE,CAAC;oBACxB,KAAK,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;gBAC3C,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QACF,KAAK,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAEzC,OAAO,GAAG,EAAE;YACV,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,CAAC,GAAG,eAAe,CAAC;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/D,gFAAgF;QAChF,MAAM,UAAU,GACd,kBAAkB,IAAI,CAAC;YACvB,CAAC,IAAI,kBAAkB,GAAG,CAAC;YAC3B,CAAC,IAAI,kBAAkB,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG,YAAY,IAAI,UAAU,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CACV,cAAiB,KAAK,EAAE,UAAU,YAC/B,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAC5C,KAAC,iBAAiB,IAAiB,IAAI,EAAE,KAAK,IAAtB,KAAK,GAAG,CAAC,CAAiB,CACnD,CAAC,IAHM,KAAK,CAIT,CACP,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,cAAiB,KAAK,EAAE,gBAAgB,IAA9B,KAAK,CAA6B,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,OAAO,4BAAG,OAAO,GAAI,CAAC;AACxB,CAAC;AAED,SAAS,cAAc,CAAC,EAAE,IAAI,EAAqB;IACjD,IAAI,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,CACL,sBACG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAChC,KAAC,iBAAiB,IAAS,IAAI,EAAE,KAAK,IAAd,CAAC,CAAiB,CAC3C,CAAC,GACA,CACL,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,EAAE,IAAI,EAAqB;IACvD,MAAM,WAAW,GAAG,IAA4C,CAAC;IACjE,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,IAAI,CAAC,CAAC;IAErC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CACvD,KAAC,iBAAiB,IAAS,IAAI,EAAE,KAA+B,IAAxC,CAAC,CAA2C,CACrE,CAAC,CAAC;IAEH,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,CAAC;YACJ,OAAO,uBAAK,QAAQ,GAAM,CAAC;QAC7B,KAAK,CAAC;YACJ,OAAO,uBAAK,QAAQ,GAAM,CAAC;QAC7B,KAAK,CAAC;YACJ,OAAO,uBAAK,QAAQ,GAAM,CAAC;QAC7B,KAAK,CAAC;YACJ,OAAO,uBAAK,QAAQ,GAAM,CAAC;QAC7B,KAAK,CAAC;YACJ,OAAO,uBAAK,QAAQ,GAAM,CAAC;QAC7B,KAAK,CAAC;YACJ,OAAO,uBAAK,QAAQ,GAAM,CAAC;QAC7B;YACE,OAAO,uBAAK,QAAQ,GAAM,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,EAAE,IAAI,EAAqB;IACpD,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;IACnC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,MAAM,CAAkB,IAAI,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAyC,CAAC;IAC3D,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;IACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC;IACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC;IAE7C,sCAAsC;IACtC,IACE,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;QAC1B,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS;QACjC,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EACjD,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAE/C,IAAI,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACjC,OAAO,4BAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,KAAK,GAAI,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACvB,UAAU,CAAC,YAAY,CAAC;oBACtB,OAAO,EAAE,OAA0C;oBACnD,QAAQ,EAAE,IAAI;oBACd,YAAY,EAAE,EAAE;iBACjB,CAAC,CAAC;YACL,CAAC;YAED,OAAO,CACL,8BACE,eAAM,GAAG,EAAE,OAAO,YAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAQ,EACpD,eAAM,KAAK,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,YAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAQ,IAC3D,CACJ,CAAC;QACJ,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,MAAM,WAAW,GACf,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3E,sEAAsE;IACtE,2EAA2E;IAC3E,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO,CACL,gCACiB,OAAO,iBACT,KAAK,qBACD,IAAI,CAAC,SAAS,EAC/B,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,YAE9B,OAAO,GACH,CACR,CAAC;QACJ,CAAC;QACD,OAAO,CACL,gCAAqB,OAAO,iBAAe,KAAK,qBAAmB,IAAI,CAAC,SAAS,YAC9E,OAAO,GACH,CACR,CAAC;IACJ,CAAC;IAED,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,eAAM,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,YAAG,OAAO,GAAQ,CAAC;IACjE,CAAC;IAED,OAAO,4BAAG,OAAO,GAAI,CAAC;AACxB,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,IAAI,EAAqB;IAC9C,OAAO,CACL,2BACG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAChC,KAAC,iBAAiB,IAAS,IAAI,EAAE,KAAK,IAAd,CAAC,CAAiB,CAC3C,CAAC,GACK,CACV,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,EAAE,IAAI,EAAqB;IAChD,OAAO,CACL,uBACG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAChC,KAAC,iBAAiB,IAAS,IAAI,EAAE,KAAK,IAAd,CAAC,CAAiB,CAC3C,CAAC,GACC,CACN,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,IAAI,EAAqB;IAC9C,OAAO,CACL,sBACG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAChC,KAAC,iBAAiB,IAAS,IAAI,EAAE,KAAK,IAAd,CAAC,CAAiB,CAC3C,CAAC,GACA,CACL,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,EAAE,IAAI,EAAqB;IACpD,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAyC,CAAC;IAC3D,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;IAEzB,gDAAgD;IAChD,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0BAA0B;IAC1B,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,OAAO,CACL,YACE,IAAI,EAAE,GAAG,EACT,SAAS,EAAC,SAAS,EACnB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACjB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;gBACxB,IAAI,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC7B,KAAK,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC,YAEA,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CACpC,KAAC,iBAAiB,IAAS,IAAI,EAAE,KAA+B,IAAxC,CAAC,CAA2C,CACrE,CAAC,GACA,CACL,CAAC;IACJ,CAAC;IAED,OAAO,CACL,YACE,IAAI,EAAE,GAAG,EACT,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7B,KAAK,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAChC,CAAC;QACH,CAAC,YAEA,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CACpC,KAAC,iBAAiB,IAAS,IAAI,EAAE,KAA+B,IAAxC,CAAC,CAA2C,CACrE,CAAC,GACA,CACL,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,EAAE,IAAI,EAAoC;IACpE,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;IACnC,MAAM,SAAS,GAAG,IAA0C,CAAC;IAC7D,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;IAE1B,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,YAAY,GAAG,MAAM,EAAE,YAAY,IAAI,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,MAAM,EAAE,WAAW,IAAI,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,YAAY,CAAC;IAEzC,0CAA0C;IAC1C,IAAI,QAAQ,GAAG,GAAG,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;QACnD,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC3C,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC1C,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,oBAAoB;IACtB,CAAC;IAED,qBAAqB;IACrB,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,CACL,gBACE,KAAK,EAAE;gBACL,KAAK,EAAE,KAAK;gBACZ,WAAW,EAAE,WAAW;gBACxB,SAAS,EAAE,SAAS;aACrB,EACD,GAAG,EAAE,QAAQ,EACb,QAAQ,SACR,CACH,CAAC;IACJ,CAAC;IAED,OAAO,CACL,cACE,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE,EACxB,KAAK,EAAE;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,WAAW,GAAG,KAAK;YAC3B,SAAS,EAAE,SAAS;SACrB,GACD,CACH,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,EAAE,IAAI,EAAqB;IAClD,MAAM,QAAQ,GAAG,IAAyC,CAAC;IAC3D,OAAO,yBAAO,QAAQ,CAAC,KAAK,GAAQ,CAAC;AACvC,CAAC;AAED,SAAS,cAAc,CAAC,EAAE,IAAI,EAAqB;IACjD,MAAM,QAAQ,GAAG,IAAyC,CAAC;IAC3D,OAAO,CACL,cAAK,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,YACrE,yBAAO,QAAQ,CAAC,KAAK,GAAQ,GACzB,CACP,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,EAAE,IAAI,EAAqB;IAClD,OAAO,CACL,+BACG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAChC,KAAC,iBAAiB,IAAS,IAAI,EAAE,KAAK,IAAd,CAAC,CAAiB,CAC3C,CAAC,GACS,CACd,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,EAAE,IAAI,EAAqB;IACpD,MAAM,QAAQ,GAAG,IAAyC,CAAC;IAC3D,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,KAAK,IAAI,CAAC;IAE5C,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CACL,aAAI,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,CAAC,YAC3B,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CACpC,KAAC,iBAAiB,IAAS,IAAI,EAAE,KAA+B,IAAxC,CAAC,CAA2C,CACrE,CAAC,GACC,CACN,CAAC;IACJ,CAAC;IAED,OAAO,CACL,uBACG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CACpC,KAAC,iBAAiB,IAAS,IAAI,EAAE,KAA+B,IAAxC,CAAC,CAA2C,CACrE,CAAC,GACC,CACN,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,EAAE,IAAI,EAAqB;IACxD,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;IACnC,MAAM,YAAY,GAAG,IAA6C,CAAC;IAEnE,MAAM,MAAM,GACV,YAAY,CAAC,OAAO,KAAK,SAAS,IAAI,YAAY,CAAC,OAAO,KAAK,IAAI,CAAC;IACtE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,KAAK,IAAI,CAAC;IAEhD,IACE,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;QAC1B,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;QAChC,KAAK,CAAC,OAAO,KAAK,UAAU,EAC5B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC;QAC9C,MAAM,YAAY,GAAG,KAAK,CAAC,gBAAgB;YACzC,CAAC,CAAC,GAAG,EAAE;gBACH,IAAI,QAAQ,EAAE,CAAC;oBACb,KAAK,CAAC,gBAAiB,CAAC;wBACtB,IAAI,EAAE,QAAQ,CAAC,IAAI;wBACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;qBACxB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACH,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO,CACL,cAAI,SAAS,EAAC,gBAAgB,aAC5B,gBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,CAAC,YAAY,EACvB,QAAQ,EAAE,CAAC,YAAY,EACvB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,GACvD,EACD,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CACxC,KAAC,iBAAiB,IAAS,IAAI,EAAE,KAA+B,IAAxC,CAAC,CAA2C,CACrE,CAAC,IACC,CACN,CAAC;IACJ,CAAC;IAED,OAAO,CACL,uBACG,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CACxC,KAAC,iBAAiB,IAAS,IAAI,EAAE,KAA+B,IAAxC,CAAC,CAA2C,CACrE,CAAC,GACC,CACN,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,EAAE,IAAI,EAAqB;IACrD,MAAM,SAAS,GAAG,IAA0C,CAAC;IAC7D,OAAO,CACL,0BACE,0BACG,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CACrC,KAAC,iBAAiB,IAEhB,IAAI,EAAE,KAA+B,EACrC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAFZ,CAAC,CAGN,CACH,CAAC,GACI,GACF,CACT,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAqB;IAClE,MAAM,OAAO,GAAG,IAA6C,CAAC;IAC9D,OAAO,CACL,uBACG,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CACnC,KAAC,iBAAiB,IAEhB,IAAI,EAAE,KAA+B,EACrC,QAAQ,EAAE,QAAQ,IAFb,CAAC,CAGN,CACH,CAAC,GACC,CACN,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAqB;IACnE,MAAM,QAAQ,GAAG,IAA8C,CAAC;IAEhE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CACL,uBACG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CACpC,KAAC,iBAAiB,IAAS,IAAI,EAAE,KAA+B,IAAxC,CAAC,CAA2C,CACrE,CAAC,GACC,CACN,CAAC;IACJ,CAAC;IAED,OAAO,CACL,uBACG,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CACpC,KAAC,iBAAiB,IAAS,IAAI,EAAE,KAA+B,IAAxC,CAAC,CAA2C,CACrE,CAAC,GACC,CACN,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,EAAE,IAAI,EAAoC;IACpE,MAAM,SAAS,GAAG,IAA0C,CAAC;IAC7D,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IAE5B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,4CAA4C;QAC5C,OAAO,yBAAO,SAAS,CAAC,KAAK,GAAQ,CAAC;IACxC,CAAC;IAED,OAAO,eAAM,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAI,CAAC;AAC7D,CAAC;AAED,SAAS,oBAAoB,CAAC,EAAE,IAAI,EAAoC;IACtE,MAAM,WAAW,GAAG,IAA4C,CAAC;IACjE,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC;IACrC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAEpD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,KAAK,CAAC,KAAK,IAAI,EAAE;YACf,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;gBAClD,OAAO,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC7D,MAAM,EAAE,GAAG,kBAAkB,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBACtE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC9C,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,oCAAoC;YACtC,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QACL,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,IAAI,GAAG,EAAE,CAAC;QACR,OAAO,CACL,cACE,SAAS,EAAC,eAAe,EACzB,uBAAuB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GACxC,CACH,CAAC;IACJ,CAAC;IAED,+BAA+B;IAC/B,OAAO,CACL,cAAK,SAAS,EAAC,kBAAkB,YAC/B,yBAAO,IAAI,GAAQ,GACf,CACP,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,EAAE,IAAI,EAAoC;IACnE,MAAM,QAAQ,GAAG,IAAyC,CAAC;IAC3D,OAAO,eAAM,uBAAuB,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,IAAI,EAAE,EAAE,GAAI,CAAC;AAC7E,CAAC;AAED,kBAAkB;AAElB;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAgB;IACtD,MAAM,MAAM,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IACpD,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,gBAAgB,EAAE,MAAM,CAAC,GAAG;KAC7B,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"MdastViewer.js","sourceRoot":"","sources":["../../../src/markdown/client/MdastViewer.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ugly-app",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.725",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"comment:files": "Allowlist what ships to npm. dist = runtime; src = sourcemap targets (dist/*.js.map reference ../../src/); templates = CLI scaffold. Everything else at repo root (.pgdata local Postgres, coverage, assets/icons sources, test/, test-results/) is excluded by omission. The !negations strip the scaffold's installed deps + cruft (templates/node_modules is 200MB+ and must never ship). package.json/README/LICENSE ship automatically.",
|
|
6
6
|
"files": [
|
package/src/cli/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Auto-generated by prebuild — do not edit manually
|
|
2
|
-
export const CLI_VERSION = "0.1.
|
|
2
|
+
export const CLI_VERSION = "0.1.725";
|
|
@@ -29,6 +29,8 @@ import {
|
|
|
29
29
|
} from '../shared/MdastParser.js';
|
|
30
30
|
import {
|
|
31
31
|
MdastCode,
|
|
32
|
+
MdastFootnoteDefinition,
|
|
33
|
+
MdastFootnoteReference,
|
|
32
34
|
MdastHeading,
|
|
33
35
|
MdastHtml,
|
|
34
36
|
MdastImage,
|
|
@@ -58,6 +60,8 @@ interface MdastViewerContextData {
|
|
|
58
60
|
isDark: boolean;
|
|
59
61
|
onCheckboxToggle?: (position: { line: number; column: number }) => void;
|
|
60
62
|
priorityOffset?: number;
|
|
63
|
+
/** GFM footnote identifier -> display number (1-based, by first reference). */
|
|
64
|
+
footnoteNumbers: Map<string, number>;
|
|
61
65
|
}
|
|
62
66
|
|
|
63
67
|
// --- Context ---
|
|
@@ -68,6 +72,7 @@ const MdastViewerContext = createContext<MdastViewerContextData>({
|
|
|
68
72
|
scrollToView: false,
|
|
69
73
|
isDark: false,
|
|
70
74
|
onCheckboxToggle: undefined,
|
|
75
|
+
footnoteNumbers: new Map(),
|
|
71
76
|
});
|
|
72
77
|
|
|
73
78
|
function useMdastViewerData() {
|
|
@@ -170,6 +175,10 @@ export function MdastViewer(props: MdastViewerProps) {
|
|
|
170
175
|
|
|
171
176
|
const themeClass = props.isDark ? 'prosemirror-dark' : 'prosemirror-light';
|
|
172
177
|
|
|
178
|
+
// Number footnotes by first-reference order so refs and the Notes list agree
|
|
179
|
+
// (the def list order in the source can differ from citation order).
|
|
180
|
+
const footnoteNumbers = useMemo(() => collectFootnoteOrder(ast), [ast]);
|
|
181
|
+
|
|
173
182
|
return (
|
|
174
183
|
<MdastViewerContext.Provider
|
|
175
184
|
value={{
|
|
@@ -181,6 +190,7 @@ export function MdastViewer(props: MdastViewerProps) {
|
|
|
181
190
|
isDark: props.isDark ?? false,
|
|
182
191
|
onCheckboxToggle: props.onCheckboxToggle,
|
|
183
192
|
priorityOffset: props.priorityOffset,
|
|
193
|
+
footnoteNumbers,
|
|
184
194
|
}}
|
|
185
195
|
>
|
|
186
196
|
<div
|
|
@@ -207,6 +217,51 @@ interface NodeRendererProps {
|
|
|
207
217
|
isHeader?: boolean;
|
|
208
218
|
}
|
|
209
219
|
|
|
220
|
+
// --- Footnotes ---
|
|
221
|
+
|
|
222
|
+
/** Stable DOM ids for footnote ref <-> definition cross-linking. */
|
|
223
|
+
const footnoteDefDomId = (id: string): string => `mdast-fn-${id}`;
|
|
224
|
+
const footnoteRefDomId = (id: string): string => `mdast-fnref-${id}`;
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* Number footnotes by FIRST-REFERENCE order (the order they're cited in the
|
|
228
|
+
* body), so the inline marker and the Notes list agree even when the source
|
|
229
|
+
* lists the definitions in a different order. Notes that are defined but never
|
|
230
|
+
* referenced are appended after, so each one still gets a number.
|
|
231
|
+
*/
|
|
232
|
+
function collectFootnoteOrder(
|
|
233
|
+
root: MdastNodeWithTextIndex,
|
|
234
|
+
): Map<string, number> {
|
|
235
|
+
const order = new Map<string, number>();
|
|
236
|
+
const defined = new Set<string>();
|
|
237
|
+
const walk = (node: unknown): void => {
|
|
238
|
+
if (!node || typeof node !== 'object') return;
|
|
239
|
+
const n = node as {
|
|
240
|
+
type?: string;
|
|
241
|
+
identifier?: string;
|
|
242
|
+
children?: unknown[];
|
|
243
|
+
};
|
|
244
|
+
if (
|
|
245
|
+
n.type === 'footnoteReference' &&
|
|
246
|
+
n.identifier &&
|
|
247
|
+
!order.has(n.identifier)
|
|
248
|
+
) {
|
|
249
|
+
order.set(n.identifier, order.size + 1);
|
|
250
|
+
}
|
|
251
|
+
if (n.type === 'footnoteDefinition' && n.identifier) {
|
|
252
|
+
defined.add(n.identifier);
|
|
253
|
+
}
|
|
254
|
+
if (Array.isArray(n.children)) {
|
|
255
|
+
for (const child of n.children) walk(child);
|
|
256
|
+
}
|
|
257
|
+
};
|
|
258
|
+
walk(root);
|
|
259
|
+
for (const id of defined) {
|
|
260
|
+
if (!order.has(id)) order.set(id, order.size + 1);
|
|
261
|
+
}
|
|
262
|
+
return order;
|
|
263
|
+
}
|
|
264
|
+
|
|
210
265
|
function MdastNodeRenderer({ node, isHeader }: NodeRendererProps): ReactNode {
|
|
211
266
|
const state = useMdastViewerData();
|
|
212
267
|
|
|
@@ -264,6 +319,10 @@ function MdastNodeRenderer({ node, isHeader }: NodeRendererProps): ReactNode {
|
|
|
264
319
|
return <MdastMermaidRenderer node={node} />;
|
|
265
320
|
case 'html':
|
|
266
321
|
return <MdastHtmlRenderer node={node} />;
|
|
322
|
+
case 'footnoteReference':
|
|
323
|
+
return <MdastFootnoteReferenceRenderer node={node} />;
|
|
324
|
+
case 'footnoteDefinition':
|
|
325
|
+
return <MdastFootnoteDefinitionRenderer node={node} />;
|
|
267
326
|
default:
|
|
268
327
|
// Unknown node type - render children if any
|
|
269
328
|
if ('children' in node && Array.isArray(node.children)) {
|
|
@@ -291,43 +350,119 @@ const ROOT_BATCH_SIZE = 30;
|
|
|
291
350
|
/** Number of batches to render on the first paint (viewport + buffer) */
|
|
292
351
|
const INITIAL_BATCH_COUNT = 4;
|
|
293
352
|
|
|
294
|
-
/**
|
|
295
|
-
|
|
353
|
+
/** Estimated batch height used to reserve space for not-yet-mounted batches
|
|
354
|
+
* (matches the content-visibility intrinsic-size estimate below). */
|
|
355
|
+
const PLACEHOLDER_HEIGHT = 600;
|
|
296
356
|
|
|
297
357
|
const batchStyle: CSSProperties = {
|
|
298
358
|
contentVisibility: 'auto',
|
|
299
|
-
containIntrinsicSize:
|
|
300
|
-
};
|
|
301
|
-
|
|
302
|
-
const placeholderStyle: CSSProperties = {
|
|
303
|
-
height: 600,
|
|
359
|
+
containIntrinsicSize: `auto ${PLACEHOLDER_HEIGHT}px`,
|
|
304
360
|
};
|
|
305
361
|
|
|
306
362
|
function MdastRoot({ node }: NodeRendererProps) {
|
|
307
363
|
const state = useMdastViewerData();
|
|
308
364
|
if (!('children' in node)) return null;
|
|
309
|
-
const
|
|
310
|
-
if (!
|
|
365
|
+
const allChildren = node.children;
|
|
366
|
+
if (!allChildren) return null;
|
|
367
|
+
|
|
368
|
+
// Pull footnote definitions out of the flow and collect them into a single
|
|
369
|
+
// "Notes" section rendered at the end (regardless of where they sit in the
|
|
370
|
+
// source), so they're numbered, ordered, and link back to the citation.
|
|
371
|
+
const children: MdastNodeWithTextIndex[] = [];
|
|
372
|
+
const footnoteDefs: MdastNodeWithTextIndex[] = [];
|
|
373
|
+
for (const child of allChildren) {
|
|
374
|
+
if ((child as { type?: string }).type === 'footnoteDefinition') {
|
|
375
|
+
footnoteDefs.push(child as MdastNodeWithTextIndex);
|
|
376
|
+
} else {
|
|
377
|
+
children.push(child as MdastNodeWithTextIndex);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
311
380
|
|
|
312
|
-
// For small documents, render directly without batching overhead
|
|
313
|
-
|
|
314
|
-
|
|
381
|
+
// For small documents, render directly without batching overhead.
|
|
382
|
+
const body =
|
|
383
|
+
children.length <= ROOT_BATCH_SIZE * 2 ? (
|
|
315
384
|
<>
|
|
316
385
|
{children.map((child, i) => (
|
|
317
|
-
<MdastNodeRenderer key={i} node={child
|
|
386
|
+
<MdastNodeRenderer key={i} node={child} />
|
|
318
387
|
))}
|
|
319
388
|
</>
|
|
389
|
+
) : (
|
|
390
|
+
// For large documents, batch top-level children and apply
|
|
391
|
+
// content-visibility: auto so the browser skips layout/paint for
|
|
392
|
+
// off-screen sections. Batches mount progressively to reduce render cost.
|
|
393
|
+
<MdastRootBatched priorityOffset={state.priorityOffset}>
|
|
394
|
+
{children}
|
|
395
|
+
</MdastRootBatched>
|
|
320
396
|
);
|
|
321
|
-
}
|
|
322
397
|
|
|
323
|
-
// For large documents, batch top-level children and apply
|
|
324
|
-
// content-visibility: auto so the browser skips layout/paint
|
|
325
|
-
// for off-screen sections. Batches mount progressively to
|
|
326
|
-
// reduce initial render cost.
|
|
327
398
|
return (
|
|
328
|
-
|
|
329
|
-
{
|
|
330
|
-
|
|
399
|
+
<>
|
|
400
|
+
{body}
|
|
401
|
+
{footnoteDefs.length > 0 && <MdastFootnotesSection defs={footnoteDefs} />}
|
|
402
|
+
</>
|
|
403
|
+
);
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
// --- Footnote renderers ---
|
|
407
|
+
|
|
408
|
+
/** Inline citation marker, e.g. text[1] — links down to its Notes entry. */
|
|
409
|
+
function MdastFootnoteReferenceRenderer({ node }: NodeRendererProps) {
|
|
410
|
+
const { footnoteNumbers } = useMdastViewerData();
|
|
411
|
+
const id = (node as MdastFootnoteReference).identifier;
|
|
412
|
+
const num = footnoteNumbers.get(id) ?? '?';
|
|
413
|
+
return (
|
|
414
|
+
<sup id={footnoteRefDomId(id)} className="mdast-footnote-ref">
|
|
415
|
+
<a href={`#${footnoteDefDomId(id)}`} aria-label={`Footnote ${num}`}>
|
|
416
|
+
{num}
|
|
417
|
+
</a>
|
|
418
|
+
</sup>
|
|
419
|
+
);
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
/** A standalone footnote definition (rare — they're normally grouped into the
|
|
423
|
+
* Notes section by MdastRoot). Rendered inline for completeness. */
|
|
424
|
+
function MdastFootnoteDefinitionRenderer({ node }: NodeRendererProps) {
|
|
425
|
+
return <MdastFootnoteItem node={node} />;
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
/** One entry in the Notes list: number · note body · back-link to the text. */
|
|
429
|
+
function MdastFootnoteItem({ node }: NodeRendererProps) {
|
|
430
|
+
const def = node as MdastNodeWithTextIndex<MdastFootnoteDefinition>;
|
|
431
|
+
const id = def.identifier;
|
|
432
|
+
return (
|
|
433
|
+
<li id={footnoteDefDomId(id)} className="mdast-footnote-def">
|
|
434
|
+
{def.children?.map((child, i) => (
|
|
435
|
+
<MdastNodeRenderer key={i} node={child as MdastNodeWithTextIndex} />
|
|
436
|
+
))}
|
|
437
|
+
<a
|
|
438
|
+
href={`#${footnoteRefDomId(id)}`}
|
|
439
|
+
className="mdast-footnote-backref"
|
|
440
|
+
aria-label="Back to text"
|
|
441
|
+
>
|
|
442
|
+
{' ↩'}
|
|
443
|
+
</a>
|
|
444
|
+
</li>
|
|
445
|
+
);
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
/** The "Notes" section: an ordered list of definitions sorted by citation
|
|
449
|
+
* order, so the `<ol>` numbering matches the inline markers. */
|
|
450
|
+
function MdastFootnotesSection({ defs }: { defs: MdastNodeWithTextIndex[] }) {
|
|
451
|
+
const { footnoteNumbers } = useMdastViewerData();
|
|
452
|
+
const ordered = [...defs].sort((a, b) => {
|
|
453
|
+
const an = footnoteNumbers.get((a as MdastFootnoteDefinition).identifier) ?? 0;
|
|
454
|
+
const bn = footnoteNumbers.get((b as MdastFootnoteDefinition).identifier) ?? 0;
|
|
455
|
+
return an - bn;
|
|
456
|
+
});
|
|
457
|
+
return (
|
|
458
|
+
<section className="mdast-footnotes" aria-label="Notes">
|
|
459
|
+
<hr />
|
|
460
|
+
<ol>
|
|
461
|
+
{ordered.map((def, i) => (
|
|
462
|
+
<MdastFootnoteItem key={i} node={def} />
|
|
463
|
+
))}
|
|
464
|
+
</ol>
|
|
465
|
+
</section>
|
|
331
466
|
);
|
|
332
467
|
}
|
|
333
468
|
|
|
@@ -337,11 +472,25 @@ function MdastRootBatched(props: {
|
|
|
337
472
|
}) {
|
|
338
473
|
const { children, priorityOffset } = props;
|
|
339
474
|
const totalBatches = Math.ceil(children.length / ROOT_BATCH_SIZE);
|
|
340
|
-
const [mountedCount, setMountedCount] = useState(() =>
|
|
341
|
-
Math.min(INITIAL_BATCH_COUNT, totalBatches),
|
|
342
|
-
);
|
|
343
475
|
|
|
344
|
-
//
|
|
476
|
+
// Mount a batch when it nears the viewport (monotonic — once mounted it stays).
|
|
477
|
+
// The previous strategy mounted batches top-down on every idle frame, which
|
|
478
|
+
// grows the document height UNDER the user and makes the scrollbar jump when
|
|
479
|
+
// you scroll toward the bottom. Proximity-mounting settles each batch's real
|
|
480
|
+
// height ~1 viewport ahead of the scroll, so the bar stays stable.
|
|
481
|
+
const [mounted, setMounted] = useState<Set<number>>(() => {
|
|
482
|
+
const init = new Set<number>();
|
|
483
|
+
for (let i = 0; i < Math.min(INITIAL_BATCH_COUNT, totalBatches); i++) {
|
|
484
|
+
init.add(i);
|
|
485
|
+
}
|
|
486
|
+
return init;
|
|
487
|
+
});
|
|
488
|
+
const slotRefs = useRef<(HTMLDivElement | null)[]>([]);
|
|
489
|
+
// Real measured heights, reused as placeholder reservations so an unmounted
|
|
490
|
+
// batch never mis-estimates its height once it has been seen.
|
|
491
|
+
const heights = useRef<number[]>([]);
|
|
492
|
+
|
|
493
|
+
// Find which batch the priority offset falls into (deep-link / search target).
|
|
345
494
|
const priorityBatchIndex = useMemo(() => {
|
|
346
495
|
if (!isDefined(priorityOffset)) return -1;
|
|
347
496
|
for (let i = 0; i < totalBatches; i++) {
|
|
@@ -356,47 +505,73 @@ function MdastRootBatched(props: {
|
|
|
356
505
|
return -1;
|
|
357
506
|
}, [priorityOffset, totalBatches, children]);
|
|
358
507
|
|
|
359
|
-
// Progressively mount more batches during idle time
|
|
360
508
|
useEffect(() => {
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
if (next < totalBatches) {
|
|
368
|
-
rafId = requestAnimationFrame(mountMore);
|
|
369
|
-
}
|
|
370
|
-
return next;
|
|
509
|
+
// Without IntersectionObserver (e.g. SSR/jsdom), fall back to mounting all.
|
|
510
|
+
if (typeof IntersectionObserver === 'undefined') {
|
|
511
|
+
setMounted(() => {
|
|
512
|
+
const all = new Set<number>();
|
|
513
|
+
for (let i = 0; i < totalBatches; i++) all.add(i);
|
|
514
|
+
return all;
|
|
371
515
|
});
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
516
|
+
return undefined;
|
|
517
|
+
}
|
|
518
|
+
const io = new IntersectionObserver(
|
|
519
|
+
(entries) => {
|
|
520
|
+
let added = false;
|
|
521
|
+
const next = new Set<number>();
|
|
522
|
+
for (const entry of entries) {
|
|
523
|
+
if (!entry.isIntersecting) continue;
|
|
524
|
+
const idx = Number((entry.target as HTMLElement).dataset.batch);
|
|
525
|
+
if (!Number.isNaN(idx)) {
|
|
526
|
+
next.add(idx);
|
|
527
|
+
added = true;
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
if (added) setMounted((prev) => new Set([...prev, ...next]));
|
|
531
|
+
},
|
|
532
|
+
// Mount ~one viewport ahead so heights settle off-screen.
|
|
533
|
+
{ rootMargin: '1200px 0px' },
|
|
534
|
+
);
|
|
535
|
+
for (const el of slotRefs.current) if (el) io.observe(el);
|
|
375
536
|
return () => {
|
|
376
|
-
|
|
537
|
+
io.disconnect();
|
|
377
538
|
};
|
|
378
539
|
}, [totalBatches]);
|
|
379
540
|
|
|
541
|
+
// Remember each mounted batch's real height for stable placeholder sizing.
|
|
542
|
+
useEffect(() => {
|
|
543
|
+
for (let i = 0; i < slotRefs.current.length; i++) {
|
|
544
|
+
const el = slotRefs.current[i];
|
|
545
|
+
if (el && el.childElementCount > 0) heights.current[i] = el.offsetHeight;
|
|
546
|
+
}
|
|
547
|
+
});
|
|
548
|
+
|
|
380
549
|
const batches: ReactNode[] = [];
|
|
381
550
|
for (let i = 0; i < totalBatches; i++) {
|
|
382
551
|
const start = i * ROOT_BATCH_SIZE;
|
|
383
552
|
const end = Math.min(start + ROOT_BATCH_SIZE, children.length);
|
|
384
|
-
// Mount if within the progressive count or is the priority batch (± 1 neighbor)
|
|
385
553
|
const isPriority =
|
|
386
554
|
priorityBatchIndex >= 0 &&
|
|
387
555
|
i >= priorityBatchIndex - 1 &&
|
|
388
556
|
i <= priorityBatchIndex + 1;
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
557
|
+
const show = mounted.has(i) || isPriority;
|
|
558
|
+
batches.push(
|
|
559
|
+
<div
|
|
560
|
+
key={i}
|
|
561
|
+
data-batch={i}
|
|
562
|
+
ref={(el) => {
|
|
563
|
+
slotRefs.current[i] = el;
|
|
564
|
+
}}
|
|
565
|
+
style={
|
|
566
|
+
show ? batchStyle : { height: heights.current[i] ?? PLACEHOLDER_HEIGHT }
|
|
567
|
+
}
|
|
568
|
+
>
|
|
569
|
+
{show &&
|
|
570
|
+
children.slice(start, end).map((child, j) => (
|
|
393
571
|
<MdastNodeRenderer key={start + j} node={child} />
|
|
394
572
|
))}
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
} else {
|
|
398
|
-
batches.push(<div key={start} style={placeholderStyle} />);
|
|
399
|
-
}
|
|
573
|
+
</div>,
|
|
574
|
+
);
|
|
400
575
|
}
|
|
401
576
|
return <>{batches}</>;
|
|
402
577
|
}
|