@storybook/preview-api 7.0.0-alpha.54 → 7.0.0-alpha.55

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 (31) hide show
  1. package/dist/{ClientApi-dce2f8f2.d.ts → ClientApi-e986b10e.d.ts} +13 -13
  2. package/dist/{DocsContext-f03e0d93.d.ts → DocsContext-45b5a5b3.d.ts} +47 -37
  3. package/dist/StoryStore-d61f3707.d.ts +109 -0
  4. package/dist/addons.d.ts +2 -2
  5. package/dist/{chunk-OWLSKH4Q.mjs → chunk-DNPROU3W.mjs} +1 -1
  6. package/dist/{chunk-Q5H6OXOG.mjs → chunk-OJACDH5G.mjs} +1 -1
  7. package/dist/{chunk-SVTQV5PN.mjs → chunk-QM3SOF7U.mjs} +1 -1
  8. package/dist/client-api.d.ts +7 -7
  9. package/dist/client-api.js +13 -13
  10. package/dist/client-api.mjs +1 -1
  11. package/dist/composeConfigs-7f62ebf7.d.ts +9 -0
  12. package/dist/core-client.d.ts +4 -4
  13. package/dist/core-client.js +20 -20
  14. package/dist/core-client.mjs +1 -1
  15. package/dist/{hooks-a99e1305.d.ts → hooks-0a0ec0e3.d.ts} +3 -3
  16. package/dist/{hooks-0d0b05c1.d.ts → hooks-dd6bc7a8.d.ts} +0 -0
  17. package/dist/index.d.ts +9 -9
  18. package/dist/index.js +21 -21
  19. package/dist/index.mjs +1 -1
  20. package/dist/preview-web.d.ts +4 -4
  21. package/dist/preview-web.js +15 -15
  22. package/dist/preview-web.mjs +1 -1
  23. package/dist/{queryparams-2acc7490.d.ts → queryparams-d12445b8.d.ts} +0 -0
  24. package/dist/{sortStories-dc945850.d.ts → sortStories-a93f5af2.d.ts} +11 -10
  25. package/dist/{start-3a1ec032.d.ts → start-6a0f43a9.d.ts} +1 -1
  26. package/dist/store.d.ts +5 -5
  27. package/dist/store.js +10 -10
  28. package/dist/{storybook-channel-mock-e42c60b1.d.ts → storybook-channel-mock-a19cd233.d.ts} +0 -0
  29. package/package.json +8 -8
  30. package/dist/StoryStore-8f9ab1c2.d.ts +0 -103
  31. package/dist/composeConfigs-62cfdf58.d.ts +0 -9
@@ -1,21 +1,21 @@
1
1
  import * as _storybook_types from '@storybook/types';
2
- import { Renderer, Store_NormalizedProjectAnnotations, StoryId, Addon_IndexEntry, ComponentId, Path, Store_ModuleExports, DecoratorFunction, Parameters, LoaderFunction, Args, ArgTypes, ArgsEnhancer, ArgTypesEnhancer, StepRunner, Store_ModuleImportFn, Globals, GlobalTypes, Addon_StoryApi } from '@storybook/types';
3
- import { S as StoryStore } from './StoryStore-8f9ab1c2.js';
2
+ import { Renderer, NormalizedProjectAnnotations, StoryId, IndexEntry, ComponentId, Path, ModuleExports, DecoratorFunction, Parameters, LoaderFunction, Args, ArgTypes, ArgsEnhancer, ArgTypesEnhancer, StepRunner, ModuleImportFn, Globals, GlobalTypes, Addon_StoryApi } from '@storybook/types';
3
+ import { S as StoryStore } from './StoryStore-d61f3707.js';
4
4
 
