@velarscript/web 0.10.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.
Files changed (95) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +89 -0
  3. package/dist/analyzer.d.ts +302 -0
  4. package/dist/analyzer.d.ts.map +1 -0
  5. package/dist/analyzer.js +2931 -0
  6. package/dist/analyzer.js.map +1 -0
  7. package/dist/ast.d.ts +220 -0
  8. package/dist/ast.d.ts.map +1 -0
  9. package/dist/ast.js +102 -0
  10. package/dist/ast.js.map +1 -0
  11. package/dist/browser-test.d.ts +29 -0
  12. package/dist/browser-test.d.ts.map +1 -0
  13. package/dist/browser-test.js +33 -0
  14. package/dist/browser-test.js.map +1 -0
  15. package/dist/compiler.d.ts +9 -0
  16. package/dist/compiler.d.ts.map +1 -0
  17. package/dist/compiler.js +715 -0
  18. package/dist/compiler.js.map +1 -0
  19. package/dist/css-tokens.d.ts +46 -0
  20. package/dist/css-tokens.d.ts.map +1 -0
  21. package/dist/css-tokens.js +363 -0
  22. package/dist/css-tokens.js.map +1 -0
  23. package/dist/editor.d.ts +3 -0
  24. package/dist/editor.d.ts.map +1 -0
  25. package/dist/editor.js +147 -0
  26. package/dist/editor.js.map +1 -0
  27. package/dist/elements.d.ts +11 -0
  28. package/dist/elements.d.ts.map +1 -0
  29. package/dist/elements.js +24 -0
  30. package/dist/elements.js.map +1 -0
  31. package/dist/emitter.d.ts +79 -0
  32. package/dist/emitter.d.ts.map +1 -0
  33. package/dist/emitter.js +2699 -0
  34. package/dist/emitter.js.map +1 -0
  35. package/dist/host.d.ts +7 -0
  36. package/dist/host.d.ts.map +1 -0
  37. package/dist/host.js +224 -0
  38. package/dist/host.js.map +1 -0
  39. package/dist/index.d.ts +11 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +23 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/inspection.d.ts +3 -0
  44. package/dist/inspection.d.ts.map +1 -0
  45. package/dist/inspection.js +82 -0
  46. package/dist/inspection.js.map +1 -0
  47. package/dist/keyframes.d.ts +16 -0
  48. package/dist/keyframes.d.ts.map +1 -0
  49. package/dist/keyframes.js +29 -0
  50. package/dist/keyframes.js.map +1 -0
  51. package/dist/lexer.d.ts +85 -0
  52. package/dist/lexer.d.ts.map +1 -0
  53. package/dist/lexer.js +422 -0
  54. package/dist/lexer.js.map +1 -0
  55. package/dist/look-static.d.ts +31 -0
  56. package/dist/look-static.d.ts.map +1 -0
  57. package/dist/look-static.js +266 -0
  58. package/dist/look-static.js.map +1 -0
  59. package/dist/look.d.ts +134 -0
  60. package/dist/look.d.ts.map +1 -0
  61. package/dist/look.js +627 -0
  62. package/dist/look.js.map +1 -0
  63. package/dist/parser.d.ts +71 -0
  64. package/dist/parser.d.ts.map +1 -0
  65. package/dist/parser.js +976 -0
  66. package/dist/parser.js.map +1 -0
  67. package/dist/project-config.d.ts +33 -0
  68. package/dist/project-config.d.ts.map +1 -0
  69. package/dist/project-config.js +199 -0
  70. package/dist/project-config.js.map +1 -0
  71. package/dist/runtime-foundation.d.ts +7 -0
  72. package/dist/runtime-foundation.d.ts.map +1 -0
  73. package/dist/runtime-foundation.js +1245 -0
  74. package/dist/runtime-foundation.js.map +1 -0
  75. package/dist/runtime.d.ts +7 -0
  76. package/dist/runtime.d.ts.map +1 -0
  77. package/dist/runtime.js +3444 -0
  78. package/dist/runtime.js.map +1 -0
  79. package/dist/semantic.d.ts +3 -0
  80. package/dist/semantic.d.ts.map +1 -0
  81. package/dist/semantic.js +150 -0
  82. package/dist/semantic.js.map +1 -0
  83. package/dist/types.d.ts +56 -0
  84. package/dist/types.d.ts.map +1 -0
  85. package/dist/types.js +178 -0
  86. package/dist/types.js.map +1 -0
  87. package/dist/websocket-runtime.d.ts +2 -0
  88. package/dist/websocket-runtime.d.ts.map +1 -0
  89. package/dist/websocket-runtime.js +30 -0
  90. package/dist/websocket-runtime.js.map +1 -0
  91. package/dist/worker-runtime.d.ts +2 -0
  92. package/dist/worker-runtime.d.ts.map +1 -0
  93. package/dist/worker-runtime.js +72 -0
  94. package/dist/worker-runtime.js.map +1 -0
  95. package/package.json +52 -0
