@leadertechie/md2html 0.1.0-alpha.2 → 0.1.0-alpha.21

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/index2.js ADDED
@@ -0,0 +1,449 @@
1
+ import { H as HTMLRenderer } from "./renderer-Ba-j0YEq.js";
2
+ const t$1 = globalThis, i$1 = (t2) => t2, s = t$1.trustedTypes, e$2 = s ? s.createPolicy("lit-html", { createHTML: (t2) => t2 }) : void 0, h = "$lit$", o$1 = `lit$${Math.random().toFixed(9).slice(2)}$`, n = "?" + o$1, r = `<${n}>`, l = document, c = () => l.createComment(""), a = (t2) => null === t2 || "object" != typeof t2 && "function" != typeof t2, u = Array.isArray, d = (t2) => u(t2) || "function" == typeof t2?.[Symbol.iterator], f = "[ \n\f\r]", v = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g, _ = /-->/g, m = />/g, p = RegExp(`>|${f}(?:([^\\s"'>=/]+)(${f}*=${f}*(?:[^
3
+ \f\r"'\`<>=]|("|')|))|$)`, "g"), g = /'/g, $ = /"/g, y = /^(?:script|style|textarea|title)$/i, x = (t2) => (i2, ...s2) => ({ _$litType$: t2, strings: i2, values: s2 }), b = x(1), E = /* @__PURE__ */ Symbol.for("lit-noChange"), A = /* @__PURE__ */ Symbol.for("lit-nothing"), C = /* @__PURE__ */ new WeakMap(), P = l.createTreeWalker(l, 129);
4
+ function V(t2, i2) {
5
+ if (!u(t2) || !t2.hasOwnProperty("raw")) throw Error("invalid template strings array");
6
+ return void 0 !== e$2 ? e$2.createHTML(i2) : i2;
7
+ }
8
+ const N = (t2, i2) => {
9
+ const s2 = t2.length - 1, e2 = [];
10
+ let n2, l2 = 2 === i2 ? "<svg>" : 3 === i2 ? "<math>" : "", c2 = v;
11
+ for (let i3 = 0; i3 < s2; i3++) {
12
+ const s3 = t2[i3];
13
+ let a2, u2, d2 = -1, f2 = 0;
14
+ for (; f2 < s3.length && (c2.lastIndex = f2, u2 = c2.exec(s3), null !== u2); ) f2 = c2.lastIndex, c2 === v ? "!--" === u2[1] ? c2 = _ : void 0 !== u2[1] ? c2 = m : void 0 !== u2[2] ? (y.test(u2[2]) && (n2 = RegExp("</" + u2[2], "g")), c2 = p) : void 0 !== u2[3] && (c2 = p) : c2 === p ? ">" === u2[0] ? (c2 = n2 ?? v, d2 = -1) : void 0 === u2[1] ? d2 = -2 : (d2 = c2.lastIndex - u2[2].length, a2 = u2[1], c2 = void 0 === u2[3] ? p : '"' === u2[3] ? $ : g) : c2 === $ || c2 === g ? c2 = p : c2 === _ || c2 === m ? c2 = v : (c2 = p, n2 = void 0);
15
+ const x2 = c2 === p && t2[i3 + 1].startsWith("/>") ? " " : "";
16
+ l2 += c2 === v ? s3 + r : d2 >= 0 ? (e2.push(a2), s3.slice(0, d2) + h + s3.slice(d2) + o$1 + x2) : s3 + o$1 + (-2 === d2 ? i3 : x2);
17
+ }
18
+ return [V(t2, l2 + (t2[s2] || "<?>") + (2 === i2 ? "</svg>" : 3 === i2 ? "</math>" : "")), e2];
19
+ };
20
+ class S {
21
+ constructor({ strings: t2, _$litType$: i2 }, e2) {
22
+ let r2;
23
+ this.parts = [];
24
+ let l2 = 0, a2 = 0;
25
+ const u2 = t2.length - 1, d2 = this.parts, [f2, v2] = N(t2, i2);
26
+ if (this.el = S.createElement(f2, e2), P.currentNode = this.el.content, 2 === i2 || 3 === i2) {
27
+ const t3 = this.el.content.firstChild;
28
+ t3.replaceWith(...t3.childNodes);
29
+ }
30
+ for (; null !== (r2 = P.nextNode()) && d2.length < u2; ) {
31
+ if (1 === r2.nodeType) {
32
+ if (r2.hasAttributes()) for (const t3 of r2.getAttributeNames()) if (t3.endsWith(h)) {
33
+ const i3 = v2[a2++], s2 = r2.getAttribute(t3).split(o$1), e3 = /([.?@])?(.*)/.exec(i3);
34
+ d2.push({ type: 1, index: l2, name: e3[2], strings: s2, ctor: "." === e3[1] ? I : "?" === e3[1] ? L : "@" === e3[1] ? z : H }), r2.removeAttribute(t3);
35
+ } else t3.startsWith(o$1) && (d2.push({ type: 6, index: l2 }), r2.removeAttribute(t3));
36
+ if (y.test(r2.tagName)) {
37
+ const t3 = r2.textContent.split(o$1), i3 = t3.length - 1;
38
+ if (i3 > 0) {
39
+ r2.textContent = s ? s.emptyScript : "";
40
+ for (let s2 = 0; s2 < i3; s2++) r2.append(t3[s2], c()), P.nextNode(), d2.push({ type: 2, index: ++l2 });
41
+ r2.append(t3[i3], c());
42
+ }
43
+ }
44
+ } else if (8 === r2.nodeType) if (r2.data === n) d2.push({ type: 2, index: l2 });
45
+ else {
46
+ let t3 = -1;
47
+ for (; -1 !== (t3 = r2.data.indexOf(o$1, t3 + 1)); ) d2.push({ type: 7, index: l2 }), t3 += o$1.length - 1;
48
+ }
49
+ l2++;
50
+ }
51
+ }
52
+ static createElement(t2, i2) {
53
+ const s2 = l.createElement("template");
54
+ return s2.innerHTML = t2, s2;
55
+ }
56
+ }
57
+ function M(t2, i2, s2 = t2, e2) {
58
+ if (i2 === E) return i2;
59
+ let h2 = void 0 !== e2 ? s2._$Co?.[e2] : s2._$Cl;
60
+ const o2 = a(i2) ? void 0 : i2._$litDirective$;
61
+ return h2?.constructor !== o2 && (h2?._$AO?.(false), void 0 === o2 ? h2 = void 0 : (h2 = new o2(t2), h2._$AT(t2, s2, e2)), void 0 !== e2 ? (s2._$Co ??= [])[e2] = h2 : s2._$Cl = h2), void 0 !== h2 && (i2 = M(t2, h2._$AS(t2, i2.values), h2, e2)), i2;
62
+ }
63
+ class R {
64
+ constructor(t2, i2) {
65
+ this._$AV = [], this._$AN = void 0, this._$AD = t2, this._$AM = i2;
66
+ }
67
+ get parentNode() {
68
+ return this._$AM.parentNode;
69
+ }
70
+ get _$AU() {
71
+ return this._$AM._$AU;
72
+ }
73
+ u(t2) {
74
+ const { el: { content: i2 }, parts: s2 } = this._$AD, e2 = (t2?.creationScope ?? l).importNode(i2, true);
75
+ P.currentNode = e2;
76
+ let h2 = P.nextNode(), o2 = 0, n2 = 0, r2 = s2[0];
77
+ for (; void 0 !== r2; ) {
78
+ if (o2 === r2.index) {
79
+ let i3;
80
+ 2 === r2.type ? i3 = new k(h2, h2.nextSibling, this, t2) : 1 === r2.type ? i3 = new r2.ctor(h2, r2.name, r2.strings, this, t2) : 6 === r2.type && (i3 = new Z(h2, this, t2)), this._$AV.push(i3), r2 = s2[++n2];
81
+ }
82
+ o2 !== r2?.index && (h2 = P.nextNode(), o2++);
83
+ }
84
+ return P.currentNode = l, e2;
85
+ }
86
+ p(t2) {
87
+ let i2 = 0;
88
+ for (const s2 of this._$AV) void 0 !== s2 && (void 0 !== s2.strings ? (s2._$AI(t2, s2, i2), i2 += s2.strings.length - 2) : s2._$AI(t2[i2])), i2++;
89
+ }
90
+ }
91
+ class k {
92
+ get _$AU() {
93
+ return this._$AM?._$AU ?? this._$Cv;
94
+ }
95
+ constructor(t2, i2, s2, e2) {
96
+ this.type = 2, this._$AH = A, this._$AN = void 0, this._$AA = t2, this._$AB = i2, this._$AM = s2, this.options = e2, this._$Cv = e2?.isConnected ?? true;
97
+ }
98
+ get parentNode() {
99
+ let t2 = this._$AA.parentNode;
100
+ const i2 = this._$AM;
101
+ return void 0 !== i2 && 11 === t2?.nodeType && (t2 = i2.parentNode), t2;
102
+ }
103
+ get startNode() {
104
+ return this._$AA;
105
+ }
106
+ get endNode() {
107
+ return this._$AB;
108
+ }
109
+ _$AI(t2, i2 = this) {
110
+ t2 = M(this, t2, i2), a(t2) ? t2 === A || null == t2 || "" === t2 ? (this._$AH !== A && this._$AR(), this._$AH = A) : t2 !== this._$AH && t2 !== E && this._(t2) : void 0 !== t2._$litType$ ? this.$(t2) : void 0 !== t2.nodeType ? this.T(t2) : d(t2) ? this.k(t2) : this._(t2);
111
+ }
112
+ O(t2) {
113
+ return this._$AA.parentNode.insertBefore(t2, this._$AB);
114
+ }
115
+ T(t2) {
116
+ this._$AH !== t2 && (this._$AR(), this._$AH = this.O(t2));
117
+ }
118
+ _(t2) {
119
+ this._$AH !== A && a(this._$AH) ? this._$AA.nextSibling.data = t2 : this.T(l.createTextNode(t2)), this._$AH = t2;
120
+ }
121
+ $(t2) {
122
+ const { values: i2, _$litType$: s2 } = t2, e2 = "number" == typeof s2 ? this._$AC(t2) : (void 0 === s2.el && (s2.el = S.createElement(V(s2.h, s2.h[0]), this.options)), s2);
123
+ if (this._$AH?._$AD === e2) this._$AH.p(i2);
124
+ else {
125
+ const t3 = new R(e2, this), s3 = t3.u(this.options);
126
+ t3.p(i2), this.T(s3), this._$AH = t3;
127
+ }
128
+ }
129
+ _$AC(t2) {
130
+ let i2 = C.get(t2.strings);
131
+ return void 0 === i2 && C.set(t2.strings, i2 = new S(t2)), i2;
132
+ }
133
+ k(t2) {
134
+ u(this._$AH) || (this._$AH = [], this._$AR());
135
+ const i2 = this._$AH;
136
+ let s2, e2 = 0;
137
+ for (const h2 of t2) e2 === i2.length ? i2.push(s2 = new k(this.O(c()), this.O(c()), this, this.options)) : s2 = i2[e2], s2._$AI(h2), e2++;
138
+ e2 < i2.length && (this._$AR(s2 && s2._$AB.nextSibling, e2), i2.length = e2);
139
+ }
140
+ _$AR(t2 = this._$AA.nextSibling, s2) {
141
+ for (this._$AP?.(false, true, s2); t2 !== this._$AB; ) {
142
+ const s3 = i$1(t2).nextSibling;
143
+ i$1(t2).remove(), t2 = s3;
144
+ }
145
+ }
146
+ setConnected(t2) {
147
+ void 0 === this._$AM && (this._$Cv = t2, this._$AP?.(t2));
148
+ }
149
+ }
150
+ class H {
151
+ get tagName() {
152
+ return this.element.tagName;
153
+ }
154
+ get _$AU() {
155
+ return this._$AM._$AU;
156
+ }
157
+ constructor(t2, i2, s2, e2, h2) {
158
+ this.type = 1, this._$AH = A, this._$AN = void 0, this.element = t2, this.name = i2, this._$AM = e2, this.options = h2, s2.length > 2 || "" !== s2[0] || "" !== s2[1] ? (this._$AH = Array(s2.length - 1).fill(new String()), this.strings = s2) : this._$AH = A;
159
+ }
160
+ _$AI(t2, i2 = this, s2, e2) {
161
+ const h2 = this.strings;
162
+ let o2 = false;
163
+ if (void 0 === h2) t2 = M(this, t2, i2, 0), o2 = !a(t2) || t2 !== this._$AH && t2 !== E, o2 && (this._$AH = t2);
164
+ else {
165
+ const e3 = t2;
166
+ let n2, r2;
167
+ for (t2 = h2[0], n2 = 0; n2 < h2.length - 1; n2++) r2 = M(this, e3[s2 + n2], i2, n2), r2 === E && (r2 = this._$AH[n2]), o2 ||= !a(r2) || r2 !== this._$AH[n2], r2 === A ? t2 = A : t2 !== A && (t2 += (r2 ?? "") + h2[n2 + 1]), this._$AH[n2] = r2;
168
+ }
169
+ o2 && !e2 && this.j(t2);
170
+ }
171
+ j(t2) {
172
+ t2 === A ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t2 ?? "");
173
+ }
174
+ }
175
+ class I extends H {
176
+ constructor() {
177
+ super(...arguments), this.type = 3;
178
+ }
179
+ j(t2) {
180
+ this.element[this.name] = t2 === A ? void 0 : t2;
181
+ }
182
+ }
183
+ class L extends H {
184
+ constructor() {
185
+ super(...arguments), this.type = 4;
186
+ }
187
+ j(t2) {
188
+ this.element.toggleAttribute(this.name, !!t2 && t2 !== A);
189
+ }
190
+ }
191
+ class z extends H {
192
+ constructor(t2, i2, s2, e2, h2) {
193
+ super(t2, i2, s2, e2, h2), this.type = 5;
194
+ }
195
+ _$AI(t2, i2 = this) {
196
+ if ((t2 = M(this, t2, i2, 0) ?? A) === E) return;
197
+ const s2 = this._$AH, e2 = t2 === A && s2 !== A || t2.capture !== s2.capture || t2.once !== s2.once || t2.passive !== s2.passive, h2 = t2 !== A && (s2 === A || e2);
198
+ e2 && this.element.removeEventListener(this.name, this, s2), h2 && this.element.addEventListener(this.name, this, t2), this._$AH = t2;
199
+ }
200
+ handleEvent(t2) {
201
+ "function" == typeof this._$AH ? this._$AH.call(this.options?.host ?? this.element, t2) : this._$AH.handleEvent(t2);
202
+ }
203
+ }
204
+ class Z {
205
+ constructor(t2, i2, s2) {
206
+ this.element = t2, this.type = 6, this._$AN = void 0, this._$AM = i2, this.options = s2;
207
+ }
208
+ get _$AU() {
209
+ return this._$AM._$AU;
210
+ }
211
+ _$AI(t2) {
212
+ M(this, t2);
213
+ }
214
+ }
215
+ const B = t$1.litHtmlPolyfillSupport;
216
+ B?.(S, k), (t$1.litHtmlVersions ??= []).push("3.3.2");
217
+ const t = { CHILD: 2 }, e$1 = (t2) => (...e2) => ({ _$litDirective$: t2, values: e2 });
218
+ class i {
219
+ constructor(t2) {
220
+ }
221
+ get _$AU() {
222
+ return this._$AM._$AU;
223
+ }
224
+ _$AT(t2, e2, i2) {
225
+ this._$Ct = t2, this._$AM = e2, this._$Ci = i2;
226
+ }
227
+ _$AS(t2, e2) {
228
+ return this.update(t2, e2);
229
+ }
230
+ update(t2, e2) {
231
+ return this.render(...e2);
232
+ }
233
+ }
234
+ class e extends i {
235
+ constructor(i2) {
236
+ if (super(i2), this.it = A, i2.type !== t.CHILD) throw Error(this.constructor.directiveName + "() can only be used in child bindings");
237
+ }
238
+ render(r2) {
239
+ if (r2 === A || null == r2) return this._t = void 0, this.it = r2;
240
+ if (r2 === E) return r2;
241
+ if ("string" != typeof r2) throw Error(this.constructor.directiveName + "() called with a non-string value");
242
+ if (r2 === this.it) return this._t;
243
+ this.it = r2;
244
+ const s2 = [r2];
245
+ return s2.raw = s2, this._t = { _$litType$: this.constructor.resultType, strings: s2, values: [] };
246
+ }
247
+ }
248
+ e.directiveName = "unsafeHTML", e.resultType = 1;
249
+ const o = e$1(e);
250
+ class LitStrategyRegistry {
251
+ constructor() {
252
+ this.strategies = /* @__PURE__ */ new Map();
253
+ this.register(new LitHeadingStrategy());
254
+ this.register(new LitParagraphStrategy());
255
+ this.register(new LitListStrategy());
256
+ this.register(new LitListItemStrategy());
257
+ this.register(new LitImageStrategy());
258
+ this.register(new LitCodeStrategy());
259
+ this.register(new LitContainerStrategy());
260
+ this.register(new LitStrongStrategy());
261
+ this.register(new LitEmphasisStrategy());
262
+ this.register(new LitLinkStrategy());
263
+ this.register(new LitTextStrategy());
264
+ this.fallback = new LitFallbackStrategy();
265
+ }
266
+ register(strategy) {
267
+ this.strategies.set(strategy.type, strategy);
268
+ }
269
+ unregister(type) {
270
+ this.strategies.delete(type);
271
+ }
272
+ get(type) {
273
+ return this.strategies.get(type) ?? this.fallback;
274
+ }
275
+ has(type) {
276
+ return this.strategies.has(type);
277
+ }
278
+ get types() {
279
+ return Array.from(this.strategies.keys());
280
+ }
281
+ setFallback(strategy) {
282
+ this.fallback = strategy;
283
+ }
284
+ }
285
+ class LitHeadingStrategy {
286
+ constructor() {
287
+ this.type = "heading";
288
+ }
289
+ render(node, _renderChild) {
290
+ const level = node.attributes?.level || "2";
291
+ switch (level) {
292
+ case "1":
293
+ return b`<h1>${o(node.content || "")}</h1>`;
294
+ case "2":
295
+ return b`<h2>${o(node.content || "")}</h2>`;
296
+ case "3":
297
+ return b`<h3>${o(node.content || "")}</h3>`;
298
+ default:
299
+ return b`<h2>${o(node.content || "")}</h2>`;
300
+ }
301
+ }
302
+ }
303
+ class LitParagraphStrategy {
304
+ constructor() {
305
+ this.type = "paragraph";
306
+ }
307
+ render(node, renderChild) {
308
+ if (node.children) {
309
+ return b`<p>${node.children.map((child) => renderChild(child))}</p>`;
310
+ }
311
+ return b`<p>${o(node.content || "")}</p>`;
312
+ }
313
+ }
314
+ class LitListStrategy {
315
+ constructor() {
316
+ this.type = "list";
317
+ }
318
+ render(node, renderChild) {
319
+ return b`<ul>${node.children?.map((child) => renderChild(child))}</ul>`;
320
+ }
321
+ }
322
+ class LitListItemStrategy {
323
+ constructor() {
324
+ this.type = "list-item";
325
+ }
326
+ render(node, _renderChild) {
327
+ return b`<li>${o(node.content || "")}</li>`;
328
+ }
329
+ }
330
+ class LitImageStrategy {
331
+ constructor() {
332
+ this.type = "image";
333
+ }
334
+ render(node, _renderChild) {
335
+ const src = node.src || node.attributes?.src || "";
336
+ const alt = node.alt || node.attributes?.alt || "";
337
+ const className = node.className || "inline-image";
338
+ return b`<img src="${src}" alt="${alt}" class="${className}" style="max-width:100%;height:auto;">`;
339
+ }
340
+ }
341
+ class LitCodeStrategy {
342
+ constructor() {
343
+ this.type = "code";
344
+ }
345
+ render(node, _renderChild) {
346
+ const lang = node.attributes?.lang || "";
347
+ return b`<pre><code class="language-${lang}">${node.content || ""}</code></pre>`;
348
+ }
349
+ }
350
+ class LitContainerStrategy {
351
+ constructor() {
352
+ this.type = "container";
353
+ }
354
+ render(node, renderChild) {
355
+ const className = node.className || "";
356
+ const style = node.attributes?.style || "";
357
+ return b`<div class="${className}" style="${style}">
358
+ ${node.children?.map((child) => renderChild(child))}
359
+ </div>`;
360
+ }
361
+ }
362
+ class LitStrongStrategy {
363
+ constructor() {
364
+ this.type = "strong";
365
+ }
366
+ render(node, _renderChild) {
367
+ return b`<strong>${o(node.content || "")}</strong>`;
368
+ }
369
+ }
370
+ class LitEmphasisStrategy {
371
+ constructor() {
372
+ this.type = "emphasis";
373
+ }
374
+ render(node, _renderChild) {
375
+ return b`<em>${o(node.content || "")}</em>`;
376
+ }
377
+ }
378
+ class LitLinkStrategy {
379
+ constructor() {
380
+ this.type = "link";
381
+ }
382
+ render(node, _renderChild) {
383
+ const href = node.attributes?.href || "";
384
+ return b`<a href="${href}">${o(node.content || "")}</a>`;
385
+ }
386
+ }
387
+ class LitTextStrategy {
388
+ constructor() {
389
+ this.type = "text";
390
+ }
391
+ render(node, _renderChild) {
392
+ return b`${node.content || ""}`;
393
+ }
394
+ }
395
+ class LitFallbackStrategy {
396
+ constructor() {
397
+ this.type = "*";
398
+ }
399
+ render(_node, _renderChild) {
400
+ return b``;
401
+ }
402
+ }
403
+ class LitRenderer {
404
+ constructor() {
405
+ this.strategyRegistry = new LitStrategyRegistry();
406
+ }
407
+ /** Access the strategy registry for customization. */
408
+ get strategies() {
409
+ return this.strategyRegistry;
410
+ }
411
+ /**
412
+ * Render a single node to a Lit TemplateResult.
413
+ */
414
+ renderNode(node) {
415
+ const strategy = this.strategyRegistry.get(node.type);
416
+ return strategy.render(node, (child) => this.renderNode(child));
417
+ }
418
+ /**
419
+ * Render an array of nodes to a single Lit TemplateResult.
420
+ */
421
+ renderNodes(nodes) {
422
+ if (!nodes || nodes.length === 0) {
423
+ return b``;
424
+ }
425
+ return b`${nodes.map((node) => this.renderNode(node))}`;
426
+ }
427
+ /**
428
+ * Render nodes to a plain HTML string.
429
+ * Delegates to HTMLRenderer to avoid duplicating string rendering logic.
430
+ *
431
+ * Note: Uses default HTMLRenderer config (no classPrefix, scope anchors,
432
+ * or heading IDs). For full HTML rendering with those features,
433
+ * use HTMLRenderer directly.
434
+ */
435
+ renderToHTMLString(nodes) {
436
+ if (!nodes || nodes.length === 0) {
437
+ return "";
438
+ }
439
+ if (!this.htmlRenderer) {
440
+ this.htmlRenderer = new HTMLRenderer();
441
+ }
442
+ return this.htmlRenderer.renderNodes(nodes);
443
+ }
444
+ }
445
+ export {
446
+ LitRenderer,
447
+ LitStrategyRegistry
448
+ };
449
+ //# sourceMappingURL=index2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index2.js","sources":["../node_modules/lit-html/lit-html.js","../node_modules/lit-html/directive.js","../node_modules/lit-html/directives/unsafe-html.js","../src/lit-strategies.ts","../src/lit-renderer.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t=>t,s=t.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,h=\"$lit$\",o=`lit$${Math.random().toFixed(9).slice(2)}$`,n=\"?\"+o,r=`<${n}>`,l=document,c=()=>l.createComment(\"\"),a=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,u=Array.isArray,d=t=>u(t)||\"function\"==typeof t?.[Symbol.iterator],f=\"[ \\t\\n\\f\\r]\",v=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${f}(?:([^\\\\s\"'>=/]+)(${f}*=${f}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,x=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),b=x(1),w=x(2),T=x(3),E=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),C=new WeakMap,P=l.createTreeWalker(l,129);function V(t,i){if(!u(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const N=(t,i)=>{const s=t.length-1,e=[];let n,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=v;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,f=0;for(;f<s.length&&(c.lastIndex=f,u=c.exec(s),null!==u);)f=c.lastIndex,c===v?\"!--\"===u[1]?c=_:void 0!==u[1]?c=m:void 0!==u[2]?(y.test(u[2])&&(n=RegExp(\"</\"+u[2],\"g\")),c=p):void 0!==u[3]&&(c=p):c===p?\">\"===u[0]?(c=n??v,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?p:'\"'===u[3]?$:g):c===$||c===g?c=p:c===_||c===m?c=v:(c=p,n=void 0);const x=c===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===v?s+r:d>=0?(e.push(a),s.slice(0,d)+h+s.slice(d)+o+x):s+o+(-2===d?i:x)}return[V(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),e]};class S{constructor({strings:t,_$litType$:i},e){let r;this.parts=[];let l=0,a=0;const u=t.length-1,d=this.parts,[f,v]=N(t,i);if(this.el=S.createElement(f,e),P.currentNode=this.el.content,2===i||3===i){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=P.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(h)){const i=v[a++],s=r.getAttribute(t).split(o),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:l,name:e[2],strings:s,ctor:\".\"===e[1]?I:\"?\"===e[1]?L:\"@\"===e[1]?z:H}),r.removeAttribute(t)}else t.startsWith(o)&&(d.push({type:6,index:l}),r.removeAttribute(t));if(y.test(r.tagName)){const t=r.textContent.split(o),i=t.length-1;if(i>0){r.textContent=s?s.emptyScript:\"\";for(let s=0;s<i;s++)r.append(t[s],c()),P.nextNode(),d.push({type:2,index:++l});r.append(t[i],c())}}}else if(8===r.nodeType)if(r.data===n)d.push({type:2,index:l});else{let t=-1;for(;-1!==(t=r.data.indexOf(o,t+1));)d.push({type:7,index:l}),t+=o.length-1}l++}}static createElement(t,i){const s=l.createElement(\"template\");return s.innerHTML=t,s}}function M(t,i,s=t,e){if(i===E)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=a(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=M(t,h._$AS(t,i.values),h,e)),i}class R{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??l).importNode(i,!0);P.currentNode=e;let h=P.nextNode(),o=0,n=0,r=s[0];for(;void 0!==r;){if(o===r.index){let i;2===r.type?i=new k(h,h.nextSibling,this,t):1===r.type?i=new r.ctor(h,r.name,r.strings,this,t):6===r.type&&(i=new Z(h,this,t)),this._$AV.push(i),r=s[++n]}o!==r?.index&&(h=P.nextNode(),o++)}return P.currentNode=l,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class k{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=M(this,t,i),a(t)?t===A||null==t||\"\"===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==E&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):d(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==A&&a(this._$AH)?this._$AA.nextSibling.data=t:this.T(l.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=S.createElement(V(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new R(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=C.get(t.strings);return void 0===i&&C.set(t.strings,i=new S(t)),i}k(t){u(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new k(this.O(c()),this.O(c()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,s){for(this._$AP?.(!1,!0,s);t!==this._$AB;){const s=i(t).nextSibling;i(t).remove(),t=s}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class H{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=A,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=M(this,t,i,0),o=!a(t)||t!==this._$AH&&t!==E,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=M(this,e[s+n],i,n),r===E&&(r=this._$AH[n]),o||=!a(r)||r!==this._$AH[n],r===A?t=A:t!==A&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class I extends H{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===A?void 0:t}}class L extends H{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==A)}}class z extends H{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=M(this,t,i,0)??A)===E)return;const s=this._$AH,e=t===A&&s!==A||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==A&&(s===A||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class Z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){M(this,t)}}const j={M:h,P:o,A:n,C:1,L:N,R,D:d,V:M,I:k,H,N:L,U:z,B:I,F:Z},B=t.litHtmlPolyfillSupport;B?.(S,k),(t.litHtmlVersions??=[]).push(\"3.3.2\");const D=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new k(i.insertBefore(c(),t),t,void 0,s??{})}return h._$AI(t),h};export{j as _$LH,b as html,T as mathml,E as noChange,A as nothing,D as render,w as svg};\n//# sourceMappingURL=lit-html.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{nothing as t,noChange as i}from\"../lit-html.js\";import{directive as r,Directive as s,PartType as n}from\"../directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends s{constructor(i){if(super(i),this.it=t,i.type!==n.CHILD)throw Error(this.constructor.directiveName+\"() can only be used in child bindings\")}render(r){if(r===t||null==r)return this._t=void 0,this.it=r;if(r===i)return r;if(\"string\"!=typeof r)throw Error(this.constructor.directiveName+\"() called with a non-string value\");if(r===this.it)return this._t;this.it=r;const s=[r];return s.raw=s,this._t={_$litType$:this.constructor.resultType,strings:s,values:[]}}}e.directiveName=\"unsafeHTML\",e.resultType=1;const o=r(e);export{e as UnsafeHTMLDirective,o as unsafeHTML};\n//# sourceMappingURL=unsafe-html.js.map\n","/**\n * Lit Renderer Strategies\n *\n * Each ContentNode type gets its own Lit strategy for rendering to a\n * TemplateResult. This mirrors the NodeRendererStrategy pattern from\n * renderer-strategies.ts, but outputs Lit TemplateResult objects instead\n * of plain HTML strings.\n *\n * New node types can be supported by:\n * 1. Creating a class implementing LitNodeRendererStrategy\n * 2. Registering it with the LitStrategyRegistry\n */\n\nimport { TemplateResult, html } from 'lit-html';\nimport { unsafeHTML } from 'lit-html/directives/unsafe-html.js';\nimport { ContentNode } from './types.js';\n\n// ─── Strategy Interface ───────────────────────────────────────────────────────\n\nexport interface LitNodeRendererStrategy {\n /** The ContentNode type this strategy handles */\n readonly type: string;\n /** Render a node to a Lit TemplateResult */\n render(node: ContentNode, renderChild: (child: ContentNode) => TemplateResult): TemplateResult;\n}\n\n// ─── Registry ─────────────────────────────────────────────────────────────────\n\n/**\n * Registry of Lit renderer strategies.\n *\n * Two-tier lookup:\n * 1. Dedicated strategy by node type\n * 2. Fallback to a catch-all strategy (default: renders empty)\n */\nexport class LitStrategyRegistry {\n private strategies = new Map<string, LitNodeRendererStrategy>();\n private fallback: LitNodeRendererStrategy;\n\n constructor() {\n // Register all built-in strategies\n this.register(new LitHeadingStrategy());\n this.register(new LitParagraphStrategy());\n this.register(new LitListStrategy());\n this.register(new LitListItemStrategy());\n this.register(new LitImageStrategy());\n this.register(new LitCodeStrategy());\n this.register(new LitContainerStrategy());\n this.register(new LitStrongStrategy());\n this.register(new LitEmphasisStrategy());\n this.register(new LitLinkStrategy());\n this.register(new LitTextStrategy());\n\n this.fallback = new LitFallbackStrategy();\n }\n\n register(strategy: LitNodeRendererStrategy): void {\n this.strategies.set(strategy.type, strategy);\n }\n\n unregister(type: string): void {\n this.strategies.delete(type);\n }\n\n get(type: string): LitNodeRendererStrategy {\n return this.strategies.get(type) ?? this.fallback;\n }\n\n has(type: string): boolean {\n return this.strategies.has(type);\n }\n\n get types(): string[] {\n return Array.from(this.strategies.keys());\n }\n\n setFallback(strategy: LitNodeRendererStrategy): void {\n this.fallback = strategy;\n }\n}\n\n// ─── Heading Strategy ─────────────────────────────────────────────────────────\n\nexport class LitHeadingStrategy implements LitNodeRendererStrategy {\n readonly type = 'heading';\n\n render(node: ContentNode, _renderChild: (child: ContentNode) => TemplateResult): TemplateResult {\n const level = (node.attributes?.level as string) || '2';\n switch (level) {\n case '1': return html`<h1>${unsafeHTML(node.content || '')}</h1>`;\n case '2': return html`<h2>${unsafeHTML(node.content || '')}</h2>`;\n case '3': return html`<h3>${unsafeHTML(node.content || '')}</h3>`;\n default: return html`<h2>${unsafeHTML(node.content || '')}</h2>`;\n }\n }\n}\n\n// ─── Paragraph Strategy ───────────────────────────────────────────────────────\n\nexport class LitParagraphStrategy implements LitNodeRendererStrategy {\n readonly type = 'paragraph';\n\n render(node: ContentNode, renderChild: (child: ContentNode) => TemplateResult): TemplateResult {\n if (node.children) {\n return html`<p>${node.children.map(child => renderChild(child))}</p>`;\n }\n return html`<p>${unsafeHTML(node.content || '')}</p>`;\n }\n}\n\n// ─── List Strategy ────────────────────────────────────────────────────────────\n\nexport class LitListStrategy implements LitNodeRendererStrategy {\n readonly type = 'list';\n\n render(node: ContentNode, renderChild: (child: ContentNode) => TemplateResult): TemplateResult {\n return html`<ul>${node.children?.map(child => renderChild(child))}</ul>`;\n }\n}\n\n// ─── List Item Strategy ───────────────────────────────────────────────────────\n\nexport class LitListItemStrategy implements LitNodeRendererStrategy {\n readonly type = 'list-item';\n\n render(node: ContentNode, _renderChild: (child: ContentNode) => TemplateResult): TemplateResult {\n return html`<li>${unsafeHTML(node.content || '')}</li>`;\n }\n}\n\n// ─── Image Strategy ───────────────────────────────────────────────────────────\n\nexport class LitImageStrategy implements LitNodeRendererStrategy {\n readonly type = 'image';\n\n render(node: ContentNode, _renderChild: (child: ContentNode) => TemplateResult): TemplateResult {\n const src = node.src || (node.attributes?.src as string) || '';\n const alt = node.alt || (node.attributes?.alt as string) || '';\n const className = node.className || 'inline-image';\n return html`<img src=\"${src}\" alt=\"${alt}\" class=\"${className}\" style=\"max-width:100%;height:auto;\">`;\n }\n}\n\n// ─── Code Strategy ────────────────────────────────────────────────────────────\n\nexport class LitCodeStrategy implements LitNodeRendererStrategy {\n readonly type = 'code';\n\n render(node: ContentNode, _renderChild: (child: ContentNode) => TemplateResult): TemplateResult {\n const lang = (node.attributes?.lang as string) || '';\n return html`<pre><code class=\"language-${lang}\">${node.content || ''}</code></pre>`;\n }\n}\n\n// ─── Container Strategy ───────────────────────────────────────────────────────\n\nexport class LitContainerStrategy implements LitNodeRendererStrategy {\n readonly type = 'container';\n\n render(node: ContentNode, renderChild: (child: ContentNode) => TemplateResult): TemplateResult {\n const className = node.className || '';\n const style = (node.attributes?.style as string) || '';\n return html`<div class=\"${className}\" style=\"${style}\">\n ${node.children?.map(child => renderChild(child))}\n </div>`;\n }\n}\n\n// ─── Strong Strategy ──────────────────────────────────────────────────────────\n\nexport class LitStrongStrategy implements LitNodeRendererStrategy {\n readonly type = 'strong';\n\n render(node: ContentNode, _renderChild: (child: ContentNode) => TemplateResult): TemplateResult {\n return html`<strong>${unsafeHTML(node.content || '')}</strong>`;\n }\n}\n\n// ─── Emphasis Strategy ────────────────────────────────────────────────────────\n\nexport class LitEmphasisStrategy implements LitNodeRendererStrategy {\n readonly type = 'emphasis';\n\n render(node: ContentNode, _renderChild: (child: ContentNode) => TemplateResult): TemplateResult {\n return html`<em>${unsafeHTML(node.content || '')}</em>`;\n }\n}\n\n// ─── Link Strategy ────────────────────────────────────────────────────────────\n\nexport class LitLinkStrategy implements LitNodeRendererStrategy {\n readonly type = 'link';\n\n render(node: ContentNode, _renderChild: (child: ContentNode) => TemplateResult): TemplateResult {\n const href = node.attributes?.href || '';\n return html`<a href=\"${href}\">${unsafeHTML(node.content || '')}</a>`;\n }\n}\n\n// ─── Text Strategy ────────────────────────────────────────────────────────────\n\nexport class LitTextStrategy implements LitNodeRendererStrategy {\n readonly type = 'text';\n\n render(node: ContentNode, _renderChild: (child: ContentNode) => TemplateResult): TemplateResult {\n return html`${node.content || ''}`;\n }\n}\n\n// ─── Fallback Strategy ────────────────────────────────────────────────────────\n\nexport class LitFallbackStrategy implements LitNodeRendererStrategy {\n readonly type = '*';\n\n render(_node: ContentNode, _renderChild: (child: ContentNode) => TemplateResult): TemplateResult {\n return html``;\n }\n}\n","/**\n * Lit Renderer\n *\n * Renders ContentNode trees to Lit TemplateResult objects using the\n * LitNodeRendererStrategy pattern. This mirrors HTMLRenderer but\n * outputs Lit-compatible template results for use in Lit elements.\n *\n * Uses the same Strategy + Registry pattern as renderer-strategies.ts,\n * eliminating the previous switch-based duplication.\n *\n * To extend with custom node types, register your strategy with:\n * litRenderer.strategies.register(new MyLitStrategy());\n */\n\nimport { TemplateResult, html } from 'lit-html';\nimport { ContentNode } from './types.js';\nimport { LitStrategyRegistry } from './lit-strategies.js';\nimport { HTMLRenderer } from './renderer.js';\n\nexport { LitStrategyRegistry } from './lit-strategies.js';\nexport type { LitNodeRendererStrategy } from './lit-strategies.js';\n\nexport class LitRenderer {\n private strategyRegistry: LitStrategyRegistry;\n /** Lazily created HTMLRenderer for string output, sharing the same config */\n private htmlRenderer?: HTMLRenderer;\n\n constructor() {\n this.strategyRegistry = new LitStrategyRegistry();\n }\n\n /** Access the strategy registry for customization. */\n get strategies(): LitStrategyRegistry {\n return this.strategyRegistry;\n }\n\n /**\n * Render a single node to a Lit TemplateResult.\n */\n renderNode(node: ContentNode): TemplateResult {\n const strategy = this.strategyRegistry.get(node.type);\n return strategy.render(node, (child) => this.renderNode(child));\n }\n\n /**\n * Render an array of nodes to a single Lit TemplateResult.\n */\n renderNodes(nodes: ContentNode[]): TemplateResult {\n if (!nodes || nodes.length === 0) {\n return html``;\n }\n return html`${nodes.map(node => this.renderNode(node))}`;\n }\n\n /**\n * Render nodes to a plain HTML string.\n * Delegates to HTMLRenderer to avoid duplicating string rendering logic.\n *\n * Note: Uses default HTMLRenderer config (no classPrefix, scope anchors,\n * or heading IDs). For full HTML rendering with those features,\n * use HTMLRenderer directly.\n */\n renderToHTMLString(nodes: ContentNode[]): string {\n if (!nodes || nodes.length === 0) {\n return '';\n }\n if (!this.htmlRenderer) {\n this.htmlRenderer = new HTMLRenderer();\n }\n return this.htmlRenderer.renderNodes(nodes);\n }\n}\n\n"],"names":["t","i","e","o","s","n","l","c","a","u","d","f","x","r","v","h","html","unsafeHTML"],"mappings":";AAKK,MAACA,MAAE,YAAWC,MAAE,CAAAD,OAAGA,IAAE,IAAEA,IAAE,cAAaE,MAAE,IAAE,EAAE,aAAa,YAAW,EAAC,YAAW,CAAAF,OAAGA,GAAC,CAAC,IAAE,QAAO,IAAE,SAAQG,MAAE,OAAO,KAAK,OAAM,EAAG,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,KAAI,IAAE,MAAIA,KAAE,IAAE,IAAI,CAAC,KAAI,IAAE,UAAS,IAAE,MAAI,EAAE,cAAc,EAAE,GAAE,IAAE,CAAAH,OAAG,SAAOA,MAAG,YAAU,OAAOA,MAAG,cAAY,OAAOA,IAAE,IAAE,MAAM,SAAQ,IAAE,CAAAA,OAAG,EAAEA,EAAC,KAAG,cAAY,OAAOA,KAAI,OAAO,QAAQ,GAAE,IAAE,cAAc,IAAE,uDAAsD,IAAE,QAAO,IAAE,MAAK,IAAE,OAAO,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC;AAAA,2BAAsC,GAAG,GAAE,IAAE,MAAK,IAAE,MAAK,IAAE,sCAAqC,IAAE,CAAAA,OAAG,CAACC,OAAKG,QAAK,EAAC,YAAWJ,IAAE,SAAQC,IAAE,QAAOG,GAAC,IAAG,IAAE,EAAE,CAAC,GAAgB,IAAE,uBAAO,IAAI,cAAc,GAAE,IAAE,uBAAO,IAAI,aAAa,GAAE,IAAE,oBAAI,WAAQ,IAAE,EAAE,iBAAiB,GAAE,GAAG;AAAE,SAAS,EAAEJ,IAAEC,IAAE;AAAC,MAAG,CAAC,EAAED,EAAC,KAAG,CAACA,GAAE,eAAe,KAAK,EAAE,OAAM,MAAM,gCAAgC;AAAE,SAAO,WAASE,MAAEA,IAAE,WAAWD,EAAC,IAAEA;AAAC;AAAC,MAAM,IAAE,CAACD,IAAEC,OAAI;AAAC,QAAMG,KAAEJ,GAAE,SAAO,GAAEE,KAAE;AAAG,MAAIG,IAAEC,KAAE,MAAIL,KAAE,UAAQ,MAAIA,KAAE,WAAS,IAAGM,KAAE;AAAE,WAAQN,KAAE,GAAEA,KAAEG,IAAEH,MAAI;AAAC,UAAMG,KAAEJ,GAAEC,EAAC;AAAE,QAAIO,IAAEC,IAAEC,KAAE,IAAGC,KAAE;AAAE,WAAKA,KAAEP,GAAE,WAASG,GAAE,YAAUI,IAAEF,KAAEF,GAAE,KAAKH,EAAC,GAAE,SAAOK,MAAI,CAAAE,KAAEJ,GAAE,WAAUA,OAAI,IAAE,UAAQE,GAAE,CAAC,IAAEF,KAAE,IAAE,WAASE,GAAE,CAAC,IAAEF,KAAE,IAAE,WAASE,GAAE,CAAC,KAAG,EAAE,KAAKA,GAAE,CAAC,CAAC,MAAIJ,KAAE,OAAO,OAAKI,GAAE,CAAC,GAAE,GAAG,IAAGF,KAAE,KAAG,WAASE,GAAE,CAAC,MAAIF,KAAE,KAAGA,OAAI,IAAE,QAAME,GAAE,CAAC,KAAGF,KAAEF,MAAG,GAAEK,KAAE,MAAI,WAASD,GAAE,CAAC,IAAEC,KAAE,MAAIA,KAAEH,GAAE,YAAUE,GAAE,CAAC,EAAE,QAAOD,KAAEC,GAAE,CAAC,GAAEF,KAAE,WAASE,GAAE,CAAC,IAAE,IAAE,QAAMA,GAAE,CAAC,IAAE,IAAE,KAAGF,OAAI,KAAGA,OAAI,IAAEA,KAAE,IAAEA,OAAI,KAAGA,OAAI,IAAEA,KAAE,KAAGA,KAAE,GAAEF,KAAE;AAAQ,UAAMO,KAAEL,OAAI,KAAGP,GAAEC,KAAE,CAAC,EAAE,WAAW,IAAI,IAAE,MAAI;AAAG,IAAAK,MAAGC,OAAI,IAAEH,KAAE,IAAEM,MAAG,KAAGR,GAAE,KAAKM,EAAC,GAAEJ,GAAE,MAAM,GAAEM,EAAC,IAAE,IAAEN,GAAE,MAAMM,EAAC,IAAEP,MAAES,MAAGR,KAAED,OAAG,OAAKO,KAAET,KAAEW;AAAA,EAAE;AAAC,SAAM,CAAC,EAAEZ,IAAEM,MAAGN,GAAEI,EAAC,KAAG,UAAQ,MAAIH,KAAE,WAAS,MAAIA,KAAE,YAAU,GAAG,GAAEC,EAAC;AAAC;AAAE,MAAM,EAAC;AAAA,EAAC,YAAY,EAAC,SAAQF,IAAE,YAAWC,GAAC,GAAEC,IAAE;AAAC,QAAIW;AAAE,SAAK,QAAM;AAAG,QAAIP,KAAE,GAAEE,KAAE;AAAE,UAAMC,KAAET,GAAE,SAAO,GAAEU,KAAE,KAAK,OAAM,CAACC,IAAEG,EAAC,IAAE,EAAEd,IAAEC,EAAC;AAAE,QAAG,KAAK,KAAG,EAAE,cAAcU,IAAET,EAAC,GAAE,EAAE,cAAY,KAAK,GAAG,SAAQ,MAAID,MAAG,MAAIA,IAAE;AAAC,YAAMD,KAAE,KAAK,GAAG,QAAQ;AAAW,MAAAA,GAAE,YAAY,GAAGA,GAAE,UAAU;AAAA,IAAC;AAAC,WAAK,UAAQa,KAAE,EAAE,SAAQ,MAAKH,GAAE,SAAOD,MAAG;AAAC,UAAG,MAAII,GAAE,UAAS;AAAC,YAAGA,GAAE,cAAa,EAAG,YAAUb,MAAKa,GAAE,kBAAiB,EAAG,KAAGb,GAAE,SAAS,CAAC,GAAE;AAAC,gBAAMC,KAAEa,GAAEN,IAAG,GAAEJ,KAAES,GAAE,aAAab,EAAC,EAAE,MAAMG,GAAC,GAAED,KAAE,eAAe,KAAKD,EAAC;AAAE,UAAAS,GAAE,KAAK,EAAC,MAAK,GAAE,OAAMJ,IAAE,MAAKJ,GAAE,CAAC,GAAE,SAAQE,IAAE,MAAK,QAAMF,GAAE,CAAC,IAAE,IAAE,QAAMA,GAAE,CAAC,IAAE,IAAE,QAAMA,GAAE,CAAC,IAAE,IAAE,EAAC,CAAC,GAAEW,GAAE,gBAAgBb,EAAC;AAAA,QAAC,MAAM,CAAAA,GAAE,WAAWG,GAAC,MAAIO,GAAE,KAAK,EAAC,MAAK,GAAE,OAAMJ,GAAC,CAAC,GAAEO,GAAE,gBAAgBb,EAAC;AAAG,YAAG,EAAE,KAAKa,GAAE,OAAO,GAAE;AAAC,gBAAMb,KAAEa,GAAE,YAAY,MAAMV,GAAC,GAAEF,KAAED,GAAE,SAAO;AAAE,cAAGC,KAAE,GAAE;AAAC,YAAAY,GAAE,cAAY,IAAE,EAAE,cAAY;AAAG,qBAAQT,KAAE,GAAEA,KAAEH,IAAEG,KAAI,CAAAS,GAAE,OAAOb,GAAEI,EAAC,GAAE,EAAC,CAAE,GAAE,EAAE,SAAQ,GAAGM,GAAE,KAAK,EAAC,MAAK,GAAE,OAAM,EAAEJ,GAAC,CAAC;AAAE,YAAAO,GAAE,OAAOb,GAAEC,EAAC,GAAE,EAAC,CAAE;AAAA,UAAC;AAAA,QAAC;AAAA,MAAC,WAAS,MAAIY,GAAE,SAAS,KAAGA,GAAE,SAAO,EAAE,CAAAH,GAAE,KAAK,EAAC,MAAK,GAAE,OAAMJ,GAAC,CAAC;AAAA,WAAM;AAAC,YAAIN,KAAE;AAAG,eAAK,QAAMA,KAAEa,GAAE,KAAK,QAAQV,KAAEH,KAAE,CAAC,KAAI,CAAAU,GAAE,KAAK,EAAC,MAAK,GAAE,OAAMJ,GAAC,CAAC,GAAEN,MAAGG,IAAE,SAAO;AAAA,MAAC;AAAC,MAAAG;AAAA,IAAG;AAAA,EAAC;AAAA,EAAC,OAAO,cAAcN,IAAEC,IAAE;AAAC,UAAMG,KAAE,EAAE,cAAc,UAAU;AAAE,WAAOA,GAAE,YAAUJ,IAAEI;AAAA,EAAC;AAAC;AAAC,SAAS,EAAEJ,IAAEC,IAAEG,KAAEJ,IAAEE,IAAE;AAAC,MAAGD,OAAI,EAAE,QAAOA;AAAE,MAAIc,KAAE,WAASb,KAAEE,GAAE,OAAOF,EAAC,IAAEE,GAAE;AAAK,QAAMD,KAAE,EAAEF,EAAC,IAAE,SAAOA,GAAE;AAAgB,SAAOc,IAAG,gBAAcZ,OAAIY,IAAG,OAAO,KAAE,GAAE,WAASZ,KAAEY,KAAE,UAAQA,KAAE,IAAIZ,GAAEH,EAAC,GAAEe,GAAE,KAAKf,IAAEI,IAAEF,EAAC,IAAG,WAASA,MAAGE,GAAE,SAAO,IAAIF,EAAC,IAAEa,KAAEX,GAAE,OAAKW,KAAG,WAASA,OAAId,KAAE,EAAED,IAAEe,GAAE,KAAKf,IAAEC,GAAE,MAAM,GAAEc,IAAEb,EAAC,IAAGD;AAAC;AAAC,MAAM,EAAC;AAAA,EAAC,YAAYD,IAAEC,IAAE;AAAC,SAAK,OAAK,IAAG,KAAK,OAAK,QAAO,KAAK,OAAKD,IAAE,KAAK,OAAKC;AAAA,EAAC;AAAA,EAAC,IAAI,aAAY;AAAC,WAAO,KAAK,KAAK;AAAA,EAAU;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,EAAED,IAAE;AAAC,UAAK,EAAC,IAAG,EAAC,SAAQC,GAAC,GAAE,OAAMG,GAAC,IAAE,KAAK,MAAKF,MAAGF,IAAG,iBAAe,GAAG,WAAWC,IAAE,IAAE;AAAE,MAAE,cAAYC;AAAE,QAAIa,KAAE,EAAE,SAAQ,GAAGZ,KAAE,GAAEE,KAAE,GAAEQ,KAAET,GAAE,CAAC;AAAE,WAAK,WAASS,MAAG;AAAC,UAAGV,OAAIU,GAAE,OAAM;AAAC,YAAIZ;AAAE,cAAIY,GAAE,OAAKZ,KAAE,IAAI,EAAEc,IAAEA,GAAE,aAAY,MAAKf,EAAC,IAAE,MAAIa,GAAE,OAAKZ,KAAE,IAAIY,GAAE,KAAKE,IAAEF,GAAE,MAAKA,GAAE,SAAQ,MAAKb,EAAC,IAAE,MAAIa,GAAE,SAAOZ,KAAE,IAAI,EAAEc,IAAE,MAAKf,EAAC,IAAG,KAAK,KAAK,KAAKC,EAAC,GAAEY,KAAET,GAAE,EAAEC,EAAC;AAAA,MAAC;AAAC,MAAAF,OAAIU,IAAG,UAAQE,KAAE,EAAE,SAAQ,GAAGZ;AAAA,IAAI;AAAC,WAAO,EAAE,cAAY,GAAED;AAAA,EAAC;AAAA,EAAC,EAAEF,IAAE;AAAC,QAAIC,KAAE;AAAE,eAAUG,MAAK,KAAK,KAAK,YAASA,OAAI,WAASA,GAAE,WAASA,GAAE,KAAKJ,IAAEI,IAAEH,EAAC,GAAEA,MAAGG,GAAE,QAAQ,SAAO,KAAGA,GAAE,KAAKJ,GAAEC,EAAC,CAAC,IAAGA;AAAA,EAAG;AAAC;AAAC,MAAM,EAAC;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,MAAM,QAAM,KAAK;AAAA,EAAI;AAAA,EAAC,YAAYD,IAAEC,IAAEG,IAAEF,IAAE;AAAC,SAAK,OAAK,GAAE,KAAK,OAAK,GAAE,KAAK,OAAK,QAAO,KAAK,OAAKF,IAAE,KAAK,OAAKC,IAAE,KAAK,OAAKG,IAAE,KAAK,UAAQF,IAAE,KAAK,OAAKA,IAAG,eAAa;AAAA,EAAE;AAAA,EAAC,IAAI,aAAY;AAAC,QAAIF,KAAE,KAAK,KAAK;AAAW,UAAMC,KAAE,KAAK;AAAK,WAAO,WAASA,MAAG,OAAKD,IAAG,aAAWA,KAAEC,GAAE,aAAYD;AAAA,EAAC;AAAA,EAAC,IAAI,YAAW;AAAC,WAAO,KAAK;AAAA,EAAI;AAAA,EAAC,IAAI,UAAS;AAAC,WAAO,KAAK;AAAA,EAAI;AAAA,EAAC,KAAKA,IAAEC,KAAE,MAAK;AAAC,IAAAD,KAAE,EAAE,MAAKA,IAAEC,EAAC,GAAE,EAAED,EAAC,IAAEA,OAAI,KAAG,QAAMA,MAAG,OAAKA,MAAG,KAAK,SAAO,KAAG,KAAK,QAAO,KAAK,OAAK,KAAGA,OAAI,KAAK,QAAMA,OAAI,KAAG,KAAK,EAAEA,EAAC,IAAE,WAASA,GAAE,aAAW,KAAK,EAAEA,EAAC,IAAE,WAASA,GAAE,WAAS,KAAK,EAAEA,EAAC,IAAE,EAAEA,EAAC,IAAE,KAAK,EAAEA,EAAC,IAAE,KAAK,EAAEA,EAAC;AAAA,EAAC;AAAA,EAAC,EAAEA,IAAE;AAAC,WAAO,KAAK,KAAK,WAAW,aAAaA,IAAE,KAAK,IAAI;AAAA,EAAC;AAAA,EAAC,EAAEA,IAAE;AAAC,SAAK,SAAOA,OAAI,KAAK,KAAI,GAAG,KAAK,OAAK,KAAK,EAAEA,EAAC;AAAA,EAAE;AAAA,EAAC,EAAEA,IAAE;AAAC,SAAK,SAAO,KAAG,EAAE,KAAK,IAAI,IAAE,KAAK,KAAK,YAAY,OAAKA,KAAE,KAAK,EAAE,EAAE,eAAeA,EAAC,CAAC,GAAE,KAAK,OAAKA;AAAA,EAAC;AAAA,EAAC,EAAEA,IAAE;AAAC,UAAK,EAAC,QAAOC,IAAE,YAAWG,GAAC,IAAEJ,IAAEE,KAAE,YAAU,OAAOE,KAAE,KAAK,KAAKJ,EAAC,KAAG,WAASI,GAAE,OAAKA,GAAE,KAAG,EAAE,cAAc,EAAEA,GAAE,GAAEA,GAAE,EAAE,CAAC,CAAC,GAAE,KAAK,OAAO,IAAGA;AAAG,QAAG,KAAK,MAAM,SAAOF,GAAE,MAAK,KAAK,EAAED,EAAC;AAAA,SAAM;AAAC,YAAMD,KAAE,IAAI,EAAEE,IAAE,IAAI,GAAEE,KAAEJ,GAAE,EAAE,KAAK,OAAO;AAAE,MAAAA,GAAE,EAAEC,EAAC,GAAE,KAAK,EAAEG,EAAC,GAAE,KAAK,OAAKJ;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,KAAKA,IAAE;AAAC,QAAIC,KAAE,EAAE,IAAID,GAAE,OAAO;AAAE,WAAO,WAASC,MAAG,EAAE,IAAID,GAAE,SAAQC,KAAE,IAAI,EAAED,EAAC,CAAC,GAAEC;AAAA,EAAC;AAAA,EAAC,EAAED,IAAE;AAAC,MAAE,KAAK,IAAI,MAAI,KAAK,OAAK,CAAA,GAAG,KAAK;AAAQ,UAAMC,KAAE,KAAK;AAAK,QAAIG,IAAEF,KAAE;AAAE,eAAUa,MAAKf,GAAE,CAAAE,OAAID,GAAE,SAAOA,GAAE,KAAKG,KAAE,IAAI,EAAE,KAAK,EAAE,EAAC,CAAE,GAAE,KAAK,EAAE,EAAC,CAAE,GAAE,MAAK,KAAK,OAAO,CAAC,IAAEA,KAAEH,GAAEC,EAAC,GAAEE,GAAE,KAAKW,EAAC,GAAEb;AAAI,IAAAA,KAAED,GAAE,WAAS,KAAK,KAAKG,MAAGA,GAAE,KAAK,aAAYF,EAAC,GAAED,GAAE,SAAOC;AAAA,EAAE;AAAA,EAAC,KAAKF,KAAE,KAAK,KAAK,aAAYI,IAAE;AAAC,SAAI,KAAK,OAAO,OAAG,MAAGA,EAAC,GAAEJ,OAAI,KAAK,QAAM;AAAC,YAAMI,KAAEH,IAAED,EAAC,EAAE;AAAYC,UAAED,EAAC,EAAE,OAAM,GAAGA,KAAEI;AAAA,IAAC;AAAA,EAAC;AAAA,EAAC,aAAaJ,IAAE;AAAC,eAAS,KAAK,SAAO,KAAK,OAAKA,IAAE,KAAK,OAAOA,EAAC;AAAA,EAAE;AAAC;AAAC,MAAM,EAAC;AAAA,EAAC,IAAI,UAAS;AAAC,WAAO,KAAK,QAAQ;AAAA,EAAO;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,YAAYA,IAAEC,IAAEG,IAAEF,IAAEa,IAAE;AAAC,SAAK,OAAK,GAAE,KAAK,OAAK,GAAE,KAAK,OAAK,QAAO,KAAK,UAAQf,IAAE,KAAK,OAAKC,IAAE,KAAK,OAAKC,IAAE,KAAK,UAAQa,IAAEX,GAAE,SAAO,KAAG,OAAKA,GAAE,CAAC,KAAG,OAAKA,GAAE,CAAC,KAAG,KAAK,OAAK,MAAMA,GAAE,SAAO,CAAC,EAAE,KAAK,IAAI,QAAM,GAAE,KAAK,UAAQA,MAAG,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,KAAKJ,IAAEC,KAAE,MAAKG,IAAEF,IAAE;AAAC,UAAMa,KAAE,KAAK;AAAQ,QAAIZ,KAAE;AAAG,QAAG,WAASY,GAAE,CAAAf,KAAE,EAAE,MAAKA,IAAEC,IAAE,CAAC,GAAEE,KAAE,CAAC,EAAEH,EAAC,KAAGA,OAAI,KAAK,QAAMA,OAAI,GAAEG,OAAI,KAAK,OAAKH;AAAA,SAAO;AAAC,YAAME,KAAEF;AAAE,UAAIK,IAAEQ;AAAE,WAAIb,KAAEe,GAAE,CAAC,GAAEV,KAAE,GAAEA,KAAEU,GAAE,SAAO,GAAEV,KAAI,CAAAQ,KAAE,EAAE,MAAKX,GAAEE,KAAEC,EAAC,GAAEJ,IAAEI,EAAC,GAAEQ,OAAI,MAAIA,KAAE,KAAK,KAAKR,EAAC,IAAGF,OAAI,CAAC,EAAEU,EAAC,KAAGA,OAAI,KAAK,KAAKR,EAAC,GAAEQ,OAAI,IAAEb,KAAE,IAAEA,OAAI,MAAIA,OAAIa,MAAG,MAAIE,GAAEV,KAAE,CAAC,IAAG,KAAK,KAAKA,EAAC,IAAEQ;AAAA,IAAC;AAAC,IAAAV,MAAG,CAACD,MAAG,KAAK,EAAEF,EAAC;AAAA,EAAC;AAAA,EAAC,EAAEA,IAAE;AAAC,IAAAA,OAAI,IAAE,KAAK,QAAQ,gBAAgB,KAAK,IAAI,IAAE,KAAK,QAAQ,aAAa,KAAK,MAAKA,MAAG,EAAE;AAAA,EAAC;AAAC;AAAC,MAAM,UAAU,EAAC;AAAA,EAAC,cAAa;AAAC,UAAM,GAAG,SAAS,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,EAAEA,IAAE;AAAC,SAAK,QAAQ,KAAK,IAAI,IAAEA,OAAI,IAAE,SAAOA;AAAA,EAAC;AAAC;AAAC,MAAM,UAAU,EAAC;AAAA,EAAC,cAAa;AAAC,UAAM,GAAG,SAAS,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,EAAEA,IAAE;AAAC,SAAK,QAAQ,gBAAgB,KAAK,MAAK,CAAC,CAACA,MAAGA,OAAI,CAAC;AAAA,EAAC;AAAC;AAAC,MAAM,UAAU,EAAC;AAAA,EAAC,YAAYA,IAAEC,IAAEG,IAAEF,IAAEa,IAAE;AAAC,UAAMf,IAAEC,IAAEG,IAAEF,IAAEa,EAAC,GAAE,KAAK,OAAK;AAAA,EAAC;AAAA,EAAC,KAAKf,IAAEC,KAAE,MAAK;AAAC,SAAID,KAAE,EAAE,MAAKA,IAAEC,IAAE,CAAC,KAAG,OAAK,EAAE;AAAO,UAAMG,KAAE,KAAK,MAAKF,KAAEF,OAAI,KAAGI,OAAI,KAAGJ,GAAE,YAAUI,GAAE,WAASJ,GAAE,SAAOI,GAAE,QAAMJ,GAAE,YAAUI,GAAE,SAAQW,KAAEf,OAAI,MAAII,OAAI,KAAGF;AAAG,IAAAA,MAAG,KAAK,QAAQ,oBAAoB,KAAK,MAAK,MAAKE,EAAC,GAAEW,MAAG,KAAK,QAAQ,iBAAiB,KAAK,MAAK,MAAKf,EAAC,GAAE,KAAK,OAAKA;AAAA,EAAC;AAAA,EAAC,YAAYA,IAAE;AAAC,kBAAY,OAAO,KAAK,OAAK,KAAK,KAAK,KAAK,KAAK,SAAS,QAAM,KAAK,SAAQA,EAAC,IAAE,KAAK,KAAK,YAAYA,EAAC;AAAA,EAAC;AAAC;AAAC,MAAM,EAAC;AAAA,EAAC,YAAYA,IAAEC,IAAEG,IAAE;AAAC,SAAK,UAAQJ,IAAE,KAAK,OAAK,GAAE,KAAK,OAAK,QAAO,KAAK,OAAKC,IAAE,KAAK,UAAQG;AAAA,EAAC;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,KAAKJ,IAAE;AAAC,MAAE,MAAKA,EAAC;AAAA,EAAC;AAAC;AAAM,MAAyD,IAAEA,IAAE;AAAuB,IAAI,GAAE,CAAC,IAAGA,IAAE,oBAAkB,IAAI,KAAK,OAAO;ACAvvN,MAAM,IAAE,EAAa,OAAM,EAAkD,GAAEE,MAAE,CAAAF,OAAG,IAAIE,QAAK,EAAC,iBAAgBF,IAAE,QAAOE,GAAC;AAAG,MAAM,EAAC;AAAA,EAAC,YAAYF,IAAE;AAAA,EAAC;AAAA,EAAC,IAAI,OAAM;AAAC,WAAO,KAAK,KAAK;AAAA,EAAI;AAAA,EAAC,KAAKA,IAAEE,IAAED,IAAE;AAAC,SAAK,OAAKD,IAAE,KAAK,OAAKE,IAAE,KAAK,OAAKD;AAAA,EAAC;AAAA,EAAC,KAAKD,IAAEE,IAAE;AAAC,WAAO,KAAK,OAAOF,IAAEE,EAAC;AAAA,EAAC;AAAA,EAAC,OAAOF,IAAEE,IAAE;AAAC,WAAO,KAAK,OAAO,GAAGA,EAAC;AAAA,EAAC;AAAC;ACAxS,MAAM,UAAUE,EAAC;AAAA,EAAC,YAAYH,IAAE;AAAC,QAAG,MAAMA,EAAC,GAAE,KAAK,KAAGD,GAAEC,GAAE,SAAOI,EAAE,MAAM,OAAM,MAAM,KAAK,YAAY,gBAAc,uCAAuC;AAAA,EAAC;AAAA,EAAC,OAAOQ,IAAE;AAAC,QAAGA,OAAIb,KAAG,QAAMa,GAAE,QAAO,KAAK,KAAG,QAAO,KAAK,KAAGA;AAAE,QAAGA,OAAIZ,EAAE,QAAOY;AAAE,QAAG,YAAU,OAAOA,GAAE,OAAM,MAAM,KAAK,YAAY,gBAAc,mCAAmC;AAAE,QAAGA,OAAI,KAAK,GAAG,QAAO,KAAK;AAAG,SAAK,KAAGA;AAAE,UAAMT,KAAE,CAACS,EAAC;AAAE,WAAOT,GAAE,MAAIA,IAAE,KAAK,KAAG,EAAC,YAAW,KAAK,YAAY,YAAW,SAAQA,IAAE,QAAO,CAAA,EAAE;AAAA,EAAC;AAAC;AAAC,EAAE,gBAAc,cAAa,EAAE,aAAW;AAAE,MAAM,IAAES,IAAE,CAAC;AC8B5gB,MAAM,oBAAoB;AAAA,EAI/B,cAAc;AAHd,SAAQ,iCAAiB,IAAA;AAKvB,SAAK,SAAS,IAAI,oBAAoB;AACtC,SAAK,SAAS,IAAI,sBAAsB;AACxC,SAAK,SAAS,IAAI,iBAAiB;AACnC,SAAK,SAAS,IAAI,qBAAqB;AACvC,SAAK,SAAS,IAAI,kBAAkB;AACpC,SAAK,SAAS,IAAI,iBAAiB;AACnC,SAAK,SAAS,IAAI,sBAAsB;AACxC,SAAK,SAAS,IAAI,mBAAmB;AACrC,SAAK,SAAS,IAAI,qBAAqB;AACvC,SAAK,SAAS,IAAI,iBAAiB;AACnC,SAAK,SAAS,IAAI,iBAAiB;AAEnC,SAAK,WAAW,IAAI,oBAAA;AAAA,EACtB;AAAA,EAEA,SAAS,UAAyC;AAChD,SAAK,WAAW,IAAI,SAAS,MAAM,QAAQ;AAAA,EAC7C;AAAA,EAEA,WAAW,MAAoB;AAC7B,SAAK,WAAW,OAAO,IAAI;AAAA,EAC7B;AAAA,EAEA,IAAI,MAAuC;AACzC,WAAO,KAAK,WAAW,IAAI,IAAI,KAAK,KAAK;AAAA,EAC3C;AAAA,EAEA,IAAI,MAAuB;AACzB,WAAO,KAAK,WAAW,IAAI,IAAI;AAAA,EACjC;AAAA,EAEA,IAAI,QAAkB;AACpB,WAAO,MAAM,KAAK,KAAK,WAAW,MAAM;AAAA,EAC1C;AAAA,EAEA,YAAY,UAAyC;AACnD,SAAK,WAAW;AAAA,EAClB;AACF;AAIO,MAAM,mBAAsD;AAAA,EAA5D,cAAA;AACL,SAAS,OAAO;AAAA,EAAA;AAAA,EAEhB,OAAO,MAAmB,cAAsE;AAC9F,UAAM,QAAS,KAAK,YAAY,SAAoB;AACpD,YAAQ,OAAA;AAAA,MACN,KAAK;AAAK,eAAOG,QAAWC,EAAW,KAAK,WAAW,EAAE,CAAC;AAAA,MAC1D,KAAK;AAAK,eAAOD,QAAWC,EAAW,KAAK,WAAW,EAAE,CAAC;AAAA,MAC1D,KAAK;AAAK,eAAOD,QAAWC,EAAW,KAAK,WAAW,EAAE,CAAC;AAAA,MAC1D;AAAU,eAAOD,QAAWC,EAAW,KAAK,WAAW,EAAE,CAAC;AAAA,IAAA;AAAA,EAE9D;AACF;AAIO,MAAM,qBAAwD;AAAA,EAA9D,cAAA;AACL,SAAS,OAAO;AAAA,EAAA;AAAA,EAEhB,OAAO,MAAmB,aAAqE;AAC7F,QAAI,KAAK,UAAU;AACjB,aAAOD,OAAU,KAAK,SAAS,IAAI,WAAS,YAAY,KAAK,CAAC,CAAC;AAAA,IACjE;AACA,WAAOA,OAAUC,EAAW,KAAK,WAAW,EAAE,CAAC;AAAA,EACjD;AACF;AAIO,MAAM,gBAAmD;AAAA,EAAzD,cAAA;AACL,SAAS,OAAO;AAAA,EAAA;AAAA,EAEhB,OAAO,MAAmB,aAAqE;AAC7F,WAAOD,QAAW,KAAK,UAAU,IAAI,WAAS,YAAY,KAAK,CAAC,CAAC;AAAA,EACnE;AACF;AAIO,MAAM,oBAAuD;AAAA,EAA7D,cAAA;AACL,SAAS,OAAO;AAAA,EAAA;AAAA,EAEhB,OAAO,MAAmB,cAAsE;AAC9F,WAAOA,QAAWC,EAAW,KAAK,WAAW,EAAE,CAAC;AAAA,EAClD;AACF;AAIO,MAAM,iBAAoD;AAAA,EAA1D,cAAA;AACL,SAAS,OAAO;AAAA,EAAA;AAAA,EAEhB,OAAO,MAAmB,cAAsE;AAC9F,UAAM,MAAM,KAAK,OAAQ,KAAK,YAAY,OAAkB;AAC5D,UAAM,MAAM,KAAK,OAAQ,KAAK,YAAY,OAAkB;AAC5D,UAAM,YAAY,KAAK,aAAa;AACpC,WAAOD,cAAiB,GAAG,UAAU,GAAG,YAAY,SAAS;AAAA,EAC/D;AACF;AAIO,MAAM,gBAAmD;AAAA,EAAzD,cAAA;AACL,SAAS,OAAO;AAAA,EAAA;AAAA,EAEhB,OAAO,MAAmB,cAAsE;AAC9F,UAAM,OAAQ,KAAK,YAAY,QAAmB;AAClD,WAAOA,+BAAkC,IAAI,KAAK,KAAK,WAAW,EAAE;AAAA,EACtE;AACF;AAIO,MAAM,qBAAwD;AAAA,EAA9D,cAAA;AACL,SAAS,OAAO;AAAA,EAAA;AAAA,EAEhB,OAAO,MAAmB,aAAqE;AAC7F,UAAM,YAAY,KAAK,aAAa;AACpC,UAAM,QAAS,KAAK,YAAY,SAAoB;AACpD,WAAOA,gBAAmB,SAAS,YAAY,KAAK;AAAA,QAChD,KAAK,UAAU,IAAI,WAAS,YAAY,KAAK,CAAC,CAAC;AAAA;AAAA,EAErD;AACF;AAIO,MAAM,kBAAqD;AAAA,EAA3D,cAAA;AACL,SAAS,OAAO;AAAA,EAAA;AAAA,EAEhB,OAAO,MAAmB,cAAsE;AAC9F,WAAOA,YAAeC,EAAW,KAAK,WAAW,EAAE,CAAC;AAAA,EACtD;AACF;AAIO,MAAM,oBAAuD;AAAA,EAA7D,cAAA;AACL,SAAS,OAAO;AAAA,EAAA;AAAA,EAEhB,OAAO,MAAmB,cAAsE;AAC9F,WAAOD,QAAWC,EAAW,KAAK,WAAW,EAAE,CAAC;AAAA,EAClD;AACF;AAIO,MAAM,gBAAmD;AAAA,EAAzD,cAAA;AACL,SAAS,OAAO;AAAA,EAAA;AAAA,EAEhB,OAAO,MAAmB,cAAsE;AAC9F,UAAM,OAAO,KAAK,YAAY,QAAQ;AACtC,WAAOD,aAAgB,IAAI,KAAKC,EAAW,KAAK,WAAW,EAAE,CAAC;AAAA,EAChE;AACF;AAIO,MAAM,gBAAmD;AAAA,EAAzD,cAAA;AACL,SAAS,OAAO;AAAA,EAAA;AAAA,EAEhB,OAAO,MAAmB,cAAsE;AAC9F,WAAOD,IAAO,KAAK,WAAW,EAAE;AAAA,EAClC;AACF;AAIO,MAAM,oBAAuD;AAAA,EAA7D,cAAA;AACL,SAAS,OAAO;AAAA,EAAA;AAAA,EAEhB,OAAO,OAAoB,cAAsE;AAC/F,WAAOA;AAAAA,EACT;AACF;ACnMO,MAAM,YAAY;AAAA,EAKvB,cAAc;AACZ,SAAK,mBAAmB,IAAI,oBAAA;AAAA,EAC9B;AAAA;AAAA,EAGA,IAAI,aAAkC;AACpC,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW,MAAmC;AAC5C,UAAM,WAAW,KAAK,iBAAiB,IAAI,KAAK,IAAI;AACpD,WAAO,SAAS,OAAO,MAAM,CAAC,UAAU,KAAK,WAAW,KAAK,CAAC;AAAA,EAChE;AAAA;AAAA;AAAA;AAAA,EAKA,YAAY,OAAsC;AAChD,QAAI,CAAC,SAAS,MAAM,WAAW,GAAG;AAChC,aAAOA;AAAAA,IACT;AACA,WAAOA,IAAO,MAAM,IAAI,CAAA,SAAQ,KAAK,WAAW,IAAI,CAAC,CAAC;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,mBAAmB,OAA8B;AAC/C,QAAI,CAAC,SAAS,MAAM,WAAW,GAAG;AAChC,aAAO;AAAA,IACT;AACA,QAAI,CAAC,KAAK,cAAc;AACtB,WAAK,eAAe,IAAI,aAAA;AAAA,IAC1B;AACA,WAAO,KAAK,aAAa,YAAY,KAAK;AAAA,EAC5C;AACF;","x_google_ignoreList":[0,1,2]}
@@ -1,10 +1,72 @@
1
- import { TemplateResult } from 'lit';
2
- import { ContentNode } from './types';
3
- export declare class LitRenderer {
4
- private renderTextNode;
5
- renderNode(node: ContentNode): TemplateResult;
6
- renderNodes(nodes: ContentNode[]): TemplateResult;
7
- renderToHTMLString(nodes: ContentNode[]): string;
8
- private nodeToHTMLString;
9
- }
10
- //# sourceMappingURL=lit-renderer.d.ts.map
1
+ import { TemplateResult } from 'lit-html';
2
+
3
+ declare interface ContentNode {
4
+ type: ContentNodeType;
5
+ content?: string;
6
+ children?: ContentNode[];
7
+ attributes?: Record<string, unknown>;
8
+ className?: string;
9
+ src?: string;
10
+ alt?: string;
11
+ ordered?: boolean;
12
+ /** Raw HTML content for passthrough mode */
13
+ rawHTML?: string;
14
+ /** Scope anchor value for data-md-scope */
15
+ scope?: string;
16
+ }
17
+
18
+ declare type ContentNodeType = 'text' | 'heading' | 'paragraph' | 'list' | 'list-item' | 'image' | 'code' | 'container' | 'strong' | 'emphasis' | 'link';
19
+
20
+ export declare interface LitNodeRendererStrategy {
21
+ /** The ContentNode type this strategy handles */
22
+ readonly type: string;
23
+ /** Render a node to a Lit TemplateResult */
24
+ render(node: ContentNode, renderChild: (child: ContentNode) => TemplateResult): TemplateResult;
25
+ }
26
+
27
+ export declare class LitRenderer {
28
+ private strategyRegistry;
29
+ /** Lazily created HTMLRenderer for string output, sharing the same config */
30
+ private htmlRenderer?;
31
+ constructor();
32
+ /** Access the strategy registry for customization. */
33
+ get strategies(): LitStrategyRegistry;
34
+ /**
35
+ * Render a single node to a Lit TemplateResult.
36
+ */
37
+ renderNode(node: ContentNode): TemplateResult;
38
+ /**
39
+ * Render an array of nodes to a single Lit TemplateResult.
40
+ */
41
+ renderNodes(nodes: ContentNode[]): TemplateResult;
42
+ /**
43
+ * Render nodes to a plain HTML string.
44
+ * Delegates to HTMLRenderer to avoid duplicating string rendering logic.
45
+ *
46
+ * Note: Uses default HTMLRenderer config (no classPrefix, scope anchors,
47
+ * or heading IDs). For full HTML rendering with those features,
48
+ * use HTMLRenderer directly.
49
+ */
50
+ renderToHTMLString(nodes: ContentNode[]): string;
51
+ }
52
+
53
+ /**
54
+ * Registry of Lit renderer strategies.
55
+ *
56
+ * Two-tier lookup:
57
+ * 1. Dedicated strategy by node type
58
+ * 2. Fallback to a catch-all strategy (default: renders empty)
59
+ */
60
+ export declare class LitStrategyRegistry {
61
+ private strategies;
62
+ private fallback;
63
+ constructor();
64
+ register(strategy: LitNodeRendererStrategy): void;
65
+ unregister(type: string): void;
66
+ get(type: string): LitNodeRendererStrategy;
67
+ has(type: string): boolean;
68
+ get types(): string[];
69
+ setFallback(strategy: LitNodeRendererStrategy): void;
70
+ }
71
+
72
+ export { }