@nextwebwg/html-next 1.0.0-alpha.1
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/LICENSE +21 -0
- package/README.md +26 -0
- package/dist/ast.d.ts +7 -0
- package/dist/ast.d.ts.map +1 -0
- package/dist/ast.js +2 -0
- package/dist/ast.js.map +1 -0
- package/dist/browser-loader.bundle.js +9 -0
- package/dist/browser-loader.d.ts +35 -0
- package/dist/browser-loader.d.ts.map +1 -0
- package/dist/browser-loader.js +83 -0
- package/dist/browser-loader.js.map +1 -0
- package/dist/browser-source.d.ts +10 -0
- package/dist/browser-source.d.ts.map +1 -0
- package/dist/browser-source.js +97 -0
- package/dist/browser-source.js.map +1 -0
- package/dist/browser.d.ts +5 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +9 -0
- package/dist/browser.js.map +1 -0
- package/dist/cli.d.ts +31 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +138 -0
- package/dist/cli.js.map +1 -0
- package/dist/component-styles-build.d.ts +11 -0
- package/dist/component-styles-build.d.ts.map +1 -0
- package/dist/component-styles-build.js +74 -0
- package/dist/component-styles-build.js.map +1 -0
- package/dist/component-styles.d.ts +37 -0
- package/dist/component-styles.d.ts.map +1 -0
- package/dist/component-styles.js +236 -0
- package/dist/component-styles.js.map +1 -0
- package/dist/contract-platform.d.ts +5 -0
- package/dist/contract-platform.d.ts.map +1 -0
- package/dist/contract-platform.js +8 -0
- package/dist/contract-platform.js.map +1 -0
- package/dist/contract.d.ts +14 -0
- package/dist/contract.d.ts.map +1 -0
- package/dist/contract.js +234 -0
- package/dist/contract.js.map +1 -0
- package/dist/controller-files.d.ts +10 -0
- package/dist/controller-files.d.ts.map +1 -0
- package/dist/controller-files.js +54 -0
- package/dist/controller-files.js.map +1 -0
- package/dist/controller.d.ts +15 -0
- package/dist/controller.d.ts.map +1 -0
- package/dist/controller.js +33 -0
- package/dist/controller.js.map +1 -0
- package/dist/data.d.ts +28 -0
- package/dist/data.d.ts.map +1 -0
- package/dist/data.js +100 -0
- package/dist/data.js.map +1 -0
- package/dist/diagnostics.d.ts +11 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +13 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/expression.d.ts +80 -0
- package/dist/expression.d.ts.map +1 -0
- package/dist/expression.js +474 -0
- package/dist/expression.js.map +1 -0
- package/dist/freeze.d.ts +2 -0
- package/dist/freeze.d.ts.map +1 -0
- package/dist/freeze.js +8 -0
- package/dist/freeze.js.map +1 -0
- package/dist/generate.d.ts +11 -0
- package/dist/generate.d.ts.map +1 -0
- package/dist/generate.js +41 -0
- package/dist/generate.js.map +1 -0
- package/dist/generated/dom-properties.d.ts +8 -0
- package/dist/generated/dom-properties.d.ts.map +1 -0
- package/dist/generated/dom-properties.js +1410 -0
- package/dist/generated/dom-properties.js.map +1 -0
- package/dist/generated-runtime.d.ts +42 -0
- package/dist/generated-runtime.d.ts.map +1 -0
- package/dist/generated-runtime.js +266 -0
- package/dist/generated-runtime.js.map +1 -0
- package/dist/graph.d.ts +37 -0
- package/dist/graph.d.ts.map +1 -0
- package/dist/graph.js +81 -0
- package/dist/graph.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/language.d.ts +7 -0
- package/dist/language.d.ts.map +1 -0
- package/dist/language.js +43 -0
- package/dist/language.js.map +1 -0
- package/dist/names.d.ts +4 -0
- package/dist/names.d.ts.map +1 -0
- package/dist/names.js +19 -0
- package/dist/names.js.map +1 -0
- package/dist/node-loader.d.ts +22 -0
- package/dist/node-loader.d.ts.map +1 -0
- package/dist/node-loader.js +109 -0
- package/dist/node-loader.js.map +1 -0
- package/dist/package-config.d.ts +22 -0
- package/dist/package-config.d.ts.map +1 -0
- package/dist/package-config.js +2 -0
- package/dist/package-config.js.map +1 -0
- package/dist/package.d.ts +9 -0
- package/dist/package.d.ts.map +1 -0
- package/dist/package.js +208 -0
- package/dist/package.js.map +1 -0
- package/dist/parser.d.ts +11 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +938 -0
- package/dist/parser.js.map +1 -0
- package/dist/platform.d.ts +3 -0
- package/dist/platform.d.ts.map +1 -0
- package/dist/platform.js +26 -0
- package/dist/platform.js.map +1 -0
- package/dist/reactivity.d.ts +88 -0
- package/dist/reactivity.d.ts.map +1 -0
- package/dist/reactivity.js +594 -0
- package/dist/reactivity.js.map +1 -0
- package/dist/registry.d.ts +14 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +39 -0
- package/dist/registry.js.map +1 -0
- package/dist/resolve.d.ts +24 -0
- package/dist/resolve.d.ts.map +1 -0
- package/dist/resolve.js +65 -0
- package/dist/resolve.js.map +1 -0
- package/dist/runtime.d.ts +110 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +1926 -0
- package/dist/runtime.js.map +1 -0
- package/dist/sanitize.d.ts +8 -0
- package/dist/sanitize.d.ts.map +1 -0
- package/dist/sanitize.js +38 -0
- package/dist/sanitize.js.map +1 -0
- package/dist/source-graph.d.ts +5 -0
- package/dist/source-graph.d.ts.map +1 -0
- package/dist/source-graph.js +60 -0
- package/dist/source-graph.js.map +1 -0
- package/dist/source-parser.d.ts +4 -0
- package/dist/source-parser.d.ts.map +1 -0
- package/dist/source-parser.js +38 -0
- package/dist/source-parser.js.map +1 -0
- package/dist/source.d.ts +4 -0
- package/dist/source.d.ts.map +1 -0
- package/dist/source.js +6 -0
- package/dist/source.js.map +1 -0
- package/dist/targets/backend.d.ts +28 -0
- package/dist/targets/backend.d.ts.map +1 -0
- package/dist/targets/backend.js +42 -0
- package/dist/targets/backend.js.map +1 -0
- package/dist/targets/docs.d.ts +3 -0
- package/dist/targets/docs.d.ts.map +1 -0
- package/dist/targets/docs.js +85 -0
- package/dist/targets/docs.js.map +1 -0
- package/dist/targets/native-reactive.d.ts +41 -0
- package/dist/targets/native-reactive.d.ts.map +1 -0
- package/dist/targets/native-reactive.js +169 -0
- package/dist/targets/native-reactive.js.map +1 -0
- package/dist/targets/shared.d.ts +15 -0
- package/dist/targets/shared.d.ts.map +1 -0
- package/dist/targets/shared.js +122 -0
- package/dist/targets/shared.js.map +1 -0
- package/dist/targets/vanilla.d.ts +6 -0
- package/dist/targets/vanilla.d.ts.map +1 -0
- package/dist/targets/vanilla.js +442 -0
- package/dist/targets/vanilla.js.map +1 -0
- package/dist/targets/vue.d.ts +3 -0
- package/dist/targets/vue.d.ts.map +1 -0
- package/dist/targets/vue.js +577 -0
- package/dist/targets/vue.js.map +1 -0
- package/dist/template.d.ts +172 -0
- package/dist/template.d.ts.map +1 -0
- package/dist/template.js +2 -0
- package/dist/template.js.map +1 -0
- package/dist/type-system.d.ts +80 -0
- package/dist/type-system.d.ts.map +1 -0
- package/dist/type-system.js +414 -0
- package/dist/type-system.js.map +1 -0
- package/dist/types.d.ts +51 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/validate.d.ts +38 -0
- package/dist/validate.d.ts.map +1 -0
- package/dist/validate.js +297 -0
- package/dist/validate.js.map +1 -0
- package/dist/validation.d.ts +6 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +6 -0
- package/dist/validation.js.map +1 -0
- package/dist/validity-css.d.ts +6 -0
- package/dist/validity-css.d.ts.map +1 -0
- package/dist/validity-css.js +11 -0
- package/dist/validity-css.js.map +1 -0
- package/dist/validity.d.ts +45 -0
- package/dist/validity.d.ts.map +1 -0
- package/dist/validity.js +445 -0
- package/dist/validity.js.map +1 -0
- package/package.json +124 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAQxC,mFAAmF;AACnF,MAAM,OAAO,iBAAiB;IACnB,QAAQ,GAAG,IAAI,GAAG,EAAkC,CAAC;IACrD,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;IAEzD,MAAM,CAAC,GAAW,EAAE,KAA6B;QAC/C,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,OAAO,EAAE,sCAAsC,GAAG,IAAI,CAAC,CAAC;QACzF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE;YAAE,OAAO,EAAE,CAAC;QAC9D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QACrD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,CACN,KAAqB,EACrB,gBAAiE;QAEjE,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,IAAI,IAAI,CAAC,uBAAuB;gBAAE,SAAS;YAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE;gBACxC,IAAI;gBACJ,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,gBAAgB,KAAK,SAAS;oBACjE,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;aACtD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface ImportMapLike {
|
|
2
|
+
readonly imports?: Readonly<Record<string, string>>;
|
|
3
|
+
}
|
|
4
|
+
export interface ResolvedResource {
|
|
5
|
+
readonly url: string;
|
|
6
|
+
/** URL prefix which relative component and controller entries may not escape. */
|
|
7
|
+
readonly trustRoot: string;
|
|
8
|
+
readonly mapping?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ComponentResourceResolver {
|
|
11
|
+
resolveRoot(specifier: string): ResolvedResource;
|
|
12
|
+
resolveDependency(specifier: string, parentURL: string, parentTrustRoot: string): ResolvedResource;
|
|
13
|
+
assertFinalURL(resource: ResolvedResource, finalURL: string, source?: string): string;
|
|
14
|
+
}
|
|
15
|
+
/** Resolves HTML Next resource specifiers using an application-owned import map snapshot. */
|
|
16
|
+
export declare class ResourceResolver implements ComponentResourceResolver {
|
|
17
|
+
#private;
|
|
18
|
+
constructor(map?: ImportMapLike, baseURL?: string);
|
|
19
|
+
resolveRoot(specifier: string): ResolvedResource;
|
|
20
|
+
resolveDependency(specifier: string, parentURL: string, parentTrustRoot: string): ResolvedResource;
|
|
21
|
+
assertFinalURL(resource: ResolvedResource, finalURL: string): string;
|
|
22
|
+
}
|
|
23
|
+
export declare function isWithinTrustRoot(url: string, root: string): boolean;
|
|
24
|
+
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACjD,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACnG,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACvF;AAgBD,6FAA6F;AAC7F,qBAAa,gBAAiB,YAAW,yBAAyB;;IAIhE,YAAY,GAAG,GAAE,aAAkB,EAAE,OAAO,SAAa,EAQxD;IAED,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAM/C;IAED,iBAAiB,CACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,GACtB,gBAAgB,CAIlB;IAED,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnE;CAwBF;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpE"}
|
package/dist/resolve.js
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { fail } from "./diagnostics.js";
|
|
2
|
+
const URL_LIKE = /^(?:[A-Za-z][A-Za-z\d+.-]*:|\/|\.\.?\/)/;
|
|
3
|
+
function directory(url) {
|
|
4
|
+
return new URL("./", url).href;
|
|
5
|
+
}
|
|
6
|
+
function mappedTrustRoot(key, target) {
|
|
7
|
+
return key.endsWith("/") ? target : directory(target);
|
|
8
|
+
}
|
|
9
|
+
function within(url, root) {
|
|
10
|
+
return url === root || url.startsWith(root.endsWith("/") ? root : `${root}/`);
|
|
11
|
+
}
|
|
12
|
+
/** Resolves HTML Next resource specifiers using an application-owned import map snapshot. */
|
|
13
|
+
export class ResourceResolver {
|
|
14
|
+
#baseURL;
|
|
15
|
+
#imports;
|
|
16
|
+
constructor(map = {}, baseURL = "file:///") {
|
|
17
|
+
this.#baseURL = new URL(baseURL).href;
|
|
18
|
+
this.#imports = new Map(Object.entries(map.imports ?? {}).map(([key, target]) => [
|
|
19
|
+
key,
|
|
20
|
+
new URL(target, this.#baseURL).href,
|
|
21
|
+
]));
|
|
22
|
+
}
|
|
23
|
+
resolveRoot(specifier) {
|
|
24
|
+
if (URL_LIKE.test(specifier)) {
|
|
25
|
+
const url = new URL(specifier, this.#baseURL).href;
|
|
26
|
+
return Object.freeze({ url, trustRoot: directory(url) });
|
|
27
|
+
}
|
|
28
|
+
return this.#resolveMapped(specifier);
|
|
29
|
+
}
|
|
30
|
+
resolveDependency(specifier, parentURL, parentTrustRoot) {
|
|
31
|
+
if (!URL_LIKE.test(specifier))
|
|
32
|
+
return this.#resolveMapped(specifier);
|
|
33
|
+
const url = new URL(specifier, parentURL).href;
|
|
34
|
+
return Object.freeze({ url, trustRoot: parentTrustRoot });
|
|
35
|
+
}
|
|
36
|
+
assertFinalURL(resource, finalURL) {
|
|
37
|
+
return new URL(finalURL, resource.url).href;
|
|
38
|
+
}
|
|
39
|
+
#resolveMapped(specifier) {
|
|
40
|
+
const exact = this.#imports.get(specifier);
|
|
41
|
+
if (exact !== undefined) {
|
|
42
|
+
return Object.freeze({
|
|
43
|
+
url: exact,
|
|
44
|
+
trustRoot: mappedTrustRoot(specifier, exact),
|
|
45
|
+
mapping: specifier,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
const prefix = Array.from(this.#imports.keys())
|
|
49
|
+
.filter((key) => key.endsWith("/") && specifier.startsWith(key))
|
|
50
|
+
.sort((left, right) => right.length - left.length)[0];
|
|
51
|
+
if (prefix === undefined) {
|
|
52
|
+
fail("HL002", `Bare resource specifier \`${specifier}\` is not mapped by the application.`);
|
|
53
|
+
}
|
|
54
|
+
const target = this.#imports.get(prefix);
|
|
55
|
+
return Object.freeze({
|
|
56
|
+
url: new URL(specifier.slice(prefix.length), target).href,
|
|
57
|
+
trustRoot: target,
|
|
58
|
+
mapping: prefix,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export function isWithinTrustRoot(url, root) {
|
|
63
|
+
return within(new URL(url).href, new URL(root).href);
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import type { ControllerModule } from "./controller.js";
|
|
2
|
+
import type { ComponentGraph } from "./graph.js";
|
|
3
|
+
import type { ComponentDefinition } from "./template.js";
|
|
4
|
+
/** Installs an already validated external/package graph without reparsing or executing it. */
|
|
5
|
+
export declare function installComponentGraph(graph: ComponentGraph, root?: Document): number;
|
|
6
|
+
/**
|
|
7
|
+
* Serializes the rendered form. Like getHTML({ serializableShadowRoots }), it writes what
|
|
8
|
+
* the live DOM does not hold: each component root's projected nodes that no slot currently renders,
|
|
9
|
+
* in an inert trailing <template>.
|
|
10
|
+
*/
|
|
11
|
+
export declare function serializeRenderedForm(container: Element): string;
|
|
12
|
+
/**
|
|
13
|
+
* Diagnostic: an instance's internal shape (definition, explicit props, prop values, projected nodes per
|
|
14
|
+
* slot). Two instances with equal shapes behave identically; conformance tests compare them.
|
|
15
|
+
*/
|
|
16
|
+
export declare function inspectInstance(element: Element): unknown;
|
|
17
|
+
/**
|
|
18
|
+
* Performs one explicit lowering pass, retaining definitions in a document registry for
|
|
19
|
+
* later passes. It does not observe mutations or register Custom Elements.
|
|
20
|
+
*/
|
|
21
|
+
export declare function lowerDocument(root?: Document): number;
|
|
22
|
+
export interface ComponentAttachmentOptions {
|
|
23
|
+
readonly props?: Readonly<Record<string, unknown>>;
|
|
24
|
+
readonly controller?: ControllerModule;
|
|
25
|
+
/**
|
|
26
|
+
* The nodes the caller placed in slots, with each one's slot name. Only the root carries a
|
|
27
|
+
* component marker, so a generated factory that renders slot content itself reports it here.
|
|
28
|
+
*/
|
|
29
|
+
readonly projected?: readonly (readonly [node: Node, slot: string])[];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Gives generated Vanilla roots native-like connection lifecycle without installing one
|
|
33
|
+
* observer per instance. Runtime copies in the same realm share one coordinator per document.
|
|
34
|
+
*/
|
|
35
|
+
export declare function manageComponentLifecycle(element: Element, definition: ComponentDefinition, options?: ComponentAttachmentOptions): () => void;
|
|
36
|
+
/** Registers already parsed package definitions without manufacturing live `<template>` nodes. */
|
|
37
|
+
export declare function registerComponentDefinitions(definitions: readonly ComponentDefinition[], root?: Document): void;
|
|
38
|
+
/**
|
|
39
|
+
* Framework-host adapter. The framework emits the declared native root and owns its outer
|
|
40
|
+
* lifetime; this function adopts that root into the same runtime used by live HTML.
|
|
41
|
+
*/
|
|
42
|
+
export declare function attachComponent(element: Element, definition: ComponentDefinition, options?: ComponentAttachmentOptions): () => void;
|
|
43
|
+
/**
|
|
44
|
+
* The framework-adapter prop channel. A framework's props are the equivalent of authored
|
|
45
|
+
* attributes: each defined value becomes explicit (and is reflected as `data-<name>`), and
|
|
46
|
+
* `undefined` returns the prop to its implicit default. This is not a page-authoring API.
|
|
47
|
+
*/
|
|
48
|
+
export declare function updateComponentProps(element: Element, props: Readonly<Record<string, unknown>>): void;
|
|
49
|
+
/**
|
|
50
|
+
* Capabilities owned by one component instance. Properties and methods are receiver-independent,
|
|
51
|
+
* so controllers may destructure only the capabilities they use in their parameter list.
|
|
52
|
+
*/
|
|
53
|
+
export interface ComponentHost {
|
|
54
|
+
readonly element: Element;
|
|
55
|
+
readonly state: Record<string, unknown>;
|
|
56
|
+
readonly refs: Readonly<Record<string, Element>>;
|
|
57
|
+
readonly elements: Record<string, Element | RadioNodeList | undefined>;
|
|
58
|
+
/**
|
|
59
|
+
* Creates controller-local writable state. Equal writes use `Object.is` and do not notify
|
|
60
|
+
* consumers. The value is private to controller code unless an effect copies it into a declared
|
|
61
|
+
* state root.
|
|
62
|
+
*/
|
|
63
|
+
signal<T>(initialValue: T): ControllerSignal<T>;
|
|
64
|
+
/**
|
|
65
|
+
* Creates a lazy, cached derived value. The callback must return its value synchronously and
|
|
66
|
+
* dynamically tracks the signals, computed values, and host state paths it reads. Returning a
|
|
67
|
+
* Promise is unsupported: the Promise itself would be cached and reads after `await` cannot be
|
|
68
|
+
* dependencies. Put asynchronous work in an effect instead.
|
|
69
|
+
*/
|
|
70
|
+
computed<T>(compute: () => T): ControllerComputed<T>;
|
|
71
|
+
/**
|
|
72
|
+
* Runs a lifecycle-owned reaction and reruns it after a tracked read changes. A returned cleanup
|
|
73
|
+
* runs before the next execution and when the component disconnects.
|
|
74
|
+
*/
|
|
75
|
+
effect(run: () => void | (() => void)): () => void;
|
|
76
|
+
on(event: string, listener: EventListener): () => void;
|
|
77
|
+
dispatch(event: string, detail?: unknown): boolean;
|
|
78
|
+
}
|
|
79
|
+
export interface ControllerComputed<T> {
|
|
80
|
+
/** Evaluates on first demand, then returns the cached value until a dependency changes. */
|
|
81
|
+
get(): T;
|
|
82
|
+
}
|
|
83
|
+
export interface ControllerSignal<T> extends ControllerComputed<T> {
|
|
84
|
+
/** Replaces the value, notifying consumers only when it is not `Object.is`-equal. */
|
|
85
|
+
set(value: T): void;
|
|
86
|
+
/** Computes and writes the next value from the current value. */
|
|
87
|
+
update(update: (value: T) => T): void;
|
|
88
|
+
}
|
|
89
|
+
/** Returns the private lifecycle host for a lowered root; page code normally never needs it. */
|
|
90
|
+
export declare function getComponentHost(element: Element): ComponentHost | undefined;
|
|
91
|
+
/** Supplies the already application-approved controller module to a lowered instance. */
|
|
92
|
+
export declare function setControllerModule(element: Element, module: Promise<ControllerModule>): void;
|
|
93
|
+
export interface DocumentObservationOptions {
|
|
94
|
+
/**
|
|
95
|
+
* Return false to leave a discovered invocation or hydration root unlowered. Framework ownership
|
|
96
|
+
* needs no filter: a framework attachment claims its root in either order.
|
|
97
|
+
*/
|
|
98
|
+
readonly shouldLower?: (element: Element, definition: ComponentDefinition, hydration: boolean) => boolean;
|
|
99
|
+
/** Runtime lifecycle integration; the returned disposer runs on removal or stop. */
|
|
100
|
+
readonly onConnect?: (element: Element, definition: ComponentDefinition) => void | (() => void);
|
|
101
|
+
readonly onError?: (error: unknown) => void;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Discover inline definitions and instances added after boot. This browser-only entrypoint
|
|
105
|
+
* owns observation; explicit lowering and compiled/AOT targets do not install observers.
|
|
106
|
+
* Controller loading and its host are provided by runtime lifecycle integration, not by
|
|
107
|
+
* evaluating authored markup. Stop disconnects observation and disposes connected roots.
|
|
108
|
+
*/
|
|
109
|
+
export declare function observeDocument(root?: Document, options?: DocumentObservationOptions): () => void;
|
|
110
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|