package/dist/editor.js ADDED
@@ -0,0 +1,147 @@
1
+ import { LOOK_PROPERTIES } from "./look.js";
2
+ const nativeJsxTags = [
3
+ "a", "article", "aside", "button", "canvas", "dialog", "div", "footer", "form", "h1", "h2", "h3",
4
+ "header", "img", "input", "label", "li", "main", "nav", "option", "p", "section", "select", "span",
5
+ "strong", "textarea", "ul",
6
+ ];
7
+ const nativeSvgTags = [
8
+ "svg", "g", "defs", "symbol", "use", "path", "rect", "circle", "ellipse", "line", "polyline", "polygon",
9
+ "text", "tspan", "title", "desc", "clipPath", "mask", "pattern", "linearGradient", "radialGradient", "stop",
10
+ "filter", "foreignObject",
11
+ ];
12
+ const svgElementNames = new Set(nativeSvgTags);
13
+ const jsxControlCompletions = [
14
+ { label: "key", detail: "stable JSX list key", kind: "field" },
15
+ { label: "ref", detail: "typed Handle exposed by this component", kind: "field" },
16
+ ...[...LOOK_PROPERTIES].sort().map((property) => ({
17
+ label: `look:${property}`,
18
+ detail: "inline checked Look property",
19
+ kind: "field",
20
+ })),
21
+ ...[...LOOK_PROPERTIES].sort().map((property) => ({
22
+ label: `style:${property}`,
23
+ detail: "high-priority inline Style compatibility override; prefer Look",
24
+ kind: "field",
25
+ })),
26
+ ];
27
+ const nativeJsxCompletions = [
28
+ ...["id", "class", "title", "role", "aria-label", "aria-labelledby", "ref"].map((label) => ({ label, detail: "native Web attribute", kind: "field" })),
29
+ ...["on:click", "on:input", "on:change", "on:keydown", "on:submit.prevent"].map((label) => ({ label, detail: "typed native Web event", kind: "field" })),
30
+ { label: "look", detail: "checked Look value", kind: "field" },
31
+ { label: "bind:value", detail: "two-way string/number form binding", kind: "field" },
32
+ { label: "bind:checked", detail: "two-way boolean form binding", kind: "field" },
33
+ { label: "bind:group", detail: "two-way radio or checkbox group binding", kind: "field" },
34
+ { label: "class:", detail: "reactive class directive", kind: "field" },
35
+ { label: "unsafe:html", detail: "explicit unsafe HTML boundary", kind: "field" },
36
+ ...jsxControlCompletions,
37
+ ];
38
+ const nativeSvgCompletions = [
39
+ ...["viewBox", "preserveAspectRatio", "d", "x", "y", "x1", "y1", "x2", "y2", "cx", "cy", "r", "rx", "ry",
40
+ "width", "height", "points", "transform", "fill", "stroke", "stroke-width", "text-anchor", "href"]
41
+ .map((label) => ({ label, detail: "native SVG attribute", kind: "field" })),
42
+ { label: "aria-hidden", detail: "explicit decorative SVG", kind: "field" },
43
+ ];
44
+ export const velarWebProjectEditorExtension = Object.freeze({
45
+ complete: completeWebProject,
46
+ protectRename: protectWebRename,
47
+ });
48
+ function completeWebProject(context) {
49
+ const tag = jsxTagContextAt(context.source, context.offset);
50
+ if (tag) {
51
+ const components = context.visibleSymbols.filter((symbol) => symbol.kind === "extension:function:web-component"
52
+ || (symbol.kind === "import" && symbol.detail.startsWith("component ")));
53
+ return {
54
+ context: "jsx-tag",
55
+ completions: unique([
56
+ ...components,
57
+ ...nativeJsxTags.map((label) => ({ label, detail: "native Web element", kind: "extension:function:web-component", presentationKind: "class" })),
58
+ ...nativeSvgTags.map((label) => ({ label, detail: "native SVG element", kind: "extension:function:web-component", presentationKind: "class" })),
59
+ ]).filter((item) => item.label.startsWith(tag.prefix)),
60
+ };
61
+ }
62
+ const attribute = jsxAttributeContextAt(context.source, context.offset);
63
+ if (!attribute)
64
+ return undefined;
65
+ const common = attribute.component
66
+ ? jsxControlCompletions
67
+ : svgElementNames.has(attribute.tag)
68
+ ? [...nativeSvgCompletions, ...nativeJsxCompletions]
69
+ : nativeJsxCompletions;
70
+ const component = attribute.component ? context.membersAt(attribute.tagOffset) : [];
71
+ return {
72
+ context: attribute.component ? "component-attribute" : "native-attribute",
73
+ completions: unique([...component, ...common]).filter((item) => !attribute.used.has(item.label)),
74
+ };
75
+ }
76
+ function protectWebRename(context) {
77
+ return context.kind === "parameter" && context.containerKind === "extension:function:web-component" && context.name === "children"
78
+ ? "The JSX children prop cannot be renamed"
79
+ : undefined;
80
+ }
81
+ function jsxTagContextAt(source, offset) {
82
+ const end = Math.min(Math.max(0, offset), source.length);
83
+ const before = source.slice(0, end);
84
+ const opening = before.lastIndexOf("<");
85
+ if (opening < 0 || before.lastIndexOf(">") > opening)
86
+ return null;
87
+ const match = /^<\/?([A-Za-z0-9_]*)$/u.exec(source.slice(opening, end));
88
+ return match ? { prefix: match[1] } : null;
89
+ }
90
+ function jsxAttributeContextAt(source, offset) {
91
+ const end = Math.min(Math.max(0, offset), source.length);
92
+ const before = source.slice(0, end);
93
+ const opening = before.lastIndexOf("<");
94
+ if (opening < 0 || before.lastIndexOf(">") > opening || source[opening + 1] === "/")
95
+ return null;
96
+ const fragment = source.slice(opening, end);
97
+ const tag = /^<([A-Za-z][A-Za-z0-9_]*)\b/u.exec(fragment);
98
+ if (!tag)
99
+ return null;
100
+ const attributesStart = tag[0].length;
101
+ let quote = null;
102
+ let depth = 0;
103
+ let escaped = false;
104
+ let visible = "";
105
+ for (const character of fragment.slice(attributesStart)) {
106
+ if (quote) {
107
+ visible += " ";
108
+ if (!escaped && character === quote)
109
+ quote = null;
110
+ escaped = !escaped && character === "\\";
111
+ if (character !== "\\")
112
+ escaped = false;
113
+ continue;
114
+ }
115
+ if (character === '"' || character === "'") {
116
+ quote = character;
117
+ visible += " ";
118
+ continue;
119
+ }
120
+ if (character === "{") {
121
+ depth += 1;
122
+ visible += " ";
123
+ continue;
124
+ }
125
+ if (character === "}") {
126
+ depth = Math.max(0, depth - 1);
127
+ visible += " ";
128
+ continue;
129
+ }
130
+ visible += depth === 0 ? character : " ";
131
+ }
132
+ if (quote || depth > 0)
133
+ return null;
134
+ const used = new Set();
135
+ for (const match of visible.matchAll(/([A-Za-z_][A-Za-z0-9_.:-]*)\s*(?==|\s|$)/gu))
136
+ used.add(match[1]);
137
+ return {
138
+ component: /^[A-Z]/u.test(tag[1]),
139
+ tag: tag[1],
140
+ tagOffset: opening + 1,
141
+ used,
142
+ };
143
+ }
144
+ function unique(items) {
145
+ return items.filter((item, index) => items.findIndex((candidate) => candidate.label === item.label) === index);
146
+ }
147
+ //# sourceMappingURL=editor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor.js","sourceRoot":"","sources":["../src/editor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export interface WebElementGroup {
2
+ readonly family: string;
3
+ readonly elements: readonly string[];
4
+ }
5
+ /** Standard, non-obsolete native element names accepted by Web JSX. */
6
+ export declare const WEB_NATIVE_ELEMENT_GROUPS: readonly WebElementGroup[];
7
+ export declare const WEB_NATIVE_ELEMENTS: Set<string>;
8
+ export declare const WEB_VOID_ELEMENTS: Set<string>;
9
+ /** HTML custom elements use a lowercase name containing at least one hyphen. */
10
+ export declare function isWebCustomElementName(name: string): boolean;
11
+ //# sourceMappingURL=elements.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elements.d.ts","sourceRoot":"","sources":["../src/elements.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,uEAAuE;AACvE,eAAO,MAAM,yBAAyB,EAAE,SAAS,eAAe,EAU9D,CAAC;AAEH,eAAO,MAAM,mBAAmB,aAAwE,CAAC;AAEzG,eAAO,MAAM,iBAAiB,aAE5B,CAAC;AAMH,gFAAgF;AAChF,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE5D"}
@@ -0,0 +1,24 @@
1
+ /** Standard, non-obsolete native element names accepted by Web JSX. */
2
+ export const WEB_NATIVE_ELEMENT_GROUPS = Object.freeze([
3
+ { family: "document and sections", elements: ["html", "head", "body", "main", "header", "footer", "nav", "section", "article", "aside", "address", "h1", "h2", "h3", "h4", "h5", "h6", "hgroup", "search"] },
4
+ { family: "text content", elements: ["div", "p", "hr", "pre", "blockquote", "ol", "ul", "menu", "li", "dl", "dt", "dd", "figure", "figcaption"] },
5
+ { family: "inline text", elements: ["a", "em", "strong", "small", "s", "cite", "q", "dfn", "abbr", "ruby", "rt", "rp", "data", "time", "code", "var", "samp", "kbd", "sub", "sup", "i", "b", "u", "mark", "bdi", "bdo", "span", "br", "wbr"] },
6
+ { family: "media and embedding", elements: ["picture", "source", "img", "audio", "video", "track", "map", "area", "iframe", "embed", "object", "canvas"] },
7
+ { family: "tables", elements: ["table", "caption", "colgroup", "col", "tbody", "thead", "tfoot", "tr", "td", "th"] },
8
+ { family: "forms", elements: ["form", "label", "input", "button", "select", "datalist", "optgroup", "option", "textarea", "output", "progress", "meter", "fieldset", "legend"] },
9
+ { family: "interactive and metadata", elements: ["details", "summary", "dialog", "slot", "template", "noscript", "base", "link", "meta", "style", "title"] },
10
+ { family: "SVG", elements: ["svg", "g", "defs", "desc", "symbol", "use", "switch", "view", "path", "rect", "circle", "ellipse", "line", "polyline", "polygon", "text", "tspan", "textPath", "marker", "pattern", "clipPath", "mask", "linearGradient", "radialGradient", "stop", "image", "foreignObject", "filter", "feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence", "animate", "animateMotion", "animateTransform", "mpath", "set"] },
11
+ { family: "MathML", elements: ["math", "annotation", "annotation-xml", "maction", "menclose", "merror", "mfenced", "mfrac", "mi", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mprescripts", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msubsup", "msup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover", "semantics"] },
12
+ ]);
13
+ export const WEB_NATIVE_ELEMENTS = new Set(WEB_NATIVE_ELEMENT_GROUPS.flatMap((group) => group.elements));
14
+ export const WEB_VOID_ELEMENTS = new Set([
15
+ "area", "base", "br", "col", "embed", "hr", "img", "input", "link", "meta", "source", "track", "wbr",
16
+ ]);
17
+ const WEB_RESERVED_CUSTOM_ELEMENT_NAMES = new Set([
18
+ "annotation-xml", "color-profile", "font-face", "font-face-src", "font-face-uri", "font-face-format", "font-face-name", "missing-glyph",
19
+ ]);
20
+ /** HTML custom elements use a lowercase name containing at least one hyphen. */
21
+ export function isWebCustomElementName(name) {
22
+ return /^[a-z][a-z0-9]*(?:-[a-z0-9]+)+$/u.test(name) && !WEB_RESERVED_CUSTOM_ELEMENT_NAMES.has(name);
23
+ }
24
+ //# sourceMappingURL=elements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elements.js","sourceRoot":"","sources":["../src/elements.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ import type { CompilerStyleSegments, CompilerEmitterOptions, Expression, Program, Statement, LoweringHints, ValueType } from "@velarscript/compiler/extension";
2
+ import { JavaScriptEmitter } from "@velarscript/compiler/extension";
3
+ import { type WebJsxAttribute as JSXAttribute, type WebJsxElementExpression as JSXElementExpression } from "./ast.ts";
4
+ export declare class WebJavaScriptEmitter extends JavaScriptEmitter {
5
+ private currentScope;
6
+ private currentJsxNamespace;
7
+ private readonly resourceContents;
8
+ private cssOutput;
9
+ private cssSegments;
10
+ private webOutput;
11
+ private needsFileTypeHelper;
12
+ private needsLookArithmeticRuntime;
13
+ private readonly importedLookStaticValues;
14
+ private lookStaticValues;
15
+ private jsxId;
16
+ private readonly keyframeNames;
17
+ constructor(hints: LoweringHints, forcedFunctionExports?: ReadonlySet<string>, resourceContents?: ReadonlyMap<string, string>, extensionImports?: ReadonlyMap<string, ReadonlyMap<string, unknown>>, options?: CompilerEmitterOptions);
18
+ emit(program: Program): string;
19
+ css(): string;
20
+ styleSegments(): CompilerStyleSegments;
21
+ web(): boolean;
22
+ protected emitTypeCheck(type: ValueType, value: string, state?: string): string;
23
+ protected emitIsCheck(type: ValueType, value: string): string;
24
+ protected additionalHelpers(_program: Program): readonly string[];
25
+ private webRuntimeHelpers;
26
+ protected reactiveBridgeHelpers(needsJavaScriptCallBoundary: boolean, needsCollections: boolean): readonly string[];
27
+ protected includesErrorNormalizationRuntime(): boolean;
28
+ protected detachedTaskHelpers(): readonly string[];
29
+ protected visitExtensionRuntimeExpression(expression: Expression, visitExpression: (expression: Expression) => void): boolean;
30
+ protected visitExtensionRuntimeStatement(statement: Statement, visitExpression: (expression: Expression) => void, visitStatement: (statement: Statement) => void): boolean;
31
+ protected extensionExpressionContainsDirectAwait(expression: Expression, contains: (expression: Expression) => boolean): boolean | undefined;
32
+ protected extensionStatementContainsDirectAwait(statement: Statement, containsExpression: (expression: Expression) => boolean, containsBlock: (statements: readonly Statement[]) => boolean): boolean | undefined;
33
+ protected emitStatement(statement: Statement, depth: number): string;
34
+ protected emitExpression(expression: Expression): string;
35
+ private emitLook;
36
+ private emitLookEntries;
37
+ private emitLookValue;
38
+ private emitLookArithmetic;
39
+ private emitComponent;
40
+ private emitReactiveAssignment;
41
+ private emitJsx;
42
+ private emitJsxCode;
43
+ private emitJsxChildren;
44
+ private emitDynamicChild;
45
+ private emitDynamicChildLeaf;
46
+ private emitGuardedExpression;
47
+ /**
48
+ * D47 rule 84(A): a bind target is a state cell, or a writable reactive
49
+ * location inside one. A member/index path lowers to the get/set pair the
50
+ * binding helpers already expect, so a field of state reads and writes through
51
+ * exactly the same statements the author would have written by hand.
52
+ */
53
+ private emitBindTarget;
54
+ private emitJsxAttributeValue;
55
+ private emitJsxLookValue;
56
+ private emitJsxStyleValue;
57
+ private prepareLooks;
58
+ }
59
+ export interface JsxKeyedList {
60
+ readonly source: Expression;
61
+ readonly arrow: Extract<Expression, {
62
+ kind: "ArrowFunctionExpression";
63
+ }> & {
64
+ readonly body: JSXElementExpression;
65
+ };
66
+ readonly key: JSXAttribute | null;
67
+ }
68
+ export interface DynamicChildGuard {
69
+ readonly condition: Expression;
70
+ readonly thenBranch: boolean;
71
+ }
72
+ export interface DynamicChildLeaf {
73
+ readonly expression: Expression;
74
+ readonly list: JsxKeyedList | null;
75
+ readonly guards: readonly DynamicChildGuard[];
76
+ }
77
+ export declare function jsxKeyedList(expression: Expression): JsxKeyedList | null;
78
+ export declare function dynamicChildLeaves(expression: Expression, guards?: readonly DynamicChildGuard[]): readonly DynamicChildLeaf[];
79
+ //# sourceMappingURL=emitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"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"}