@plumix/core 0.1.4 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin-bar/collect.d.ts.map +1 -1
- package/dist/admin-bar/collect.js +1 -15
- package/dist/admin-bar/collect.js.map +1 -1
- package/dist/admin-bar/styles.d.ts.map +1 -1
- package/dist/admin-bar/styles.js +1 -11
- package/dist/admin-bar/styles.js.map +1 -1
- package/dist/cli/worker-codegen.d.ts.map +1 -1
- package/dist/cli/worker-codegen.js +3 -5
- package/dist/cli/worker-codegen.js.map +1 -1
- package/dist/context/app.d.ts +8 -0
- package/dist/context/app.d.ts.map +1 -1
- package/dist/context/app.js +7 -0
- package/dist/context/app.js.map +1 -1
- package/dist/context/debug.d.ts +25 -0
- package/dist/context/debug.d.ts.map +1 -0
- package/dist/context/debug.js +13 -0
- package/dist/context/debug.js.map +1 -0
- package/dist/context/stores.d.ts +2 -0
- package/dist/context/stores.d.ts.map +1 -1
- package/dist/context/stores.js.map +1 -1
- package/dist/css-tag.d.ts +2 -0
- package/dist/css-tag.d.ts.map +1 -0
- package/dist/css-tag.js +13 -0
- package/dist/css-tag.js.map +1 -0
- package/dist/db/libsql.d.ts.map +1 -1
- package/dist/db/libsql.js +13 -2
- package/dist/db/libsql.js.map +1 -1
- package/dist/debug-bar/collect.d.ts.map +1 -1
- package/dist/debug-bar/collect.js +1 -15
- package/dist/debug-bar/collect.js.map +1 -1
- package/dist/debug-bar/collector.d.ts +9 -0
- package/dist/debug-bar/collector.d.ts.map +1 -0
- package/dist/debug-bar/collector.js +80 -0
- package/dist/debug-bar/collector.js.map +1 -0
- package/dist/debug-bar/component.d.ts.map +1 -1
- package/dist/debug-bar/component.js +15 -2
- package/dist/debug-bar/component.js.map +1 -1
- package/dist/debug-bar/core-panels.d.ts.map +1 -1
- package/dist/debug-bar/core-panels.js +12 -1
- package/dist/debug-bar/core-panels.js.map +1 -1
- package/dist/debug-bar/db-query.d.ts +21 -0
- package/dist/debug-bar/db-query.d.ts.map +1 -0
- package/dist/debug-bar/db-query.js +23 -0
- package/dist/debug-bar/db-query.js.map +1 -0
- package/dist/debug-bar/format-param.d.ts +14 -0
- package/dist/debug-bar/format-param.d.ts.map +1 -0
- package/dist/debug-bar/format-param.js +27 -0
- package/dist/debug-bar/format-param.js.map +1 -0
- package/dist/debug-bar/highlight-sql.d.ts +11 -0
- package/dist/debug-bar/highlight-sql.d.ts.map +1 -0
- package/dist/debug-bar/highlight-sql.js +82 -0
- package/dist/debug-bar/highlight-sql.js.map +1 -0
- package/dist/debug-bar/panels/app.d.ts +8 -0
- package/dist/debug-bar/panels/app.d.ts.map +1 -0
- package/dist/debug-bar/panels/app.js +32 -0
- package/dist/debug-bar/panels/app.js.map +1 -0
- package/dist/debug-bar/panels/database.d.ts +9 -0
- package/dist/debug-bar/panels/database.d.ts.map +1 -0
- package/dist/debug-bar/panels/database.js +33 -0
- package/dist/debug-bar/panels/database.js.map +1 -0
- package/dist/debug-bar/panels/request.d.ts +2 -2
- package/dist/debug-bar/panels/request.d.ts.map +1 -1
- package/dist/debug-bar/panels/request.js +24 -11
- package/dist/debug-bar/panels/request.js.map +1 -1
- package/dist/debug-bar/panels/template.d.ts +14 -0
- package/dist/debug-bar/panels/template.d.ts.map +1 -0
- package/dist/debug-bar/panels/template.js +40 -0
- package/dist/debug-bar/panels/template.js.map +1 -0
- package/dist/debug-bar/panels/timeline.d.ts +11 -0
- package/dist/debug-bar/panels/timeline.d.ts.map +1 -0
- package/dist/debug-bar/panels/timeline.js +46 -0
- package/dist/debug-bar/panels/timeline.js.map +1 -0
- package/dist/debug-bar/primitives.d.ts +12 -3
- package/dist/debug-bar/primitives.d.ts.map +1 -1
- package/dist/debug-bar/primitives.js +17 -1
- package/dist/debug-bar/primitives.js.map +1 -1
- package/dist/debug-bar/styles.d.ts.map +1 -1
- package/dist/debug-bar/styles.js +229 -17
- package/dist/debug-bar/styles.js.map +1 -1
- package/dist/debug-bar/template-node-label.d.ts +6 -0
- package/dist/debug-bar/template-node-label.d.ts.map +1 -0
- package/dist/debug-bar/template-node-label.js +18 -0
- package/dist/debug-bar/template-node-label.js.map +1 -0
- package/dist/debug-bar/timeline-geometry.d.ts +30 -0
- package/dist/debug-bar/timeline-geometry.d.ts.map +1 -0
- package/dist/debug-bar/timeline-geometry.js +26 -0
- package/dist/debug-bar/timeline-geometry.js.map +1 -0
- package/dist/debug-bar/timeline-model.d.ts +23 -0
- package/dist/debug-bar/timeline-model.d.ts.map +1 -0
- package/dist/debug-bar/timeline-model.js +34 -0
- package/dist/debug-bar/timeline-model.js.map +1 -0
- package/dist/debug-bar/trace-libsql.d.ts +18 -0
- package/dist/debug-bar/trace-libsql.d.ts.map +1 -0
- package/dist/debug-bar/trace-libsql.js +42 -0
- package/dist/debug-bar/trace-libsql.js.map +1 -0
- package/dist/debug-bar/types.d.ts +6 -0
- package/dist/debug-bar/types.d.ts.map +1 -1
- package/dist/hooks/registry.d.ts +14 -3
- package/dist/hooks/registry.d.ts.map +1 -1
- package/dist/hooks/registry.js +22 -0
- package/dist/hooks/registry.js.map +1 -1
- package/dist/index.d.ts +8 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/plugin/manifest.d.ts +3 -0
- package/dist/plugin/manifest.d.ts.map +1 -1
- package/dist/plugin/manifest.js +1 -0
- package/dist/plugin/manifest.js.map +1 -1
- package/dist/plugin/register.d.ts.map +1 -1
- package/dist/plugin/register.js +1 -0
- package/dist/plugin/register.js.map +1 -1
- package/dist/route/render/render-template.d.ts +6 -4
- package/dist/route/render/render-template.d.ts.map +1 -1
- package/dist/route/render/render-template.js +48 -44
- package/dist/route/render/render-template.js.map +1 -1
- package/dist/route/render/resolved-entry.d.ts +10 -5
- package/dist/route/render/resolved-entry.d.ts.map +1 -1
- package/dist/route/render/template-builders.d.ts +72 -0
- package/dist/route/render/template-builders.d.ts.map +1 -0
- package/dist/route/render/template-builders.js +113 -0
- package/dist/route/render/template-builders.js.map +1 -0
- package/dist/route/render/template-hierarchy.d.ts +53 -38
- package/dist/route/render/template-hierarchy.d.ts.map +1 -1
- package/dist/route/render/template-hierarchy.js +127 -74
- package/dist/route/render/template-hierarchy.js.map +1 -1
- package/dist/route/resolve.d.ts +3 -3
- package/dist/route/resolve.d.ts.map +1 -1
- package/dist/route/resolve.js +30 -32
- package/dist/route/resolve.js.map +1 -1
- package/dist/runtime/app.d.ts +8 -13
- package/dist/runtime/app.d.ts.map +1 -1
- package/dist/runtime/app.js +1 -39
- package/dist/runtime/app.js.map +1 -1
- package/dist/runtime/dispatcher.d.ts.map +1 -1
- package/dist/runtime/dispatcher.js +8 -9
- package/dist/runtime/dispatcher.js.map +1 -1
- package/dist/template-deps.js +1 -1
- package/dist/template-registry.d.ts +57 -0
- package/dist/template-registry.d.ts.map +1 -0
- package/dist/template-registry.js +1 -0
- package/dist/template-registry.js.map +1 -0
- package/dist/template.d.ts +2 -2
- package/dist/test/default-theme.d.ts.map +1 -1
- package/dist/test/default-theme.js +7 -6
- package/dist/test/default-theme.js.map +1 -1
- package/dist/test/dispatcher.d.ts +3 -0
- package/dist/test/dispatcher.d.ts.map +1 -1
- package/dist/test/dispatcher.js +8 -2
- package/dist/test/dispatcher.js.map +1 -1
- package/dist/test/harness.d.ts.map +1 -1
- package/dist/test/harness.js +12 -2
- package/dist/test/harness.js.map +1 -1
- package/dist/theme-errors.d.ts +0 -3
- package/dist/theme-errors.d.ts.map +1 -1
- package/dist/theme-errors.js +7 -18
- package/dist/theme-errors.js.map +1 -1
- package/dist/theme.d.ts +59 -23
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +21 -10
- package/dist/theme.js.map +1 -1
- package/dist/welcome-theme.d.ts +2 -2
- package/dist/welcome-theme.d.ts.map +1 -1
- package/dist/welcome-theme.js +7 -6
- package/dist/welcome-theme.js.map +1 -1
- package/package.json +7 -7
- package/dist/route/render/archive-props.d.ts +0 -39
- package/dist/route/render/archive-props.d.ts.map +0 -1
- package/dist/route/render/archive-props.js +0 -32
- package/dist/route/render/archive-props.js.map +0 -1
|
@@ -5,6 +5,7 @@ import { resolveBlockLoaders } from "@plumix/blocks";
|
|
|
5
5
|
import { PlumixProvider } from "@plumix/blocks/renderer";
|
|
6
6
|
import { PlumixAdminBar } from "../../admin-bar/component.js";
|
|
7
7
|
import { PlumixDebugBar } from "../../debug-bar/component.js";
|
|
8
|
+
import { TEMPLATE_PANEL_ID, templateNodeLabel, } from "../../debug-bar/template-node-label.js";
|
|
8
9
|
import { mergeDocumentManifest } from "../../document-merge.js";
|
|
9
10
|
import { applyCanonical } from "../../seo/canonical.js";
|
|
10
11
|
import { applyHeadMeta } from "../../seo/head-defaults.js";
|
|
@@ -15,20 +16,34 @@ import { LIVE_EDIT_MODE } from "../edit-mode.js";
|
|
|
15
16
|
import { bundledCssTags, devThemeStylesTag } from "./asset-manifest.js";
|
|
16
17
|
import { injectEditorBootstrap } from "./inject-editor-bootstrap.js";
|
|
17
18
|
import { injectIslandsBootstrap } from "./inject-islands-bootstrap.js";
|
|
18
|
-
import {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
import { templateRules } from "./template-builders.js";
|
|
20
|
+
import { explainTemplateResolution, resolveErrorTemplate, resolveTemplate, ruleLabel, } from "./template-hierarchy.js";
|
|
21
|
+
/**
|
|
22
|
+
* Render a resolved node through the theme. Returns `null` when the theme
|
|
23
|
+
* declares no matching tier and no `fallback` — the caller then renders 404.
|
|
24
|
+
*/
|
|
25
|
+
export function renderThroughTheme(args) {
|
|
26
|
+
// Dev-only: time the render phase for the Timeline. `ctx.debug` is the no-op
|
|
27
|
+
// collector in prod, so span() is a pass-through and this tree-shakes to a
|
|
28
|
+
// plain call.
|
|
29
|
+
return args.ctx.debug.span("render", () => renderThroughThemeInner(args));
|
|
30
|
+
}
|
|
31
|
+
async function renderThroughThemeInner({ ctx, theme, document, templateDeps, assetManifest, node, data, title, editMode = LIVE_EDIT_MODE, }) {
|
|
32
|
+
const rules = templateRules(theme.templates);
|
|
33
|
+
const matched = resolveTemplate(rules, node, data);
|
|
34
|
+
if (matched === undefined)
|
|
35
|
+
return null;
|
|
36
|
+
const template = normalizeTemplate(matched.template, ruleLabel(matched));
|
|
37
|
+
// Dev-only: surface the full resolution walk in the debug bar. `ctx.debug` is
|
|
38
|
+
// the no-op collector in prod, so this branch tree-shakes.
|
|
39
|
+
if (process.env.PLUMIX_DEV) {
|
|
40
|
+
ctx.debug.record(TEMPLATE_PANEL_ID, {
|
|
41
|
+
nodeLabel: templateNodeLabel(node),
|
|
42
|
+
...explainTemplateResolution(rules, node, data),
|
|
43
|
+
});
|
|
44
|
+
}
|
|
22
45
|
const deps = await loadTemplateDeps(mergeTemplateDepDeclarations(theme, template), templateDeps, ctx);
|
|
23
|
-
const merged = resolveRenderDocument({
|
|
24
|
-
template,
|
|
25
|
-
slot,
|
|
26
|
-
document,
|
|
27
|
-
templateDocuments,
|
|
28
|
-
data,
|
|
29
|
-
ctx,
|
|
30
|
-
deps,
|
|
31
|
-
});
|
|
46
|
+
const merged = resolveRenderDocument({ template, document, data, ctx, deps });
|
|
32
47
|
const filtered = await ctx.hooks.applyFilter("render:document", merged, data, ctx);
|
|
33
48
|
const renderDocument = await applyHeadMeta(applyCanonical(filtered, ctx), data, ctx, title);
|
|
34
49
|
const loaderData = await prefetchEntryLoaders(ctx, data, template);
|
|
@@ -58,23 +73,26 @@ function composeTitle(document, fallback) {
|
|
|
58
73
|
return title ?? fallback;
|
|
59
74
|
}
|
|
60
75
|
const ERROR_VARIANTS = {
|
|
61
|
-
"not-found": {
|
|
76
|
+
"not-found": {
|
|
77
|
+
tier: "notFound",
|
|
78
|
+
title: "Not Found",
|
|
79
|
+
fallback: DefaultNotFound,
|
|
80
|
+
},
|
|
62
81
|
"server-error": {
|
|
63
|
-
|
|
82
|
+
tier: "serverError",
|
|
64
83
|
title: "Internal Server Error",
|
|
65
84
|
fallback: DefaultServerError,
|
|
66
85
|
},
|
|
67
86
|
};
|
|
68
|
-
export async function renderErrorThroughTheme({ ctx, theme, document,
|
|
87
|
+
export async function renderErrorThroughTheme({ ctx, theme, document, templateDeps, assetManifest, kind, data, }) {
|
|
69
88
|
const variant = ERROR_VARIANTS[kind];
|
|
70
|
-
const raw = theme.templates
|
|
71
|
-
|
|
89
|
+
const raw = resolveErrorTemplate(templateRules(theme.templates), variant.tier)
|
|
90
|
+
?.template ?? variant.fallback;
|
|
91
|
+
const template = normalizeTemplate(raw, variant.tier);
|
|
72
92
|
const deps = await loadTemplateDeps(mergeTemplateDepDeclarations(theme, template), templateDeps, ctx);
|
|
73
93
|
const renderDocument = resolveRenderDocument({
|
|
74
94
|
template,
|
|
75
|
-
slot: variant.key,
|
|
76
95
|
document,
|
|
77
|
-
templateDocuments,
|
|
78
96
|
data,
|
|
79
97
|
ctx,
|
|
80
98
|
deps,
|
|
@@ -124,18 +142,21 @@ function collectLoaderBlocks(data, template) {
|
|
|
124
142
|
return data.entry.contentBlocks?.blocks ?? [];
|
|
125
143
|
if (!("entries" in data))
|
|
126
144
|
return [];
|
|
127
|
-
if (!template.
|
|
145
|
+
if (!template.prefetchArchiveLoaders)
|
|
128
146
|
return [];
|
|
129
147
|
return data.entries.flatMap((e) => e.contentBlocks?.blocks ?? []);
|
|
130
148
|
}
|
|
131
|
-
|
|
149
|
+
// Merge the matched template's `document` fragment (a literal or a per-request
|
|
150
|
+
// function) onto the theme-wide document. No fragment → the theme document.
|
|
151
|
+
function resolveRenderDocument({ template, document, data, ctx, deps, }) {
|
|
132
152
|
const fragment = template.document;
|
|
133
|
-
if (
|
|
134
|
-
return
|
|
135
|
-
|
|
136
|
-
|
|
153
|
+
if (fragment === undefined)
|
|
154
|
+
return document;
|
|
155
|
+
const resolved = typeof fragment === "function"
|
|
156
|
+
? fragment({ ...deps, data, ctx })
|
|
157
|
+
: fragment;
|
|
137
158
|
const merged = mergeDocumentManifest(document, resolved);
|
|
138
|
-
validateDocumentManifest(merged
|
|
159
|
+
validateDocumentManifest(merged);
|
|
139
160
|
return merged;
|
|
140
161
|
}
|
|
141
162
|
// React 19 reorders every child of `<head>` (metadata first, scripts /
|
|
@@ -352,23 +373,6 @@ function escapeHtml(value) {
|
|
|
352
373
|
function escapeAttr(value) {
|
|
353
374
|
return escapeHtml(value).replace(/"/g, """);
|
|
354
375
|
}
|
|
355
|
-
function pickTemplate(templates, candidates) {
|
|
356
|
-
// The candidate list is derived from the route's kind, so the picked
|
|
357
|
-
// template's narrowed data shape always matches the runtime `data`.
|
|
358
|
-
// Normalize at the boundary — accepts both plain function templates
|
|
359
|
-
// (legacy) and factory-built `Template<T>` objects. The returned
|
|
360
|
-
// `slot` keys per-template document lookups on the app's precomputed
|
|
361
|
-
// `templateDocuments` map.
|
|
362
|
-
for (const name of candidates) {
|
|
363
|
-
const candidate = templates[name];
|
|
364
|
-
if (candidate)
|
|
365
|
-
return { template: normalizeTemplate(candidate, name), slot: name };
|
|
366
|
-
}
|
|
367
|
-
return {
|
|
368
|
-
template: normalizeTemplate(templates.index, "index"),
|
|
369
|
-
slot: "index",
|
|
370
|
-
};
|
|
371
|
-
}
|
|
372
376
|
function DefaultNotFound() {
|
|
373
377
|
return (_jsxs("main", { children: [_jsx("h1", { children: "Not Found" }), _jsx("p", { children: "The page you're looking for doesn't exist." })] }));
|
|
374
378
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-template.js","sourceRoot":"","sources":["../../../src/route/render/render-template.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"render-template.js","sourceRoot":"","sources":["../../../src/route/render/render-template.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ export interface ResolvedAuthor {
|
|
|
7
7
|
readonly name: string | null;
|
|
8
8
|
readonly avatarUrl: string | null;
|
|
9
9
|
}
|
|
10
|
-
interface ResolvedTerm extends Term {
|
|
10
|
+
export interface ResolvedTerm extends Term {
|
|
11
11
|
readonly url: string | null;
|
|
12
12
|
}
|
|
13
13
|
export interface ResolvedEntry extends Entry {
|
|
@@ -16,7 +16,8 @@ export interface ResolvedEntry extends Entry {
|
|
|
16
16
|
readonly author: ResolvedAuthor;
|
|
17
17
|
readonly url: string | null;
|
|
18
18
|
}
|
|
19
|
-
export interface
|
|
19
|
+
export interface EntryData<TEntry extends ResolvedEntry = ResolvedEntry> {
|
|
20
|
+
readonly kind: "entry";
|
|
20
21
|
readonly entry: TEntry;
|
|
21
22
|
}
|
|
22
23
|
export interface Pagination {
|
|
@@ -26,21 +27,25 @@ export interface Pagination {
|
|
|
26
27
|
readonly pageCount: number;
|
|
27
28
|
}
|
|
28
29
|
export interface ArchiveData<TEntry extends ResolvedEntry = ResolvedEntry> {
|
|
30
|
+
readonly kind: "archive";
|
|
29
31
|
readonly contentType: string;
|
|
30
32
|
readonly entries: readonly TEntry[];
|
|
31
33
|
readonly pagination: Pagination;
|
|
32
34
|
}
|
|
33
|
-
export interface TaxonomyData<TEntry extends ResolvedEntry = ResolvedEntry> {
|
|
35
|
+
export interface TaxonomyData<TTerm extends ResolvedTerm = ResolvedTerm, TEntry extends ResolvedEntry = ResolvedEntry> {
|
|
36
|
+
readonly kind: "taxonomy";
|
|
34
37
|
readonly taxonomy: string;
|
|
35
|
-
readonly term:
|
|
38
|
+
readonly term: TTerm;
|
|
36
39
|
readonly entries: readonly TEntry[];
|
|
37
40
|
readonly pagination: Pagination;
|
|
38
41
|
}
|
|
39
42
|
export interface FrontPageData<TEntry extends ResolvedEntry = ResolvedEntry> {
|
|
43
|
+
readonly kind: "frontPage";
|
|
40
44
|
readonly entries: readonly TEntry[];
|
|
41
45
|
readonly pagination: Pagination;
|
|
42
46
|
}
|
|
43
47
|
export interface SearchData<TEntry extends ResolvedEntry = ResolvedEntry> {
|
|
48
|
+
readonly kind: "search";
|
|
44
49
|
readonly query: string;
|
|
45
50
|
readonly entries: readonly TEntry[];
|
|
46
51
|
readonly pagination: Pagination;
|
|
@@ -51,8 +56,8 @@ export interface SearchData<TEntry extends ResolvedEntry = ResolvedEntry> {
|
|
|
51
56
|
* no path to the rendered output.
|
|
52
57
|
*/
|
|
53
58
|
export interface ErrorData {
|
|
59
|
+
readonly kind: "error";
|
|
54
60
|
readonly request: Request;
|
|
55
61
|
readonly hint?: string;
|
|
56
62
|
}
|
|
57
|
-
export {};
|
|
58
63
|
//# sourceMappingURL=resolved-entry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolved-entry.d.ts","sourceRoot":"","sources":["../../../src/route/render/resolved-entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAErD,sFAAsF;AACtF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAKD,
|
|
1
|
+
{"version":3,"file":"resolved-entry.d.ts","sourceRoot":"","sources":["../../../src/route/render/resolved-entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAErD,sFAAsF;AACtF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAKD,MAAM,WAAW,YAAa,SAAQ,IAAI;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAQD,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C,QAAQ,CAAC,aAAa,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAMD,MAAM,WAAW,SAAS,CAAC,MAAM,SAAS,aAAa,GAAG,aAAa;IACrE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW,CAAC,MAAM,SAAS,aAAa,GAAG,aAAa;IACvE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,YAAY,CAC3B,KAAK,SAAS,YAAY,GAAG,YAAY,EACzC,MAAM,SAAS,aAAa,GAAG,aAAa;IAE5C,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,aAAa,CAAC,MAAM,SAAS,aAAa,GAAG,aAAa;IACzE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,UAAU,CAAC,MAAM,SAAS,aAAa,GAAG,aAAa;IACtE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { EntryProjection, EntryTypeName, MetaOf, TermProjection, TermTaxonomyName } from "../../template-registry.js";
|
|
2
|
+
import type { TemplateData, TemplateEntry, TemplateRule, ThemeDescriptor } from "../../theme.js";
|
|
3
|
+
import type { ArchiveData, EntryData, ErrorData, FrontPageData, SearchData, TaxonomyData } from "./resolved-entry.js";
|
|
4
|
+
/** Universal catch-all — matches any resolved node. */
|
|
5
|
+
export declare function fallback(template: TemplateEntry<TemplateData>): TemplateRule;
|
|
6
|
+
/** A single entry (any type). */
|
|
7
|
+
export declare function entry(template: TemplateEntry<EntryData>): TemplateRule;
|
|
8
|
+
/** A content-type archive listing. */
|
|
9
|
+
export declare function archive(template: TemplateEntry<ArchiveData>): TemplateRule;
|
|
10
|
+
/** A term archive (any taxonomy). */
|
|
11
|
+
export declare function taxonomy(template: TemplateEntry<TaxonomyData>): TemplateRule;
|
|
12
|
+
/** The static front page. */
|
|
13
|
+
export declare function frontPage(template: TemplateEntry<FrontPageData>): TemplateRule;
|
|
14
|
+
/** Search results. */
|
|
15
|
+
export declare function search(template: TemplateEntry<SearchData>): TemplateRule;
|
|
16
|
+
/** The 404 handler. */
|
|
17
|
+
export declare function notFound(template: TemplateEntry<ErrorData>): TemplateRule;
|
|
18
|
+
/** The 500 handler. */
|
|
19
|
+
export declare function serverError(template: TemplateEntry<ErrorData>): TemplateRule;
|
|
20
|
+
/**
|
|
21
|
+
* Normalize a theme's `templates` to a rule array — the array form as-is, or a
|
|
22
|
+
* bare component wrapped as the fallback tier.
|
|
23
|
+
*/
|
|
24
|
+
export declare function templateRules(templates: ThemeDescriptor["templates"]): readonly TemplateRule[];
|
|
25
|
+
/**
|
|
26
|
+
* Reserved entry-meta key holding an author's `named`-template choice — the
|
|
27
|
+
* editor writes it, the resolver reads it. Part of the `__plumix_*` namespace.
|
|
28
|
+
*/
|
|
29
|
+
export declare const NAMED_TEMPLATE_META_KEY = "__plumix_template";
|
|
30
|
+
interface EntrySelector<K extends EntryTypeName> {
|
|
31
|
+
/** Bind the template for the selected entry. */
|
|
32
|
+
template(t: TemplateEntry<EntryData<EntryProjection<K>>>): TemplateRule;
|
|
33
|
+
}
|
|
34
|
+
interface EntryTypeBuilder<K extends EntryTypeName> extends EntrySelector<K> {
|
|
35
|
+
/** Narrow to one entry by slug. */
|
|
36
|
+
slug(slug: string): EntrySelector<K>;
|
|
37
|
+
/** Narrow to one entry by numeric id. */
|
|
38
|
+
id(id: number): EntrySelector<K>;
|
|
39
|
+
/** Narrow by an entry-meta value, typed against the type's meta projection. */
|
|
40
|
+
whereMeta<M extends keyof MetaOf<K>>(key: M, value: MetaOf<K>[M]): EntrySelector<K>;
|
|
41
|
+
/** Narrow by an arbitrary predicate over the resolved data. */
|
|
42
|
+
where(predicate: (data: EntryData<EntryProjection<K>>) => boolean): EntrySelector<K>;
|
|
43
|
+
/** Register an author-selectable template, matched from stored entry meta. */
|
|
44
|
+
named(id: string, label: string): EntrySelector<K>;
|
|
45
|
+
/** The content-type archive listing. */
|
|
46
|
+
readonly archive: {
|
|
47
|
+
template(t: TemplateEntry<ArchiveData<EntryProjection<K>>>): TemplateRule;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Target a registered entry type. `name` autocompletes and rejects typos
|
|
52
|
+
* (`keyof EntryTypeRegistry`); the template's `data.entry` is typed from the
|
|
53
|
+
* type's projection.
|
|
54
|
+
*/
|
|
55
|
+
export declare function forEntryType<K extends EntryTypeName>(name: K): EntryTypeBuilder<K>;
|
|
56
|
+
interface TaxonomySelector<K extends TermTaxonomyName> {
|
|
57
|
+
/** Bind the template for the selected term(s). */
|
|
58
|
+
template(t: TemplateEntry<TaxonomyData<TermProjection<K>>>): TemplateRule;
|
|
59
|
+
}
|
|
60
|
+
interface TermTaxonomyBuilder<K extends TermTaxonomyName> extends TaxonomySelector<K> {
|
|
61
|
+
/** Narrow to one term by slug. */
|
|
62
|
+
slug(slug: string): TaxonomySelector<K>;
|
|
63
|
+
/** Narrow to one term by numeric id. */
|
|
64
|
+
id(id: number): TaxonomySelector<K>;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Target a registered taxonomy. `name` autocompletes and rejects typos; the
|
|
68
|
+
* template's `data.term` is typed from the taxonomy's term projection.
|
|
69
|
+
*/
|
|
70
|
+
export declare function forTermTaxonomy<K extends TermTaxonomyName>(name: K): TermTaxonomyBuilder<K>;
|
|
71
|
+
export {};
|
|
72
|
+
//# sourceMappingURL=template-builders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-builders.d.ts","sourceRoot":"","sources":["../../../src/route/render/template-builders.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
// The per-tier data type is erased to the union in the stored rule. Each
|
|
2
|
+
// builder types its input to the tier's data shape (so `data.entry`/`data.term`
|
|
3
|
+
// are typed at the call site), then erases on output — the resolver only ever
|
|
4
|
+
// invokes a rule's template with the matching node's data, so the erasure is
|
|
5
|
+
// sound and it keeps the `templates` array a homogeneous element type.
|
|
6
|
+
function rule(tier, template) {
|
|
7
|
+
return { tier, template: template };
|
|
8
|
+
}
|
|
9
|
+
/** Universal catch-all — matches any resolved node. */
|
|
10
|
+
export function fallback(template) {
|
|
11
|
+
return rule("fallback", template);
|
|
12
|
+
}
|
|
13
|
+
/** A single entry (any type). */
|
|
14
|
+
export function entry(template) {
|
|
15
|
+
return rule("entry", template);
|
|
16
|
+
}
|
|
17
|
+
/** A content-type archive listing. */
|
|
18
|
+
export function archive(template) {
|
|
19
|
+
return rule("archive", template);
|
|
20
|
+
}
|
|
21
|
+
/** A term archive (any taxonomy). */
|
|
22
|
+
export function taxonomy(template) {
|
|
23
|
+
return rule("taxonomy", template);
|
|
24
|
+
}
|
|
25
|
+
/** The static front page. */
|
|
26
|
+
export function frontPage(template) {
|
|
27
|
+
return rule("frontPage", template);
|
|
28
|
+
}
|
|
29
|
+
/** Search results. */
|
|
30
|
+
export function search(template) {
|
|
31
|
+
return rule("search", template);
|
|
32
|
+
}
|
|
33
|
+
/** The 404 handler. */
|
|
34
|
+
export function notFound(template) {
|
|
35
|
+
return rule("notFound", template);
|
|
36
|
+
}
|
|
37
|
+
/** The 500 handler. */
|
|
38
|
+
export function serverError(template) {
|
|
39
|
+
return rule("serverError", template);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Normalize a theme's `templates` to a rule array — the array form as-is, or a
|
|
43
|
+
* bare component wrapped as the fallback tier.
|
|
44
|
+
*/
|
|
45
|
+
export function templateRules(templates) {
|
|
46
|
+
// `Array.isArray` widens a `readonly T[]` to `any[]`, so re-assert the element
|
|
47
|
+
// type on the array branch rather than leaning on the narrowing.
|
|
48
|
+
return Array.isArray(templates)
|
|
49
|
+
? templates
|
|
50
|
+
: [fallback(templates)];
|
|
51
|
+
}
|
|
52
|
+
// ── Targeted builders ───────────────────────────────────────────────────────
|
|
53
|
+
// `forEntryType`/`forTermTaxonomy` produce match rules keyed off the registered
|
|
54
|
+
// names. Each selector types the template to the tier's data shape (with the
|
|
55
|
+
// registry projection) and erases to the union like the generic builders above.
|
|
56
|
+
function matchRule(match, template) {
|
|
57
|
+
return {
|
|
58
|
+
match,
|
|
59
|
+
template: template,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Reserved entry-meta key holding an author's `named`-template choice — the
|
|
64
|
+
* editor writes it, the resolver reads it. Part of the `__plumix_*` namespace.
|
|
65
|
+
*/
|
|
66
|
+
export const NAMED_TEMPLATE_META_KEY = "__plumix_template";
|
|
67
|
+
/** A predicate matching when a content entry's meta value equals `value`. */
|
|
68
|
+
function metaEquals(key, value) {
|
|
69
|
+
return (data) => "entry" in data && data.entry.meta[key] === value;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Target a registered entry type. `name` autocompletes and rejects typos
|
|
73
|
+
* (`keyof EntryTypeRegistry`); the template's `data.entry` is typed from the
|
|
74
|
+
* type's projection.
|
|
75
|
+
*/
|
|
76
|
+
export function forEntryType(name) {
|
|
77
|
+
// Each selector adds its narrowing to the shared content-node prefix.
|
|
78
|
+
const content = (extra) => ({
|
|
79
|
+
template: (t) => matchRule({ nodeKind: "content", type: name, ...extra }, t),
|
|
80
|
+
});
|
|
81
|
+
return {
|
|
82
|
+
template: (t) => matchRule({ nodeKind: "content", type: name }, t),
|
|
83
|
+
slug: (slug) => content({ slug }),
|
|
84
|
+
id: (id) => content({ id }),
|
|
85
|
+
whereMeta: (key, value) => content({ predicate: metaEquals(String(key), value) }),
|
|
86
|
+
where: (predicate) => content({
|
|
87
|
+
predicate: predicate,
|
|
88
|
+
}),
|
|
89
|
+
named: (id, label) => content({
|
|
90
|
+
named: { id, label },
|
|
91
|
+
predicate: metaEquals(NAMED_TEMPLATE_META_KEY, id),
|
|
92
|
+
}),
|
|
93
|
+
archive: {
|
|
94
|
+
template: (t) => matchRule({ nodeKind: "content-type-archive", type: name }, t),
|
|
95
|
+
},
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Target a registered taxonomy. `name` autocompletes and rejects typos; the
|
|
100
|
+
* template's `data.term` is typed from the taxonomy's term projection.
|
|
101
|
+
*/
|
|
102
|
+
export function forTermTaxonomy(name) {
|
|
103
|
+
return {
|
|
104
|
+
template: (t) => matchRule({ nodeKind: "term", type: name }, t),
|
|
105
|
+
slug: (slug) => ({
|
|
106
|
+
template: (t) => matchRule({ nodeKind: "term", type: name, slug }, t),
|
|
107
|
+
}),
|
|
108
|
+
id: (id) => ({
|
|
109
|
+
template: (t) => matchRule({ nodeKind: "term", type: name, id }, t),
|
|
110
|
+
}),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=template-builders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-builders.js","sourceRoot":"","sources":["../../../src/route/render/template-builders.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Template resolution for the array-based `templates`. `resolveTemplate` walks a
|
|
3
|
+
* theme's rules — targeted matchers (`forEntryType`/`forTermTaxonomy`) in
|
|
4
|
+
* declaration order, then the generic tier for the node's kind, then the
|
|
5
|
+
* universal `fallback`. `resolveErrorTemplate` looks up the 404/500 tiers.
|
|
3
6
|
*
|
|
4
|
-
* `
|
|
5
|
-
*
|
|
6
|
-
* request. The render pipeline walks this list greedy-first-match
|
|
7
|
-
* against the registered template map.
|
|
8
|
-
*
|
|
9
|
-
* Mirrors WordPress's hierarchy verbatim — including the `category-…` /
|
|
10
|
-
* `tag-…` aliases for the built-in taxonomies (a hard-coded WP rule that
|
|
11
|
-
* predates the generic `taxonomy-{tax}-…` chain) and the fall-through to
|
|
12
|
-
* `archive` / `index`. Faust.js exposes the same shape from
|
|
13
|
-
* `getTemplate.ts`; the two implementations should produce identical
|
|
14
|
-
* candidate lists for the same input.
|
|
15
|
-
*
|
|
16
|
-
* `resolveTemplateCandidates(node, hooks)` is the async orchestrator the
|
|
17
|
-
* renderer calls: it runs the pure walker, then applies the
|
|
18
|
-
* `template:hierarchy` filter chain so plugins can mutate the list.
|
|
7
|
+
* The `ResolvedNode` shapes carry the identity the resolver matches on (kind +
|
|
8
|
+
* type + slug/id).
|
|
19
9
|
*/
|
|
20
|
-
import type {
|
|
21
|
-
|
|
22
|
-
interface FilterRegistry {
|
|
23
|
-
"template:hierarchy": (candidates: readonly string[], ctx: {
|
|
24
|
-
readonly node: ResolvedNode;
|
|
25
|
-
}) => readonly string[] | Promise<readonly string[]>;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
export type ResolvedNode = ResolvedTermNode | ResolvedContentNode | ResolvedContentTypeArchive | ResolvedFrontPage | ResolvedPostsPage | ResolvedSearch;
|
|
10
|
+
import type { TemplateData, TemplateRule } from "../../theme.js";
|
|
11
|
+
export type ResolvedNode = ResolvedTermNode | ResolvedContentNode | ResolvedContentTypeArchive | ResolvedFrontPage | ResolvedSearch;
|
|
29
12
|
interface ResolvedTermNode {
|
|
30
13
|
readonly kind: "term";
|
|
31
14
|
readonly taxonomy: string;
|
|
@@ -45,24 +28,56 @@ interface ResolvedContentTypeArchive {
|
|
|
45
28
|
interface ResolvedFrontPage {
|
|
46
29
|
readonly kind: "front-page";
|
|
47
30
|
}
|
|
31
|
+
interface ResolvedSearch {
|
|
32
|
+
readonly kind: "search";
|
|
33
|
+
}
|
|
48
34
|
/**
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
* `
|
|
35
|
+
* Resolve a node to its template rule from a theme's `templates` array:
|
|
36
|
+
* (1) targeted rules (`forEntryType`/`forTermTaxonomy`, incl. `whereMeta`/`where`/
|
|
37
|
+
* `named` predicates) in declaration order, first match wins; (2) the generic
|
|
38
|
+
* tier for the node's kind; (3) the universal `fallback`. Returns `undefined`
|
|
39
|
+
* when nothing matches — the caller then renders the `notFound` (404) template.
|
|
40
|
+
* `data` is required for predicate rules to match.
|
|
52
41
|
*/
|
|
53
|
-
|
|
54
|
-
|
|
42
|
+
export declare function resolveTemplate(rules: readonly TemplateRule[], node: ResolvedNode, data?: TemplateData): TemplateRule | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Look up an error-tier template (`notFound` → 404, `serverError` → 500).
|
|
45
|
+
* Separate from `resolveTemplate` because error pages are triggered by a
|
|
46
|
+
* condition (no match, or a render throw), not by a resolved node.
|
|
47
|
+
*/
|
|
48
|
+
export declare function resolveErrorTemplate(rules: readonly TemplateRule[], tier: "notFound" | "serverError"): TemplateRule | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* A short human label for a rule — its tier, or (for a targeted rule) the type
|
|
51
|
+
* plus any `:slug` / `#id` narrowing. Used by the debug bar and as the
|
|
52
|
+
* normalize-error slot name.
|
|
53
|
+
*/
|
|
54
|
+
export declare function ruleLabel(rule: TemplateRule): string;
|
|
55
|
+
/** What happened to a rule during resolution. */
|
|
56
|
+
type ResolutionStatus = "matched" | "skipped" | "never-evaluated";
|
|
57
|
+
export interface ResolutionStep {
|
|
58
|
+
readonly label: string;
|
|
59
|
+
readonly status: ResolutionStatus;
|
|
60
|
+
/**
|
|
61
|
+
* Present for a targeted rule carrying a `whereMeta`/`where`/`named`
|
|
62
|
+
* predicate. `fired` is whether the predicate function actually ran (its
|
|
63
|
+
* rule's identity matched and `data` was present); `result` is its return.
|
|
64
|
+
*/
|
|
65
|
+
readonly predicate?: {
|
|
66
|
+
readonly fired: boolean;
|
|
67
|
+
readonly result: boolean;
|
|
68
|
+
};
|
|
55
69
|
}
|
|
56
|
-
interface
|
|
57
|
-
readonly
|
|
70
|
+
export interface ResolutionTrace {
|
|
71
|
+
readonly steps: readonly ResolutionStep[];
|
|
72
|
+
/** The winning rule's label, or `null` when nothing matched (a 404). */
|
|
73
|
+
readonly winner: string | null;
|
|
58
74
|
}
|
|
59
|
-
export declare function getPossibleTemplates(node: ResolvedNode): readonly string[];
|
|
60
75
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
76
|
+
* Replay `resolveTemplate` and classify every rule for the debug bar: which one
|
|
77
|
+
* won, which targeted rules were evaluated-but-skipped (with their predicate
|
|
78
|
+
* result), and which were never reached because an earlier zone already won.
|
|
79
|
+
* Dev-only — `resolveTemplate` stays allocation-free on the render hot path.
|
|
65
80
|
*/
|
|
66
|
-
export declare function
|
|
81
|
+
export declare function explainTemplateResolution(rules: readonly TemplateRule[], node: ResolvedNode, data?: TemplateData): ResolutionTrace;
|
|
67
82
|
export {};
|
|
68
83
|
//# sourceMappingURL=template-hierarchy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-hierarchy.d.ts","sourceRoot":"","sources":["../../../src/route/render/template-hierarchy.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"template-hierarchy.d.ts","sourceRoot":"","sources":["../../../src/route/render/template-hierarchy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAGV,YAAY,EACZ,YAAY,EACb,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,YAAY,GACpB,gBAAgB,GAChB,mBAAmB,GACnB,0BAA0B,GAC1B,iBAAiB,GACjB,cAAc,CAAC;AAEnB,UAAU,gBAAgB;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,UAAU,0BAA0B;IAClC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,UAAU,iBAAiB;IACzB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC7B;AAED,UAAU,cAAc;IACtB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;CACzB;AAsDD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,IAAI,EAAE,YAAY,EAClB,IAAI,CAAC,EAAE,YAAY,GAClB,YAAY,GAAG,SAAS,CAW1B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,IAAI,EAAE,UAAU,GAAG,aAAa,GAC/B,YAAY,GAAG,SAAS,CAE1B;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CASpD;AAED,iDAAiD;AACjD,KAAK,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,iBAAiB,CAAC;AAElE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;CAC5E;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAC1C,wEAAwE;IACxE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,IAAI,EAAE,YAAY,EAClB,IAAI,CAAC,EAAE,YAAY,GAClB,eAAe,CAoCjB"}
|