@typecad/cuttlefish 1.0.0-alpha.13 → 1.0.0-alpha.14
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/assets/editor-extensions/typecad-debug/README.md +142 -0
- package/assets/editor-extensions/typecad-debug/out/extension.js +347 -0
- package/assets/editor-extensions/typecad-debug/out/extension.js.map +1 -0
- package/assets/editor-extensions/typecad-debug/package.json +76 -0
- package/assets/editor-extensions/typecad-ui/LICENSE +27 -0
- package/assets/editor-extensions/typecad-ui/README.md +52 -0
- package/assets/editor-extensions/typecad-ui/file-icon-dark.png +0 -0
- package/assets/editor-extensions/typecad-ui/file-icon-light.png +0 -0
- package/assets/editor-extensions/typecad-ui/icon.png +0 -0
- package/assets/editor-extensions/typecad-ui/language-configuration.json +43 -0
- package/assets/editor-extensions/typecad-ui/package.json +54 -0
- package/assets/editor-extensions/typecad-ui/snippets/typecad-ui.json +80 -0
- package/assets/editor-extensions/typecad-ui/syntaxes/markdown-ui.json +45 -0
- package/assets/editor-extensions/typecad-ui/syntaxes/typecad-ui.tmLanguage.json +1269 -0
- package/dist/api/config.d.ts +8 -1
- package/dist/api/shared/framework-manifest.d.ts +61 -504
- package/dist/cli.js +17 -6
- package/dist/config-loader.js +3 -1
- package/dist/config-schema.d.ts +17 -223
- package/dist/config-schema.js +1 -0
- package/dist/contract/contract-parser.d.ts +9 -127
- package/dist/create/board-checklist.js +1 -1
- package/dist/create/board-codegen.js +4 -4
- package/dist/create/board-spec.d.ts +74 -530
- package/dist/create/editor-integration.d.ts +30 -0
- package/dist/create/editor-integration.js +218 -0
- package/dist/create/eslint-rules-template.d.ts +2 -2
- package/dist/create/framework-catalog.d.ts +8 -0
- package/dist/create/framework-catalog.js +28 -5
- package/dist/create/index.d.ts +7 -6
- package/dist/create/index.js +5 -4
- package/dist/create/{init-scaffold.d.ts → scaffold.d.ts} +4 -4
- package/dist/create/{init-scaffold.js → scaffold.js} +33 -2
- package/dist/create/templates.d.ts +29 -0
- package/dist/create/{init-templates.js → templates.js} +15 -0
- package/dist/create/wizard.d.ts +8 -0
- package/dist/create/{init-wizard.js → wizard.js} +11 -4
- package/dist/emit/emitters/setup.js +22 -0
- package/dist/ir/build-ir.js +24 -3
- package/dist/library/catalog.d.ts +35 -0
- package/dist/library/catalog.js +67 -0
- package/dist/library/cli.d.ts +2 -0
- package/dist/library/cli.js +168 -0
- package/dist/library/init.d.ts +25 -0
- package/dist/library/init.js +397 -0
- package/dist/library/install.d.ts +9 -0
- package/dist/library/install.js +80 -0
- package/dist/library/registry-search.d.ts +34 -0
- package/dist/library/registry-search.js +50 -0
- package/dist/library/validate.d.ts +17 -0
- package/dist/library/validate.js +175 -0
- package/dist/library-packages.d.ts +95 -0
- package/dist/library-packages.js +275 -0
- package/dist/orchestrator/graph-builder.js +16 -0
- package/dist/preview/client.js +17 -3
- package/dist/testing.d.ts +2 -2
- package/dist/testing.js +1 -1
- package/dist/transpile.js +55 -0
- package/dist/types.d.ts +19 -0
- package/dist/utils/cli.d.ts +2 -2
- package/dist/utils/cli.js +68 -3
- package/package.json +16 -8
- package/dist/create/init-templates.d.ts +0 -28
- package/dist/create/init-wizard.d.ts +0 -8
|
Binary file
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"comments": {
|
|
3
|
+
"blockComment": ["<!--", "-->"]
|
|
4
|
+
},
|
|
5
|
+
"brackets": [
|
|
6
|
+
["<!--", "-->"],
|
|
7
|
+
["<", ">"],
|
|
8
|
+
["{", "}"],
|
|
9
|
+
["(", ")"],
|
|
10
|
+
["[", "]"]
|
|
11
|
+
],
|
|
12
|
+
"autoClosingPairs": [
|
|
13
|
+
{ "open": "{", "close": "}" },
|
|
14
|
+
{ "open": "[", "close": "]" },
|
|
15
|
+
{ "open": "(", "close": ")" },
|
|
16
|
+
{ "open": "'", "close": "'" },
|
|
17
|
+
{ "open": "\"", "close": "\"" },
|
|
18
|
+
{ "open": "`", "close": "`", "notIn": ["comment", "string"] },
|
|
19
|
+
{ "open": "<!--", "close": "-->", "notIn": ["comment", "string"] },
|
|
20
|
+
{ "open": "/**", "close": "*/", "notIn": ["string"] }
|
|
21
|
+
],
|
|
22
|
+
"autoCloseBefore": ";:.,=}])><`/ \n\t",
|
|
23
|
+
"surroundingPairs": [
|
|
24
|
+
{ "open": "'", "close": "'" },
|
|
25
|
+
{ "open": "\"", "close": "\"" },
|
|
26
|
+
{ "open": "`", "close": "`" },
|
|
27
|
+
{ "open": "{", "close": "}" },
|
|
28
|
+
{ "open": "[", "close": "]" },
|
|
29
|
+
{ "open": "(", "close": ")" },
|
|
30
|
+
{ "open": "<", "close": ">" }
|
|
31
|
+
],
|
|
32
|
+
"wordPattern": "({[^}]*})|([\\w:.$-]+)",
|
|
33
|
+
"indentationRules": {
|
|
34
|
+
"increaseIndentPattern": "(^.*\\{[^}\"']*$)|(^.*\\([^)\"']*$)|(^.*<(?!/)(?!.*/>)[^>]*>$)",
|
|
35
|
+
"decreaseIndentPattern": "^\\s*(\\}|\\)|</)"
|
|
36
|
+
},
|
|
37
|
+
"folding": {
|
|
38
|
+
"markers": {
|
|
39
|
+
"start": "^\\s*(//|/\\*\\*?)\\s*#?region\\b|^<(screen|style|script)[^>]*>|^\\s*<!--\\s*#region\\b",
|
|
40
|
+
"end": "^\\s*(//|/\\*\\*?)\\s*#?endregion\\b|^</(screen|style|script)>|^\\s*<!--\\s*#endregion\\b"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "typecad-ui",
|
|
3
|
+
"displayName": "TypeCAD UI (.ui) Syntax",
|
|
4
|
+
"description": "Syntax highlighting for cuttlefish .ui single-file components: TypeScript in <script>, CSS in <style>, Svelte-style markup directives and interpolations.",
|
|
5
|
+
"version": "0.1.0",
|
|
6
|
+
"publisher": "typecad",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"icon": "icon.png",
|
|
9
|
+
"engines": {
|
|
10
|
+
"vscode": "^1.89.0"
|
|
11
|
+
},
|
|
12
|
+
"categories": [
|
|
13
|
+
"Programming Languages"
|
|
14
|
+
],
|
|
15
|
+
"contributes": {
|
|
16
|
+
"languages": [
|
|
17
|
+
{
|
|
18
|
+
"id": "typecad-ui",
|
|
19
|
+
"aliases": [
|
|
20
|
+
"Cuttlefish UI",
|
|
21
|
+
"typecad-ui"
|
|
22
|
+
],
|
|
23
|
+
"extensions": [
|
|
24
|
+
".ui"
|
|
25
|
+
],
|
|
26
|
+
"icon": {
|
|
27
|
+
"light": "./file-icon-light.png",
|
|
28
|
+
"dark": "./file-icon-dark.png"
|
|
29
|
+
},
|
|
30
|
+
"configuration": "./language-configuration.json"
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
"grammars": [
|
|
34
|
+
{
|
|
35
|
+
"language": "typecad-ui",
|
|
36
|
+
"scopeName": "source.typecad-ui",
|
|
37
|
+
"path": "./syntaxes/typecad-ui.tmLanguage.json"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"scopeName": "markdown.typecad-ui.codeblock",
|
|
41
|
+
"path": "./syntaxes/markdown-ui.json",
|
|
42
|
+
"injectTo": [
|
|
43
|
+
"text.html.markdown"
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
],
|
|
47
|
+
"snippets": [
|
|
48
|
+
{
|
|
49
|
+
"language": "typecad-ui",
|
|
50
|
+
"path": "./snippets/typecad-ui.json"
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Import ui": {
|
|
3
|
+
"prefix": "import-ui",
|
|
4
|
+
"body": ["import { ui } from '@typecad/ui';"],
|
|
5
|
+
"description": "Import the ui runtime"
|
|
6
|
+
},
|
|
7
|
+
"Screen": {
|
|
8
|
+
"prefix": "screen",
|
|
9
|
+
"body": [
|
|
10
|
+
"<screen id=\"${1:id}\">",
|
|
11
|
+
" <body>",
|
|
12
|
+
" <header class=\"screenHeader\">",
|
|
13
|
+
" <a class=\"backLink\" href=\"#home\">< Back</a>",
|
|
14
|
+
" <h2 class=\"screenTitle\">${2:Title}</h2>",
|
|
15
|
+
" </header>",
|
|
16
|
+
" <main class=\"scrollBody\">",
|
|
17
|
+
" $0",
|
|
18
|
+
" </main>",
|
|
19
|
+
" </body>",
|
|
20
|
+
"</screen>"
|
|
21
|
+
],
|
|
22
|
+
"description": "New screen with header and scroll body"
|
|
23
|
+
},
|
|
24
|
+
"Button": {
|
|
25
|
+
"prefix": "button",
|
|
26
|
+
"body": [
|
|
27
|
+
"<button id=\"${1:id}\" class=\"btn btn-primary\" on:click={${2:handler}}>${3:Label}</button>"
|
|
28
|
+
],
|
|
29
|
+
"description": "Button with click handler"
|
|
30
|
+
},
|
|
31
|
+
"Text": {
|
|
32
|
+
"prefix": "text",
|
|
33
|
+
"body": ["<text id=\"${1:id}\" class=\"${2:badge}\">${3:text}</text>"],
|
|
34
|
+
"description": "Text element"
|
|
35
|
+
},
|
|
36
|
+
"Interpolation": {
|
|
37
|
+
"prefix": "interp",
|
|
38
|
+
"body": ["{${1:expr}}"],
|
|
39
|
+
"description": "Interpolated expression in markup"
|
|
40
|
+
},
|
|
41
|
+
"Signal": {
|
|
42
|
+
"prefix": "signal",
|
|
43
|
+
"body": ["export const ${1:name} = ui.signal(${2:0});"],
|
|
44
|
+
"description": "Reactive signal"
|
|
45
|
+
},
|
|
46
|
+
"Handler": {
|
|
47
|
+
"prefix": "handler",
|
|
48
|
+
"body": ["export function ${1:onTap}() {", " $0", "}"],
|
|
49
|
+
"description": "Exported event handler"
|
|
50
|
+
},
|
|
51
|
+
"Bind": {
|
|
52
|
+
"prefix": "bind",
|
|
53
|
+
"body": [
|
|
54
|
+
"ui.bind(screen.${1:elem}, '${2|text,visible,background,color,borderColor|}', () => ${3:expr});"
|
|
55
|
+
],
|
|
56
|
+
"description": "Bind an element property to an expression"
|
|
57
|
+
},
|
|
58
|
+
"Canvas": {
|
|
59
|
+
"prefix": "canvas",
|
|
60
|
+
"body": [
|
|
61
|
+
"ui.drawCanvas(screen.${1:elem}, (ctx) => {",
|
|
62
|
+
" ctx.fillScreen('${2:#101828}');",
|
|
63
|
+
" $0",
|
|
64
|
+
"});"
|
|
65
|
+
],
|
|
66
|
+
"description": "Canvas draw block"
|
|
67
|
+
},
|
|
68
|
+
"List": {
|
|
69
|
+
"prefix": "list",
|
|
70
|
+
"body": [
|
|
71
|
+
"ui.bindList(",
|
|
72
|
+
" screen.${1:elem},",
|
|
73
|
+
" () => ${2:count},",
|
|
74
|
+
" (i: number) => `${3:Row }${i}`,",
|
|
75
|
+
" (i: number) => { ${4:onTap(i)} },",
|
|
76
|
+
");"
|
|
77
|
+
],
|
|
78
|
+
"description": "Virtualized list binding"
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"scopeName": "markdown.typecad-ui.codeblock",
|
|
3
|
+
"fileTypes": [],
|
|
4
|
+
"injectionSelector": "L:text.html.markdown",
|
|
5
|
+
"patterns": [
|
|
6
|
+
{
|
|
7
|
+
"include": "#ui-code-block"
|
|
8
|
+
}
|
|
9
|
+
],
|
|
10
|
+
"repository": {
|
|
11
|
+
"ui-code-block": {
|
|
12
|
+
"begin": "(^|\\G)(\\s*)(\\`{3,}|~{3,})\\s*(?i:(ui|cuttlefish)(\\s+[^`~]*)?$)",
|
|
13
|
+
"name": "markup.fenced_code.block.markdown",
|
|
14
|
+
"end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
|
|
15
|
+
"beginCaptures": {
|
|
16
|
+
"3": {
|
|
17
|
+
"name": "punctuation.definition.markdown"
|
|
18
|
+
},
|
|
19
|
+
"5": {
|
|
20
|
+
"name": "fenced_code.block.language"
|
|
21
|
+
},
|
|
22
|
+
"6": {
|
|
23
|
+
"name": "fenced_code.block.language.attributes"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"endCaptures": {
|
|
27
|
+
"3": {
|
|
28
|
+
"name": "punctuation.definition.markdown"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"patterns": [
|
|
32
|
+
{
|
|
33
|
+
"begin": "(^|\\G)(\\s*)(.*)",
|
|
34
|
+
"while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
|
|
35
|
+
"contentName": "meta.embedded.block.typecad-ui",
|
|
36
|
+
"patterns": [
|
|
37
|
+
{
|
|
38
|
+
"include": "source.typecad-ui"
|
|
39
|
+
}
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|