@vscode/component-explorer 0.2.1-7 → 0.2.1-71

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 (43) hide show
  1. package/README.md +39 -27
  2. package/dist/components/ExplorerModel.d.ts +5 -1
  3. package/dist/components/ExplorerModel.d.ts.map +1 -1
  4. package/dist/components/FixturePreviewItem.d.ts +2 -0
  5. package/dist/components/FixturePreviewItem.d.ts.map +1 -1
  6. package/dist/components/PreviewArea.d.ts.map +1 -1
  7. package/dist/components/RightSidebar.d.ts +8 -2
  8. package/dist/components/RightSidebar.d.ts.map +1 -1
  9. package/dist/components/icons.d.ts +8 -8
  10. package/dist/components/icons.d.ts.map +1 -1
  11. package/dist/core/ComponentRenderer.d.ts +8 -10
  12. package/dist/core/ComponentRenderer.d.ts.map +1 -1
  13. package/dist/core/ErrorInfo.d.ts +21 -1
  14. package/dist/core/ErrorInfo.d.ts.map +1 -1
  15. package/dist/core/FixtureInputStore.d.ts +32 -0
  16. package/dist/core/FixtureInputStore.d.ts.map +1 -0
  17. package/dist/core/FixtureNode.d.ts.map +1 -1
  18. package/dist/core/fixtureApi.d.ts +149 -34
  19. package/dist/core/fixtureApi.d.ts.map +1 -1
  20. package/dist/core/fixtureApiConsumer.d.ts +18 -2
  21. package/dist/core/fixtureApiConsumer.d.ts.map +1 -1
  22. package/dist/core/index.d.ts +6 -2
  23. package/dist/core/index.d.ts.map +1 -1
  24. package/dist/core/inputAggregation.d.ts +31 -0
  25. package/dist/core/inputAggregation.d.ts.map +1 -0
  26. package/dist/index.d.ts +1 -1
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +2 -2
  29. package/dist/lib/explorerQueryParams.d.ts +2 -2
  30. package/dist/lib/explorerQueryParams.d.ts.map +1 -1
  31. package/dist/lib/fixtureSizeCache.d.ts +2 -0
  32. package/dist/lib/fixtureSizeCache.d.ts.map +1 -1
  33. package/dist/modes/EmbeddedMode.d.ts.map +1 -1
  34. package/dist/modes/HeadlessMode.d.ts +12 -3
  35. package/dist/modes/HeadlessMode.d.ts.map +1 -1
  36. package/dist/{runtimeVersion-CESTXB4A.js → runtimeVersion-_Psb35Ng.js} +47 -39
  37. package/dist/runtimeVersion-_Psb35Ng.js.map +1 -0
  38. package/dist/viewer.js +1819 -1389
  39. package/dist/viewer.js.map +1 -1
  40. package/package.json +15 -14
  41. package/dist/core/PropertySchema.d.ts +0 -40
  42. package/dist/core/PropertySchema.d.ts.map +0 -1
  43. package/dist/runtimeVersion-CESTXB4A.js.map +0 -1
@@ -1,23 +1,12 @@
1
- /**
2
- * Public Fixture API
3
- *
4
- * This module is the public API for defining fixtures.
5
- * It's designed to be stable across versions - projects can use a different
6
- * @vscode/component-explorer version than the explorer viewer uses.
7
- *
8
- * Use Symbol.for() instead of Symbol() so the same symbol is shared across
9
- * different versions of this package.
10
- *
11
- * @module fixtureApi
12
- */
1
+ import { z } from 'zod';
13
2
  /**
14
3
  * Disposable resource that can be cleaned up.
4
+ * `dispose` may be sync or async; the framework awaits the returned promise (if any)
5
+ * and captures any thrown errors.
15
6
  */
16
7
  export interface IDisposable {
17
- dispose(): void;
8
+ dispose(): void | Promise<void>;
18
9
  }
19
- /** @deprecated Use IDisposable instead */
20
- export type Disposable = IDisposable;
21
10
  /**
22
11
  * Result of a render operation.
23
12
  * Supports both sync and async rendering with cancellation.
@@ -32,14 +21,20 @@ export interface RenderResult {
32
21
  readonly ready?: Promise<void>;
33
22
  /**
34
23
  * Cleanup function. Called when the fixture is unmounted.
24
+ * May be sync or async; the framework awaits the returned promise (if any).
25
+ * Errors thrown (sync or async) are captured and surfaced via the
26
+ * `previousDispose` field of the next render report (or `currentDispose`
27
+ * if `disposeAfter` was requested).
35
28
  * Can be omitted if no cleanup is needed.
36
29
  */
37
- dispose?(): void;
30
+ dispose?(): void | Promise<void>;
38
31
  /**
39
32
  * Arbitrary data to include in the render report.
40
- * Visible to the CLI and MCP tools.
33
+ * Visible to the CLI and MCP tools (surfaced as `output`).
34
+ *
35
+ * Symmetric counterpart of `RenderContext.input`: input flows in, output flows out.
41
36
  */
