vscode-behavior3 2.3.3 → 2.5.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.
@@ -5,12 +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-DuZsOgps.js"></script>
8
+ <script type="module" crossorigin src="./assets/editor-BPxOdZMY.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="./assets/rolldown-runtime-BYbx6iT9.js">
10
10
  <link rel="modulepreload" crossorigin href="./assets/graph-vendor-ww5KcpJ-.js">
11
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">
12
+ <link rel="modulepreload" crossorigin href="./assets/vendor-ZD6A8unu.js">
13
+ <link rel="stylesheet" crossorigin href="./assets/editor-CPHgtP2i.css">
14
14
  </head>
15
15
  <body>
16
16
  <div id="root"></div>
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.3.3",
5
+ "version": "2.5.1",
6
6
  "publisher": "codetypess",
7
7
  "repository": {
8
8
  "type": "git",
@@ -329,7 +329,7 @@
329
329
  "format": "prettier --write package.json \"test/**/*.js\" \"test/**/*.ts\""
330
330
  },
331
331
  "dependencies": {
332
- "behavior3": "^1.1.0"
332
+ "behavior3": "^1.3.0"
333
333
  },
334
334
  "devDependencies": {
335
335
  "@ant-design/icons": "^6.1.1",
@@ -2,6 +2,18 @@ import type { NodeDef } from "behavior3";
2
2
  import type { NodeData, TreeData } from "./b3type";
3
3
 
4
4
  export type NodeArg = Exclude<NodeDef["args"], undefined>[number];
5
+ export type NodeInputSlot = Exclude<Exclude<NodeDef["input"], undefined>[number], string>;
6
+ export type NodeOutputSlot = Exclude<Exclude<NodeDef["output"], undefined>[number], string>;
7
+ export type NodeFieldKind = "arg" | "input" | "output";
8
+
9
+ export type NodeSlotField = {
10
+ name: string;
11
+ label: string;
12
+ required: boolean;
13
+ variadic: boolean;
14
+ checker?: string;
15
+ visible?: string;
16
+ };
5
17
 
6
18
  export type BuildLogger = {
7
19
  log: (...args: unknown[]) => void;
@@ -11,15 +23,140 @@ export type BuildLogger = {
11
23
  error: (...args: unknown[]) => void;
12
24
  };
13
25
 
26
+ export type FsEncoding =
27
+ | "ascii"
28
+ | "base64"
29
+ | "base64url"
30
+ | "binary"
31
+ | "hex"
32
+ | "latin1"
33
+ | "ucs-2"
34
+ | "ucs2"
35
+ | "utf-8"
36
+ | "utf16le"
37
+ | "utf8";
38
+
39
+ export type FsFileData = string | Uint8Array;
40
+
41
+ export type FsReadFileOptions = {
42
+ encoding?: FsEncoding | null;
43
+ flag?: string;
44
+ };
45
+
46
+ export type FsWriteFileOptions = {
47
+ encoding?: FsEncoding | null;
48
+ mode?: number | string;
49
+ flag?: string;
50
+ flush?: boolean;
51
+ };
52
+
53
+ export type FsDirentLike = {
54
+ name: string;
55
+ path?: string;
56
+ parentPath?: string;
57
+ isBlockDevice(): boolean;
58
+ isCharacterDevice(): boolean;
59
+ isDirectory(): boolean;
60
+ isFIFO(): boolean;
61
+ isFile(): boolean;
62
+ isSocket(): boolean;
63
+ isSymbolicLink(): boolean;
64
+ };
65
+
66
+ export type FsStatsLike = {
67
+ atime: Date;
68
+ atimeMs: number;
69
+ birthtime: Date;
70
+ birthtimeMs: number;
71
+ blocks: number;
72
+ blksize: number;
73
+ ctime: Date;
74
+ ctimeMs: number;
75
+ dev: number;
76
+ gid: number;
77
+ ino: number;
78
+ mode: number;
79
+ mtime: Date;
80
+ mtimeMs: number;
81
+ nlink: number;
82
+ rdev: number;
83
+ size: number;
84
+ uid: number;
85
+ isBlockDevice(): boolean;
86
+ isCharacterDevice(): boolean;
87
+ isDirectory(): boolean;
88
+ isFIFO(): boolean;
89
+ isFile(): boolean;
90
+ isSocket(): boolean;
91
+ isSymbolicLink(): boolean;
92
+ };
93
+
94
+ export type FsMkdirOptions = {
95
+ recursive?: boolean;
96
+ mode?: number | string;
97
+ };
98
+
99
+ export type FsReaddirOptions = {
100
+ encoding?: FsEncoding;
101
+ recursive?: boolean;
102
+ withFileTypes?: false;
103
+ };
104
+
105
+ export type FsReaddirDirentOptions = {
106
+ encoding?: FsEncoding;
107
+ recursive?: boolean;
108
+ withFileTypes: true;
109
+ };
110
+
111
+ export type FsMkdtempOptions = {
112
+ encoding?: FsEncoding;
113
+ };
114
+
115
+ export type FsRmOptions = {
116
+ force?: boolean;
117
+ maxRetries?: number;
118
+ recursive?: boolean;
119
+ retryDelay?: number;
120
+ };
121
+
122
+ export type FsCpOptions = {
123
+ dereference?: boolean;
124
+ errorOnExist?: boolean;
125
+ filter?: (source: string, destination: string) => boolean;
126
+ force?: boolean;
127
+ mode?: number;
128
+ preserveTimestamps?: boolean;
129
+ recursive?: boolean;
130
+ verbatimSymlinks?: boolean;
131
+ };
132
+
14
133
  export type FsLike = {
15
- readFileSync(path: string, encoding: "utf8" | "utf-8"): string;
16
- writeFileSync(path: string, data: string, encoding?: "utf8" | "utf-8"): void;
134
+ accessSync(path: string, mode?: number): void;
135
+ appendFileSync(path: string, data: FsFileData, options?: FsEncoding | FsWriteFileOptions): void;
136
+ chmodSync(path: string, mode: number | string): void;
17
137
  readdirSync(path: string): string[];
18
- readdirSync(path: string, options: { encoding: "utf8" | "utf-8"; recursive?: boolean }): string[];
19
- statSync(path: string): { mtimeMs: number; isFile(): boolean };
20
- mkdirSync(path: string, options?: { recursive?: boolean }): unknown;
21
- copyFileSync(source: string, destination: string): void;
138
+ readdirSync(path: string, options: FsReaddirOptions): string[];
139
+ readdirSync(path: string, options: FsReaddirDirentOptions): FsDirentLike[];
140
+ readFileSync(path: string): Uint8Array;
141
+ readFileSync(path: string, encoding: FsEncoding): string;
142
+ readFileSync(path: string, options: FsReadFileOptions & { encoding: FsEncoding }): string;
143
+ readFileSync(path: string, options?: FsReadFileOptions): Uint8Array;
144
+ readlinkSync(path: string, options?: FsEncoding | { encoding?: FsEncoding }): string;
145
+ realpathSync(path: string, options?: FsEncoding | { encoding?: FsEncoding }): string;
146
+ writeFileSync(path: string, data: FsFileData, options?: FsEncoding | FsWriteFileOptions): void;
147
+ copyFileSync(source: string, destination: string, mode?: number): void;
148
+ cpSync(source: string, destination: string, options?: FsCpOptions): void;
149
+ existsSync(path: string): boolean;
150
+ lstatSync(path: string): FsStatsLike;
151
+ mkdirSync(path: string, options?: FsMkdirOptions | number | string): string | undefined;
152
+ mkdtempSync(prefix: string, options?: FsEncoding | FsMkdtempOptions): string;
153
+ renameSync(oldPath: string, newPath: string): void;
154
+ rmSync(path: string, options?: FsRmOptions): void;
155
+ rmdirSync(path: string, options?: FsRmOptions): void;
156
+ statSync(path: string): FsStatsLike;
157
+ symlinkSync(target: string, path: string, type?: "dir" | "file" | "junction"): void;
22
158
  unlinkSync(path: string): void;
159
+ utimesSync(path: string, atime: string | number | Date, mtime: string | number | Date): void;
23
160
  };
24
161
 
25
162
  export type PathLike = {
@@ -45,20 +182,46 @@ export type BuildEnv = {
45
182
  logger: BuildLogger;
46
183
  };
47
184
 
48
- export type NodeArgCheckResult = string | string[] | null | undefined;
185
+ export type NodeFieldCheckResult = string | string[] | null | undefined;
186
+ export type NodeFieldVisibleResult = boolean | null | undefined;
49
187
 
50
- export type NodeArgCheckContext = {
188
+ type NodeFieldBaseContext = {
51
189
  node: NodeData;
52
190
  tree: TreeData;
53
191
  nodeDef: NodeDef;
54
- arg: NodeArg;
55
- argName: string;
192
+ fieldKind: NodeFieldKind;
193
+ fieldName: string;
194
+ fieldIndex?: number;
56
195
  treePath: string;
57
196
  env: BuildEnv;
58
197
  };
59
198
 
60
- export interface NodeArgChecker {
61
- validate(value: unknown, ctx: NodeArgCheckContext): NodeArgCheckResult;
199
+ export type NodeFieldCheckContext =
200
+ | (NodeFieldBaseContext & {
201
+ fieldKind: "arg";
202
+ arg: NodeArg;
203
+ })
204
+ | (NodeFieldBaseContext & {
205
+ fieldKind: "input";
206
+ slot: NodeInputSlot;
207
+ slotField: NodeSlotField;
208
+ fieldIndex: number;
209
+ })
210
+ | (NodeFieldBaseContext & {
211
+ fieldKind: "output";
212
+ slot: NodeOutputSlot;
213
+ slotField: NodeSlotField;
214
+ fieldIndex: number;
215
+ });
216
+
217
+ export type NodeFieldVisibleContext = NodeFieldCheckContext;
218
+
219
+ export interface NodeFieldChecker {
220
+ validate(value: unknown, ctx: NodeFieldCheckContext): NodeFieldCheckResult;
221
+ }
222
+
223
+ export interface NodeFieldVisible {
224
+ visible(value: unknown, ctx: NodeFieldVisibleContext): NodeFieldVisibleResult;
62
225
  }
63
226
 
64
227
  export type BuildScript = {
@@ -74,7 +237,10 @@ export type BatchScript = BuildScript & {
74
237
 
75
238
  export type BuildHookClass<T extends BuildScript = BuildScript> = new (...args: any[]) => T;
76
239
  export type BatchHookClass<T extends BatchScript = BatchScript> = new (...args: any[]) => T;
77
- export type NodeArgCheckerClass<T extends NodeArgChecker = NodeArgChecker> = new (
240
+ export type NodeFieldCheckerClass<T extends NodeFieldChecker = NodeFieldChecker> = new (
241
+ ...args: any[]
242
+ ) => T;
243
+ export type NodeFieldVisibleClass<T extends NodeFieldVisible = NodeFieldVisible> = new (
78
244
  ...args: any[]
79
245
  ) => T;
80
246
 
@@ -89,15 +255,22 @@ export type BatchDecorator = {
89
255
  };
90
256
 
91
257
  export type CheckDecorator = {
92
- <T extends NodeArgCheckerClass>(target: T): T | void;
93
- <T extends NodeArgCheckerClass>(target: T, context: ClassDecoratorContext<T>): T | void;
94
- (name?: string): <T extends NodeArgCheckerClass>(target: T) => T | void;
258
+ <T extends NodeFieldCheckerClass>(target: T): T | void;
259
+ <T extends NodeFieldCheckerClass>(target: T, context: ClassDecoratorContext<T>): T | void;
260
+ (name?: string): <T extends NodeFieldCheckerClass>(target: T) => T | void;
261
+ };
262
+
263
+ export type VisibleDecorator = {
264
+ <T extends NodeFieldVisibleClass>(target: T): T | void;
265
+ <T extends NodeFieldVisibleClass>(target: T, context: ClassDecoratorContext<T>): T | void;
266
+ (name?: string): <T extends NodeFieldVisibleClass>(target: T) => T | void;
95
267
  };
96
268
 
97
269
  export type BuildRuntime = {
98
270
  build: BuildDecorator;
99
271
  batch: BatchDecorator;
100
272
  check: CheckDecorator;
273
+ visible: VisibleDecorator;
101
274
  };
102
275
 
103
276
  export declare class BuildHook implements BuildScript {
@@ -1 +0,0 @@
1
- html,body,#root{width:100%;height:100%;margin:0;padding:0}body{color:var(--ant-color-text);overflow:hidden}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:#fff;--b3-node-text:#111827;--b3-node-muted:#4b5563;--b3-node-divider:#666;--b3-node-highlight-bg:#0d1117;--b3-node-highlight-text:#fff;--b3-node-gray-fill:#0d1117;--b3-node-gray-border:#30363d;--b3-node-gray-rail:#30363d;--b3-node-gray-text:#666;--b3-node-id-text:var(--vscode-editorLineNumber-activeForeground,#fff);--b3-node-id-stroke:#000;--b3-node-selection-base:var(--vscode-editor-background,#24303d);--b3-node-selection-strength:58%;--b3-node-focus-ring:#ffab0038;--b3-node-focus-color:var(--vscode-focusBorder,#ffab00);--b3-node-focus-opacity:.45;--b3-node-variable-hover-bg:var(--vscode-list-hoverBackground,#1769dd14);--b3-node-variable-active-hover-bg:#ffffff24;--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,orange);--b3-collapse-bg:var(--vscode-editorWidget-background,#fff);--b3-collapse-border:var(--vscode-panel-border,#666);--b3-collapse-text:var(--vscode-descriptionForeground,#666)}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,#fff));--b3-search-border-accent:var(--vscode-focusBorder,#0969da);--b3-search-shadow:#1f232826;--b3-override-bar:#d39a21;--b3-node-content-bg:#fff;--b3-node-text:#111827;--b3-node-muted:#4b5563;--b3-node-divider:#666;--b3-node-highlight-bg:#0d1117;--b3-node-highlight-text:#fff;--b3-node-gray-fill:#0d1117;--b3-node-gray-border:#30363d;--b3-node-gray-rail:#30363d;--b3-node-gray-text:#666;--b3-node-id-text:var(--vscode-editorLineNumber-activeForeground,var(--vscode-foreground,#1f2328));--b3-node-id-stroke:#fff;--b3-node-selection-base:var(--vscode-editor-background,#fff);--b3-node-selection-strength:38%;--b3-node-focus-ring:#bf870047;--b3-node-focus-color:var(--vscode-focusBorder,#9a6700);--b3-node-focus-opacity:.5;--b3-node-variable-hover-bg:var(--vscode-list-hoverBackground,#0969da1a);--b3-node-variable-active-hover-bg:#ffffff2e;--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,#fff);--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,#ccc))}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{flex-direction:row;flex:1;min-height:0;display:flex}.b3-content{background:var(--b3-graph-bg);flex:1 1 0;width:0;min-height:0;padding:0;overflow:hidden}.b3-sider{border-left:1px solid var(--b3-panel-border);overflow:hidden}.b3-sider-embedded.ant-layout-sider{max-width:460px;height:100%;background:0 0!important;min-width:320px!important}.b3-sider-embedded>.ant-layout-sider-children{background:0 0;height:100%}.b3-inspector{--b3-inspector-font-size:var(--vscode-font-size,13px);--b3-inspector-control-height:max(26px, calc(var(--b3-inspector-font-size) * 2 + 2px));--ant-font-size:var(--b3-inspector-font-size);height:100%;font-size:var(--b3-inspector-font-size);flex-direction:column;display:flex}.b3-inspector-empty{text-align:center;height:100%;font-size:var(--vscode-font-size,13px);padding:20px 16px}.b3-inspector-header{border-bottom:1px solid var(--b3-panel-border);padding:12px}.b3-inspector-header-row{min-width:0}.b3-inspector-header-embedded{padding:8px 10px 8px 12px}.b3-inspector-header-toolbar-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.b3-inspector-header-title.ant-typography{letter-spacing:.04em;min-width:0;margin:0}.b3-inspector-toolbar-actions{flex:none}.b3-inspector-toolbar-button.ant-btn{width:24px;min-width:24px;height:24px;color:var(--vscode-icon-foreground,var(--ant-color-icon));padding:0}.b3-inspector-toolbar-codicon{justify-content:center;align-items:center;font-size:14px;line-height:1;display:inline-flex}.b3-inspector-toolbar-button.ant-btn:not(:disabled):not(.ant-btn-disabled):hover,.b3-inspector-toolbar-button.ant-btn:not(:disabled):not(.ant-btn-disabled):focus-visible{background:var(--vscode-toolbar-hoverBackground,var(--ant-color-fill-tertiary));color:var(--vscode-icon-foreground,var(--ant-color-icon))}.b3-inspector-banner{margin:12px 12px 0}.b3-inspector-header .ant-typography{color:var(--b3-panel-title);font-size:18px;font-weight:600;line-height:1.35}.b3-inspector-content{--b3-inspector-content-padding:16px;min-height:0;padding:var(--b3-inspector-content-padding);flex:1;overflow:auto}.b3-inspector-skeleton-content{flex-direction:column;gap:10px;display:flex}.b3-inspector-skeleton-title.ant-skeleton.ant-skeleton-element,.b3-inspector-skeleton-title .ant-skeleton-input{width:120px}.b3-inspector-skeleton-row{grid-template-columns:var(--b3-inspector-form-label-width,110px) minmax(0, 1fr);align-items:center;column-gap:8px;display:grid}.b3-inspector-skeleton-label.ant-skeleton.ant-skeleton-element,.b3-inspector-skeleton-label .ant-skeleton-input{justify-self:end;width:72px}.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:6px}.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:var(--b3-inspector-control-height);color:var(--ant-color-text);justify-content:flex-end;align-items:flex-start;line-height:1.35}.b3-form-label{width:100%;min-width:0;max-width:100%;padding-top:calc((var(--b3-inspector-control-height) - 1.35em) / 2);justify-content:flex-end;align-items:flex-start;display:inline-flex}.b3-form-label-text{text-align:right;white-space:normal;word-break:break-word;overflow-wrap:anywhere;flex:auto;min-width:0}.b3-form-required-mark{color:var(--ant-color-error);margin-right:4px}.b3-form-label-colon{white-space:nowrap;flex:none;padding-left:2px}.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{width:100%;min-width:0}.b3-node-identity-field.ant-space-compact{width:100%}.b3-node-identity-field .ant-space-compact-item,.b3-node-identity-field .b3-node-identity-uuid{min-width:0}.b3-node-identity-field .b3-node-identity-id{flex:none}.b3-node-identity-field .b3-node-identity-uuid{flex:auto}.b3-node-identity-field .ant-input[disabled]{color:var(--ant-color-text-tertiary);-webkit-text-fill-color:var(--ant-color-text-tertiary);background:var(--ant-color-bg-container-disabled)}.b3-node-identity-field .b3-node-identity-id.ant-input[disabled]{text-align:center;background:var(--ant-color-fill-tertiary)}.b3-node-json-form-item .ant-form-item-row{display:block}.b3-node-json-view.ant-input{font-family:var(--vscode-editor-font-family,ui-monospace, "SFMono-Regular", "Cascadia Mono", "Fira Code", monospace);font-size:var(--vscode-editor-font-size,var(--b3-inspector-font-size));resize:vertical;line-height:1.5}.b3-inspector-form .ant-form-item-explain{word-break:break-word;font-size:1em}.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-inspector-form .ant-select-disabled .ant-select-input,.b3-inspector-form .ant-select-disabled .ant-select-content-value,.b3-inspector-form .ant-select-disabled .ant-select-selection-item{color:var(--ant-color-text-tertiary)}.b3-list-block{flex-direction:column;row-gap:0;display:flex}.b3-inspector .ant-btn.ant-btn-dashed{background:0 0}.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{flex-direction:column;row-gap:2px;display:flex}.b3-var-row,.b3-var-row-compact{width:100%}.b3-var-counter{cursor:pointer;min-width:40px;max-width:40px;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;justify-content:flex-start;align-items:center;gap:4px;padding:0 6px 0 5px;display:flex}.b3-custom-type-badge{min-width:40px;max-width:40px;color:var(--ant-color-text-secondary);background:var(--ant-color-fill-tertiary);border:1px solid var(--ant-color-border);cursor:help;-webkit-user-select:none;user-select:none;letter-spacing:.04em;border-right:0;border-radius:6px 0 0 6px;flex:0 0 40px;justify-content:center;align-items:center;padding:0 6px;font-size:12px;font-weight:700;display:flex}.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:calc((var(--b3-inspector-control-height) - 1em) / 2);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-field-with-action{width:100%}.b3-field-with-action-control{flex:auto;min-width:0}.b3-inline-reset{margin-top:calc((var(--b3-inspector-control-height) - 1em) / 2);color:var(--ant-color-text-tertiary);cursor:pointer}.b3-inline-reset: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{top:0;left:calc(-1 * var(--b3-inspector-content-padding,16px));cursor:pointer;background:var(--b3-override-bar);border-radius:0;width:6px;position:absolute;bottom:0}.b3-markdown{color:var(--ant-color-text-secondary);word-break:break-word;margin-bottom:12px;padding:0 4px;font-size:13px}.b3-markdown code{background:color-mix(in srgb, var(--ant-color-fill) 72%, transparent);white-space:break-spaces;border-radius:6px;padding:.15em .3em}body[data-webview-kind=inspector-sidebar] .b3-inspector{overflow:auto 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{margin:0!important;padding: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{z-index:100;justify-content:flex-end;width:100%;padding:10px 10px 0 0;position:absolute;top:0;right:0}.b3-search-box{border-left:3px solid var(--b3-search-border-accent);background:var(--b3-search-bg);box-shadow:0 0 8px 2px var(--b3-search-shadow);border-radius:4px;align-items:center;padding:4px 10px}.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;color:var(--b3-text-muted);padding:0 10px 0 5px}.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{width:100%;height:100%;min-height:0;position:relative}.b3-context-menu-icon{justify-content:center;align-items:center;width:22px;line-height:1;display:inline-flex}.b3-context-menu-icon.codicon[class*=codicon-]{font:15px/1 codicon}.b3-graph{cursor:grab;-webkit-user-select:none;user-select:none;background:var(--b3-graph-bg);width:100%;height:100%;min-height:0;position:relative}.b3-graph.is-panning{cursor:grabbing}.b3-graph-viewport{width:100%;height:100%;position:relative;overflow:hidden}.b3-graph-world{transform-origin:0 0;position:absolute;top:0;left:0}.b3-graph-edges{pointer-events:none;shape-rendering:geometricprecision;position:absolute;inset:0;overflow:visible}.b3-graph-edges path{fill:none;stroke:var(--b3-graph-edge)}.b3-graph-nodes{position:absolute;inset:0}.b3-graph-node{--b3-node-scale:1;box-sizing:border-box;position:absolute;top:0;left:0;overflow:visible}.b3-node-floating-id{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));white-space:nowrap;pointer-events:none;transform:translateY(-50%) scale(calc(1 / var(--b3-node-scale)));transform-origin:100%;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);font-weight:700;line-height:1;position:absolute}.b3-node-floating-id.is-gray{color:var(--b3-node-gray-text)}.b3-node{--b3-node-accent:#707070;box-sizing:border-box;width:calc(100% * var(--b3-node-scale));height:calc(100% * var(--b3-node-scale));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,box-shadow .12s,opacity .15s;position:relative;overflow:visible}.b3-node:before{content:"";z-index:-1;opacity:0;border-radius:calc(14px * var(--b3-node-scale));pointer-events:none;background:0 0;transition:opacity .12s,box-shadow .12s;position:absolute;inset:0;box-shadow:0 0 #0000}.b3-node:after{content:"";opacity:0;pointer-events:none;transition:opacity .12s;position:absolute;inset:0}.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{background:color-mix(in srgb, var(--b3-drop-before) 22%, transparent);inset:0 0 50%}.b3-node.is-drop-after:after{background:color-mix(in srgb, var(--b3-drop-before) 22%, transparent);inset:50% 0 0}.b3-node.is-drop-child:after{background:color-mix(in srgb, var(--b3-drop-child) 24%, transparent);inset:0 0 0 50%}.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;grid-template-columns:calc(40px * var(--b3-node-scale)) minmax(0, 1fr);height:100%;min-height:calc(60px * var(--b3-node-scale));border-radius:calc(2px * var(--b3-node-scale));display:grid;overflow:hidden}.b3-node-icon-rail{background:0 0;justify-content:center;align-items:center;display:flex}.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;background:var(--b3-node-content-bg);border-radius:0 calc(2px * var(--b3-node-scale)) calc(2px * var(--b3-node-scale)) 0;min-width:0;height:100%;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{justify-content:space-between;align-items:flex-start;gap:calc(4px * var(--b3-node-scale));min-height:calc(20px * var(--b3-node-scale));display:flex}.b3-node-title{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;overflow:hidden}.b3-node-header-icons{align-items:flex-start;gap:calc(2px * var(--b3-node-scale));flex:none;display:flex}.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;margin-top:calc(3px * var(--b3-node-scale));pointer-events:none;flex: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{min-width: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));align-items:flex-start;gap:0;margin:0;padding:0;display:flex}.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{color:inherit;flex:none;font-weight:400}.b3-node-detail-value{word-break:break-word;flex:1;min-width:0}.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{text-overflow:ellipsis;white-space:nowrap;word-break:normal;font-weight:700;overflow:hidden}.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{color:inherit;font:inherit;font-weight:inherit;line-height:inherit;border-radius:calc(2px * var(--b3-node-scale));cursor:pointer;background:0 0;border:0;margin:0;padding:0}.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:red}.b3-loading{height:100%}