@vscode/component-explorer 0.1.1-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.
Files changed (52) hide show
  1. package/dist/components/Explorer.d.ts +6 -0
  2. package/dist/components/Explorer.d.ts.map +1 -0
  3. package/dist/components/ExplorerModel.d.ts +50 -0
  4. package/dist/components/ExplorerModel.d.ts.map +1 -0
  5. package/dist/components/FixturePreviewItem.d.ts +8 -0
  6. package/dist/components/FixturePreviewItem.d.ts.map +1 -0
  7. package/dist/components/LeftSidebar.d.ts +5 -0
  8. package/dist/components/LeftSidebar.d.ts.map +1 -0
  9. package/dist/components/PreviewArea.d.ts +6 -0
  10. package/dist/components/PreviewArea.d.ts.map +1 -0
  11. package/dist/components/RightSidebar.d.ts +6 -0
  12. package/dist/components/RightSidebar.d.ts.map +1 -0
  13. package/dist/components/TitleBar.d.ts +5 -0
  14. package/dist/components/TitleBar.d.ts.map +1 -0
  15. package/dist/components/TitleBarButton.d.ts +9 -0
  16. package/dist/components/TitleBarButton.d.ts.map +1 -0
  17. package/dist/components/TreeView.d.ts +14 -0
  18. package/dist/components/TreeView.d.ts.map +1 -0
  19. package/dist/components/icons.d.ts +18 -0
  20. package/dist/components/icons.d.ts.map +1 -0
  21. package/dist/components/index.d.ts +15 -0
  22. package/dist/components/index.d.ts.map +1 -0
  23. package/dist/components/styles.d.ts +192 -0
  24. package/dist/components/styles.d.ts.map +1 -0
  25. package/dist/components/types.d.ts +18 -0
  26. package/dist/components/types.d.ts.map +1 -0
  27. package/dist/core/ComponentDefinition.d.ts +70 -0
  28. package/dist/core/ComponentDefinition.d.ts.map +1 -0
  29. package/dist/core/DisplayMode.d.ts +65 -0
  30. package/dist/core/DisplayMode.d.ts.map +1 -0
  31. package/dist/core/FixtureNode.d.ts +31 -0
  32. package/dist/core/FixtureNode.d.ts.map +1 -0
  33. package/dist/core/FixtureRegistry.d.ts +37 -0
  34. package/dist/core/FixtureRegistry.d.ts.map +1 -0
  35. package/dist/core/PropertySchema.d.ts +40 -0
  36. package/dist/core/PropertySchema.d.ts.map +1 -0
  37. package/dist/core/defineFixture.d.ts +109 -0
  38. package/dist/core/defineFixture.d.ts.map +1 -0
  39. package/dist/core/index.d.ts +12 -0
  40. package/dist/core/index.d.ts.map +1 -0
  41. package/dist/index.css +1 -0
  42. package/dist/index.d.ts +31 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +1386 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/lib/fixtureSizeCache.d.ts +12 -0
  47. package/dist/lib/fixtureSizeCache.d.ts.map +1 -0
  48. package/dist/lib/localStorageObservable.d.ts +16 -0
  49. package/dist/lib/localStorageObservable.d.ts.map +1 -0
  50. package/dist/lib/utils.d.ts +6 -0
  51. package/dist/lib/utils.d.ts.map +1 -0
  52. package/package.json +59 -0