42
- readonly data?: unknown;
37
+ readonly output?: unknown;
43
38
  }
44
39
  /**
45
40
  * What the render function can return.
@@ -50,11 +45,57 @@ export interface RenderResult {
50
45
  export type RenderReturn = RenderResult | undefined | void | Promise<RenderResult | undefined | void>;
51
46
  /**
52
47
  * Context passed to the render function.
48
+ *
49
+ * @typeParam TInput - Shape of `input`, inferred from the fixture's zod `inputSchema`
50
+ * (defaults to `unknown` when no schema is declared).
53
51
  */
54
- export interface RenderContext {
52
+ export interface RenderContext<TInput = unknown> {
53
+ /**
54
+ * Unique identifier of the fixture being rendered.
55
+ * Stable across renders of the same fixture; useful for keying caches,
56
+ * logging, or distinguishing between sibling fixtures sharing a render function.
57
+ */
58
+ readonly fixtureId: string;
55
59
  /** AbortSignal for cancellation; check signal.aborted or listen to 'abort' event */
56
60
  readonly signal: AbortSignal;
61
+ /** Register a disposable to be cleaned up when the fixture is unmounted. Returns the same disposable for chaining. */
62
+ addDisposable<T extends IDisposable>(disposable: T): T;
63
+ /**
64
+ * Describes where this fixture is being rendered. Use this to enable dev-only affordances
65
+ * (e.g. extra controls, logging) without affecting screenshots or embedded views.
66
+ */
67
+ readonly host: RenderHost;
68
+ /**
69
+ * Data passed in by the caller (CLI/MCP screenshot tool, explorer UI). Use this to
70
+ * parameterize the fixture: e.g. switch theme, vary props, select a scenario.
71
+ *
72
+ * When the fixture declares a zod `inputSchema`, this is typed as `z.infer<typeof schema>`
73
+ * and populated with the schema's defaults for any keys the caller omitted. Without a
74
+ * schema it is `unknown` (and `undefined` when no input was provided).
75
+ *
76
+ * Symmetric with `RenderResult.output` (which flows back out to the caller).
77
+ */
78
+ readonly input: TInput;
79
+ }
80
+ /**
81
+ * Describes the environment a fixture is rendered in.
82
+ */
83
+ export type RenderHost =
84
+ /** Rendered in the Component Explorer UI (visible to a human). */
85
+ {
86
+ readonly kind: 'explorer-ui';
87
+ readonly interactive: true;
57
88
  }
89
+ /** Headless render for CLI/MCP screenshots. */
90
+ | {
91
+ readonly kind: 'headless';
92
+ readonly interactive: false;
93
+ }
94
+ /** Rendered inside an isolation iframe (user-facing standalone view). */
95
+ | {
96
+ readonly kind: 'embedded';
97
+ readonly interactive: false;
98
+ };
58
99
  /**
59
100
  * Style definition for shadow DOM injection.
60
101
  */
@@ -94,6 +135,36 @@ export type ViewportPreset = ViewportPresetName | {
94
135
  readonly height: number;
95
136
  };
96
137
  export type ViewportPresetName = 'mobile' | 'tablet' | 'desktop';
138
+ /**
139
+ * Minimal JSON Schema interface used to describe a fixture's expected `input` shape.
140
+ *
141
+ * This is the *derived* form: fixtures declare their input with a zod schema
142
+ * (`DefineFixtureOptions.inputSchema`) and the framework converts it to this JSON Schema
143
+ * at define time. Tools (CLI/MCP/explorer UI) read it for validation, autocompletion, or
144
+ * to generate input-editing controls.
145
+ *
146
+ * Intentionally a structural, recursive type covering the subset of JSON Schema we
147
+ * actually surface to tools — the index signature lets any additional standard JSON Schema
148
+ * keywords (`format`, `pattern`, `oneOf`, `$ref`, …) flow through without changing this interface.
149
+ */
150
+ export interface IJsonSchema {
151
+ readonly type?: 'object' | 'array' | 'string' | 'number' | 'integer' | 'boolean' | 'null';
152
+ readonly properties?: {
153
+ readonly [key: string]: IJsonSchema;
154
+ };
155
+ readonly required?: readonly string[];
156
+ readonly items?: IJsonSchema;
157
+ readonly enum?: readonly unknown[];
158
+ readonly const?: unknown;
159
+ readonly default?: unknown;
160
+ readonly description?: string;
161
+ readonly title?: string;
162
+ readonly additionalProperties?: boolean | IJsonSchema;
163
+ readonly anyOf?: readonly IJsonSchema[];
164
+ readonly oneOf?: readonly IJsonSchema[];
165
+ readonly allOf?: readonly IJsonSchema[];
166
+ readonly [key: string]: unknown;
167
+ }
97
168
  /** Brand symbol to identify single fixtures */
98
169
  export declare const singleFixtureBrand: unique symbol;
99
170
  /** Brand symbol to identify fixture groups */
@@ -102,8 +173,10 @@ export declare const fixtureGroupBrand: unique symbol;
102
173
  export declare const fixtureVariantsBrand: unique symbol;
103
174
  /**
104
175
  * Options for defining a single component fixture.
176
+ *
177
+ * @typeParam TInput - Shape of the fixture's `input`, inferred from `inputSchema`.
105
178
  */
106
- export interface DefineFixtureOptions {
179
+ export interface DefineFixtureOptions<TInput = unknown> {
107
180
  /**
108
181
  * Path in the explorer tree.
109
182
  * - `undefined` (default): use fixture filename only
@@ -127,14 +200,35 @@ export interface DefineFixtureOptions {
127
200
  labels?: readonly string[];
128
201
  /** Human/AI-readable description(s) of expected visual appearance. Inherited from parent group/variants and accumulated into a string[]. */
129
202
  expectedVisualDescriptions?: string | readonly string[];
203
+ /**
204
+ * Zod schema describing the expected shape of `RenderContext.input`.
205
+ *
206
+ * Declaring it gives two things:
207
+ * 1. **Type safety** — `render`'s `context.input` is typed as `z.infer<typeof schema>`.
208
+ * 2. **Tooling** — the framework converts the schema to JSON Schema at define time so the
209
+ * CLI/MCP/explorer UI can validate, autocomplete, or render input-editing controls.
210
+ *
211
+ * The schema must describe an object (`z.object({...})`) — `input` is always a JSON object
212
+ * (or `undefined`). Property-level `.default(...)` values are surfaced to tooling and used
213
+ * to populate omitted keys before `render` runs.
214
+ *
215
+ * @example
216
+ * ```ts
217
+ * inputSchema: z.object({
218
+ * theme: z.enum(['light', 'dark']).default('light'),
219
+ * count: z.number().int().default(1),
220
+ * })
221
+ * ```
222
+ */
223
+ inputSchema?: z.ZodType<TInput>;
130
224
  /**
131
225
  * Render the component into the container.
132
226
  *
133
227
  * @param container - The DOM element to render into
134
- * @param context - Render context containing props and abort signal
228
+ * @param context - Render context containing input and abort signal
135
229
  * @returns Optional RenderResult, or a Promise that resolves to one
136
230
  */
137
- render: (container: HTMLElement, context: RenderContext) => RenderReturn;
231
+ render: (container: HTMLElement, context: RenderContext<TInput>) => RenderReturn;
138
232
  }
139
233
  /** @deprecated Use DefineFixtureOptions instead */
140
234
  export type DefineComponentOptions = DefineFixtureOptions;
@@ -145,6 +239,8 @@ export interface SingleFixtureExport {
145
239
  readonly [singleFixtureBrand]: true;
146
240
  readonly _options: DefineFixtureOptions;
147
241
  readonly _path?: string;
242
+ /** JSON Schema derived from `_options.inputSchema` at define time (cross-version safe). */
243
+ readonly _inputSchemaJson?: IJsonSchema;
148
244
  }
149
245
  /**
150
246
  * Group entry: either a single fixture, a nested group, or variants.
@@ -161,6 +257,8 @@ export interface FixtureGroupExport {
161
257
  readonly _path?: string;
162
258
  readonly _labels?: readonly string[];
163
259
  readonly _expectedVisualDescriptions?: string | readonly string[];
260
+ /** JSON Schema derived from the group's `inputSchema`; merged into every descendant fixture. */
261
+ readonly _inputSchemaJson?: IJsonSchema;
164
262
  }
165
263
  /**
166
264
  * A fixture variants export created by defineFixtureVariants().
@@ -173,6 +271,8 @@ export interface FixtureVariantsExport {
173
271
  readonly _path?: string;
174
272
  readonly _labels?: readonly string[];
175
273
  readonly _expectedVisualDescriptions?: string | readonly string[];
274
+ /** JSON Schema derived from the variants group's `inputSchema`; merged into every variant. */
275
+ readonly _inputSchemaJson?: IJsonSchema;
176
276
  }