5
5
  declare class StoryStoreFacade<TRenderer extends Renderer> {
6
- projectAnnotations: Store_NormalizedProjectAnnotations<TRenderer>;
7
- entries: Record<StoryId, Addon_IndexEntry & {
6
+ projectAnnotations: NormalizedProjectAnnotations<TRenderer>;
7
+ entries: Record<StoryId, IndexEntry & {
8
8
  componentId?: ComponentId;
9
9
  }>;
10
- csfExports: Record<Path, Store_ModuleExports>;
10
+ csfExports: Record<Path, ModuleExports>;
11
11
  constructor();
12
- importFn(path: Path): Promise<Store_ModuleExports>;
12
+ importFn(path: Path): Promise<ModuleExports>;
13
13
  getStoryIndex(store: StoryStore<TRenderer>): {
14
14
  v: number;
15
- entries: Record<string, Addon_IndexEntry>;
15
+ entries: Record<string, IndexEntry>;
16
16
  };
17
17
  clearFilenameExports(fileName: Path): void;
18
- addStoriesFromExports(fileName: Path, fileExports: Store_ModuleExports): void;
18
+ addStoriesFromExports(fileName: Path, fileExports: ModuleExports): void;
19
19
  }
20
20
 
21
21
  declare let singleton: ClientApi<Renderer>;
@@ -33,16 +33,16 @@ declare class ClientApi<TRenderer extends Renderer> {
33
33
  storyStore?: StoryStore<TRenderer>;
34
34
  private addons;
35
35
  onImportFnChanged?: ({ importFn }: {
36
- importFn: Store_ModuleImportFn;
36
+ importFn: ModuleImportFn;
37
37
  }) => void;
38
38
  private lastFileName;
39
39
  constructor({ storyStore }?: {
40
40
  storyStore?: StoryStore<TRenderer>;
41
41
  });
42
- importFn(path: Path): Promise<Store_ModuleExports>;
42
+ importFn(path: Path): Promise<ModuleExports>;
43
43
  getStoryIndex(): {
44
44
  v: number;
45
- entries: Record<string, _storybook_types.Addon_IndexEntry>;
45
+ entries: Record<string, _storybook_types.IndexEntry>;
46
46
  };
47
47
  addDecorator: (decorator: DecoratorFunction<TRenderer>) => void;
48
48
  addParameters: ({ globals, globalTypes, ...parameters }: Parameters & {
@@ -55,10 +55,10 @@ declare class ClientApi<TRenderer extends Renderer> {
55
55
  addArgTypes: (argTypes: ArgTypes) => void;
56
56
  addArgsEnhancer: (enhancer: ArgsEnhancer<TRenderer>) => void;
57
57
  addArgTypesEnhancer: (enhancer: ArgTypesEnhancer<TRenderer>) => void;
58
- _addedExports: Record<string, Store_ModuleExports>;
58
+ _addedExports: Record<string, ModuleExports>;
59
59
  _loadAddedExports(): void;
60
60
  storiesOf: (kind: string, m?: NodeModule) => Addon_StoryApi<TRenderer['storyResult']>;
61
- raw: () => _storybook_types.Store_BoundStory<TRenderer>[] | undefined;
61
+ raw: () => _storybook_types.BoundStory<TRenderer>[] | undefined;
62
62
  get _storyStore(): StoryStore<TRenderer> | undefined;
63
63
  }
64
64
 
@@ -1,7 +1,7 @@
1
1
  import * as _storybook_types from '@storybook/types';
2
- import { Renderer, StoryId, StoryRenderOptions, ViewMode, Store_Story, RenderToCanvas, Store_RenderContext, Addon_IndexEntry, DocsContextProps, Store_StoryIndex, Store_ModuleImportFn, ProjectAnnotations, Store_PromiseLike, Globals, Args, Store_SelectionSpecifier, Store_Selection, Store_StorySpecifier, Store_CSFFile, Store_ModuleExports, Store_ModuleExport, StoryName, StoryContextForLoaders } from '@storybook/types';
2
+ import { Renderer, StoryId, StoryRenderOptions, ViewMode, PreparedStory, RenderToCanvas, RenderContext, IndexEntry, DocsContextProps, StoryIndex, ModuleImportFn, ProjectAnnotations, Globals, Args, CSFFile, ModuleExports, ModuleExport, StoryName, StoryContextForLoaders } from '@storybook/types';
3
3
  import { Channel } from '@storybook/channels';
4
- import { S as StoryStore } from './StoryStore-8f9ab1c2.js';
4
+ import { S as StoryStore, a as StorySpecifier } from './StoryStore-d61f3707.js';
5
5
 
6
6
  type RenderType = 'story' | 'docs';
7
7
  /**
@@ -25,7 +25,7 @@ interface Render<TRenderer extends Renderer> {
25
25
  }
26
26
 
27
27
  type RenderPhase = 'preparing' | 'loading' | 'rendering' | 'playing' | 'played' | 'completed' | 'aborted' | 'errored';
28
- type RenderContextCallbacks<TRenderer extends Renderer> = Pick<Store_RenderContext<TRenderer>, 'showMain' | 'showError' | 'showException'>;
28
+ type RenderContextCallbacks<TRenderer extends Renderer> = Pick<RenderContext<TRenderer>, 'showMain' | 'showError' | 'showException'>;
29
29
  declare class StoryRender<TRenderer extends Renderer> implements Render<TRenderer> {
30
30
  channel: Channel;
31
31
  store: StoryStore<TRenderer>;
@@ -35,7 +35,7 @@ declare class StoryRender<TRenderer extends Renderer> implements Render<TRendere
35
35
  viewMode: ViewMode;
36
36
  renderOptions: StoryRenderOptions;
37
37
  type: RenderType;
38
- story?: Store_Story<TRenderer>;
38
+ story?: PreparedStory<TRenderer>;
39
39
  phase?: RenderPhase;
40
40
  private abortController?;
41
41
  private canvasElement?;
@@ -43,7 +43,7 @@ declare class StoryRender<TRenderer extends Renderer> implements Render<TRendere
43
43
  disableKeyListeners: boolean;
44
44
  private teardownRender;
45
45
  torndown: boolean;
46
- constructor(channel: Channel, store: StoryStore<TRenderer>, renderToScreen: RenderToCanvas<TRenderer>, callbacks: RenderContextCallbacks<TRenderer>, id: StoryId, viewMode: ViewMode, renderOptions?: StoryRenderOptions, story?: Store_Story<TRenderer>);
46
+ constructor(channel: Channel, store: StoryStore<TRenderer>, renderToScreen: RenderToCanvas<TRenderer>, callbacks: RenderContextCallbacks<TRenderer>, id: StoryId, viewMode: ViewMode, renderOptions?: StoryRenderOptions, story?: PreparedStory<TRenderer>);
47
47
  private runPhase;
48
48
  prepare(): Promise<void>;
49
49
  isEqual(other: Render<TRenderer>): boolean;
@@ -76,10 +76,10 @@ declare class StoryRender<TRenderer extends Renderer> implements Render<TRendere
76
76
  declare class TemplateDocsRender<TRenderer extends Renderer> implements Render<TRenderer> {
77
77
  protected channel: Channel;
78
78
  protected store: StoryStore<TRenderer>;
79
- entry: Addon_IndexEntry;
79
+ entry: IndexEntry;
80
80
  readonly type: RenderType;
81
81
  readonly id: StoryId;
82
- story?: Store_Story<TRenderer>;
82
+ story?: PreparedStory<TRenderer>;
83
83
  rerender?: () => Promise<void>;
84
84
  teardownRender?: (options: {
85
85
  viewModeChanged?: boolean;
@@ -88,7 +88,7 @@ declare class TemplateDocsRender<TRenderer extends Renderer> implements Render<T
88
88
  readonly disableKeyListeners = false;
89
89
  preparing: boolean;
90
90
  private csfFiles?;
91
- constructor(channel: Channel, store: StoryStore<TRenderer>, entry: Addon_IndexEntry);
91
+ constructor(channel: Channel, store: StoryStore<TRenderer>, entry: IndexEntry);
92
92
  isPreparing(): boolean;
93
93
  prepare(): Promise<void>;
94
94
  isEqual(other: Render<TRenderer>): boolean;
@@ -109,7 +109,7 @@ declare class TemplateDocsRender<TRenderer extends Renderer> implements Render<T
109
109
  declare class StandaloneDocsRender<TRenderer extends Renderer> implements Render<TRenderer> {
110
110
  protected channel: Channel;
111
111
  protected store: StoryStore<TRenderer>;
112
- entry: Addon_IndexEntry;
112
+ entry: IndexEntry;
113
113
  readonly type: RenderType;
114
114
  readonly id: StoryId;
115
115
  private exports?;
@@ -121,7 +121,7 @@ declare class StandaloneDocsRender<TRenderer extends Renderer> implements Render
121
121
  readonly disableKeyListeners = false;
122
122
  preparing: boolean;
123
123
  private csfFiles?;
124
- constructor(channel: Channel, store: StoryStore<TRenderer>, entry: Addon_IndexEntry);
124
+ constructor(channel: Channel, store: StoryStore<TRenderer>, entry: IndexEntry);
125
125
  isPreparing(): boolean;
126
126
  prepare(): Promise<void>;
127
127
  isEqual(other: Render<TRenderer>): boolean;
@@ -136,31 +136,31 @@ declare class Preview<TFramework extends Renderer> {
136
136
  protected channel: Channel;
137
137
  serverChannel?: Channel;
138
138
  storyStore: StoryStore<TFramework>;
139
- getStoryIndex?: () => Store_StoryIndex;
140
- importFn?: Store_ModuleImportFn;
139
+ getStoryIndex?: () => StoryIndex;
140
+ importFn?: ModuleImportFn;
141
141
  renderToCanvas?: RenderToCanvas<TFramework>;
142
142
  storyRenders: StoryRender<TFramework>[];
143
143
  previewEntryError?: Error;
144
144
  constructor(channel?: Channel);
145
145
  initialize({ getStoryIndex, importFn, getProjectAnnotations, }: {
146
- getStoryIndex?: () => Store_StoryIndex;
147
- importFn: Store_ModuleImportFn;
146
+ getStoryIndex?: () => StoryIndex;
147
+ importFn: ModuleImportFn;
148
148
  getProjectAnnotations: () => MaybePromise<ProjectAnnotations<TFramework>>;
149
149
  }): Promise<void>;
150
150
  setupListeners(): void;
151
- getProjectAnnotationsOrRenderError(getProjectAnnotations: () => MaybePromise<ProjectAnnotations<TFramework>>): Store_PromiseLike<ProjectAnnotations<TFramework>>;
151
+ getProjectAnnotationsOrRenderError(getProjectAnnotations: () => MaybePromise<ProjectAnnotations<TFramework>>): Promise<ProjectAnnotations<TFramework>>;
152
152
  initializeWithProjectAnnotations(projectAnnotations: ProjectAnnotations<TFramework>): Promise<void>;
153
153
  setInitialGlobals(): Promise<void>;
154
154
  emitGlobals(): void;
155
- getStoryIndexFromServer(): Promise<Store_StoryIndex>;
156
- initializeWithStoryIndex(storyIndex: Store_StoryIndex): PromiseLike<void>;
155
+ getStoryIndexFromServer(): Promise<StoryIndex>;
156
+ initializeWithStoryIndex(storyIndex: StoryIndex): PromiseLike<void>;
157
157
  onGetProjectAnnotationsChanged({ getProjectAnnotations, }: {
158
158
  getProjectAnnotations: () => MaybePromise<ProjectAnnotations<TFramework>>;
159
159
  }): Promise<void>;
160
160
  onStoryIndexChanged(): Promise<void>;
161
161
  onStoriesChanged({ importFn, storyIndex, }: {
162
- importFn?: Store_ModuleImportFn;
163
- storyIndex?: Store_StoryIndex;
162
+ importFn?: ModuleImportFn;
163
+ storyIndex?: StoryIndex;
164
164
  }): Promise<void>;
165
165
  onUpdateGlobals({ globals }: {
166
166
  globals: Globals;
@@ -177,7 +177,7 @@ declare class Preview<TFramework extends Renderer> {
177
177
  onForceRemount({ storyId }: {
178
178
  storyId: StoryId;
179
179
  }): Promise<void>;
180
- renderStoryToElement(story: Store_Story<TFramework>, element: TFramework['canvasElement'], options: StoryRenderOptions): () => Promise<void>;
180
+ renderStoryToElement(story: PreparedStory<TFramework>, element: TFramework['canvasElement'], options: StoryRenderOptions): () => Promise<void>;
181
181
  teardownRender(render: StoryRender<TFramework> | TemplateDocsRender<TFramework> | StandaloneDocsRender<TFramework>, { viewModeChanged }?: {
182
182
  viewModeChanged?: boolean;
183
183
  }): Promise<void>;
@@ -195,15 +195,25 @@ declare class Preview<TFramework extends Renderer> {
195
195
  renderPreviewEntryError(reason: string, err: Error): void;
196
196
  }
197
197
 
198
+ interface SelectionSpecifier {
199
+ storySpecifier: StorySpecifier;
200
+ viewMode: ViewMode;
201
+ args?: Args;
202
+ globals?: Args;
203
+ }
204
+ interface Selection {
205
+ storyId: StoryId;
206
+ viewMode: ViewMode;
207
+ }
198
208
  interface SelectionStore {
199
- selectionSpecifier: Store_SelectionSpecifier | null;
200
- selection?: Store_Selection;
201
- setSelection(selection: Store_Selection): void;
209
+ selectionSpecifier: SelectionSpecifier | null;
210
+ selection?: Selection;
211
+ setSelection(selection: Selection): void;
202
212
  setQueryParams(queryParams: qs.ParsedQs): void;
203
213
  }
204
214
 
205
215
  interface View<TStorybookRoot> {
206
- prepareForStory(story: Store_Story<any>): TStorybookRoot;
216
+ prepareForStory(story: PreparedStory<any>): TStorybookRoot;
207
217
  prepareForDocs(): TStorybookRoot;
208
218
  showErrorDisplay(err: {
209
219
  message?: string;
@@ -224,20 +234,20 @@ type PossibleRender<TFramework extends Renderer> = StoryRender<TFramework> | Tem
224
234
  declare class PreviewWithSelection<TFramework extends Renderer> extends Preview<TFramework> {
225
235
  selectionStore: SelectionStore;
226
236
  view: View<TFramework['canvasElement']>;
227
- currentSelection?: Store_Selection;
237
+ currentSelection?: Selection;
228
238
  currentRender?: PossibleRender<TFramework>;
229
239
  constructor(selectionStore: SelectionStore, view: View<TFramework['canvasElement']>);
230
240
  setupListeners(): void;
231
241
  initializeWithProjectAnnotations(projectAnnotations: ProjectAnnotations<TFramework>): Promise<void>;
232
242
  setInitialGlobals(): Promise<void>;
233
- initializeWithStoryIndex(storyIndex: Store_StoryIndex): PromiseLike<void>;
243
+ initializeWithStoryIndex(storyIndex: StoryIndex): PromiseLike<void>;
234
244
  selectSpecifiedStory(): Promise<void>;
235
245
  onGetProjectAnnotationsChanged({ getProjectAnnotations, }: {
236
246
  getProjectAnnotations: () => MaybePromise<ProjectAnnotations<TFramework>>;
237
247
  }): Promise<void>;
238
248
  onStoriesChanged({ importFn, storyIndex, }: {
239
- importFn?: Store_ModuleImportFn;
240
- storyIndex?: Store_StoryIndex;
249
+ importFn?: ModuleImportFn;
250
+ storyIndex?: StoryIndex;
241
251
  }): Promise<void>;
242
252
  onKeydown(event: KeyboardEvent): void;
243
253
  onSetCurrentStory(selection: {
@@ -282,7 +292,7 @@ declare class PreviewWithSelection<TFramework extends Renderer> extends Preview<
282
292
  };
283
293
  renderPreviewEntryError(reason: string, err: Error): void;
284
294
  renderMissingStory(): void;
285
- renderStoryLoadingException(storySpecifier: Store_StorySpecifier, err: Error): void;
295
+ renderStoryLoadingException(storySpecifier: StorySpecifier, err: Error): void;
286
296
  renderException(storyId: StoryId, error: Error): void;
287
297
  renderError(storyId: StoryId, { title, description }: {
288
298
  title: string;
@@ -308,15 +318,15 @@ declare class DocsContext<TRenderer extends Renderer> implements DocsContextProp
308
318
  private primaryStory?;
309
319
  constructor(channel: Channel, store: StoryStore<TRenderer>, renderStoryToElement: DocsContextProps['renderStoryToElement'],
310
320
  /** The CSF files known (via the index) to be refererenced by this docs file */
311
- csfFiles: Store_CSFFile<TRenderer>[], componentStoriesFromAllCsfFiles?: boolean);
312
- referenceCSFFile(csfFile: Store_CSFFile<TRenderer>, addToComponentStories: boolean): void;
313
- setMeta(metaExports: Store_ModuleExports): void;
314
- storyIdByModuleExport(storyExport: Store_ModuleExport, metaExports?: Store_ModuleExports): string;
321
+ csfFiles: CSFFile<TRenderer>[], componentStoriesFromAllCsfFiles?: boolean);
322
+ referenceCSFFile(csfFile: CSFFile<TRenderer>, addToComponentStories: boolean): void;
323
+ setMeta(metaExports: ModuleExports): void;
324
+ storyIdByModuleExport(storyExport: ModuleExport, metaExports?: ModuleExports): string;
315
325
  storyIdByName: (storyName: StoryName) => string;
316
- componentStories: () => Store_Story<TRenderer>[];
317
- storyById: (storyId?: StoryId) => Store_Story<TRenderer>;
318
- getStoryContext: (story: Store_Story<TRenderer>) => StoryContextForLoaders<TRenderer, _storybook_types.Args>;
319
- loadStory: (id: StoryId) => Promise<Store_Story<TRenderer>>;
326
+ componentStories: () => PreparedStory<TRenderer>[];
327
+ storyById: (storyId?: StoryId) => PreparedStory<TRenderer>;
328
+ getStoryContext: (story: PreparedStory<TRenderer>) => StoryContextForLoaders<TRenderer, _storybook_types.Args>;
329
+ loadStory: (id: StoryId) => Promise<PreparedStory<TRenderer>>;
320
330
  }
321
331
 
322
332
  export { DocsContext as D, Preview as P, simulateDOMContentLoaded as a, PreviewWeb as b, PreviewWithSelection as c, simulatePageLoad as s };
@@ -0,0 +1,109 @@
1
+ import * as _storybook_types from '@storybook/types';
2
+ import { StoryId, StoryName, ComponentTitle, StoryIndex, IndexEntry, Path, Args, PreparedStory, Globals, GlobalTypes, Renderer, ModuleExports, CSFFile, NormalizedStoryAnnotations, NormalizedComponentAnnotations, NormalizedProjectAnnotations, ModuleImportFn, ProjectAnnotations, StoryContextForLoaders, StoryContextForEnhancers, Parameters, StoryIndexV3, API_PreparedStoryIndex, BoundStory } from '@storybook/types';
3
+ import { SynchronousPromise } from 'synchronous-promise';
4
+ import { H as HooksContext } from './hooks-dd6bc7a8.js';
5
+
6
+ type StorySpecifier = StoryId | {
7
+ name: StoryName;
8
+ title: ComponentTitle;
9
+ } | '*';
10
+ declare class StoryIndexStore {
11
+ entries: StoryIndex['entries'];
12
+ constructor({ entries }?: StoryIndex);
13
+ entryFromSpecifier(specifier: StorySpecifier): IndexEntry | undefined;
14
+ storyIdToEntry(storyId: StoryId): IndexEntry;
15
+ importPathToEntry(importPath: Path): IndexEntry;
16
+ }
17
+
18
+ declare class ArgsStore {
19
+ initialArgsByStoryId: Record<StoryId, Args>;
20
+ argsByStoryId: Record<StoryId, Args>;
21
+ get(storyId: StoryId): Args;
22
+ setInitial(story: PreparedStory<any>): void;
23
+ updateFromDelta(story: PreparedStory<any>, delta: Args): void;
24
+ updateFromPersisted(story: PreparedStory<any>, persisted: Args): void;
25
+ update(storyId: StoryId, argsUpdate: Partial<Args>): void;
26
+ }
27
+
28
+ declare class GlobalsStore {
29
+ allowedGlobalNames: Set<string>;
30
+ initialGlobals: Globals;
31
+ globals: Globals;
32
+ constructor({ globals, globalTypes, }: {
33
+ globals?: Globals;
34
+ globalTypes?: GlobalTypes;
35
+ });
36
+ set({ globals, globalTypes }: {
37
+ globals?: Globals;
38
+ globalTypes?: GlobalTypes;
39
+ }): void;
40
+ filterAllowedGlobals(globals: Globals): Globals;
41
+ updateFromPersisted(persisted: Globals): void;
42
+ get(): Globals;
43
+ update(newGlobals: Globals): void;
44
+ }
45
+
46
+ declare function processCSFFile<TRenderer extends Renderer>(moduleExports: ModuleExports, importPath: Path, title: ComponentTitle): CSFFile<TRenderer>;
47
+
48
+ declare function prepareStory<TRenderer extends Renderer>(storyAnnotations: NormalizedStoryAnnotations<TRenderer>, componentAnnotations: NormalizedComponentAnnotations<TRenderer>, projectAnnotations: NormalizedProjectAnnotations<TRenderer>): PreparedStory<TRenderer>;
49
+
50
+ declare class StoryStore<TRenderer extends Renderer> {
51
+ storyIndex?: StoryIndexStore;
52
+ importFn?: ModuleImportFn;
53
+ projectAnnotations?: NormalizedProjectAnnotations<TRenderer>;
54
+ globals?: GlobalsStore;
55
+ args: ArgsStore;
56
+ hooks: Record<StoryId, HooksContext<TRenderer>>;
57
+ cachedCSFFiles?: Record<Path, CSFFile<TRenderer>>;
58
+ processCSFFileWithCache: typeof processCSFFile;
59
+ prepareStoryWithCache: typeof prepareStory;
60
+ initializationPromise: SynchronousPromise<void>;
61
+ resolveInitializationPromise: () => void;
62
+ constructor();
63
+ setProjectAnnotations(projectAnnotations: ProjectAnnotations<TRenderer>): void;
64
+ initialize({ storyIndex, importFn, cache, }: {
65
+ storyIndex?: StoryIndex;
66
+ importFn: ModuleImportFn;
67
+ cache?: boolean;
68
+ }): Promise<void>;
69
+ onStoriesChanged({ importFn, storyIndex, }: {
70
+ importFn?: ModuleImportFn;
71
+ storyIndex?: StoryIndex;
72
+ }): Promise<void>;
73
+ storyIdToEntry(storyId: StoryId): Promise<IndexEntry>;
74
+ loadCSFFileByStoryId(storyId: StoryId): Promise<CSFFile<TRenderer>>;
75
+ loadAllCSFFiles(): Promise<StoryStore<TRenderer>['cachedCSFFiles']>;
76
+ cacheAllCSFFiles(): Promise<void>;
77
+ loadStory({ storyId }: {
78
+ storyId: StoryId;
79
+ }): Promise<PreparedStory<TRenderer>>;
80
+ storyFromCSFFile({ storyId, csfFile, }: {
81
+ storyId: StoryId;
82
+ csfFile: CSFFile<TRenderer>;
83
+ }): PreparedStory<TRenderer>;
84
+ componentStoriesFromCSFFile({ csfFile, }: {
85
+ csfFile: CSFFile<TRenderer>;
86
+ }): PreparedStory<TRenderer>[];
87
+ loadEntry(id: StoryId): Promise<{
88
+ entryExports: ModuleExports;
89
+ csfFiles: CSFFile<TRenderer>[];
90
+ }>;
91
+ getStoryContext(story: PreparedStory<TRenderer>): Omit<StoryContextForLoaders<TRenderer>, 'viewMode'>;
92
+ cleanupStory(story: PreparedStory<TRenderer>): void;
93
+ extract(options?: {
94
+ includeDocsOnly?: boolean;
95
+ }): Record<StoryId, StoryContextForEnhancers<TRenderer>>;
96
+ getSetStoriesPayload(): {
97
+ v: number;
98
+ globals: _storybook_types.Globals;
99
+ globalParameters: {};
100
+ kindParameters: Parameters;
101
+ stories: Record<string, StoryContextForEnhancers<TRenderer, _storybook_types.Args>>;
102
+ };
103
+ getStoriesJsonData: () => StoryIndexV3;
104
+ getSetIndexPayload(): API_PreparedStoryIndex;
105
+ raw(): BoundStory<TRenderer>[];
106
+ fromId(storyId: StoryId): BoundStory<TRenderer> | null;
107
+ }
108
+
109
+ export { StoryStore as S, StorySpecifier as a, processCSFFile as b, prepareStory as p };
package/dist/addons.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { A as AddonStore, c as MakeDecoratorOptions, M as MakeDecoratorResult, a as addons, m as makeDecorator, b as mockChannel } from './storybook-channel-mock-e42c60b1.js';
2
- export { E as EventMap, H as HooksContext, L as Listener, k as applyHooks, u as useArgs, a as useCallback, b as useChannel, c as useEffect, d as useGlobals, e as useMemo, f as useParameter, g as useReducer, h as useRef, i as useState, j as useStoryContext } from './hooks-0d0b05c1.js';
1
+ export { A as AddonStore, c as MakeDecoratorOptions, M as MakeDecoratorResult, a as addons, m as makeDecorator, b as mockChannel } from './storybook-channel-mock-a19cd233.js';
2
+ export { E as EventMap, H as HooksContext, L as Listener, k as applyHooks, u as useArgs, a as useCallback, b as useChannel, c as useEffect, d as useGlobals, e as useMemo, f as useParameter, g as useReducer, h as useRef, i as useState, j as useStoryContext } from './hooks-dd6bc7a8.js';
3
3
  import '@storybook/channels';
4
4
  import '@storybook/types';
@@ -1,4 +1,4 @@
1
- import{combineParameters,composeStepRunners,normalizeInputTypes,sortStoriesV6,userOrAutoTitle}from"./chunk-CMHHF3W3.mjs";import{dedent as dedent2}from"ts-dedent";import global2 from"global";import{logger as logger2}from"@storybook/client-logger";import{toId as toId2,sanitize}from"@storybook/csf";import global from"global";import{dedent}from"ts-dedent";import{SynchronousPromise}from"synchronous-promise";import{toId,isExportStory,storyNameFromExport}from"@storybook/csf";import{logger}from"@storybook/client-logger";var StoryStoreFacade=class{constructor(){this.projectAnnotations={loaders:[],decorators:[],parameters:{},argsEnhancers:[],argTypesEnhancers:[],args:{},argTypes:{}},this.entries={},this.csfExports={}}importFn(path){return SynchronousPromise.resolve().then(()=>{let moduleExports=this.csfExports[path];if(!moduleExports)throw new Error(`Unknown path: ${path}`);return moduleExports})}getStoryIndex(store){let fileNameOrder=Object.keys(this.csfExports),storySortParameter=this.projectAnnotations.parameters?.options?.storySort,sortableV6=Object.entries(this.entries).map(([storyId,{type,importPath,...entry}])=>{let exports=this.csfExports[importPath],csfFile=store.processCSFFileWithCache(exports,importPath,exports.default.title),storyLike;return type==="story"?storyLike=store.storyFromCSFFile({storyId,csfFile}):storyLike={...entry,story:entry.name,kind:entry.title,componentId:toId(entry.componentId||entry.title),parameters:{fileName:importPath}},[storyId,storyLike,csfFile.meta.parameters,this.projectAnnotations.parameters]}),sortedV7;try{sortedV7=sortStoriesV6(sortableV6,storySortParameter,fileNameOrder)}catch(err){throw typeof storySortParameter=="function"?new Error(dedent`
1
+ import{combineParameters,composeStepRunners,normalizeInputTypes,sortStoriesV6,userOrAutoTitle}from"./chunk-CMHHF3W3.mjs";import{dedent as dedent2}from"ts-dedent";import global2 from"global";import{logger as logger2}from"@storybook/client-logger";import{toId as toId2,sanitize}from"@storybook/csf";import global from"global";import{dedent}from"ts-dedent";import{SynchronousPromise}from"synchronous-promise";import{toId,isExportStory,storyNameFromExport}from"@storybook/csf";import{logger}from"@storybook/client-logger";var StoryStoreFacade=class{constructor(){this.projectAnnotations={loaders:[],decorators:[],parameters:{},argsEnhancers:[],argTypesEnhancers:[],args:{},argTypes:{}},this.entries={},this.csfExports={}}importFn(path){return SynchronousPromise.resolve().then(()=>{let moduleExports=this.csfExports[path];if(!moduleExports)throw new Error(`Unknown path: ${path}`);return moduleExports})}getStoryIndex(store){let fileNameOrder=Object.keys(this.csfExports),storySortParameter=this.projectAnnotations.parameters?.options?.storySort,sortableV6=Object.entries(this.entries).map(([storyId,{type,importPath,...entry}])=>{let exports=this.csfExports[importPath],csfFile=store.processCSFFileWithCache(exports,importPath,exports.default.title),storyLike;return type==="story"?storyLike=store.storyFromCSFFile({storyId,csfFile}):storyLike={...entry,story:entry.name,kind:entry.title,componentId:toId(entry.componentId||entry.title),parameters:{fileName:importPath}},[storyId,storyLike,csfFile.meta.parameters,this.projectAnnotations.parameters||{}]}),sortedV7;try{sortedV7=sortStoriesV6(sortableV6,storySortParameter,fileNameOrder)}catch(err){throw typeof storySortParameter=="function"?new Error(dedent`
2
2
  Error sorting stories with sort parameter ${storySortParameter}:
3
3
 
4
4
  > ${err.message}
@@ -6,7 +6,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
6
6
  Perhaps it needs to be upgraded for Storybook 6.4?
7
7
 
8
8
  More info: https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#mainjs-framework-field
9
- `);return projectAnnotations}).catch(err=>{throw this.renderPreviewEntryError("Error reading preview.js:",err),err})}initializeWithProjectAnnotations(projectAnnotations){this.storyStore.setProjectAnnotations(projectAnnotations),this.setInitialGlobals();let storyIndexPromise;if(global.FEATURES?.storyStoreV7)storyIndexPromise=this.getStoryIndexFromServer();else{if(!this.getStoryIndex)throw new Error("No `getStoryIndex` passed defined in v6 mode");storyIndexPromise=SynchronousPromise.resolve().then(this.getStoryIndex)}return storyIndexPromise.then(storyIndex=>this.initializeWithStoryIndex(storyIndex)).catch(err=>{throw this.renderPreviewEntryError("Error loading story index:",err),err})}async setInitialGlobals(){this.emitGlobals()}emitGlobals(){if(!this.storyStore.globals||!this.storyStore.projectAnnotations)throw new Error("Cannot emit before initialization");this.channel.emit(SET_GLOBALS,{globals:this.storyStore.globals.get()||{},globalTypes:this.storyStore.projectAnnotations.globalTypes||{}})}async getStoryIndexFromServer(){let result=await fetch(STORY_INDEX_PATH);if(result.status===200)return result.json();throw new Error(await result.text())}initializeWithStoryIndex(storyIndex){if(!this.importFn)throw new Error("Cannot call initializeWithStoryIndex before initialization");return this.storyStore.initialize({storyIndex,importFn:this.importFn,cache:!global.FEATURES?.storyStoreV7})}async onGetProjectAnnotationsChanged({getProjectAnnotations}){delete this.previewEntryError;let projectAnnotations=await this.getProjectAnnotationsOrRenderError(getProjectAnnotations);if(!this.storyStore.projectAnnotations){await this.initializeWithProjectAnnotations(projectAnnotations);return}await this.storyStore.setProjectAnnotations(projectAnnotations),this.emitGlobals()}async onStoryIndexChanged(){if(delete this.previewEntryError,!!this.storyStore.projectAnnotations)try{let storyIndex=await this.getStoryIndexFromServer();this.storyStore.storyIndex||await this.initializeWithStoryIndex(storyIndex),await this.onStoriesChanged({storyIndex})}catch(err){throw this.renderPreviewEntryError("Error loading story index:",err),err}}async onStoriesChanged({importFn,storyIndex}){await this.storyStore.onStoriesChanged({importFn,storyIndex})}async onUpdateGlobals({globals}){if(!this.storyStore.globals)throw new Error("Cannot call onUpdateGlobals before initialization");this.storyStore.globals.update(globals),await Promise.all(this.storyRenders.map(r=>r.rerender())),this.channel.emit(GLOBALS_UPDATED,{globals:this.storyStore.globals.get(),initialGlobals:this.storyStore.globals.initialGlobals})}async onUpdateArgs({storyId,updatedArgs}){this.storyStore.args.update(storyId,updatedArgs),await Promise.all(this.storyRenders.filter(r=>r.id===storyId).map(r=>r.rerender())),this.channel.emit(STORY_ARGS_UPDATED,{storyId,args:this.storyStore.args.get(storyId)})}async onResetArgs({storyId,argNames}){let story=this.storyRenders.find(r=>r.id===storyId)?.story||await this.storyStore.loadStory({storyId}),updatedArgs=(argNames||[...new Set([...Object.keys(story.initialArgs),...Object.keys(this.storyStore.args.get(storyId))])]).reduce((acc,argName)=>(acc[argName]=story.initialArgs[argName],acc),{});await this.onUpdateArgs({storyId,updatedArgs})}async onForceReRender(){await Promise.all(this.storyRenders.map(r=>r.rerender()))}async onForceRemount({storyId}){await Promise.all(this.storyRenders.filter(r=>r.id===storyId).map(r=>r.remount()))}renderStoryToElement(story,element,options){if(!this.renderToCanvas)throw new Error("Cannot call renderStoryToElement before initialization");let render=new StoryRender(this.channel,this.storyStore,this.renderToCanvas,this.inlineStoryCallbacks(story.id),story.id,"docs",options,story);return render.renderToElement(element),this.storyRenders.push(render),async()=>{await this.teardownRender(render)}}async teardownRender(render,{viewModeChanged}={}){this.storyRenders=this.storyRenders.filter(r=>r!==render),await render?.teardown?.({viewModeChanged})}async extract(options){if(this.previewEntryError)throw this.previewEntryError;if(!this.storyStore.projectAnnotations)throw new Error(dedent`Failed to initialize Storybook.
9
+ `);return projectAnnotations}).catch(err=>{throw this.renderPreviewEntryError("Error reading preview.js:",err),err})}initializeWithProjectAnnotations(projectAnnotations){this.storyStore.setProjectAnnotations(projectAnnotations),this.setInitialGlobals();let storyIndexPromise;if(global.FEATURES?.storyStoreV7)storyIndexPromise=this.getStoryIndexFromServer();else{if(!this.getStoryIndex)throw new Error("No `getStoryIndex` passed defined in v6 mode");storyIndexPromise=SynchronousPromise.resolve().then(this.getStoryIndex)}return storyIndexPromise.then(storyIndex=>this.initializeWithStoryIndex(storyIndex)).catch(err=>{throw this.renderPreviewEntryError("Error loading story index:",err),err})}async setInitialGlobals(){this.emitGlobals()}emitGlobals(){if(!this.storyStore.globals||!this.storyStore.projectAnnotations)throw new Error("Cannot emit before initialization");let payload={globals:this.storyStore.globals.get()||{},globalTypes:this.storyStore.projectAnnotations.globalTypes||{}};this.channel.emit(SET_GLOBALS,payload)}async getStoryIndexFromServer(){let result=await fetch(STORY_INDEX_PATH);if(result.status===200)return result.json();throw new Error(await result.text())}initializeWithStoryIndex(storyIndex){if(!this.importFn)throw new Error("Cannot call initializeWithStoryIndex before initialization");return this.storyStore.initialize({storyIndex,importFn:this.importFn,cache:!global.FEATURES?.storyStoreV7})}async onGetProjectAnnotationsChanged({getProjectAnnotations}){delete this.previewEntryError;let projectAnnotations=await this.getProjectAnnotationsOrRenderError(getProjectAnnotations);if(!this.storyStore.projectAnnotations){await this.initializeWithProjectAnnotations(projectAnnotations);return}await this.storyStore.setProjectAnnotations(projectAnnotations),this.emitGlobals()}async onStoryIndexChanged(){if(delete this.previewEntryError,!!this.storyStore.projectAnnotations)try{let storyIndex=await this.getStoryIndexFromServer();this.storyStore.storyIndex||await this.initializeWithStoryIndex(storyIndex),await this.onStoriesChanged({storyIndex})}catch(err){throw this.renderPreviewEntryError("Error loading story index:",err),err}}async onStoriesChanged({importFn,storyIndex}){await this.storyStore.onStoriesChanged({importFn,storyIndex})}async onUpdateGlobals({globals}){if(!this.storyStore.globals)throw new Error("Cannot call onUpdateGlobals before initialization");this.storyStore.globals.update(globals),await Promise.all(this.storyRenders.map(r=>r.rerender())),this.channel.emit(GLOBALS_UPDATED,{globals:this.storyStore.globals.get(),initialGlobals:this.storyStore.globals.initialGlobals})}async onUpdateArgs({storyId,updatedArgs}){this.storyStore.args.update(storyId,updatedArgs),await Promise.all(this.storyRenders.filter(r=>r.id===storyId).map(r=>r.rerender())),this.channel.emit(STORY_ARGS_UPDATED,{storyId,args:this.storyStore.args.get(storyId)})}async onResetArgs({storyId,argNames}){let story=this.storyRenders.find(r=>r.id===storyId)?.story||await this.storyStore.loadStory({storyId}),updatedArgs=(argNames||[...new Set([...Object.keys(story.initialArgs),...Object.keys(this.storyStore.args.get(storyId))])]).reduce((acc,argName)=>(acc[argName]=story.initialArgs[argName],acc),{});await this.onUpdateArgs({storyId,updatedArgs})}async onForceReRender(){await Promise.all(this.storyRenders.map(r=>r.rerender()))}async onForceRemount({storyId}){await Promise.all(this.storyRenders.filter(r=>r.id===storyId).map(r=>r.remount()))}renderStoryToElement(story,element,options){if(!this.renderToCanvas)throw new Error("Cannot call renderStoryToElement before initialization");let render=new StoryRender(this.channel,this.storyStore,this.renderToCanvas,this.inlineStoryCallbacks(story.id),story.id,"docs",options,story);return render.renderToElement(element),this.storyRenders.push(render),async()=>{await this.teardownRender(render)}}async teardownRender(render,{viewModeChanged}={}){this.storyRenders=this.storyRenders.filter(r=>r!==render),await render?.teardown?.({viewModeChanged})}async extract(options){if(this.previewEntryError)throw this.previewEntryError;if(!this.storyStore.projectAnnotations)throw new Error(dedent`Failed to initialize Storybook.
10
10
 
11
11
  Do you have an error in your \`preview.js\`? Check your Storybook's browser console for errors.`);return global.FEATURES?.storyStoreV7&&await this.storyStore.cacheAllCSFFiles(),this.storyStore.extract(options)}inlineStoryCallbacks(storyId){return{showMain:()=>{},showError:err=>logger2.error(`Error rendering docs story (${storyId})`,err),showException:err=>logger2.error(`Error rendering docs story (${storyId})`,err)}}renderPreviewEntryError(reason,err){this.previewEntryError=err,logger2.error(reason),logger2.error(err),this.channel.emit(CONFIG_ERROR,err)}};import{dedent as dedent2}from"ts-dedent";import global2 from"global";import{CURRENT_STORY_WAS_SET,PRELOAD_ENTRIES,PREVIEW_KEYDOWN,SET_CURRENT_STORY,SET_INDEX,STORY_ARGS_UPDATED as STORY_ARGS_UPDATED2,STORY_CHANGED,STORY_ERRORED,STORY_MISSING,STORY_PREPARED,STORY_RENDER_PHASE_CHANGED as STORY_RENDER_PHASE_CHANGED2,STORY_SPECIFIED,STORY_THREW_EXCEPTION,STORY_UNCHANGED,UPDATE_QUERY_PARAMS}from"@storybook/core-events";import{logger as logger3}from"@storybook/client-logger";import{DOCS_RENDERED}from"@storybook/core-events";var DocsContext=class{constructor(channel,store,renderStoryToElement,csfFiles,componentStoriesFromAllCsfFiles=!0){this.channel=channel;this.store=store;this.renderStoryToElement=renderStoryToElement;this.storyIdByName=storyName=>{let storyId=this.nameToStoryId.get(storyName);if(storyId)return storyId;throw new Error(`No story found with that name: ${storyName}`)};this.componentStories=()=>this.componentStoriesValue;this.storyById=storyId=>{if(!storyId){if(!this.primaryStory)throw new Error("No primary story defined for docs entry. Did you forget to use `<Meta>`?");return this.primaryStory}let csfFile=this.storyIdToCSFFile.get(storyId);if(!csfFile)throw new Error(`Called \`storyById\` for story that was never loaded: ${storyId}`);return this.store.storyFromCSFFile({storyId,csfFile})};this.getStoryContext=story=>({...this.store.getStoryContext(story),viewMode:"docs"});this.loadStory=id=>this.store.loadStory({storyId:id});this.storyIdToCSFFile=new Map,this.exportToStoryId=new Map,this.nameToStoryId=new Map,this.componentStoriesValue=[],csfFiles.forEach((csfFile,index)=>{this.referenceCSFFile(csfFile,componentStoriesFromAllCsfFiles||index===0)})}referenceCSFFile(csfFile,addToComponentStories){Object.values(csfFile.stories).forEach(annotation=>{this.storyIdToCSFFile.set(annotation.id,csfFile),this.exportToStoryId.set(annotation.moduleExport,annotation.id)}),addToComponentStories&&this.store.componentStoriesFromCSFFile({csfFile}).forEach(story=>{this.nameToStoryId.set(story.name,story.id),this.componentStoriesValue.push(story),this.primaryStory||(this.primaryStory=story)})}setMeta(metaExports){}storyIdByModuleExport(storyExport,metaExports){let storyId=this.exportToStoryId.get(storyExport);if(storyId)return storyId;throw new Error(`No story found with that export: ${storyExport}`)}};var TemplateDocsRender=class{constructor(channel,store,entry){this.channel=channel;this.store=store;this.entry=entry;this.type="docs";this.torndown=!1;this.disableKeyListeners=!1;this.preparing=!1;this.id=entry.id}isPreparing(){return this.preparing}async prepare(){this.preparing=!0;let{entryExports,csfFiles=[]}=await this.store.loadEntry(this.id);if(this.torndown)throw PREPARE_ABORTED;let{importPath,title}=this.entry,primaryCsfFile=this.store.processCSFFileWithCache(entryExports,importPath,title),primaryStoryId=Object.keys(primaryCsfFile.stories)[0];this.story=this.store.storyFromCSFFile({storyId:primaryStoryId,csfFile:primaryCsfFile}),this.csfFiles=[primaryCsfFile,...csfFiles],this.preparing=!1}isEqual(other){return!!(this.id===other.id&&this.story&&this.story===other.story)}async renderToElement(canvasElement,renderStoryToElement){if(!this.story||!this.csfFiles)throw new Error("Cannot render docs before preparing");let docsContext=new DocsContext(this.channel,this.store,renderStoryToElement,this.csfFiles,!0),{docs:docsParameter}=this.story.parameters||{};if(!docsParameter)throw new Error("Cannot render a story in viewMode=docs if `@storybook/addon-docs` is not installed");let renderer=await docsParameter.renderer(),{render}=renderer,renderDocs=async()=>{await new Promise(r=>render(docsContext,docsParameter,canvasElement,r)),this.channel.emit(DOCS_RENDERED,this.id)};return this.rerender=async()=>renderDocs(),this.teardownRender=async({viewModeChanged})=>{!viewModeChanged||!canvasElement||renderer.unmount(canvasElement)},renderDocs()}async teardown({viewModeChanged}={}){this.teardownRender?.({viewModeChanged}),this.torndown=!0}};import{DOCS_RENDERED as DOCS_RENDERED2}from"@storybook/core-events";var StandaloneDocsRender=class{constructor(channel,store,entry){this.channel=channel;this.store=store;this.entry=entry;this.type="docs";this.torndown=!1;this.disableKeyListeners=!1;this.preparing=!1;this.id=entry.id}isPreparing(){return this.preparing}async prepare(){this.preparing=!0;let{entryExports,csfFiles=[]}=await this.store.loadEntry(this.id);if(this.torndown)throw PREPARE_ABORTED;this.csfFiles=csfFiles,this.exports=entryExports,this.preparing=!1}isEqual(other){return!!(this.id===other.id&&this.exports&&this.exports===other.exports)}async renderToElement(canvasElement,renderStoryToElement){if(!this.exports||!this.csfFiles||!this.store.projectAnnotations)throw new Error("Cannot render docs before preparing");let docsContext=new DocsContext(this.channel,this.store,renderStoryToElement,this.csfFiles,!1),{docs}=this.store.projectAnnotations.parameters||{};if(!docs)throw new Error("Cannot render a story in viewMode=docs if `@storybook/addon-docs` is not installed");let docsParameter={...docs,page:this.exports.default},renderer=await docs.renderer(),{render}=renderer,renderDocs=async()=>{await new Promise(r=>render(docsContext,docsParameter,canvasElement,r)),this.channel.emit(DOCS_RENDERED2,this.id)};return this.rerender=async()=>renderDocs(),this.teardownRender=async({viewModeChanged}={})=>{!viewModeChanged||!canvasElement||(renderer.unmount(canvasElement),this.torndown=!0)},renderDocs()}async teardown({viewModeChanged}={}){this.teardownRender?.({viewModeChanged}),this.torndown=!0}};var globalWindow=globalThis;function focusInInput(event){let target=event.target;return/input|textarea/i.test(target.tagName)||target.getAttribute("contenteditable")!==null}function isStoryRender(r){return r.type==="story"}var PreviewWithSelection=class extends Preview{constructor(selectionStore,view){super();this.selectionStore=selectionStore;this.view=view}setupListeners(){super.setupListeners(),globalWindow.onkeydown=this.onKeydown.bind(this),this.channel.on(SET_CURRENT_STORY,this.onSetCurrentStory.bind(this)),this.channel.on(UPDATE_QUERY_PARAMS,this.onUpdateQueryParams.bind(this)),this.channel.on(PRELOAD_ENTRIES,this.onPreloadStories.bind(this))}initializeWithProjectAnnotations(projectAnnotations){return super.initializeWithProjectAnnotations(projectAnnotations).then(()=>this.setInitialGlobals())}async setInitialGlobals(){if(!this.storyStore.globals)throw new Error("Cannot call setInitialGlobals before initialization");let{globals}=this.selectionStore.selectionSpecifier||{};globals&&this.storyStore.globals.updateFromPersisted(globals),this.emitGlobals()}initializeWithStoryIndex(storyIndex){return super.initializeWithStoryIndex(storyIndex).then(()=>(global2.FEATURES?.storyStoreV7||this.channel.emit(SET_INDEX,this.storyStore.getSetIndexPayload()),this.selectSpecifiedStory()))}async selectSpecifiedStory(){if(!this.storyStore.storyIndex)throw new Error("Cannot call selectSpecifiedStory before initialization");if(!this.selectionStore.selectionSpecifier){this.renderMissingStory();return}let{storySpecifier,args}=this.selectionStore.selectionSpecifier,entry=this.storyStore.storyIndex.entryFromSpecifier(storySpecifier);if(!entry){storySpecifier==="*"?this.renderStoryLoadingException(storySpecifier,new Error(dedent2`
12
12
  Couldn't find any stories in your Storybook.
@@ -1,2 +1,2 @@
1
- import{ClientApi}from"./chunk-OWLSKH4Q.mjs";import{PreviewWeb}from"./chunk-Q5H6OXOG.mjs";import{addons}from"./chunk-QSH26RWA.mjs";import global from"global";import{createChannel}from"@storybook/channel-postmessage";import{FORCE_RE_RENDER}from"@storybook/core-events";import{logger}from"@storybook/client-logger";function executeLoadable(loadable){let reqs=null;Array.isArray(loadable)?reqs=loadable:loadable.keys&&(reqs=[loadable]);let exportsMap=new Map;if(reqs)reqs.forEach(req=>{req.keys().forEach(filename=>{try{let fileExports=req(filename);exportsMap.set(typeof req.resolve=="function"?req.resolve(filename):filename,fileExports)}catch(error){let errorString=error.message&&error.stack?`${error.message}
1
+ import{ClientApi}from"./chunk-DNPROU3W.mjs";import{PreviewWeb}from"./chunk-OJACDH5G.mjs";import{addons}from"./chunk-QSH26RWA.mjs";import global from"global";import{createChannel}from"@storybook/channel-postmessage";import{FORCE_RE_RENDER}from"@storybook/core-events";import{logger}from"@storybook/client-logger";function executeLoadable(loadable){let reqs=null;Array.isArray(loadable)?reqs=loadable:loadable.keys&&(reqs=[loadable]);let exportsMap=new Map;if(reqs)reqs.forEach(req=>{req.keys().forEach(filename=>{try{let fileExports=req(filename);exportsMap.set(typeof req.resolve=="function"?req.resolve(filename):filename,fileExports)}catch(error){let errorString=error.message&&error.stack?`${error.message}
2
2
  ${error.stack}`:error.toString();logger.error(`Unexpected error while loading ${filename}: ${errorString}`)}})});else{let exported=loadable();Array.isArray(exported)&&exported.every(obj=>obj.default!=null)?exportsMap=new Map(exported.map((fileExports,index)=>[`exports-map-${index}`,fileExports])):exported&&logger.warn(`Loader function passed to 'configure' should return void or an array of module exports that all contain a 'default' export. Received: ${JSON.stringify(exported)}`)}return exportsMap}function executeLoadableForChanges(loadable,m){let lastExportsMap=m?.hot?.data?.lastExportsMap||new Map;m?.hot?.dispose&&(m.hot.accept(),m.hot.dispose(data=>{data.lastExportsMap=lastExportsMap}));let exportsMap=executeLoadable(loadable),added=new Map;Array.from(exportsMap.entries()).filter(([,fileExports])=>!!fileExports.default).filter(([fileName,fileExports])=>lastExportsMap.get(fileName)!==fileExports).forEach(([fileName,fileExports])=>added.set(fileName,fileExports));let removed=new Map;return Array.from(lastExportsMap.keys()).filter(fileName=>!exportsMap.has(fileName)).forEach(fileName=>{let value=lastExportsMap.get(fileName);value&&removed.set(fileName,value)}),lastExportsMap=exportsMap,{added,removed}}var{window:globalWindow,FEATURES}=global,removedApi=name=>()=>{throw new Error(`@storybook/client-api:${name} was removed in storyStoreV7.`)};function start(renderToCanvas,{decorateStory,render}={}){if(globalWindow&&(globalWindow.IS_STORYBOOK=!0),FEATURES?.storyStoreV7)return{forceReRender:removedApi("forceReRender"),configure:removedApi("configure"),clientApi:{storiesOf:removedApi("clientApi.storiesOf"),raw:removedApi("raw")}};let channel=createChannel({page:"preview"});addons.setChannel(channel);let clientApi=new ClientApi,preview=new PreviewWeb,initialized=!1,importFn=path=>clientApi.importFn(path);function onStoriesChanged(){let storyIndex=clientApi.getStoryIndex();preview.onStoriesChanged({storyIndex,importFn})}return clientApi.onImportFnChanged=onStoriesChanged,clientApi.storyStore=preview.storyStore,globalWindow&&(globalWindow.__STORYBOOK_CLIENT_API__=clientApi,globalWindow.__STORYBOOK_ADDONS_CHANNEL__=channel,globalWindow.__STORYBOOK_PREVIEW__=preview,globalWindow.__STORYBOOK_STORY_STORE__=preview.storyStore),{forceReRender:()=>channel.emit(FORCE_RE_RENDER),clientApi,configure(framework,loadable,m,disableBackwardCompatibility=!0){if(disableBackwardCompatibility)throw new Error("unexpected configure() call");clientApi.addParameters({framework});let getProjectAnnotations=()=>{let{added,removed}=executeLoadableForChanges(loadable,m);return clientApi._loadAddedExports(),Array.from(added.entries()).forEach(([fileName,fileExports])=>clientApi.facade.addStoriesFromExports(fileName,fileExports)),Array.from(removed.entries()).forEach(([fileName])=>clientApi.facade.clearFilenameExports(fileName)),{render,...clientApi.facade.projectAnnotations,renderToCanvas,applyDecorators:decorateStory}};initialized?(getProjectAnnotations(),onStoriesChanged()):(preview.initialize({getStoryIndex:()=>clientApi.getStoryIndex(),importFn,getProjectAnnotations}),initialized=!0)}}}export{start};
@@ -1,10 +1,10 @@
1
- export { C as ClientApi, a as addArgTypes, b as addArgTypesEnhancer, c as addArgs, d as addArgsEnhancer, e as addDecorator, f as addLoader, g as addParameters, h as addStepRunner, s as setGlobalRender } from './ClientApi-dce2f8f2.js';
2
- export { S as StoryStore, p as prepareStory, a as processCSFFile } from './StoryStore-8f9ab1c2.js';
3
- export { D as DEEPLY_EQUAL, N as NO_TARGET_NAME, c as combineArgs, a as combineParameters, b as composeStepRunners, d as composeStories, e as composeStory, f as decorateStory, l as deepDiff, g as defaultDecorateStory, h as filterArgTypes, o as groupArgsByTarget, j as inferControls, m as mapArgsToTypes, p as noTargetArgs, n as normalizeStory, s as sanitizeStoryContextUpdate, i as setProjectAnnotations, r as sortStoriesV6, k as sortStoriesV7, q as userOrAutoTitle, u as userOrAutoTitleFromSpecifier, v as validateOptions } from './sortStories-dc945850.js';
4
- export { g as getValuesFromArgTypes, b as normalizeComponentAnnotations, n as normalizeInputType, a as normalizeInputTypes, c as normalizeProjectAnnotations, d as useAddonState, u as useSharedState } from './hooks-a99e1305.js';
5
- export { c as composeConfigs, a as getArrayField, g as getField, b as getObjectField, d as getSingletonField } from './composeConfigs-62cfdf58.js';
6
- export { g as getQueryParam, a as getQueryParams } from './queryparams-2acc7490.js';
7
- export { H as HooksContext, k as applyHooks, u as useArgs, a as useCallback, b as useChannel, c as useEffect, d as useGlobals, e as useMemo, f as useParameter, g as useReducer, h as useRef, i as useState, j as useStoryContext } from './hooks-0d0b05c1.js';
1
+ export { C as ClientApi, a as addArgTypes, b as addArgTypesEnhancer, c as addArgs, d as addArgsEnhancer, e as addDecorator, f as addLoader, g as addParameters, h as addStepRunner, s as setGlobalRender } from './ClientApi-e986b10e.js';
2
+ export { S as StoryStore, p as prepareStory, b as processCSFFile } from './StoryStore-d61f3707.js';
3
+ export { D as DEEPLY_EQUAL, N as NO_TARGET_NAME, P as PropDescriptor, c as combineArgs, a as combineParameters, b as composeStepRunners, d as composeStories, e as composeStory, f as decorateStory, l as deepDiff, g as defaultDecorateStory, h as filterArgTypes, o as groupArgsByTarget, j as inferControls, m as mapArgsToTypes, p as noTargetArgs, n as normalizeStory, s as sanitizeStoryContextUpdate, i as setProjectAnnotations, r as sortStoriesV6, k as sortStoriesV7, q as userOrAutoTitle, u as userOrAutoTitleFromSpecifier, v as validateOptions } from './sortStories-a93f5af2.js';
4
+ export { g as getValuesFromArgTypes, b as normalizeComponentAnnotations, n as normalizeInputType, a as normalizeInputTypes, c as normalizeProjectAnnotations, d as useAddonState, u as useSharedState } from './hooks-0a0ec0e3.js';
5
+ export { c as composeConfigs, a as getArrayField, g as getField, b as getObjectField, d as getSingletonField } from './composeConfigs-7f62ebf7.js';
6
+ export { g as getQueryParam, a as getQueryParams } from './queryparams-d12445b8.js';
7
+ export { H as HooksContext, k as applyHooks, u as useArgs, a as useCallback, b as useChannel, c as useEffect, d as useGlobals, e as useMemo, f as useParameter, g as useReducer, h as useRef, i as useState, j as useStoryContext } from './hooks-dd6bc7a8.js';
8
8
  import '@storybook/types';
9
9
  import 'synchronous-promise';
10
10
  import 'qs';