@@ -0,0 +1,6 @@
1
+ import { FixtureRegistry } from '../core/index.js';
2
+ export declare const Explorer: import('react').ComponentType<{
3
+ registry: FixtureRegistry;
4
+ } & {} & {} & {}>;
5
+ export declare function ExplorerWithDefaults(): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=Explorer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Explorer.d.ts","sourceRoot":"","sources":["../../src/components/Explorer.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAiB,MAAM,kBAAkB,CAAC;AAQlE,eAAO,MAAM,QAAQ;;iBAsBpB,CAAC;AAgEF,wBAAgB,oBAAoB,4CAGnC"}
@@ -0,0 +1,50 @@
1
+ import { IReader } from '@vscode/observables';
2
+ import { FixtureRegistry, ComponentDefinition } from '../core/index.js';
3
+ import { ExplorerTreeNode } from './types.js';
4
+ /**
5
+ * A fixture item to be rendered in the preview area.
6
+ */
7
+ export interface FixtureItem {
8
+ readonly id: string;
9
+ readonly name: string;
10
+ readonly path: string;
11
+ readonly component: ComponentDefinition;
12
+ }
13
+ /**
14
+ * A preview row can be either a single fixture or a horizontal variant group.
15
+ */
16
+ export type PreviewRow = {
17
+ readonly type: 'single';
18
+ readonly fixture: FixtureItem;
19
+ } | {
20
+ readonly type: 'variants';
21
+ readonly id: string;
22
+ readonly name: string;
23
+ readonly path: string;
24
+ readonly fixtures: readonly FixtureItem[];
25
+ };
26
+ declare const ExplorerModel_base: import('@vscode/observables-react').ViewModelClass<{
27
+ registry: import('@vscode/observables-react').IPropertyTransformerFactory<FixtureRegistry, FixtureRegistry>;
28
+ }>;
29
+ export declare class ExplorerModel extends ExplorerModel_base {
30
+ readonly leftSidebarVisible: import('@vscode/observables').ISettableObservable<boolean, void>;
31
+ readonly rightSidebarVisible: import('@vscode/observables').ISettableObservable<boolean, void>;
32
+ readonly isDarkTheme: import('@vscode/observables').ISettableObservable<boolean, void>;
33
+ readonly selectedNodeId: import('@vscode/observables').ISettableObservable<string | undefined, void>;
34
+ readonly expandedNodeIds: import('@vscode/observables').ISettableObservable<ReadonlySet<string>, void>;
35
+ /** The explorer's tree derived from the registry */
36
+ readonly tree: import('@vscode/observables').IObservableWithChange<ExplorerTreeNode, void>;
37
+ readonly selectedNode: import('@vscode/observables').IObservableWithChange<ExplorerTreeNode | undefined, void>;
38
+ /** List of preview rows to render based on current selection */
39
+ readonly selectedFixtures: import('@vscode/observables').IObservableWithChange<readonly PreviewRow[], void>;
40
+ toggleLeftSidebar: () => void;
41
+ toggleRightSidebar: () => void;
42
+ toggleTheme: () => void;
43
+ selectNode: (nodeId: string) => void;
44
+ toggleNodeExpanded: (nodeId: string) => void;
45
+ isNodeExpanded(nodeId: string, reader: IReader): boolean;
46
+ private _findNode;
47
+ private _collectPreviewRows;
48
+ }
49
+ export {};
50
+ //# sourceMappingURL=ExplorerModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExplorerModel.d.ts","sourceRoot":"","sources":["../../src/components/ExplorerModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,KAAK,gBAAgB,EAAkB,MAAM,YAAY,CAAC;AAGnE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;CAAE,GAC1D;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAA;CAAE,CAAC;;;;AAEhJ,qBAAa,aAAc,SAAQ,kBAEjC;IACA,QAAQ,CAAC,kBAAkB,mEAGxB;IACH,QAAQ,CAAC,mBAAmB,mEAGzB;IACH,QAAQ,CAAC,WAAW,mEAGjB;IACH,QAAQ,CAAC,cAAc,8EAGpB;IACH,QAAQ,CAAC,eAAe,+EAAyD;IAEjF,oDAAoD;IACpD,QAAQ,CAAC,IAAI,8EAGV;IAEH,QAAQ,CAAC,YAAY,0FAKlB;IAEH,gEAAgE;IAChE,QAAQ,CAAC,gBAAgB,mFAItB;IAEH,iBAAiB,QAAO,IAAI,CAE1B;IAEF,kBAAkB,QAAO,IAAI,CAE3B;IAEF,WAAW,QAAO,IAAI,CAEpB;IAEF,UAAU,GAAI,QAAQ,MAAM,KAAG,IAAI,CAEjC;IAEF,kBAAkB,GAAI,QAAQ,MAAM,KAAG,IAAI,CASzC;IAEF,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO;IAIxD,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,mBAAmB;CA8C5B"}
@@ -0,0 +1,8 @@
1
+ import { FixtureItem } from './ExplorerModel.js';
2
+ import * as React from 'react';
3
+ export declare const FixturePreviewItem: React.ComponentType<{
4
+ fixture: FixtureItem;
5
+ onSizeChange: (id: string, width: number, height: number) => void;
6
+ compact: boolean | undefined;
7
+ } & {} & {} & {}>;
8
+ //# sourceMappingURL=FixturePreviewItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FixturePreviewItem.d.ts","sourceRoot":"","sources":["../../src/components/FixturePreviewItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAuItD,eAAO,MAAM,kBAAkB;;uBAnIC,MAAM,SAAS,MAAM,UAAU,MAAM,KAAK,IAAI;;iBAoL7E,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { ExplorerModel } from './ExplorerModel.js';
2
+ export declare const LeftSidebar: import('react').ComponentType<import('@vscode/observables-react').PropsIn<{
3
+ model: import('@vscode/observables-react').IPropertyTransformerFactory<ExplorerModel, ExplorerModel>;
4
+ }>>;
5
+ //# sourceMappingURL=LeftSidebar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LeftSidebar.d.ts","sourceRoot":"","sources":["../../src/components/LeftSidebar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,eAAO,MAAM,WAAW;;GAevB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { ExplorerModel } from './ExplorerModel.js';
2
+ import * as React from 'react';
3
+ export declare const PreviewArea: React.ComponentType<{
4
+ model: ExplorerModel;
5
+ } & {} & {} & {}>;
6
+ //# sourceMappingURL=PreviewArea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PreviewArea.d.ts","sourceRoot":"","sources":["../../src/components/PreviewArea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAC;AA2KjF,eAAO,MAAM,WAAW;;iBAoDvB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { ExplorerTreeNode } from './types.js';
2
+ import * as React from 'react';
3
+ export declare const RightSidebar: React.ComponentType<import('@vscode/observables-react').PropsIn<{
4
+ selectedNode: import('@vscode/observables-react').IPropertyTransformerFactory<ExplorerTreeNode | undefined, ExplorerTreeNode | undefined>;
5
+ }>>;
6
+ //# sourceMappingURL=RightSidebar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RightSidebar.d.ts","sourceRoot":"","sources":["../../src/components/RightSidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA8GnD,eAAO,MAAM,YAAY;;GAqBxB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { ExplorerModel } from './ExplorerModel.js';
2
+ export declare const TitleBar: import('react').ComponentType<import('@vscode/observables-react').PropsIn<{
3
+ model: import('@vscode/observables-react').IPropertyTransformerFactory<ExplorerModel, ExplorerModel>;
4
+ }>>;
5
+ //# sourceMappingURL=TitleBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TitleBar.d.ts","sourceRoot":"","sources":["../../src/components/TitleBar.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,eAAO,MAAM,QAAQ;;GAoDpB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export declare const TitleBarButton: React.ComponentType<{
3
+ active: boolean;
4
+ } & {} & {
5
+ onClick: () => void;
6
+ title: string;
7
+ children: React.ReactNode;
8
+ } & {}>;
9
+ //# sourceMappingURL=TitleBarButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TitleBarButton.d.ts","sourceRoot":"","sources":["../../src/components/TitleBarButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiB/B,eAAO,MAAM,cAAc;;;mBAGG,IAAI;;;OA0BjC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { ExplorerModel } from './ExplorerModel.js';
2
+ import { ExplorerTreeNode } from './types.js';
3
+ import * as React from 'react';
4
+ export declare const TreeView: React.ComponentType<import('@vscode/observables-react').PropsIn<{
5
+ model: import('@vscode/observables-react').IPropertyTransformerFactory<ExplorerModel, ExplorerModel>;
6
+ nodes: import('@vscode/observables-react').IPropertyTransformerFactory<readonly ExplorerTreeNode[], readonly ExplorerTreeNode[]>;
7
+ depth: import('@vscode/observables-react').IPropertyTransformerFactory<number, number>;
8
+ }>>;
9
+ export declare const TreeItem: React.ComponentType<{
10
+ model: ExplorerModel;
11
+ node: ExplorerTreeNode;
12
+ depth: number;
13
+ } & {} & {} & {}>;
14
+ //# sourceMappingURL=TreeView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeView.d.ts","sourceRoot":"","sources":["../../src/components/TreeView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGnD,eAAO,MAAM,QAAQ;;;;GAapB,CAAC;AAuCF,eAAO,MAAM,QAAQ;;;;iBAiDnB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import * as React from 'react';
2
+ export declare const ChevronRightIcon: ({ style }: {
3
+ style?: React.CSSProperties;
4
+ }) => import("react/jsx-runtime").JSX.Element;
5
+ export declare const ChevronDownIcon: ({ style }: {
6
+ style?: React.CSSProperties;
7
+ }) => import("react/jsx-runtime").JSX.Element;
8
+ export declare const ComponentIcon: ({ style }: {
9
+ style?: React.CSSProperties;
10
+ }) => import("react/jsx-runtime").JSX.Element;
11
+ export declare const FolderIcon: ({ style }: {
12
+ style?: React.CSSProperties;
13
+ }) => import("react/jsx-runtime").JSX.Element;
14
+ export declare const PanelLeftIcon: () => import("react/jsx-runtime").JSX.Element;
15
+ export declare const PanelRightIcon: () => import("react/jsx-runtime").JSX.Element;
16
+ export declare const SunIcon: () => import("react/jsx-runtime").JSX.Element;
17
+ export declare const MoonIcon: () => import("react/jsx-runtime").JSX.Element;
18
+ //# sourceMappingURL=icons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/components/icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,eAAO,MAAM,gBAAgB,GAAI,WAAW;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAAE,4CAI1E,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,WAAW;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAAE,4CAIzE,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,WAAW;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAAE,4CAIvE,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,WAAW;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAAE,4CAIpE,CAAC;AAEF,eAAO,MAAM,aAAa,+CAIzB,CAAC;AAEF,eAAO,MAAM,cAAc,+CAI1B,CAAC;AAEF,eAAO,MAAM,OAAO,+CAInB,CAAC;AAEF,eAAO,MAAM,QAAQ,+CAIpB,CAAC"}
@@ -0,0 +1,15 @@
1
+ export { Explorer, ExplorerWithDefaults } from './Explorer.js';
2
+ export { ExplorerModel } from './ExplorerModel.js';
3
+ export type { FixtureItem } from './ExplorerModel.js';
4
+ export type { ExplorerTreeNode } from './types.js';
5
+ export { toExplorerTree } from './types.js';
6
+ export { TitleBar } from './TitleBar.js';
7
+ export { TitleBarButton } from './TitleBarButton.js';
8
+ export { LeftSidebar } from './LeftSidebar.js';
9
+ export { RightSidebar } from './RightSidebar.js';
10
+ export { TreeView, TreeItem } from './TreeView.js';
11
+ export { PreviewArea } from './PreviewArea.js';
12
+ export { FixturePreviewItem } from './FixturePreviewItem.js';
13
+ export * from './icons.js';
14
+ export { styles, mergeStyles } from './styles.js';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,192 @@
1
+ import * as React from 'react';
2
+ export declare const styles: {
3
+ readonly container: {
4
+ readonly display: "flex";
5
+ readonly flexDirection: "row";
6
+ readonly height: "100%";
7
+ readonly width: "100%";
8
+ readonly fontFamily: "var(--vscode-font-family)";
9
+ readonly fontSize: "var(--vscode-font-size)";
10
+ readonly color: "var(--vscode-foreground)";
11
+ readonly backgroundColor: "var(--vscode-editor-background)";
12
+ };
13
+ readonly centerArea: {
14
+ readonly display: "flex";
15
+ readonly flexDirection: "column";
16
+ readonly flex: 1;
17
+ readonly overflow: "hidden";
18
+ };
19
+ readonly titleBar: {
20
+ readonly display: "flex";
21
+ readonly alignItems: "center";
22
+ readonly justifyContent: "space-between";
23
+ readonly height: "35px";
24
+ readonly minHeight: "35px";
25
+ readonly padding: "0 10px";
26
+ readonly backgroundColor: "var(--vscode-titleBar-activeBackground)";
27
+ readonly color: "var(--vscode-titleBar-activeForeground)";
28
+ readonly borderBottom: "1px solid var(--vscode-titleBar-border, var(--vscode-panel-border))";
29
+ };
30
+ readonly titleBarSection: {
31
+ readonly display: "flex";
32
+ readonly alignItems: "center";
33
+ readonly gap: "2px";
34
+ };
35
+ readonly titleBarCenter: {
36
+ readonly display: "flex";
37
+ readonly alignItems: "center";
38
+ readonly gap: "4px";
39
+ readonly fontSize: "13px";
40
+ readonly fontWeight: 400;
41
+ };
42
+ readonly titleBarButton: {
43
+ readonly display: "flex";
44
+ readonly alignItems: "center";
45
+ readonly justifyContent: "center";
46
+ readonly width: "28px";
47
+ readonly height: "28px";
48
+ readonly border: "none";
49
+ readonly background: "transparent";
50
+ readonly color: "var(--vscode-titleBar-activeForeground)";
51
+ readonly cursor: "pointer";
52
+ readonly borderRadius: "4px";
53
+ };
54
+ readonly titleBarButtonHover: {
55
+ readonly backgroundColor: "var(--vscode-toolbar-hoverBackground)";
56
+ };
57
+ readonly titleBarButtonActive: {
58
+ readonly backgroundColor: "var(--vscode-toolbar-activeBackground)";
59
+ readonly color: "var(--vscode-focusBorder)";
60
+ };
61
+ readonly sidebar: {
62
+ readonly display: "flex";
63
+ readonly flexDirection: "column";
64
+ readonly width: "260px";
65
+ readonly minWidth: "200px";
66
+ readonly backgroundColor: "var(--vscode-sideBar-background)";
67
+ readonly borderRight: "1px solid var(--vscode-titleBar-border, var(--vscode-panel-border))";
68
+ };
69
+ readonly sidebarRight: {
70
+ readonly borderRight: "none";
71
+ readonly borderLeft: "1px solid var(--vscode-titleBar-border, var(--vscode-panel-border))";
72
+ };
73
+ readonly sidebarHeader: {
74
+ readonly display: "flex";
75
+ readonly alignItems: "center";
76
+ readonly height: "35px";
77
+ readonly minHeight: "35px";
78
+ readonly padding: "0 12px";
79
+ readonly fontSize: "11px";
80
+ readonly fontWeight: 700;
81
+ readonly textTransform: "uppercase";
82
+ readonly letterSpacing: "0.04em";
83
+ readonly color: "var(--vscode-titleBar-activeForeground)";
84
+ readonly backgroundColor: "var(--vscode-titleBar-activeBackground)";
85
+ readonly borderBottom: "1px solid var(--vscode-titleBar-border, var(--vscode-panel-border))";
86
+ };
87
+ readonly sidebarContent: {
88
+ readonly flex: 1;
89
+ readonly overflow: "auto";
90
+ readonly padding: "4px 0";
91
+ };
92
+ readonly treeItem: {
93
+ readonly display: "flex";
94
+ readonly alignItems: "center";
95
+ readonly height: "22px";
96
+ readonly paddingRight: "8px";
97
+ readonly cursor: "pointer";
98
+ readonly userSelect: "none";
99
+ };
100
+ readonly treeItemSelected: {
101
+ readonly backgroundColor: "var(--vscode-list-activeSelectionBackground)";
102
+ readonly color: "var(--vscode-list-activeSelectionForeground)";
103
+ };
104
+ readonly treeItemHover: {
105
+ readonly backgroundColor: "var(--vscode-list-hoverBackground)";
106
+ };
107
+ readonly treeItemChevron: {
108
+ readonly display: "flex";
109
+ readonly alignItems: "center";
110
+ readonly justifyContent: "center";
111
+ readonly width: "16px";
112
+ readonly height: "16px";
113
+ readonly color: "var(--vscode-foreground)";
114
+ readonly opacity: 0.8;
115
+ readonly cursor: "pointer";
116
+ };
117
+ readonly treeItemChevronPlaceholder: {
118
+ readonly width: "16px";
119
+ };
120
+ readonly treeItemIcon: {
121
+ readonly display: "flex";
122
+ readonly alignItems: "center";
123
+ readonly justifyContent: "center";
124
+ readonly width: "16px";
125
+ readonly height: "16px";
126
+ readonly marginRight: "4px";
127
+ };
128
+ readonly treeItemLabel: {
129
+ readonly flex: 1;
130
+ readonly overflow: "hidden";
131
+ readonly textOverflow: "ellipsis";
132
+ readonly whiteSpace: "nowrap";
133
+ readonly fontSize: "13px";
134
+ };
135
+ readonly treeItemCount: {
136
+ readonly marginLeft: "8px";
137
+ readonly fontSize: "11px";
138
+ readonly color: "var(--vscode-descriptionForeground)";
139
+ };
140
+ readonly mainContent: {
141
+ readonly flex: 1;
142
+ readonly display: "flex";
143
+ readonly alignItems: "center";
144
+ readonly justifyContent: "center";
145
+ readonly backgroundColor: "var(--vscode-editor-background)";
146
+ readonly color: "var(--vscode-descriptionForeground)";
147
+ readonly fontSize: "14px";
148
+ };
149
+ readonly propertiesPanel: {
150
+ readonly padding: "12px";
151
+ };
152
+ readonly propertyRow: {
153
+ readonly marginBottom: "12px";
154
+ };
155
+ readonly propertyLabel: {
156
+ readonly fontSize: "12px";
157
+ readonly color: "var(--vscode-foreground)";
158
+ readonly marginBottom: "4px";
159
+ };
160
+ readonly propertyDescription: {
161
+ readonly fontSize: "11px";
162
+ readonly color: "var(--vscode-descriptionForeground)";
163
+ readonly marginTop: "2px";
164
+ };
165
+ readonly propertyInput: {
166
+ readonly width: "100%";
167
+ readonly height: "26px";
168
+ readonly padding: "0 8px";
169
+ readonly fontSize: "13px";
170
+ readonly color: "var(--vscode-input-foreground)";
171
+ readonly backgroundColor: "var(--vscode-input-background)";
172
+ readonly border: "1px solid var(--vscode-input-border, transparent)";
173
+ readonly borderRadius: "2px";
174
+ readonly outline: "none";
175
+ readonly boxSizing: "border-box";
176
+ };
177
+ readonly propertySelect: {
178
+ readonly width: "100%";
179
+ readonly height: "26px";
180
+ readonly padding: "0 8px";
181
+ readonly fontSize: "13px";
182
+ readonly color: "var(--vscode-dropdown-foreground)";
183
+ readonly backgroundColor: "var(--vscode-dropdown-background)";
184
+ readonly border: "1px solid var(--vscode-dropdown-border)";
185
+ readonly borderRadius: "2px";
186
+ readonly outline: "none";
187
+ readonly boxSizing: "border-box";
188
+ readonly cursor: "pointer";
189
+ };
190
+ };
191
+ export declare function mergeStyles(...styleObjects: (React.CSSProperties | undefined | false)[]): React.CSSProperties;
192
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/components/styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4LT,CAAC;AAGX,wBAAgB,WAAW,CAAC,GAAG,YAAY,EAAE,CAAC,KAAK,CAAC,aAAa,GAAG,SAAS,GAAG,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,aAAa,CAE7G"}
@@ -0,0 +1,18 @@
1
+ import { FixtureNode, ComponentDefinition } from '../core/index.js';
2
+ /**
3
+ * Explorer's tree node structure, derived from FixtureNode.
4
+ * This is the explorer's own representation of the fixture tree.
5
+ */
6
+ export interface ExplorerTreeNode {
7
+ readonly id: string;
8
+ readonly name: string;
9
+ readonly type: 'folder' | 'variants' | 'component';
10
+ readonly children?: readonly ExplorerTreeNode[];
11
+ readonly component?: ComponentDefinition;
12
+ }
13
+ /**
14
+ * Converts a FixtureNode tree to ExplorerTreeNode tree.
15
+ * This allows the explorer to have its own tree structure.
16
+ */
17
+ export declare function toExplorerTree(node: FixtureNode): ExplorerTreeNode;
18
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/components/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEzE;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAC;IACnD,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC;CAC1C;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,gBAAgB,CAQlE"}
@@ -0,0 +1,70 @@
1
+ import { Disposable, DisplayMode, StyleDefinition } from './DisplayMode.js';
2
+ import { PropertySchema } from './PropertySchema.js';
3
+ import { DefineFixtureOptions, FixtureGroupEntry, singleFixtureBrand, fixtureGroupBrand, fixtureVariantsBrand } from './defineFixture.js';
4
+ /**
5
+ * Definition of a component fixture.
6
+ * Components can render React, plain HTML, or any other UI library.
7
+ */
8
+ export interface ComponentDefinition {
9
+ /** Unique identifier within the fixture file */
10
+ readonly id: string;
11
+ /** Display name shown in the tree */
12
+ readonly name: string;
13
+ /** Optional description for documentation */
14
+ readonly description?: string;
15
+ /** How to isolate this component from other components */
16
+ readonly isolation: 'iframe' | 'shadow-dom';
17
+ /** How to display: page (device viewport) or component (natural size) */
18
+ readonly displayMode: DisplayMode;
19
+ /**
20
+ * Stylesheets to inject into shadow root (for shadow-dom isolation).
21
+ * Ignored when isolation is 'iframe'.
22
+ */
23
+ readonly styles?: readonly StyleDefinition[];
24
+ /** Background pattern for the preview canvas: 'light' (default) or 'dark' for dark transparent pattern */
25
+ readonly background: 'light' | 'dark';
26
+ /** Property schema for the component */
27
+ readonly properties: readonly PropertySchema[];
28
+ /**
29
+ * Render the component into the container.
30
+ * Returns a disposable for cleanup (e.g., unmounting React).
31
+ */
32
+ render(container: HTMLElement, props: Record<string, unknown>): Disposable;
33
+ }
34
+ /**
35
+ * A single fixture export created by defineFixture().
36
+ */
37
+ export interface SingleFixtureExport {
38
+ readonly [singleFixtureBrand]: true;
39
+ readonly _options: DefineFixtureOptions;
40
+ readonly _createDefinition: (id: string, name: string) => ComponentDefinition;
41
+ }
42
+ /**
43
+ * A fixture group export created by defineFixtureGroup().
44
+ */
45
+ export interface FixtureGroupExport {
46
+ readonly [fixtureGroupBrand]: true;
47
+ readonly _entries: {
48
+ [key: string]: FixtureGroupEntry;
49
+ };
50
+ }
51
+ /**
52
+ * A fixture variants export created by defineFixtureVariants().
53
+ * Variants are rendered horizontally by default and have a distinct icon.
54
+ */
55
+ export interface FixtureVariantsExport {
56
+ readonly [fixtureVariantsBrand]: true;
57
+ readonly _variants: {
58
+ [key: string]: SingleFixtureExport;
59
+ };
60
+ }
61
+ /**
62
+ * Fixture export type - a single fixture, a group, or variants.
63
+ */
64
+ export type FixtureExport = SingleFixtureExport | FixtureGroupExport | FixtureVariantsExport;
65
+ /**
66
+ * Type guard for checking if a value is a ComponentDefinition.
67
+ * @deprecated Use isSingleFixture or isFixtureGroup from defineFixture.ts instead
68
+ */
69
+ export declare function isComponentDefinition(value: unknown): value is ComponentDefinition;
70
+ //# sourceMappingURL=ComponentDefinition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentDefinition.d.ts","sourceRoot":"","sources":["../../src/core/ComponentDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/I;;;GAGG;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,QAAQ,GAAG,YAAY,CAAC;IAE5C,yEAAyE;IACzE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAElC;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAE7C,0GAA0G;IAC1G,QAAQ,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,CAAC;IAEtC,wCAAwC;IACxC,QAAQ,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,CAAC;IAE/C;;;OAGG;IACH,MAAM,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC;CAC5E;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,mBAAmB,CAAC;CAC/E;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAA;KAAE,CAAC;CACzD;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAAA;KAAE,CAAC;CAC5D;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,qBAAqB,CAAC;AAE7F;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CASlF"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Disposable resource that can be cleaned up.
3
+ */
4
+ export interface Disposable {
5
+ dispose(): void;
6
+ }
7
+ /**
8
+ * Style definition for shadow DOM injection.
9
+ */
10
+ export type StyleDefinition = {
11
+ readonly type: 'css';
12
+ readonly content: string;
13
+ } | {
14
+ readonly type: 'url';
15
+ readonly href: string;
16
+ } | {
17
+ readonly type: 'adopted';
18
+ readonly sheet: CSSStyleSheet;
19
+ };
20
+ /**
21
+ * Display mode for a component.
22
+ */
23
+ export type DisplayMode = PageMode | ComponentMode;
24
+ /**
25
+ * Page mode - component fills a viewport with device presets.
26
+ */
27
+ export interface PageMode {
28
+ readonly type: 'page';
29
+ /**
30
+ * Device presets or custom viewport sizes.
31
+ * When viewing, user can switch between these.
32
+ */
33
+ readonly viewports: ViewportPreset[];
34
+ }
35
+ /**
36
+ * Component mode - renders at natural size.
37
+ */
38
+ export interface ComponentMode {
39
+ readonly type: 'component';
40
+ }
41
+ /**
42
+ * Viewport preset - either a named preset or custom dimensions.
43
+ */
44
+ export type ViewportPreset = ViewportPresetName | {
45
+ readonly name: string;
46
+ readonly width: number;
47
+ readonly height: number;
48
+ };
49
+ export type ViewportPresetName = 'mobile' | 'tablet' | 'desktop';
50
+ /**
51
+ * Standard viewport dimensions for presets.
52
+ */
53
+ export declare const VIEWPORT_SIZES: Record<ViewportPresetName, {
54
+ readonly width: number;
55
+ readonly height: number;
56
+ }>;
57
+ /**
58
+ * Resolves a viewport preset to actual dimensions.
59
+ */
60
+ export declare function resolveViewport(preset: ViewportPreset): {
61
+ name: string;
62
+ width: number;
63
+ height: number;
64
+ };
65
+ //# sourceMappingURL=DisplayMode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DisplayMode.d.ts","sourceRoot":"","sources":["../../src/core/DisplayMode.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAClD;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAA;CAAE,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,aAAa,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/E,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,kBAAkB,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAI1G,CAAC;AAEF;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAKvG"}
@@ -0,0 +1,31 @@
1
+ import { ComponentDefinition, FixtureExport } from './ComponentDefinition.js';
2
+ /**
3
+ * A node in the fixture tree.
4
+ * Can be a folder (with children), variants (with children, horizontal layout), or a component leaf.
5
+ */
6
+ export interface FixtureNode {
7
+ /** Unique identifier (path segments joined by '/') */
8
+ readonly id: string;
9
+ /** Display name */
10
+ readonly name: string;
11
+ /** Node type: folder for groups, variants for horizontal variant display, component for leaves */
12
+ readonly type: 'folder' | 'variants' | 'component';
13
+ /** Children (for folders and variants) */
14
+ readonly children?: readonly FixtureNode[];
15
+ /** Component definition (only for component nodes) */
16
+ readonly component?: ComponentDefinition;
17
+ }
18
+ /**
19
+ * Creates a fixture tree from a map of fixture exports.
20
+ * @param fixtures Map of fixture file path to exported fixture object
21
+ */
22
+ export declare function createFixtureTree(fixtures: Map<string, FixtureExport>): FixtureNode;
23
+ /**
24
+ * Finds a node in the tree by path.
25
+ */
26
+ export declare function findNodeByPath(root: FixtureNode, path: string[]): FixtureNode | undefined;
27
+ /**
28
+ * Collects all component nodes from a subtree.
29
+ */
30
+ export declare function collectComponents(node: FixtureNode): ComponentDefinition[];
31
+ //# sourceMappingURL=FixtureNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FixtureNode.d.ts","sourceRoot":"","sources":["../../src/core/FixtureNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGnF;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,mBAAmB;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,kGAAkG;IAClG,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAC;IAEnD,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAE3C,sDAAsD;IACtD,QAAQ,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC;CAC1C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,WAAW,CAenF;AA8FD;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,GAAG,SAAS,CAezF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,mBAAmB,EAAE,CAU1E"}
@@ -0,0 +1,37 @@
1
+ import { IObservable, IReader } from '@vscode/observables';
2
+ import { ComponentDefinition, FixtureExport } from './ComponentDefinition.js';
3
+ import { FixtureNode } from './FixtureNode.js';
4
+ /**
5
+ * Registry for discovered fixtures.
6
+ * Holds the fixture tree as an observable for reactivity.
7
+ */
8
+ export declare class FixtureRegistry {
9
+ private readonly _fixtures;
10
+ /** Observable root of the fixture tree */
11
+ readonly root: IObservable<FixtureNode>;
12
+ /**
13
+ * Registers a fixture file.
14
+ * @param path The file path (e.g., 'components/Button.fixture.tsx')
15
+ * @param fixtureExport The exported fixture object
16
+ */
17
+ register(path: string, fixtureExport: FixtureExport): void;
18
+ /**
19
+ * Unregisters a fixture file.
20
+ * @param path The file path to remove
21
+ */
22
+ unregister(path: string): void;
23
+ /**
24
+ * Clears all registered fixtures.
25
+ */
26
+ clear(): void;
27
+ /**
28
+ * Gets a node by path.
29
+ */
30
+ getNode(reader: IReader, path: string[]): FixtureNode | undefined;
31
+ /**
32
+ * Gets a component by path (non-reactive, for use in preview iframe).
33
+ * @param path Array of path segments (e.g., ['Button', 'Primary'])
34
+ */
35
+ getComponentByPath(path: string[]): ComponentDefinition | undefined;
36
+ }
37
+ //# sourceMappingURL=FixtureRegistry.d.ts.map