177
277
  /**
178
278
  * Fixture export type - a single fixture, a group, or variants.
@@ -199,6 +299,13 @@ export interface DefineFixtureGroupOptions {
199
299
  labels?: readonly string[];
200
300
  /** Human/AI-readable description(s) of expected visual appearance. Inherited by nested fixtures. */
201
301
  expectedVisualDescriptions?: string | readonly string[];
302
+ /**
303
+ * Zod schema describing `input` shared by every fixture in this group. It is converted to
304
+ * JSON Schema at define time and merged into each descendant fixture's own schema (the
305
+ * descendant's properties win on conflict). Use it to declare common input — e.g. a `theme`
306
+ * switch — once for a whole group instead of repeating it on each fixture.
307
+ */
308
+ inputSchema?: z.ZodType;
202
309
  }
203
310
  /**
204
311
  * Input for defineFixtureVariants (only single fixtures, no nesting).
@@ -221,6 +328,12 @@ export interface DefineFixtureVariantsOptions {
221
328
  labels?: readonly string[];
222
329
  /** Human/AI-readable description(s) of expected visual appearance. Inherited by nested fixtures. */
223
330
  expectedVisualDescriptions?: string | readonly string[];
331
+ /**
332
+ * Zod schema describing `input` shared by every variant in this group. Converted to JSON
333
+ * Schema at define time and merged into each variant's own schema (the variant's properties
334
+ * win on conflict).
335
+ */
336
+ inputSchema?: z.ZodType;
224
337
  }
