vscode-behavior3 2.1.3 → 2.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/README.md +119 -138
- package/build.d.ts +5 -0
- package/dist/build-cli.js +80 -2290
- package/dist/extension.js +392 -2330
- package/dist/webview/assets/editor-466vlAsX.js +8 -0
- package/dist/webview/assets/editor-CTBBjkkm.css +1 -0
- package/dist/webview/assets/graph-vendor-ww5KcpJ-.js +151 -0
- package/dist/webview/assets/rolldown-runtime-BYbx6iT9.js +1 -0
- package/dist/webview/assets/ui-vendor-CpXf__no.js +249 -0
- package/dist/webview/assets/vendor-Ctok02TG.js +61 -0
- package/dist/webview/images/pic.png +0 -0
- package/dist/webview/index.html +6 -2
- package/dist/webview/locales/en.json +6 -0
- package/dist/webview/locales/zh.json +6 -0
- package/package.json +73 -21
- package/package.nls.json +6 -3
- package/package.nls.zh-cn.json +6 -3
- package/webview/shared/b3build-model.d.ts +22 -2
- package/webview/shared/b3type.ts +1 -2
- package/dist/webview/assets/editor-Ko79XsIi.css +0 -1
- package/dist/webview/assets/editor-RJ_NkY97.js +0 -534
- package/dist/webview/assets/worker-B9qc9nkC.js +0 -13
|
Binary file
|
package/dist/webview/index.html
CHANGED
|
@@ -5,8 +5,12 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<link rel="stylesheet" href="./codicons/codicon.css" />
|
|
7
7
|
<title>Behavior3 Editor</title>
|
|
8
|
-
<script type="module" crossorigin src="./assets/editor-
|
|
9
|
-
<link rel="
|
|
8
|
+
<script type="module" crossorigin src="./assets/editor-466vlAsX.js"></script>
|
|
9
|
+
<link rel="modulepreload" crossorigin href="./assets/rolldown-runtime-BYbx6iT9.js">
|
|
10
|
+
<link rel="modulepreload" crossorigin href="./assets/graph-vendor-ww5KcpJ-.js">
|
|
11
|
+
<link rel="modulepreload" crossorigin href="./assets/ui-vendor-CpXf__no.js">
|
|
12
|
+
<link rel="modulepreload" crossorigin href="./assets/vendor-Ctok02TG.js">
|
|
13
|
+
<link rel="stylesheet" crossorigin href="./assets/editor-CTBBjkkm.css">
|
|
10
14
|
</head>
|
|
11
15
|
<body>
|
|
12
16
|
<div id="root"></div>
|
|
@@ -46,6 +46,7 @@
|
|
|
46
46
|
"reload": "Reload",
|
|
47
47
|
"reset": "Reset",
|
|
48
48
|
"reset.confirm": "Reset to original value?",
|
|
49
|
+
"reset.defaultConfirm": "Reset to default value?",
|
|
49
50
|
"rename": "Rename...",
|
|
50
51
|
"replace": "Replace",
|
|
51
52
|
"reportIssue": "Report Issue",
|
|
@@ -169,6 +170,11 @@
|
|
|
169
170
|
"editor.newerVersionEditDenied": "This file is created by a newer version of Behavior3({{version}}). Please upgrade to the latest version.",
|
|
170
171
|
"inspector.noActiveDocument": "Open a Behavior3 editor to inspect and edit the active tree.",
|
|
171
172
|
"inspector.embeddedModeNotice": "Inspector is configured to appear inside the Behavior3 editor.",
|
|
173
|
+
"inspector.embeddedToolbar.build": "Build Behavior Tree",
|
|
174
|
+
"inspector.embeddedToolbar.toggleEditorMode": "Toggle Editor Mode",
|
|
175
|
+
"inspector.embeddedToolbar.toggleInspectorNodeJson": "Toggle Raw Node JSON",
|
|
176
|
+
"inspector.embeddedToolbar.createProject": "Create Project",
|
|
177
|
+
"inspector.embeddedToolbar.createTree": "Create Behavior Tree",
|
|
172
178
|
|
|
173
179
|
"mutation.invalidJsonPath": "Invalid JSON path: {{path}}",
|
|
174
180
|
"mutation.missingSelectedNode": "No selected node is available for this mutation.",
|
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
"reload": "重新加载",
|
|
46
46
|
"reset": "重置",
|
|
47
47
|
"reset.confirm": "重置为原始值?",
|
|
48
|
+
"reset.defaultConfirm": "重置为默认值?",
|
|
48
49
|
"rename": "重命名...",
|
|
49
50
|
"replace": "替换",
|
|
50
51
|
"reportIssue": "问题反馈",
|
|
@@ -168,6 +169,11 @@
|
|
|
168
169
|
"editor.newerVersionEditDenied": "此文件由新版本 Behavior3({{version}}) 创建,请升级到最新版本后再编辑。",
|
|
169
170
|
"inspector.noActiveDocument": "打开一个 Behavior3 编辑器后,这里会显示当前行为树的 Inspector,并支持直接编辑。",
|
|
170
171
|
"inspector.embeddedModeNotice": "Inspector 当前配置为在 Behavior3 编辑器内部显示。",
|
|
172
|
+
"inspector.embeddedToolbar.build": "构建行为树",
|
|
173
|
+
"inspector.embeddedToolbar.toggleEditorMode": "切换编辑器模式",
|
|
174
|
+
"inspector.embeddedToolbar.toggleInspectorNodeJson": "切换原始节点 JSON",
|
|
175
|
+
"inspector.embeddedToolbar.createProject": "新建项目",
|
|
176
|
+
"inspector.embeddedToolbar.createTree": "新建行为树",
|
|
171
177
|
|
|
172
178
|
"mutation.invalidJsonPath": "无效的 JSON 路径: {{path}}",
|
|
173
179
|
"mutation.missingSelectedNode": "当前没有可用于提交此修改的选中节点。",
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "vscode-behavior3",
|
|
3
3
|
"displayName": "%extension.displayName%",
|
|
4
4
|
"description": "%extension.description%",
|
|
5
|
-
"version": "2.
|
|
5
|
+
"version": "2.3.0",
|
|
6
6
|
"publisher": "codetypess",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
"dist/extension.js",
|
|
37
37
|
"dist/webview/",
|
|
38
38
|
"icon.png",
|
|
39
|
+
"LICENSE",
|
|
39
40
|
"media/icons/icon.svg",
|
|
40
41
|
"package.nls.json",
|
|
41
42
|
"package.nls.zh-cn.json",
|
|
@@ -48,8 +49,8 @@
|
|
|
48
49
|
},
|
|
49
50
|
"license": "MIT",
|
|
50
51
|
"engines": {
|
|
51
|
-
"node": ">=
|
|
52
|
-
"vscode": "^1.
|
|
52
|
+
"node": ">=20.19",
|
|
53
|
+
"vscode": "^1.105.0"
|
|
53
54
|
},
|
|
54
55
|
"categories": [
|
|
55
56
|
"Other"
|
|
@@ -112,8 +113,18 @@
|
|
|
112
113
|
"icon": "$(debug-alt)"
|
|
113
114
|
},
|
|
114
115
|
{
|
|
115
|
-
"command": "behavior3.
|
|
116
|
-
"title": "%command.
|
|
116
|
+
"command": "behavior3.createBuildScript",
|
|
117
|
+
"title": "%command.createBuildScript.title%",
|
|
118
|
+
"category": "%command.category%"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"command": "behavior3.createBatchScript",
|
|
122
|
+
"title": "%command.createBatchScript.title%",
|
|
123
|
+
"category": "%command.category%"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"command": "behavior3.createCheckerScript",
|
|
127
|
+
"title": "%command.createCheckerScript.title%",
|
|
117
128
|
"category": "%command.category%"
|
|
118
129
|
},
|
|
119
130
|
{
|
|
@@ -124,12 +135,14 @@
|
|
|
124
135
|
{
|
|
125
136
|
"command": "behavior3.createProject",
|
|
126
137
|
"title": "%command.createProject.title%",
|
|
127
|
-
"category": "%command.category%"
|
|
138
|
+
"category": "%command.category%",
|
|
139
|
+
"icon": "$(new-collection)"
|
|
128
140
|
},
|
|
129
141
|
{
|
|
130
142
|
"command": "behavior3.createTree",
|
|
131
143
|
"title": "%command.createTree.title%",
|
|
132
|
-
"category": "%command.category%"
|
|
144
|
+
"category": "%command.category%",
|
|
145
|
+
"icon": "$(new-file)"
|
|
133
146
|
},
|
|
134
147
|
{
|
|
135
148
|
"command": "behavior3.openSettings",
|
|
@@ -146,6 +159,12 @@
|
|
|
146
159
|
"title": "%command.toggleEditorMode.title%",
|
|
147
160
|
"category": "%command.category%",
|
|
148
161
|
"icon": "$(edit-code)"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"command": "behavior3.toggleInspectorNodeJson",
|
|
165
|
+
"title": "%command.toggleInspectorNodeJson.title%",
|
|
166
|
+
"category": "%command.category%",
|
|
167
|
+
"icon": "$(code)"
|
|
149
168
|
}
|
|
150
169
|
],
|
|
151
170
|
"keybindings": [
|
|
@@ -168,12 +187,29 @@
|
|
|
168
187
|
}
|
|
169
188
|
],
|
|
170
189
|
"menus": {
|
|
171
|
-
"
|
|
190
|
+
"view/title": [
|
|
191
|
+
{
|
|
192
|
+
"command": "behavior3.build",
|
|
193
|
+
"when": "view == behavior3.inspectorView",
|
|
194
|
+
"group": "navigation@1"
|
|
195
|
+
},
|
|
172
196
|
{
|
|
173
197
|
"command": "behavior3.toggleEditorMode",
|
|
174
|
-
"when": "
|
|
175
|
-
"group": "navigation@
|
|
198
|
+
"when": "view == behavior3.inspectorView",
|
|
199
|
+
"group": "navigation@2"
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
"command": "behavior3.toggleInspectorNodeJson",
|
|
203
|
+
"when": "view == behavior3.inspectorView && behavior3.inspectorSidebarMode",
|
|
204
|
+
"group": "navigation@2.5"
|
|
176
205
|
},
|
|
206
|
+
{
|
|
207
|
+
"command": "behavior3.createProject",
|
|
208
|
+
"when": "view == behavior3.inspectorView",
|
|
209
|
+
"group": "navigation@3"
|
|
210
|
+
}
|
|
211
|
+
],
|
|
212
|
+
"editor/title": [
|
|
177
213
|
{
|
|
178
214
|
"command": "behavior3.build",
|
|
179
215
|
"when": "activeCustomEditorId == 'behavior3.treeEditor'",
|
|
@@ -195,15 +231,30 @@
|
|
|
195
231
|
"group": "1_create@1"
|
|
196
232
|
},
|
|
197
233
|
{
|
|
198
|
-
"command": "behavior3.
|
|
234
|
+
"command": "behavior3.runBatchProcessScript",
|
|
199
235
|
"when": "explorerResourceIsFolder",
|
|
200
|
-
"group": "
|
|
236
|
+
"group": "2_run@1"
|
|
201
237
|
},
|
|
202
238
|
{
|
|
203
239
|
"command": "behavior3.createTree",
|
|
204
240
|
"when": "explorerResourceIsFolder",
|
|
241
|
+
"group": "1_create@2"
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
"command": "behavior3.createBuildScript",
|
|
245
|
+
"when": "explorerResourceIsFolder",
|
|
205
246
|
"group": "1_create@3"
|
|
206
247
|
},
|
|
248
|
+
{
|
|
249
|
+
"command": "behavior3.createBatchScript",
|
|
250
|
+
"when": "explorerResourceIsFolder",
|
|
251
|
+
"group": "1_create@4"
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
"command": "behavior3.createCheckerScript",
|
|
255
|
+
"when": "explorerResourceIsFolder",
|
|
256
|
+
"group": "1_create@5"
|
|
257
|
+
},
|
|
207
258
|
{
|
|
208
259
|
"command": "behavior3.runBatchProcessScript",
|
|
209
260
|
"when": "(resourceExtname == .ts || resourceExtname == .mts || resourceExtname == .js || resourceExtname == .mjs) && !explorerResourceIsFolder",
|
|
@@ -262,11 +313,11 @@
|
|
|
262
313
|
},
|
|
263
314
|
"scripts": {
|
|
264
315
|
"vscode:prepublish": "npm run build",
|
|
265
|
-
"build": "node esbuild.js && vite
|
|
316
|
+
"build": "node esbuild.js && node scripts/vite-webview.mjs --production",
|
|
266
317
|
"build:cli": "node esbuild.js --cli",
|
|
267
|
-
"build:dev": "node esbuild.js --dev && vite
|
|
318
|
+
"build:dev": "node esbuild.js --dev && node scripts/vite-webview.mjs --development",
|
|
268
319
|
"watch:ext": "node esbuild.js --watch",
|
|
269
|
-
"watch:webview": "vite
|
|
320
|
+
"watch:webview": "node scripts/vite-webview.mjs --watch --development",
|
|
270
321
|
"dev": "npm run watch:webview",
|
|
271
322
|
"package": "vsce package",
|
|
272
323
|
"pack:npm": "npm pack --dry-run",
|
|
@@ -282,17 +333,18 @@
|
|
|
282
333
|
},
|
|
283
334
|
"devDependencies": {
|
|
284
335
|
"@ant-design/icons": "^6.1.1",
|
|
285
|
-
"@antv/g6": "^5.
|
|
336
|
+
"@antv/g6": "^5.1.1",
|
|
286
337
|
"@types/node": "^20.19.37",
|
|
287
338
|
"@types/react": "^18.3.12",
|
|
288
339
|
"@types/react-dom": "^18.3.1",
|
|
289
|
-
"@types/vscode": "^1.
|
|
290
|
-
"@vitejs/plugin-react": "^
|
|
291
|
-
"@vscode/vsce": "^3.
|
|
340
|
+
"@types/vscode": "^1.105.0",
|
|
341
|
+
"@vitejs/plugin-react": "^5.2.0",
|
|
342
|
+
"@vscode/vsce": "^3.9.1",
|
|
292
343
|
"ahooks": "^3.8.0",
|
|
293
344
|
"antd": "^6.3.4",
|
|
294
345
|
"autoprefixer": "^10.4.20",
|
|
295
|
-
"
|
|
346
|
+
"chokidar": "^4.0.3",
|
|
347
|
+
"esbuild": "^0.27.3",
|
|
296
348
|
"i18next": "^23.12.2",
|
|
297
349
|
"nanoid": "^5.1.6",
|
|
298
350
|
"postcss": "^8.4.49",
|
|
@@ -307,7 +359,7 @@
|
|
|
307
359
|
"ts-key-enum": "^2.0.12",
|
|
308
360
|
"typescript": "^5.8.2",
|
|
309
361
|
"usehooks-ts": "^3.1.0",
|
|
310
|
-
"vite": "^
|
|
362
|
+
"vite": "^8.0.12",
|
|
311
363
|
"zustand": "^5.0.3"
|
|
312
364
|
}
|
|
313
365
|
}
|
package/package.nls.json
CHANGED
|
@@ -8,13 +8,16 @@
|
|
|
8
8
|
"command.category": "Behavior Tree",
|
|
9
9
|
"command.build.title": "Build Behavior Tree",
|
|
10
10
|
"command.buildDebug.title": "Debug Build Behavior Tree",
|
|
11
|
-
"command.
|
|
12
|
-
"command.
|
|
11
|
+
"command.runBatchProcessScript.title": "Run Script as Batch Process",
|
|
12
|
+
"command.createBuildScript.title": "Create Build Script",
|
|
13
|
+
"command.createBatchScript.title": "Create Batch Script",
|
|
14
|
+
"command.createCheckerScript.title": "Create Checker Script",
|
|
13
15
|
"command.createProject.title": "Create Project",
|
|
14
16
|
"command.openSettings.title": "Open Node Config (.b3-setting)",
|
|
15
|
-
"command.createTree.title": "Create
|
|
17
|
+
"command.createTree.title": "Create Behavior Tree File",
|
|
16
18
|
"command.openWithEditor.title": "Open with Behavior3",
|
|
17
19
|
"command.toggleEditorMode.title": "Toggle Text / Behavior3",
|
|
20
|
+
"command.toggleInspectorNodeJson.title": "Toggle Node JSON",
|
|
18
21
|
"configuration.title": "Behavior3 Editor",
|
|
19
22
|
"configuration.checkExpr.description": "Enable expression validation.",
|
|
20
23
|
"configuration.language.description": "Editor UI language. The default follows the VS Code display language; you can also force a language.",
|
package/package.nls.zh-cn.json
CHANGED
|
@@ -8,13 +8,16 @@
|
|
|
8
8
|
"command.category": "行为树",
|
|
9
9
|
"command.build.title": "构建行为树",
|
|
10
10
|
"command.buildDebug.title": "调试构建行为树",
|
|
11
|
-
"command.
|
|
12
|
-
"command.
|
|
11
|
+
"command.runBatchProcessScript.title": "将脚本作为批处理运行",
|
|
12
|
+
"command.createBuildScript.title": "创建构建脚本",
|
|
13
|
+
"command.createBatchScript.title": "创建批处理脚本",
|
|
14
|
+
"command.createCheckerScript.title": "创建检查器脚本",
|
|
13
15
|
"command.createProject.title": "创建项目",
|
|
14
16
|
"command.openSettings.title": "打开节点配置 (.b3-setting)",
|
|
15
|
-
"command.createTree.title": "
|
|
17
|
+
"command.createTree.title": "创建行为树文件",
|
|
16
18
|
"command.openWithEditor.title": "使用 Behavior3 打开",
|
|
17
19
|
"command.toggleEditorMode.title": "切换文本 / Behavior3",
|
|
20
|
+
"command.toggleInspectorNodeJson.title": "切换节点 JSON",
|
|
18
21
|
"configuration.title": "Behavior3 编辑器",
|
|
19
22
|
"configuration.checkExpr.description": "启用表达式校验。",
|
|
20
23
|
"configuration.language.description": "编辑器界面语言。默认跟随 VS Code 显示语言,也可手动指定。",
|
|
@@ -62,14 +62,18 @@ export interface NodeArgChecker {
|
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
export type BuildScript = {
|
|
65
|
-
shouldUpgradeTree?: (path: string, tree: TreeData) => boolean;
|
|
66
65
|
onProcessTree?: (tree: TreeData, path: string, errors: string[]) => TreeData | null;
|
|
67
66
|
onProcessNode?: (node: NodeData, errors: string[]) => NodeData | null;
|
|
68
67
|
onWriteFile?: (path: string, tree: TreeData) => void;
|
|
69
68
|
onComplete?: (status: "success" | "failure") => void;
|
|
70
69
|
};
|
|
71
70
|
|
|
71
|
+
export type BatchScript = BuildScript & {
|
|
72
|
+
shouldUpgradeTree?: (path: string, tree: TreeData) => boolean;
|
|
73
|
+
};
|
|
74
|
+
|
|
72
75
|
export type BuildHookClass<T extends BuildScript = BuildScript> = new (...args: any[]) => T;
|
|
76
|
+
export type BatchHookClass<T extends BatchScript = BatchScript> = new (...args: any[]) => T;
|
|
73
77
|
export type NodeArgCheckerClass<T extends NodeArgChecker = NodeArgChecker> = new (
|
|
74
78
|
...args: any[]
|
|
75
79
|
) => T;
|
|
@@ -79,6 +83,11 @@ export type BuildDecorator = {
|
|
|
79
83
|
<T extends BuildHookClass>(target: T, context: ClassDecoratorContext<T>): T | void;
|
|
80
84
|
};
|
|
81
85
|
|
|
86
|
+
export type BatchDecorator = {
|
|
87
|
+
<T extends BatchHookClass>(target: T): T | void;
|
|
88
|
+
<T extends BatchHookClass>(target: T, context: ClassDecoratorContext<T>): T | void;
|
|
89
|
+
};
|
|
90
|
+
|
|
82
91
|
export type CheckDecorator = {
|
|
83
92
|
<T extends NodeArgCheckerClass>(target: T): T | void;
|
|
84
93
|
<T extends NodeArgCheckerClass>(target: T, context: ClassDecoratorContext<T>): T | void;
|
|
@@ -87,10 +96,19 @@ export type CheckDecorator = {
|
|
|
87
96
|
|
|
88
97
|
export type BuildRuntime = {
|
|
89
98
|
build: BuildDecorator;
|
|
99
|
+
batch: BatchDecorator;
|
|
90
100
|
check: CheckDecorator;
|
|
91
101
|
};
|
|
92
102
|
|
|
93
|
-
export declare class
|
|
103
|
+
export declare class BuildHook implements BuildScript {
|
|
104
|
+
constructor(env: BuildEnv);
|
|
105
|
+
onProcessTree?(tree: TreeData, path: string, errors: string[]): TreeData | null;
|
|
106
|
+
onProcessNode?(node: NodeData, errors: string[]): NodeData | null;
|
|
107
|
+
onWriteFile?(path: string, tree: TreeData): void;
|
|
108
|
+
onComplete?(status: "success" | "failure"): void;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export declare class BatchHook implements BatchScript {
|
|
94
112
|
constructor(env: BuildEnv);
|
|
95
113
|
shouldUpgradeTree?(path: string, tree: TreeData): boolean;
|
|
96
114
|
onProcessTree?(tree: TreeData, path: string, errors: string[]): TreeData | null;
|
|
@@ -98,3 +116,5 @@ export declare class Hook implements BuildScript {
|
|
|
98
116
|
onWriteFile?(path: string, tree: TreeData): void;
|
|
99
117
|
onComplete?(status: "success" | "failure"): void;
|
|
100
118
|
}
|
|
119
|
+
|
|
120
|
+
export declare class Hook extends BuildHook {}
|
package/webview/shared/b3type.ts
CHANGED
|
@@ -4,8 +4,7 @@ export type { NodeDef };
|
|
|
4
4
|
export type NodeType = NodeDef["type"] | "Other" | "Error";
|
|
5
5
|
export type NodeArg = Exclude<NodeDef["args"], undefined>[number];
|
|
6
6
|
|
|
7
|
-
export const DOCUMENT_VERSION = "2.
|
|
8
|
-
export const VERSION = DOCUMENT_VERSION;
|
|
7
|
+
export const DOCUMENT_VERSION = "2.2.0";
|
|
9
8
|
|
|
10
9
|
export interface NodeData {
|
|
11
10
|
id: string;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
html,body,#root{width:100%;height:100%;margin:0;padding:0}body{overflow:hidden;color:var(--ant-color-text)}body[data-webview-kind=inspector-sidebar]{--b3-inspector-sidebar-min-width: 300px;--b3-inspector-form-label-width: 110px}body[data-theme=dark]{--b3-panel-border: var(--vscode-sideBar-border, var(--vscode-panel-border, #30363d));--b3-panel-title: var(--vscode-sideBarTitle-foreground, var(--vscode-foreground, #e6edf3));--b3-graph-bg: var(--vscode-editor-background, #010409);--b3-graph-edge: #a3b1bf;--b3-text-muted: var(--vscode-descriptionForeground, #8b949e);--b3-filter-hover-bg: var(--vscode-list-hoverBackground, #30363d);--b3-filter-selected-bg: var(--vscode-list-activeSelectionBackground, #2f81f7);--b3-filter-selected-hover-bg: var( --vscode-list-inactiveSelectionBackground, var(--vscode-list-activeSelectionBackground, #388bfd) );--b3-search-bg: var(--vscode-editorWidget-background, var(--vscode-input-background, #161b22));--b3-search-border-accent: var(--vscode-focusBorder, #f78166);--b3-search-shadow: #0000005c;--b3-override-bar: #d39a21;--b3-node-content-bg: #ffffff;--b3-node-text: #111827;--b3-node-muted: #4b5563;--b3-node-divider: #666666;--b3-node-highlight-bg: #0d1117;--b3-node-highlight-text: #ffffff;--b3-node-gray-fill: #0d1117;--b3-node-gray-border: #30363d;--b3-node-gray-rail: #30363d;--b3-node-gray-text: #666666;--b3-node-id-text: var(--vscode-editorLineNumber-activeForeground, #ffffff);--b3-node-id-stroke: #000000;--b3-node-selection-base: var(--vscode-editor-background, #24303d);--b3-node-selection-strength: 58%;--b3-node-focus-ring: rgba(255, 171, 0, .22);--b3-node-focus-color: var(--vscode-focusBorder, #ffab00);--b3-node-focus-opacity: .45;--b3-node-variable-hover-bg: var(--vscode-list-hoverBackground, rgba(23, 105, 221, .08));--b3-node-variable-active-hover-bg: rgba(255, 255, 255, .14);--b3-subtree-outline: var(--vscode-descriptionForeground, var(--vscode-panel-border, #a5b1be));--b3-warning-text: var(--vscode-errorForeground, #b42318);--b3-drop-before: var(--vscode-editorWarning-foreground, #faad14);--b3-drop-child: var(--vscode-errorForeground, #ff4d4f);--b3-drag-source: var(--vscode-list-dropBackground, #ffa500);--b3-collapse-bg: var(--vscode-editorWidget-background, #ffffff);--b3-collapse-border: var(--vscode-panel-border, #666666);--b3-collapse-text: var(--vscode-descriptionForeground, #666666)}body[data-theme=light]{--b3-panel-border: var(--vscode-sideBar-border, var(--vscode-panel-border, #d0d7de));--b3-panel-title: var(--vscode-sideBarTitle-foreground, var(--vscode-foreground, #1f2328));--b3-graph-bg: var(--vscode-editor-background, #f6f8fa);--b3-graph-edge: #a3b1bf;--b3-text-muted: var(--vscode-descriptionForeground, #57606a);--b3-filter-hover-bg: var(--vscode-list-hoverBackground, #eaeef2);--b3-filter-selected-bg: var(--vscode-list-activeSelectionBackground, #0969da);--b3-filter-selected-hover-bg: var( --vscode-list-inactiveSelectionBackground, var(--vscode-list-activeSelectionBackground, #1f6feb) );--b3-search-bg: var(--vscode-editorWidget-background, var(--vscode-input-background, #ffffff));--b3-search-border-accent: var(--vscode-focusBorder, #0969da);--b3-search-shadow: #1f232826;--b3-override-bar: #d39a21;--b3-node-content-bg: #ffffff;--b3-node-text: #111827;--b3-node-muted: #4b5563;--b3-node-divider: #666666;--b3-node-highlight-bg: #0d1117;--b3-node-highlight-text: #ffffff;--b3-node-gray-fill: #0d1117;--b3-node-gray-border: #30363d;--b3-node-gray-rail: #30363d;--b3-node-gray-text: #666666;--b3-node-id-text: var( --vscode-editorLineNumber-activeForeground, var(--vscode-foreground, #1f2328) );--b3-node-id-stroke: #ffffff;--b3-node-selection-base: var(--vscode-editor-background, #ffffff);--b3-node-selection-strength: 38%;--b3-node-focus-ring: rgba(191, 135, 0, .28);--b3-node-focus-color: var(--vscode-focusBorder, #9a6700);--b3-node-focus-opacity: .5;--b3-node-variable-hover-bg: var(--vscode-list-hoverBackground, rgba(9, 105, 218, .1));--b3-node-variable-active-hover-bg: rgba(255, 255, 255, .18);--b3-subtree-outline: var(--vscode-descriptionForeground, var(--vscode-panel-border, #6e7781));--b3-warning-text: var(--vscode-errorForeground, #cf222e);--b3-drop-before: var(--vscode-editorWarning-foreground, #9a6700);--b3-drop-child: var(--vscode-errorForeground, #cf222e);--b3-drag-source: var(--vscode-list-dropBackground, #fb8500);--b3-collapse-bg: var(--vscode-editorWidget-background, #ffffff);--b3-collapse-border: var(--vscode-panel-border, #8c959f);--b3-collapse-text: var(--vscode-descriptionForeground, #57606a)}body[data-webview-kind=inspector-sidebar][data-theme=dark]{--b3-panel-border: var( --vscode-sideBarSectionHeader-border, var(--vscode-sideBar-border, #2b2b2b) );--b3-panel-title: var(--vscode-sideBarTitle-foreground, var(--vscode-foreground, #cccccc))}body[data-webview-kind=inspector-sidebar][data-theme=light]{--b3-panel-border: var( --vscode-sideBarSectionHeader-border, var(--vscode-sideBar-border, #e5e5e5) );--b3-panel-title: var(--vscode-sideBarTitle-foreground, var(--vscode-foreground, #3c3c3c))}.b3-shell{height:100%}.b3-body{display:flex;flex-direction:row;min-height:0;flex:1}.b3-content{flex:1 1 0;width:0;min-height:0;padding:0;overflow:hidden;background:var(--b3-graph-bg)}.b3-sider{border-left:1px solid var(--b3-panel-border);overflow:hidden}.b3-sider-embedded.ant-layout-sider{min-width:320px!important;max-width:460px;height:100%;background:transparent!important}.b3-sider-embedded>.ant-layout-sider-children{height:100%;background:transparent}.b3-inspector{height:100%;display:flex;flex-direction:column}.b3-inspector-empty{height:100%;padding:20px 16px;text-align:center}.b3-inspector-header{padding:12px;border-bottom:1px solid var(--b3-panel-border)}.b3-inspector-header-row{min-width:0}.b3-inspector-banner{margin:12px 12px 0}.b3-inspector-header .ant-typography{font-size:18px;font-weight:600;line-height:1.35;color:var(--b3-panel-title)}.b3-inspector-content{--b3-inspector-content-padding: 16px;min-height:0;flex:1;overflow:auto;padding:var(--b3-inspector-content-padding)}.b3-inspector-skeleton-content{display:flex;flex-direction:column;gap:10px}.b3-inspector-skeleton-title.ant-skeleton.ant-skeleton-element,.b3-inspector-skeleton-title .ant-skeleton-input{width:120px}.b3-inspector-skeleton-row{display:grid;grid-template-columns:var(--b3-inspector-form-label-width, 110px) minmax(0,1fr);column-gap:8px;align-items:center}.b3-inspector-skeleton-label.ant-skeleton.ant-skeleton-element,.b3-inspector-skeleton-label .ant-skeleton-input{width:72px;justify-self:end}.b3-inspector-skeleton-field.ant-skeleton.ant-skeleton-element,.b3-inspector-skeleton-field .ant-skeleton-input{width:100%}.b3-inspector-skeleton-section.ant-skeleton.ant-skeleton-element,.b3-inspector-skeleton-section .ant-skeleton-input{width:96px;margin-top:4px}.b3-inspector-form .ant-form-item{margin-bottom:8px}.b3-inspector-form .ant-form-item-label{min-width:var(--b3-inspector-form-label-width, 110px);max-width:var(--b3-inspector-form-label-width, 110px);flex:0 0 var(--b3-inspector-form-label-width, 110px);padding-right:0}.b3-inspector-form .ant-form-item-label>label{width:100%;height:auto;min-height:32px;align-items:flex-start;justify-content:flex-end;color:var(--ant-color-text);line-height:1.35}.b3-form-label{display:inline-flex;align-items:flex-start;justify-content:flex-end;width:100%;max-width:100%;min-width:0;padding-top:calc((32px - 1.35em)/2)}.b3-form-label-text{min-width:0;flex:1 1 auto;text-align:right;white-space:normal;word-break:break-word;overflow-wrap:anywhere}.b3-form-required-mark{color:var(--ant-color-error);margin-right:4px}.b3-form-label-colon{flex:0 0 auto;padding-left:2px;white-space:nowrap}.b3-inspector-form .ant-form-item-control{min-width:0}.b3-inspector-form .ant-form-item-control-input,.b3-inspector-form .ant-form-item-control-input-content{min-width:0;width:100%}.b3-inspector-form .ant-form-item-explain{font-size:small;word-break:break-word}.b3-inspector-form .b3-section-divider.ant-divider-horizontal.ant-divider-with-text{margin-bottom:0}.b3-inspector-form .b3-section-divider+.ant-form-item,.b3-inspector-form .b3-section-divider+.b3-list-block,.b3-inspector-form .b3-section-divider+.b3-override-bar{margin-top:6px}.b3-section-title{margin:0;font-size:1em;font-weight:600}.b3-inspector-form .ant-select,.b3-inspector-form .ant-select-auto-complete,.b3-inspector-form .ant-input-number{width:100%}.b3-list-block{display:flex;flex-direction:column;row-gap:0}.b3-inspector .ant-btn.ant-btn-dashed{background:transparent}.b3-inspector .ant-btn.ant-btn-dashed:not(:disabled):not(.ant-btn-disabled):hover,.b3-inspector .ant-btn.ant-btn-dashed:not(:disabled):not(.ant-btn-disabled):focus-visible{background:var(--ant-color-fill-tertiary)}.b3-decl-group{margin-bottom:5px}.b3-subtree-path-row{margin-bottom:6px}.b3-decl-vars{display:flex;flex-direction:column;row-gap:2px}.b3-var-row,.b3-var-row-compact{width:100%}.b3-var-counter{display:flex;align-items:center;justify-content:flex-start;gap:4px;min-width:40px;max-width:40px;padding:0 6px 0 5px;cursor:pointer;color:var(--ant-color-text-secondary);background:var(--ant-color-fill-tertiary);border:1px solid var(--ant-color-border);border-right:0;border-radius:6px 0 0 6px}.b3-custom-type-badge{display:flex;align-items:center;justify-content:center;height:32px;flex:0 0 40px;min-width:40px;max-width:40px;padding:0 6px;color:var(--ant-color-text-secondary);background:var(--ant-color-fill-tertiary);border:1px solid var(--ant-color-border);border-right:0;border-radius:6px 0 0 6px;cursor:help;-webkit-user-select:none;user-select:none;font-size:12px;font-weight:700;letter-spacing:.04em}.b3-custom-type-badge .codicon{font-size:16px}.b3-custom-type-badge.is-string{color:var(--ant-color-blue-3)}.b3-custom-type-badge.is-number{color:var(--ant-color-gold-3)}.b3-custom-type-badge.is-boolean{color:var(--ant-color-green-3)}.b3-custom-type-badge.is-invalid{color:var(--ant-color-error)}.b3-inline-remove{margin-top:10px;color:var(--ant-color-text-tertiary);cursor:pointer}.b3-inline-remove:hover{color:var(--ant-color-error)}.b3-inline-remove-compact{color:var(--ant-color-text-tertiary);cursor:pointer}.b3-inline-remove-compact:hover{color:var(--ant-color-error)}.b3-inline-action{color:var(--ant-color-text-tertiary);cursor:pointer}.b3-inline-action:hover{color:var(--ant-color-text)}.b3-row-spacer{width:14px}.b3-node-subtree-button{margin-top:12px}.b3-override-bar{position:relative}.b3-override-rail{position:absolute;top:0;left:calc(-1 * var(--b3-inspector-content-padding, 16px));bottom:0;width:6px;cursor:pointer;border-radius:0;background:var(--b3-override-bar)}.b3-markdown{padding:0 4px;margin-bottom:12px;color:var(--ant-color-text-secondary);font-size:13px;word-break:break-word}.b3-markdown code{padding:.15em .3em;border-radius:6px;background:color-mix(in srgb,var(--ant-color-fill) 72%,transparent);white-space:break-spaces}body[data-webview-kind=inspector-sidebar] .b3-inspector{overflow-x:auto;overflow-y:hidden}body[data-webview-kind=inspector-sidebar] .b3-inspector-header,body[data-webview-kind=inspector-sidebar] .b3-inspector-banner,body[data-webview-kind=inspector-sidebar] .b3-inspector-content,body[data-webview-kind=inspector-sidebar] .b3-inspector-skeleton-content{min-width:var(--b3-inspector-sidebar-min-width)}body[data-webview-kind=inspector-sidebar] .b3-inspector-form.ant-form:not(.ant-form-inline) .ant-form-item{flex-wrap:nowrap}body[data-webview-kind=inspector-sidebar] .b3-inspector-form.ant-form:not(.ant-form-inline) .ant-form-item .ant-form-item-label{padding:0!important;margin:0!important}body[data-webview-kind=inspector-sidebar] .b3-inspector-form .ant-form-item:last-child{margin-bottom:0!important}body[data-webview-kind=inspector-sidebar] .b3-inspector-form .b3-section-divider+.ant-form-item,body[data-webview-kind=inspector-sidebar] .b3-inspector-form .b3-section-divider+.b3-list-block,body[data-webview-kind=inspector-sidebar] .b3-inspector-form .b3-section-divider+.b3-override-bar{margin-top:4px}.b3-search-overlay{position:absolute;top:0;right:0;z-index:100;width:100%;justify-content:flex-end;padding:10px 10px 0 0}.b3-search-box{align-items:center;padding:4px 10px;border-left:3px solid var(--b3-search-border-accent);border-radius:4px;background:var(--b3-search-bg);box-shadow:0 0 8px 2px var(--b3-search-shadow)}.b3-search-input{width:220px}.b3-search-input.ant-input-affix-wrapper.ant-input-affix-wrapper-sm{border-radius:2px;padding-top:1px;padding-bottom:1px}.b3-search-suffix{align-items:center}.b3-search-counter{min-width:40px;padding:0 10px 0 5px;color:var(--b3-text-muted)}.b3-search-filter:hover{background-color:var(--b3-filter-hover-bg)!important}.b3-search-filter-selected{background-color:var(--b3-filter-selected-bg)!important}.b3-search-filter-selected:hover{background-color:var(--b3-filter-selected-hover-bg)!important}.b3-graph-shell{position:relative;width:100%;height:100%;min-height:0}.b3-context-menu-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;font-size:17px;line-height:1}.b3-graph{position:relative;width:100%;height:100%;min-height:0;cursor:grab;-webkit-user-select:none;user-select:none;background:var(--b3-graph-bg)}.b3-graph.is-panning{cursor:grabbing}.b3-graph-viewport{position:relative;width:100%;height:100%;overflow:hidden}.b3-graph-world{position:absolute;left:0;top:0;transform-origin:0 0}.b3-graph-edges{position:absolute;top:0;right:0;bottom:0;left:0;overflow:visible;pointer-events:none;shape-rendering:geometricPrecision}.b3-graph-edges path{fill:none;stroke:var(--b3-graph-edge)}.b3-graph-nodes{position:absolute;top:0;right:0;bottom:0;left:0}.b3-graph-node{--b3-node-scale: 1;box-sizing:border-box;position:absolute;left:0;top:0;overflow:visible}.b3-node-floating-id{position:absolute;top:calc(50% + 2px * var(--b3-node-scale));right:calc(100% + 3px * var(--b3-node-scale));z-index:1;color:var(--b3-node-id-text);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:calc(20px * var(--b3-node-scale));font-weight:700;line-height:1;white-space:nowrap;pointer-events:none;transform:translateY(-50%) scale(calc(1 / var(--b3-node-scale)));transform-origin:right center;text-shadow:0 0 1px var(--b3-node-id-stroke),0 1px 0 var(--b3-node-id-stroke),1px 0 0 var(--b3-node-id-stroke),-1px 0 0 var(--b3-node-id-stroke),0 -1px 0 var(--b3-node-id-stroke)}.b3-node-floating-id.is-gray{color:var(--b3-node-gray-text)}.b3-node{--b3-node-accent: #707070;box-sizing:border-box;position:relative;width:calc(100% * var(--b3-node-scale));height:calc(100% * var(--b3-node-scale));overflow:visible;isolation:isolate;transform:scale(calc(1 / var(--b3-node-scale)));transform-origin:0 0;border-width:calc(2px * var(--b3-node-scale));border-style:solid;border-color:var(--b3-node-accent);border-radius:calc(4px * var(--b3-node-scale));background:var(--b3-node-accent);transition:border-color .12s ease,box-shadow .12s ease,opacity .15s ease}.b3-node:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;opacity:0;border-radius:calc(14px * var(--b3-node-scale));background:transparent;box-shadow:0 0 0 0 transparent;pointer-events:none;transition:opacity .12s ease,box-shadow .12s ease}.b3-node:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;pointer-events:none;transition:opacity .12s ease}.b3-node:hover,.b3-node.is-selected{box-shadow:none}.b3-node.is-selected:before{opacity:1;box-shadow:0 0 0 calc(10px * var(--b3-node-scale)) color-mix(in srgb,var(--b3-node-accent) var(--b3-node-selection-strength),var(--b3-node-selection-base))}.b3-node.is-focused{box-shadow:0 0 0 calc(3px * var(--b3-node-scale)) var(--b3-node-focus-ring)}.b3-node.is-drag-source{opacity:.7}.b3-node.is-drop-before,.b3-node.is-drop-after{border-color:var(--b3-drop-before)}.b3-node.is-drop-child{border-color:var(--b3-drop-child)}.b3-node.is-drop-before:after,.b3-node.is-drop-after:after,.b3-node.is-drop-child:after{opacity:1}.b3-node.is-drop-before:after{top:0;right:0;bottom:50%;left:0;background:color-mix(in srgb,var(--b3-drop-before) 22%,transparent)}.b3-node.is-drop-after:after{top:50%;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--b3-drop-before) 22%,transparent)}.b3-node.is-drop-child:after{top:0;right:0;bottom:0;left:50%;background:color-mix(in srgb,var(--b3-drop-child) 24%,transparent)}.b3-node.is-gray{opacity:.45}.b3-node.has-var-hit{box-shadow:none}.b3-node .ant-card-body{padding:0}.b3-node-shell{box-sizing:border-box;display:grid;grid-template-columns:calc(40px * var(--b3-node-scale)) minmax(0,1fr);height:100%;min-height:calc(60px * var(--b3-node-scale));overflow:hidden;border-radius:calc(2px * var(--b3-node-scale))}.b3-node-icon-rail{display:flex;align-items:center;justify-content:center;background:transparent}.b3-node-icon{width:calc(30px * var(--b3-node-scale));height:calc(30px * var(--b3-node-scale));object-fit:contain;pointer-events:none}.b3-node-content{box-sizing:border-box;height:100%;min-width:0;background:var(--b3-node-content-bg);border-radius:0 calc(2px * var(--b3-node-scale)) calc(2px * var(--b3-node-scale)) 0;padding:calc(2px * var(--b3-node-scale)) calc(8px * var(--b3-node-scale)) calc(6px * var(--b3-node-scale)) calc(6px * var(--b3-node-scale))}.b3-node-header{display:flex;align-items:flex-start;justify-content:space-between;gap:calc(4px * var(--b3-node-scale));min-height:calc(20px * var(--b3-node-scale))}.b3-node-title{overflow:hidden;color:var(--b3-node-text);font-size:calc(14px * var(--b3-node-scale));font-weight:700;line-height:calc(20px * var(--b3-node-scale));text-overflow:ellipsis;white-space:nowrap}.b3-node-header-icons{display:flex;align-items:flex-start;gap:calc(2px * var(--b3-node-scale));flex:0 0 auto}.b3-node-flag-icon{width:calc(16px * var(--b3-node-scale));height:calc(16px * var(--b3-node-scale));object-fit:contain;margin-top:calc(4px * var(--b3-node-scale));pointer-events:none}.b3-node-status-icon{width:calc(20px * var(--b3-node-scale));height:calc(20px * var(--b3-node-scale));object-fit:contain;flex:0 0 auto;margin-top:calc(3px * var(--b3-node-scale));pointer-events:none}.b3-node-divider{height:calc(1px * var(--b3-node-scale));margin:0 0 calc(5px * var(--b3-node-scale));background:var(--b3-node-divider)}.b3-node-detail-row{display:flex;align-items:flex-start;gap:0;min-width:0;padding:0;margin:0;color:var(--b3-node-text);font-size:calc(12px * var(--b3-node-scale));line-height:calc(20px * var(--b3-node-scale));border-radius:calc(4px * var(--b3-node-scale))}.b3-node-detail-row.is-active{color:var(--b3-node-highlight-text);background:var(--b3-node-highlight-bg)}.b3-node-detail-row.is-subtle{color:var(--b3-node-muted)}.b3-node-detail-row.is-warning{color:var(--b3-warning-text)}.b3-node-detail-row.is-mark{font-weight:700}.b3-node-detail-label{flex:0 0 auto;color:inherit;font-weight:400}.b3-node-detail-value{min-width:0;flex:1;word-break:break-word}.b3-node-detail-row.is-active .b3-node-detail-label,.b3-node-detail-row.is-active .b3-node-detail-value,.b3-node-detail-row.is-active .b3-node-json-punctuation{color:inherit}.b3-node-detail-row.is-mark .b3-node-detail-value{overflow:hidden;font-weight:700;text-overflow:ellipsis;white-space:nowrap;word-break:normal}.b3-node-detail-row.is-mark .b3-node-detail-label{font-weight:700}.b3-node-detail-row.is-subtle .b3-node-detail-label{color:var(--b3-node-muted)}.b3-node-detail-row.is-warning .b3-node-detail-label{color:var(--b3-warning-text)}.b3-node-variable-button{padding:0;margin:0;color:inherit;font:inherit;font-weight:inherit;line-height:inherit;background:transparent;border:0;border-radius:calc(2px * var(--b3-node-scale));cursor:pointer}.b3-node-variable-button:hover{color:inherit;background:var(--b3-node-variable-hover-bg)}.b3-node-variable-button.is-active{color:inherit;font-weight:inherit}.b3-node-detail-row.is-active .b3-node-variable-button:hover{background:var(--b3-node-variable-active-hover-bg)}.b3-node-json-punctuation{color:inherit}.b3-node.is-composite{--b3-node-accent: #34d800}.b3-node.is-decorator{--b3-node-accent: #b2eb35}.b3-node.is-condition{--b3-node-accent: #f72585}.b3-node.is-action{--b3-node-accent: #1769dd}.b3-node.is-other{--b3-node-accent: #707070}.b3-node.is-error{--b3-node-accent: #ff0000}.b3-loading{height:100%}
|