225
338
  /**
226
339
  * Defines a single fixture.
@@ -229,31 +342,33 @@ export interface DefineFixtureVariantsOptions {
229
342
  * ```ts
230
343
  * // Simple - no cleanup needed
231
344
  * export default defineFixture({
232
- * render: (container, { props }) => {
233
- * container.innerHTML = `<button>${props.label}</button>`;
345
+ * render: (container) => {
346
+ * container.innerHTML = `<button>Click me</button>`;
234
347
  * },
235
348
  * });
236
349
  *
237
- * // With cleanup
350
+ * // Typed, parameterizable input via a zod schema
238
351
  * export default defineFixture({
239
- * render: (container, { props }) => {
352
+ * inputSchema: z.object({ label: z.string().default('Click me') }),
353
+ * render: (container, { input }) => {
240
354
  * const root = createRoot(container);
241
- * root.render(<Button label={props.label} />);
355
+ * root.render(<Button label={input.label} />);
242
356
  * return { dispose: () => root.unmount() };
243
357
  * },
244
358
  * });
245
359
  *
246
360
  * // Async render
247
361
  * export default defineFixture({
248
- * render: async (container, { props, signal }) => {
249
- * const data = await fetch(props.url, { signal });
362
+ * inputSchema: z.object({ url: z.string() }),
363
+ * render: async (container, { input, signal }) => {
364
+ * const data = await fetch(input.url, { signal });
250
365
  * container.innerHTML = await data.text();
251
366
  * return { dispose: () => { container.innerHTML = ''; } };
252
367
  * },
253
368
  * });
254
369
  * ```
255
370
  */
256
- export declare function defineFixture(options: DefineFixtureOptions): SingleFixtureExport;
371
+ export declare function defineFixture<TInput = unknown>(options: DefineFixtureOptions<TInput>): SingleFixtureExport;
257
372
  /**
258
373
  * Defines a group of fixtures with support for nesting.
259
374
  *
@@ -298,9 +413,9 @@ export declare function defineFixtureVariants(options: DefineFixtureVariantsOpti
298
413
  *
299
414
  * @example
300
415
  * ```ts
301
- * render: (container, { props }) => syncRender(() => {
416
+ * render: (container, { input }) => syncRender(() => {
302
417
  * const el = document.createElement('button');
303
- * el.textContent = props.label;
418
+ * el.textContent = input.label;
304
419
  * container.appendChild(el);
305
420
  * return () => el.remove();
306
421
  * })
@@ -317,8 +432,8 @@ export declare function syncRender(doRender: () => (() => void) | IDisposable |
317
432
  *
318
433
  * @example
319
434
  * ```ts
320
- * render: (container, { props, signal }) => asyncRender(signal, async () => {
321
- * const data = await fetchData(props.url, { signal });
435
+ * render: (container, { input, signal }) => asyncRender(signal, async () => {
436
+ * const data = await fetchData(input.url, { signal });
322
437
  * if (signal.aborted) return;
323
438
  * container.innerHTML = data;
324
439
  * return () => { container.innerHTML = ''; };
@@ -1 +1 @@
1
- {"version":3,"file":"fixtureApi.d.ts","sourceRoot":"","sources":["../../src/core/fixtureApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fixtureApi.d.ts","sourceRoot":"","sources":["../../src/core/fixtureApi.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { FixtureExport, SingleFixtureExport, FixtureGroupExport, FixtureVariantsExport, DisplayMode, StyleDefinition, RenderReturn, RenderContext } from './fixtureApi.js';
1
+ import { FixtureExport, SingleFixtureExport, FixtureGroupExport, FixtureVariantsExport, DisplayMode, StyleDefinition, RenderReturn, RenderContext, IJsonSchema } from './fixtureApi.js';
2
2
  /**
3
3
  * Type guard for SingleFixtureExport.
4
4
  * Uses the global symbol brand for cross-version compatibility.
@@ -64,6 +64,8 @@ export interface ComponentDefinition {
64
64
  readonly labels: readonly string[];
65
65
  /** Accumulated expected visual descriptions (from self + parent groups/variants) */
66
66
  readonly expectedVisualDescriptions: readonly string[];
67
+ /** JSON Schema describing the expected shape of `RenderContext.input` (always an object). */
68
+ readonly inputSchema?: IJsonSchema;
67
69
  /** Source file path this fixture was defined in */
68
70
  readonly sourceFile: string;
69
71
  /**
@@ -74,8 +76,22 @@ export interface ComponentDefinition {
74
76
  }
75
77
  /**
76
78
  * Creates the component definition from a validated SingleFixtureExport.
79
+ *
80
+ * @param inheritedInputSchema - JSON Schema accumulated from enclosing groups/variants; merged
81
+ * with the fixture's own schema (the fixture's properties win on conflict).
77
82
  */
78
- export declare function createComponentDefinition(fixture: SingleFixtureExport, id: string, name: string, sourceFile: string, inheritedVisualDescriptions?: readonly string[]): ComponentDefinition;
83
+ export declare function createComponentDefinition(fixture: SingleFixtureExport, id: string, name: string, sourceFile: string, inheritedVisualDescriptions?: readonly string[], inheritedInputSchema?: IJsonSchema | undefined): ComponentDefinition;
84
+ /**
85
+ * Merges two object JSON Schemas. `child` properties win over `parent` on key conflicts;
86
+ * `required` is the de-duplicated union. Returns whichever side is defined when only one is.
87
+ */
88
+ export declare function mergeInputSchemas(parent: IJsonSchema | undefined, child: IJsonSchema | undefined): IJsonSchema | undefined;
89
+ /**
90
+ * Builds the effective `input` object passed to a fixture: the schema's top-level property
91
+ * defaults, overlaid with any caller-provided overrides. Returns the override unchanged when
92
+ * there is no schema (so schemaless fixtures keep their original `undefined`/passthrough input).
93
+ */
94
+ export declare function applyInputDefaults(schema: IJsonSchema | undefined, input: unknown): unknown;
79
95
  /**
80
96
  * Type guard for checking if a value is a ComponentDefinition.
81
97
  * @deprecated Use isSingleFixture or isFixtureGroup instead
@@ -1 +1 @@
1
- {"version":3,"file":"fixtureApiConsumer.d.ts","sourceRoot":"","sources":["../../src/core/fixtureApiConsumer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,aAAa,EACnB,MAAM,iBAAiB,CAAC;AAOzB;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAS5E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAS1E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,qBAAqB,CAShF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAEtE;AAMD,MAAM,MAAM,WAAW,CAAC,CAAC,IACrB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAC1B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,aAAa,CAAC,CAW7E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,mBAAmB,CAAC,CAKnF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAKjF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,qBAAqB,CAAC,CAKvF;AAMD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,gDAAgD;IAChD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,qCAAqC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,6CAA6C;IAC7C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,CAAC;IAErD,yEAAyE;IACzE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAElC,0GAA0G;IAC1G,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAE7C,0GAA0G;IAC1G,QAAQ,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,CAAC;IAEtC,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAEnC,oFAAoF;IACpF,QAAQ,CAAC,0BAA0B,EAAE,SAAS,MAAM,EAAE,CAAC;IAEvD,mDAAmD;IACnD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;;OAGG;IACH,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,GAAG,YAAY,CAAC;CACtE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,mBAAmB,EAC5B,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,2BAA2B,GAAE,SAAS,MAAM,EAAO,GAClD,mBAAmB,CAmBrB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CASlF"}
1
+ {"version":3,"file":"fixtureApiConsumer.d.ts","sourceRoot":"","sources":["../../src/core/fixtureApiConsumer.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,11 @@
1
- export type { IDisposable, StyleDefinition, DisplayMode, PageMode, ComponentMode, ViewportPreset, ViewportPresetName, DefineFixtureOptions, DefineComponentOptions, FixtureGroupEntry, FixtureGroupInput, FixtureVariantsInput, FixtureExport, SingleFixtureExport, FixtureGroupExport, FixtureVariantsExport, RenderResult, RenderReturn, RenderContext, } from './fixtureApi.js';
1
+ export type { IDisposable, StyleDefinition, DisplayMode, PageMode, ComponentMode, ViewportPreset, ViewportPresetName, DefineFixtureOptions, DefineComponentOptions, FixtureGroupEntry, FixtureGroupInput, FixtureVariantsInput, FixtureExport, SingleFixtureExport, FixtureGroupExport, FixtureVariantsExport, RenderResult, RenderReturn, RenderContext, RenderHost, IJsonSchema, } from './fixtureApi.js';
2
2
  export { singleFixtureBrand, fixtureGroupBrand, fixtureVariantsBrand, defineFixture, defineFixtureGroup, defineFixtureVariants, syncRender, asyncRender, } from './fixtureApi.js';
3
3
  export type { ComponentDefinition, ParseResult } from './fixtureApiConsumer.js';
4
- export { isSingleFixture, isFixtureGroup, isFixtureVariants, parseFixtureExport, parseSingleFixture, parseFixtureGroup, parseFixtureVariants, createComponentDefinition, isComponentDefinition, } from './fixtureApiConsumer.js';
4
+ export { isSingleFixture, isFixtureGroup, isFixtureVariants, parseFixtureExport, parseSingleFixture, parseFixtureGroup, parseFixtureVariants, createComponentDefinition, mergeInputSchemas, applyInputDefaults, isComponentDefinition, } from './fixtureApiConsumer.js';
5
+ export { FixtureInputStore } from './FixtureInputStore.js';
6
+ export type { FixtureInputOverride } from './FixtureInputStore.js';
7
+ export { aggregateInputProperties, effectiveInputValue, } from './inputAggregation.js';
8
+ export type { AggregatedInputProperty, ComponentInputInfo, } from './inputAggregation.js';
5
9
  export type { ExceptionError, RenderEvent, RenderEventType, RenderReport, } from './ErrorInfo.js';
6
10
  export type { FixtureNode, } from './FixtureNode.js';
7
11
  export { FixturePath } from './FixturePath.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAGA,YAAY,EACV,WAAW,EACX,eAAe,EACf,WAAW,EACX,QAAQ,EACR,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,UAAU,EACV,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAKzB,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAKjC,YAAY,EACV,cAAc,EACd,WAAW,EACX,eAAe,EACf,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGxF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,MAAM,WAAW,cAAc;IAC7B,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACvC;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACrD,WAAW,IAAI,IAAI,CAAC;CACrB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAGA,YAAY,EACV,WAAW,EACX,eAAe,EACf,WAAW,EACX,QAAQ,EACR,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,UAAU,EACV,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,UAAU,EACV,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAKzB,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EACL,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAK/B,YAAY,EACV,cAAc,EACd,WAAW,EACX,eAAe,EACf,YAAY,GACb,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGxF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,MAAM,WAAW,cAAc;IAC7B,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACvC;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACrD,WAAW,IAAI,IAAI,CAAC;CACrB"}
@@ -0,0 +1,31 @@
1
+ import { IJsonSchema } from './fixtureApi.js';
2
+ /**
3
+ * A single input property shared by one or more of the currently rendered fixtures.
4
+ * Properties are grouped by name **and** structural schema equality, so a control can edit
5
+ * every fixture that declares the same property at once.
6
+ */
7
+ export interface AggregatedInputProperty {
8
+ readonly name: string;
9
+ readonly schema: IJsonSchema;
10
+ /** Ids of the fixtures that declare this exact property (same name + schema). */
11
+ readonly fixtureIds: readonly string[];
12
+ }
13
+ /** Minimal shape needed to aggregate: a fixture id and its (merged) input schema. */
14
+ export interface ComponentInputInfo {
15
+ readonly id: string;
16
+ readonly inputSchema?: IJsonSchema;
17
+ }
18
+ /**
19
+ * Stable identity of an input property: its name plus structural schema. Two fixtures that
20
+ * declare the same property (same name + schema) share this key, so a chosen value can be
21
+ * persisted once and reused across every fixture that has it.
22
+ */
23
+ export declare function inputPropertyKey(name: string, schema: IJsonSchema): string;
24
+ /**
25
+ * Collects the input properties declared across the given fixtures, grouping identical
26
+ * (name + schema) properties so they can be edited together. Order follows first appearance.
27
+ */
28
+ export declare function aggregateInputProperties(components: readonly ComponentInputInfo[]): AggregatedInputProperty[];
29
+ /** The value currently in effect for a property: explicit override, else schema default. */
30
+ export declare function effectiveInputValue(override: Record<string, unknown> | undefined, name: string, schema: IJsonSchema): unknown;
31
+ //# sourceMappingURL=inputAggregation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputAggregation.d.ts","sourceRoot":"","sources":["../../src/core/inputAggregation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,iFAAiF;IACjF,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,qFAAqF;AACrF,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;CACtC;AAgBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,CAE1E;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACpC,UAAU,EAAE,SAAS,kBAAkB,EAAE,GAC1C,uBAAuB,EAAE,CA0B3B;AAED,4FAA4F;AAC5F,wBAAgB,mBAAmB,CAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC7C,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,GACpB,OAAO,CAKT"}
package/dist/index.d.ts CHANGED
@@ -7,6 +7,6 @@
7
7
  * For the viewer/explorer UI, import from '@vscode/component-explorer/viewer' instead.
8
8
  */
9
9
  export { defineFixture, defineFixtureGroup, defineFixtureVariants, singleFixtureBrand, fixtureGroupBrand, fixtureVariantsBrand, } from './core/fixtureApi.js';
10
- export type { DefineFixtureOptions, DefineComponentOptions, FixtureExport, SingleFixtureExport, FixtureGroupExport, FixtureVariantsExport, FixtureGroupEntry, FixtureGroupInput, FixtureVariantsInput, IDisposable, Disposable, StyleDefinition, DisplayMode, PageMode, ComponentMode, ViewportPreset, ViewportPresetName, } from './core/fixtureApi.js';
10
+ export type { DefineFixtureOptions, DefineComponentOptions, FixtureExport, SingleFixtureExport, FixtureGroupExport, FixtureVariantsExport, FixtureGroupEntry, FixtureGroupInput, FixtureVariantsInput, IDisposable, StyleDefinition, DisplayMode, PageMode, ComponentMode, ViewportPreset, ViewportPresetName, RenderContext, RenderHost, RenderResult, RenderReturn, IJsonSchema, } from './core/fixtureApi.js';
11
11
  export { runtimeVersion, } from './runtimeVersion.js';
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAEL,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EAGrB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EAEV,oBAAoB,EACpB,sBAAsB,EAGtB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EAGpB,WAAW,EACX,UAAU,EACV,eAAe,EACf,WAAW,EACX,QAAQ,EACR,aAAa,EACb,cAAc,EACd,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,cAAc,GACf,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAEL,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EAGrB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EAEV,oBAAoB,EACpB,sBAAsB,EAGtB,aAAa,EACb,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EAGpB,WAAW,EACX,eAAe,EACf,WAAW,EACX,QAAQ,EACR,aAAa,EACb,cAAc,EACd,kBAAkB,EAGlB,aAAa,EACb,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,cAAc,GACf,MAAM,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { _ as r } from "./runtimeVersion-CESTXB4A.js";
2
- import { d as s, a as n, b as t, f as u, c as f, r as o, s as d } from "./runtimeVersion-CESTXB4A.js";
1
+ import { _ as r } from "./runtimeVersion-_Psb35Ng.js";
2
+ import { d as s, a as n, b as t, f as u, c as f, r as o, s as d } from "./runtimeVersion-_Psb35Ng.js";
3
3
  globalThis._buildInfo = r;
4
4
  export {
5
5
  s as defineFixture,
@@ -1,5 +1,5 @@
1
- import { ExplorerQueryParams } from '@vscode/component-explorer-cli/explorer-types';
2
- export type { ExplorerMode, ExplorerQueryParams } from '@vscode/component-explorer-cli/explorer-types';
1
+ import { ExplorerQueryParams } from '@vscode/component-explorer-common';
2
+ export type { ExplorerMode, ExplorerQueryParams } from '@vscode/component-explorer-common';
3
3
  export declare function parseExplorerQueryParams(params: URLSearchParams): ExplorerQueryParams;
4
4
  export declare function toUrlSearchParams(query: ExplorerQueryParams): URLSearchParams;
5
5
  //# sourceMappingURL=explorerQueryParams.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"explorerQueryParams.d.ts","sourceRoot":"","sources":["../../src/lib/explorerQueryParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACzF,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AAEvG,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,eAAe,GAAG,mBAAmB,CAQrF;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,eAAe,CAM7E"}
1
+ {"version":3,"file":"explorerQueryParams.d.ts","sourceRoot":"","sources":["../../src/lib/explorerQueryParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAE3F,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,eAAe,GAAG,mBAAmB,CAQrF;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,eAAe,CAM7E"}
@@ -3,4 +3,6 @@ export declare function getCachedHeight(fixtureId: string): number | undefined;
3
3
  export declare function getAllCachedHeights(): ReadonlyMap<string, number>;
4
4
  export declare function setCachedContentHeight(fixtureId: string, height: number): void;
5
5
  export declare function getCachedContentHeight(fixtureId: string): number | undefined;
6
+ export declare function setCachedContentWidth(fixtureId: string, width: number): void;
7
+ export declare function getCachedContentWidth(fixtureId: string): number | undefined;
6
8
  //# sourceMappingURL=fixtureSizeCache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fixtureSizeCache.d.ts","sourceRoot":"","sources":["../../src/lib/fixtureSizeCache.ts"],"names":[],"mappings":"AAyCA,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAwC;AAChH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAuC;AAC7G,wBAAgB,mBAAmB,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAiC;AAEnG,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAA4C;AAC3H,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAA2C"}
1
+ {"version":3,"file":"fixtureSizeCache.d.ts","sourceRoot":"","sources":["../../src/lib/fixtureSizeCache.ts"],"names":[],"mappings":"AAyCA,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAwC;AAChH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAuC;AAC7G,wBAAgB,mBAAmB,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAiC;AAEnG,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAA4C;AAC3H,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAA2C;AAIxH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAA0C;AACvH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAA0C"}
@@ -1 +1 @@
1
- {"version":3,"file":"EmbeddedMode.d.ts","sourceRoot":"","sources":["../../src/modes/EmbeddedMode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKxE,qBAAa,YAAa,YAAW,eAAe;IASlD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAT5B,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,qBAAqB,CAAmC;IAChE,OAAO,CAAC,oBAAoB,CAAkC;gBAG5C,UAAU,EAAE,WAAW,EACvB,UAAU,EAAE,MAAM,EACnC,gBAAgB,EAAE,OAAO,CAAC,cAAc,CAAC;IAqB1C,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,UAAU;IAUlB,cAAc,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI;IAKpD,WAAW,IAAI,IAAI;IAInB,OAAO,CAAC,OAAO;IAgDf,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,SAAS;CAQjB"}
1
+ {"version":3,"file":"EmbeddedMode.d.ts","sourceRoot":"","sources":["../../src/modes/EmbeddedMode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKxE,qBAAa,YAAa,YAAW,eAAe;IASlD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAT5B,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,qBAAqB,CAAmC;IAChE,OAAO,CAAC,oBAAoB,CAAkC;gBAG5C,UAAU,EAAE,WAAW,EACvB,UAAU,EAAE,MAAM,EACnC,gBAAgB,EAAE,OAAO,CAAC,cAAc,CAAC;IAqB1C,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,UAAU;IAUlB,cAAc,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI;IAKpD,WAAW,IAAI,IAAI;IAInB,OAAO,CAAC,OAAO;IAyDf,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,SAAS;CAQjB"}
@@ -1,4 +1,4 @@
1
- import { RenderReport } from '../core/ErrorInfo.js';
1
+ import { DisposeReport, RenderReport } from '../core/ErrorInfo.js';
2
2
  import { ExplorerRuntime, FixtureModules } from '../core/index.js';
3
3
  import { HeadlessFlatFixture, IComponentExplorerGlobal } from '@vscode/component-explorer-common';
4
4
  declare global {
@@ -21,8 +21,17 @@ export declare class HeadlessMode implements ExplorerRuntime {
21
21
  updateFixtures(fixtureModules: FixtureModules): void;
22
22
  bumpVersion(): void;
23
23
  listFixtures(): Promise<HeadlessFlatFixture[]>;
24
- disposeCurrentFixture(): void;
25
- renderFixture(fixtureId: string): Promise<RenderReport>;
24
+ disposeCurrentFixture(): Promise<DisposeReport>;
25
+ renderFixture(fixtureId: string, input?: unknown): Promise<RenderReport>;
26
+ /**
27
+ * Install console + window error/rejection listeners that push into `events`.
28
+ * Returns a `stop` function that uninstalls them. Listeners do not need to be
29
+ * uninstalled in a `finally` ordering — multiple captures may overlap; the
30
+ * outer `console.*` is restored to whatever was the previous value (LIFO via
31
+ * the closure over `originalError` etc.).
32
+ */
33
+ private _captureEvents;
34
+ private _toError;
26
35
  private _buildTree;
27
36
  private _flattenFixtures;
28
37
  private _findFixtureNode;
@@ -1 +1 @@
1
- {"version":3,"file":"HeadlessMode.d.ts","sourceRoot":"","sources":["../../src/modes/HeadlessMode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA+B,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,KAAK,EAAe,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAKpH,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,MAAO,SAAQ,wBAAwB;KAAG;CACpD;AAED,qBAAa,YAAa,YAAW,eAAe;IAYlD,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAXnC,yEAAyE;IACzE,QAAQ,CAAC,cAAc,SAAuC;IAC9D,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,iBAAiB,CAA0B;gBAGjC,iBAAiB,EAAE,WAAW,EAC/C,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC;IAwBtC,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,cAAc,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI;IASpD,WAAW,IAAI,IAAI;IAKb,YAAY,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAQpD,qBAAqB,IAAI,IAAI;IAWvB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAoF7D,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,iBAAiB;CAYzB"}
1
+ {"version":3,"file":"HeadlessMode.d.ts","sourceRoot":"","sources":["../../src/modes/HeadlessMode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAA+B,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrG,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,KAAK,EAAe,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAKpH,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,MAAO,SAAQ,wBAAwB;KAAI;CACrD;AAED,qBAAa,YAAa,YAAW,eAAe;IAYlD,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAXnC,yEAAyE;IACzE,QAAQ,CAAC,cAAc,SAAuC;IAC9D,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,iBAAiB,CAA0B;gBAGjC,iBAAiB,EAAE,WAAW,EAC/C,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC;IAwBtC,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,cAAc,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI;IASpD,WAAW,IAAI,IAAI;IAKb,YAAY,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAQ9C,qBAAqB,IAAI,OAAO,CAAC,aAAa,CAAC;IAiC/C,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;IAsE9E;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IA0CtB,OAAO,CAAC,QAAQ;IAahB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,iBAAiB;CAYzB"}