@storybook/preview-api 7.0.0-beta.6 → 7.0.0-beta.60

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 (35) hide show
  1. package/dist/{ClientApi-eda085ef.d.ts → ClientApi-4bc526c1.d.ts} +2 -3
  2. package/dist/{StoryStore-e35dc2c4.d.ts → StoryStore-8dcb90f9.d.ts} +4 -3
  3. package/dist/addons.d.ts +1 -1
  4. package/dist/addons.js +4 -4
  5. package/dist/addons.mjs +1 -1
  6. package/dist/chunk-4LZCDZO3.mjs +13 -0
  7. package/dist/{chunk-Z6DHZWDG.mjs → chunk-BKCXGHBI.mjs} +8 -8
  8. package/dist/chunk-RTGEOU4B.mjs +3 -0
  9. package/dist/chunk-U6GFELHZ.mjs +39 -0
  10. package/dist/chunk-USD4AKPY.mjs +2 -0
  11. package/dist/client-api.d.ts +5 -5
  12. package/dist/client-api.js +24 -24
  13. package/dist/client-api.mjs +1 -1
  14. package/dist/{composeConfigs-7f62ebf7.d.ts → composeConfigs-62a04721.d.ts} +3 -1
  15. package/dist/core-client.d.ts +4 -4
  16. package/dist/core-client.js +31 -31
  17. package/dist/core-client.mjs +1 -1
  18. package/dist/{hooks-dd6bc7a8.d.ts → hooks-55c56a89.d.ts} +8 -8
  19. package/dist/index.d.ts +7 -7
  20. package/dist/index.js +38 -38
  21. package/dist/index.mjs +1 -1
  22. package/dist/preview-web.d.ts +4 -4
  23. package/dist/preview-web.js +24 -24
  24. package/dist/preview-web.mjs +1 -1
  25. package/dist/{DocsContext-b4bac20d.d.ts → simulate-pageload-49f3286c.d.ts} +55 -61
  26. package/dist/{sortStories-a93f5af2.d.ts → sortStories-bcf0764a.d.ts} +2 -2
  27. package/dist/{start-2e36077d.d.ts → start-62db31b6.d.ts} +1 -1
  28. package/dist/store.d.ts +4 -4
  29. package/dist/store.js +18 -18
  30. package/dist/store.mjs +1 -1
  31. package/package.json +9 -9
  32. package/dist/chunk-7WHOLHII.mjs +0 -39
  33. package/dist/chunk-ATCPQ4CW.mjs +0 -2
  34. package/dist/chunk-IHLRLYIL.mjs +0 -13
  35. package/dist/chunk-QSH26RWA.mjs +0 -3
@@ -1 +1 @@
1
- import{DocsContext,Preview,PreviewWeb,PreviewWithSelection,simulateDOMContentLoaded,simulatePageLoad}from"./chunk-Z6DHZWDG.mjs";import{composeConfigs}from"./chunk-7WHOLHII.mjs";import"./chunk-QSH26RWA.mjs";export{DocsContext,Preview,PreviewWeb,PreviewWithSelection,composeConfigs,simulateDOMContentLoaded,simulatePageLoad};
1
+ import{DocsContext,Preview,PreviewWeb,PreviewWithSelection,simulateDOMContentLoaded,simulatePageLoad}from"./chunk-BKCXGHBI.mjs";import{composeConfigs}from"./chunk-U6GFELHZ.mjs";import"./chunk-RTGEOU4B.mjs";export{DocsContext,Preview,PreviewWeb,PreviewWithSelection,composeConfigs,simulateDOMContentLoaded,simulatePageLoad};
@@ -1,7 +1,7 @@
1
1
  import * as _storybook_types 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';
2
+ import { Renderer, StoryId, StoryRenderOptions, ViewMode, PreparedStory, RenderToCanvas, RenderContextCallbacks, DocsContextProps, CSFFile, ModuleExports, ResolvedModuleExportType, ModuleExport, ResolvedModuleExportFromType, StoryName, StoryContextForLoaders, IndexEntry, StoryIndex, ModuleImportFn, ProjectAnnotations, Globals, Args } from '@storybook/types';
3
3
  import { Channel } from '@storybook/channels';
4
- import { S as StoryStore, a as StorySpecifier } from './StoryStore-e35dc2c4.js';
4
+ import { S as StoryStore, b as StorySpecifier } from './StoryStore-8dcb90f9.js';
5
5
 
6
6
  type RenderType = 'story' | 'docs';
7
7
  /**
@@ -25,7 +25,6 @@ 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<RenderContext<TRenderer>, 'showMain' | 'showError' | 'showException'>;
29
28
  declare class StoryRender<TRenderer extends Renderer> implements Render<TRenderer> {
30
29
  channel: Channel;
31
30
  store: StoryStore<TRenderer>;
@@ -61,19 +60,47 @@ declare class StoryRender<TRenderer extends Renderer> implements Render<TRendere
61
60
  teardown(): Promise<void>;
62
61
  }
63
62
 
63
+ declare class DocsContext<TRenderer extends Renderer> implements DocsContextProps<TRenderer> {
64
+ channel: Channel;
65
+ protected store: StoryStore<TRenderer>;
66
+ renderStoryToElement: DocsContextProps['renderStoryToElement'];
67
+ private componentStoriesValue;
68
+ private storyIdToCSFFile;
69
+ private exportToStory;
70
+ private exportsToCSFFile;
71
+ private nameToStoryId;
72
+ private attachedCSFFile?;
73
+ private primaryStory?;
74
+ constructor(channel: Channel, store: StoryStore<TRenderer>, renderStoryToElement: DocsContextProps['renderStoryToElement'],
75
+ /** The CSF files known (via the index) to be refererenced by this docs file */
76
+ csfFiles: CSFFile<TRenderer>[]);
77
+ referenceCSFFile(csfFile: CSFFile<TRenderer>): void;
78
+ attachCSFFile(csfFile: CSFFile<TRenderer>): void;
79
+ referenceMeta(metaExports: ModuleExports, attach: boolean): void;
80
+ get projectAnnotations(): _storybook_types.NormalizedProjectAnnotations<TRenderer>;
81
+ private resolveAttachedModuleExportType;
82
+ private resolveModuleExport;
83
+ resolveOf<TType extends ResolvedModuleExportType>(moduleExportOrType: ModuleExport | TType, validTypes?: TType[]): ResolvedModuleExportFromType<TType, TRenderer>;
84
+ storyIdByName: (storyName: StoryName) => string;
85
+ componentStories: () => PreparedStory<TRenderer>[];
86
+ storyById: (storyId?: StoryId) => PreparedStory<TRenderer>;
87
+ getStoryContext: (story: PreparedStory<TRenderer>) => StoryContextForLoaders<TRenderer, _storybook_types.Args>;
88
+ loadStory: (id: StoryId) => Promise<PreparedStory<TRenderer>>;
89
+ }
90
+
64
91
  /**
65
- * A TemplateDocsRender is a render of a docs entry that is rendered with (an) attached CSF file(s).
92
+ * A CsfDocsRender is a render of a docs entry that is rendered based on a CSF file.
66
93
  *
67
94
  * The expectation is the primary CSF file which is the `importPath` for the entry will
68
95
  * define a story which may contain the actual rendered JSX code for the template in the
69
96
  * `docs.page` parameter.
70
97
  *
71
98
  * Use cases:
72
- * - Docs Page, where there is no parameter, and we fall back to the globally defined template.
99
+ * - Autodocs, where there is no story, and we fall back to the globally defined template.
73
100
  * - *.stories.mdx files, where the MDX compiler produces a CSF file with a `.parameter.docs.page`
74
101
  * parameter containing the compiled content of the MDX file.
75
102
  */
76
- declare class TemplateDocsRender<TRenderer extends Renderer> implements Render<TRenderer> {
103
+ declare class CsfDocsRender<TRenderer extends Renderer> implements Render<TRenderer> {
77
104
  protected channel: Channel;
78
105
  protected store: StoryStore<TRenderer>;
79
106
  entry: IndexEntry;
@@ -92,6 +119,7 @@ declare class TemplateDocsRender<TRenderer extends Renderer> implements Render<T
92
119
  isPreparing(): boolean;
93
120
  prepare(): Promise<void>;
94
121
  isEqual(other: Render<TRenderer>): boolean;
122
+ docsContext(renderStoryToElement: DocsContextProps['renderStoryToElement']): DocsContext<TRenderer>;
95
123
  renderToElement(canvasElement: TRenderer['canvasElement'], renderStoryToElement: DocsContextProps['renderStoryToElement']): Promise<void>;
96
124
  teardown({ viewModeChanged }?: {
97
125
  viewModeChanged?: boolean;
@@ -99,14 +127,15 @@ declare class TemplateDocsRender<TRenderer extends Renderer> implements Render<T
99
127
  }
100
128
 
101
129
  /**
102
- * A StandaloneDocsRender is a render of a docs entry that doesn't directly come from a CSF file.
130
+ * A MdxDocsRender is a render of a docs entry that comes from a true MDX file,
131
+ * that is a `.mdx` file that doesn't get compiled to a CSF file.
103
132
  *
104
- * A standalone render can reference zero or more CSF files that contain stories.
133
+ * A MDX render can reference (import) zero or more CSF files that contain stories.
105
134
  *
106
135
  * Use cases:
107
136
  * - *.mdx file that may or may not reference a specific CSF file with `<Meta of={} />`
108
137
  */
109
- declare class StandaloneDocsRender<TRenderer extends Renderer> implements Render<TRenderer> {
138
+ declare class MdxDocsRender<TRenderer extends Renderer> implements Render<TRenderer> {
110
139
  protected channel: Channel;
111
140
  protected store: StoryStore<TRenderer>;
112
141
  entry: IndexEntry;
@@ -125,6 +154,7 @@ declare class StandaloneDocsRender<TRenderer extends Renderer> implements Render
125
154
  isPreparing(): boolean;
126
155
  prepare(): Promise<void>;
127
156
  isEqual(other: Render<TRenderer>): boolean;
157
+ docsContext(renderStoryToElement: DocsContextProps['renderStoryToElement']): DocsContext<TRenderer>;
128
158
  renderToElement(canvasElement: TRenderer['canvasElement'], renderStoryToElement: DocsContextProps['renderStoryToElement']): Promise<void>;
129
159
  teardown({ viewModeChanged }?: {
130
160
  viewModeChanged?: boolean;
@@ -132,30 +162,30 @@ declare class StandaloneDocsRender<TRenderer extends Renderer> implements Render
132
162
  }
133
163
 
134
164
  type MaybePromise<T> = Promise<T> | T;
135
- declare class Preview<TFramework extends Renderer> {
165
+ declare class Preview<TRenderer extends Renderer> {
136
166
  protected channel: Channel;
137
167
  serverChannel?: Channel;
138
- storyStore: StoryStore<TFramework>;
168
+ storyStore: StoryStore<TRenderer>;
139
169
  getStoryIndex?: () => StoryIndex;
140
170
  importFn?: ModuleImportFn;
141
- renderToCanvas?: RenderToCanvas<TFramework>;
142
- storyRenders: StoryRender<TFramework>[];
171
+ renderToCanvas?: RenderToCanvas<TRenderer>;
172
+ storyRenders: StoryRender<TRenderer>[];
143
173
  previewEntryError?: Error;
144
174
  constructor(channel?: Channel);
145
175
  initialize({ getStoryIndex, importFn, getProjectAnnotations, }: {
146
176
  getStoryIndex?: () => StoryIndex;
147
177
  importFn: ModuleImportFn;
148
- getProjectAnnotations: () => MaybePromise<ProjectAnnotations<TFramework>>;
178
+ getProjectAnnotations: () => MaybePromise<ProjectAnnotations<TRenderer>>;
149
179
  }): Promise<void>;
150
180
  setupListeners(): void;
151
- getProjectAnnotationsOrRenderError(getProjectAnnotations: () => MaybePromise<ProjectAnnotations<TFramework>>): Promise<ProjectAnnotations<TFramework>>;
152
- initializeWithProjectAnnotations(projectAnnotations: ProjectAnnotations<TFramework>): Promise<void>;
181
+ getProjectAnnotationsOrRenderError(getProjectAnnotations: () => MaybePromise<ProjectAnnotations<TRenderer>>): Promise<ProjectAnnotations<TRenderer>>;
182
+ initializeWithProjectAnnotations(projectAnnotations: ProjectAnnotations<TRenderer>): Promise<void>;
153
183
  setInitialGlobals(): Promise<void>;
154
184
  emitGlobals(): void;
155
185
  getStoryIndexFromServer(): Promise<StoryIndex>;
156
186
  initializeWithStoryIndex(storyIndex: StoryIndex): PromiseLike<void>;
157
187
  onGetProjectAnnotationsChanged({ getProjectAnnotations, }: {
158
- getProjectAnnotations: () => MaybePromise<ProjectAnnotations<TFramework>>;
188
+ getProjectAnnotations: () => MaybePromise<ProjectAnnotations<TRenderer>>;
159
189
  }): Promise<void>;
160
190
  onStoryIndexChanged(): Promise<void>;
161
191
  onStoriesChanged({ importFn, storyIndex, }: {
@@ -177,21 +207,13 @@ declare class Preview<TFramework extends Renderer> {
177
207
  onForceRemount({ storyId }: {
178
208
  storyId: StoryId;
179
209
  }): Promise<void>;
180
- renderStoryToElement(story: PreparedStory<TFramework>, element: TFramework['canvasElement'], options: StoryRenderOptions): () => Promise<void>;
181
- teardownRender(render: StoryRender<TFramework> | TemplateDocsRender<TFramework> | StandaloneDocsRender<TFramework>, { viewModeChanged }?: {
210
+ renderStoryToElement(story: PreparedStory<TRenderer>, element: TRenderer['canvasElement'], callbacks: RenderContextCallbacks<TRenderer>, options: StoryRenderOptions): () => Promise<void>;
211
+ teardownRender(render: StoryRender<TRenderer> | CsfDocsRender<TRenderer> | MdxDocsRender<TRenderer>, { viewModeChanged }?: {
182
212
  viewModeChanged?: boolean;
183
213
  }): Promise<void>;
184
214
  extract(options?: {
185
215
  includeDocsOnly: boolean;
186
- }): Promise<Record<string, _storybook_types.StoryContextForEnhancers<TFramework, Args>>>;
187
- inlineStoryCallbacks(storyId: StoryId): {
188
- showMain: () => void;
189
- showError: (err: {
190
- title: string;
191
- description: string;
192
- }) => void;
193
- showException: (err: Error) => void;
194
- };
216
+ }): Promise<Record<string, _storybook_types.StoryContextForEnhancers<TRenderer, Args>>>;
195
217
  renderPreviewEntryError(reason: string, err: Error): void;
196
218
  }
197
219
 
@@ -220,17 +242,19 @@ interface View<TStorybookRoot> {
220
242
  stack?: string;
221
243
  }): void;
222
244
  showNoPreview(): void;
223
- showPreparingStory(options: {
245
+ showPreparingStory(options?: {
246
+ immediate: boolean;
247
+ }): void;
248
+ showPreparingDocs(options?: {
224
249
  immediate: boolean;
225
250
  }): void;
226
- showPreparingDocs(): void;
227
251
  showMain(): void;
228
252
  showDocs(): void;
229
253
  showStory(): void;
230
254
  showStoryDuringRender(): void;
231
255
  }
232
256
 
233
- type PossibleRender<TFramework extends Renderer> = StoryRender<TFramework> | TemplateDocsRender<TFramework> | StandaloneDocsRender<TFramework>;
257
+ type PossibleRender<TFramework extends Renderer> = StoryRender<TFramework> | CsfDocsRender<TFramework> | MdxDocsRender<TFramework>;
234
258
  declare class PreviewWithSelection<TFramework extends Renderer> extends Preview<TFramework> {
235
259
  selectionStore: SelectionStore;
236
260
  view: View<TFramework['canvasElement']>;
@@ -282,14 +306,6 @@ declare class PreviewWithSelection<TFramework extends Renderer> extends Preview<
282
306
  }) => void;
283
307
  showException: (err: Error) => void;
284
308
  };
285
- inlineStoryCallbacks(storyId: StoryId): {
286
- showMain: () => void;
287
- showError: (err: {
288
- title: string;
289
- description: string;
290
- }) => void;
291
- showException: (err: Error) => void;
292
- };
293
309
  renderPreviewEntryError(reason: string, err: Error): void;
294
310
  renderMissingStory(): void;
295
311
  renderStoryLoadingException(storySpecifier: StorySpecifier, err: Error): void;
@@ -307,26 +323,4 @@ declare class PreviewWeb<TFramework extends Renderer> extends PreviewWithSelecti
307
323
  declare function simulateDOMContentLoaded(): void;
308
324
  declare function simulatePageLoad($container: any): void;
309
325
 
310
- declare class DocsContext<TRenderer extends Renderer> implements DocsContextProps<TRenderer> {
311
- channel: Channel;
312
- protected store: StoryStore<TRenderer>;
313
- renderStoryToElement: DocsContextProps['renderStoryToElement'];
314
- private componentStoriesValue;
315
- private storyIdToCSFFile;
316
- private exportToStoryId;
317
- private nameToStoryId;
318
- private primaryStory?;
319
- constructor(channel: Channel, store: StoryStore<TRenderer>, renderStoryToElement: DocsContextProps['renderStoryToElement'],
320
- /** The CSF files known (via the index) to be refererenced by this docs file */
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;
325
- storyIdByName: (storyName: StoryName) => string;
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>>;
330
- }
331
-
332
326
  export { DocsContext as D, Preview as P, simulateDOMContentLoaded as a, PreviewWeb as b, PreviewWithSelection as c, simulatePageLoad as s };
@@ -62,7 +62,7 @@ declare const combineArgs: (value: any, update: any) => Args;
62
62
  declare const validateOptions: (args: Args, argTypes: ArgTypes) => Args;
63
63
  declare const DEEPLY_EQUAL: unique symbol;
64
64
  declare const deepDiff: (value: any, update: any) => any;
65
- declare const NO_TARGET_NAME = "";
65
+ declare const UNTARGETED = "UNTARGETED";
66
66
  declare function groupArgsByTarget<TArgs extends Args = Args>({ args, argTypes, }: StoryContext<Renderer, TArgs>): Record<string, Partial<TArgs>>;
67
67
  declare function noTargetArgs<TArgs extends Args = Args>(context: StoryContext<Renderer, TArgs>): Partial<TArgs>;
68
68
 
@@ -72,4 +72,4 @@ declare const userOrAutoTitle: (fileName: string, storiesEntries: NormalizedStor
72
72
  declare const sortStoriesV7: (stories: IndexEntry[], storySortParameter: Addon_StorySortParameterV7, fileNameOrder: Path[]) => IndexEntry[];
73
73
  declare const sortStoriesV6: (stories: [string, PreparedStory, Parameters, Parameters][], storySortParameter: Addon_StorySortParameter, fileNameOrder: Path[]) => IndexEntry[];
74
74
 
75
- export { DEEPLY_EQUAL as D, NO_TARGET_NAME as N, PropDescriptor as P, combineParameters as a, composeStepRunners as b, combineArgs as c, composeStories as d, composeStory as e, decorateStory as f, defaultDecorateStory as g, filterArgTypes as h, setProjectAnnotations as i, inferControls as j, sortStoriesV7 as k, deepDiff as l, mapArgsToTypes as m, normalizeStory as n, groupArgsByTarget as o, noTargetArgs as p, userOrAutoTitle as q, sortStoriesV6 as r, sanitizeStoryContextUpdate as s, userOrAutoTitleFromSpecifier as u, validateOptions as v };
75
+ export { DEEPLY_EQUAL as D, PropDescriptor as P, UNTARGETED as U, combineParameters as a, composeStepRunners as b, combineArgs as c, composeStories as d, composeStory as e, decorateStory as f, defaultDecorateStory as g, filterArgTypes as h, setProjectAnnotations as i, inferControls as j, userOrAutoTitle as k, sortStoriesV7 as l, mapArgsToTypes as m, normalizeStory as n, deepDiff as o, groupArgsByTarget as p, noTargetArgs as q, sortStoriesV6 as r, sanitizeStoryContextUpdate as s, userOrAutoTitleFromSpecifier as u, validateOptions as v };
@@ -1,5 +1,5 @@
1
1
  import { Renderer, ProjectAnnotations, ArgsStoryFn } from '@storybook/types';
2
- import { C as ClientApi } from './ClientApi-eda085ef.js';
2
+ import { C as ClientApi } from './ClientApi-4bc526c1.js';
3
3
 
4
4
  interface CoreClient_RendererImplementation<TRenderer extends Renderer> {
5
5
  decorateStory?: ProjectAnnotations<TRenderer>['applyDecorators'];
package/dist/store.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- export { S as StoryStore, p as prepareStory, b as processCSFFile } from './StoryStore-e35dc2c4.js';
2
- 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';
1
+ export { S as StoryStore, a as prepareMeta, p as prepareStory, c as processCSFFile } from './StoryStore-8dcb90f9.js';
2
+ export { D as DEEPLY_EQUAL, P as PropDescriptor, U as UNTARGETED, c as combineArgs, a as combineParameters, b as composeStepRunners, d as composeStories, e as composeStory, f as decorateStory, o as deepDiff, g as defaultDecorateStory, h as filterArgTypes, p as groupArgsByTarget, j as inferControls, m as mapArgsToTypes, q as noTargetArgs, n as normalizeStory, s as sanitizeStoryContextUpdate, i as setProjectAnnotations, r as sortStoriesV6, l as sortStoriesV7, k as userOrAutoTitle, u as userOrAutoTitleFromSpecifier, v as validateOptions } from './sortStories-bcf0764a.js';
3
3
  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';
4
- export { c as composeConfigs, a as getArrayField, g as getField, b as getObjectField, d as getSingletonField } from './composeConfigs-7f62ebf7.js';
5
- 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';
4
+ export { c as composeConfigs, a as getArrayField, g as getField, b as getObjectField, d as getSingletonField } from './composeConfigs-62a04721.js';
5
+ 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-55c56a89.js';
6
6
  import '@storybook/types';
7
7
  import 'synchronous-promise';
package/dist/store.js CHANGED
@@ -1,41 +1,41 @@
1
- "use strict";var Vr=Object.create;var Z=Object.defineProperty;var Ur=Object.getOwnPropertyDescriptor;var Wr=Object.getOwnPropertyNames;var Yr=Object.getPrototypeOf,Kr=Object.prototype.hasOwnProperty;var Jr=(r,e)=>{for(var t in e)Z(r,t,{get:e[t],enumerable:!0})},Ve=(r,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Wr(e))!Kr.call(r,n)&&n!==t&&Z(r,n,{get:()=>e[n],enumerable:!(o=Ur(e,n))||o.enumerable});return r};var u=(r,e,t)=>(t=r!=null?Vr(Yr(r)):{},Ve(e||!r||!r.__esModule?Z(t,"default",{value:r,enumerable:!0}):t,r)),Xr=r=>Ve(Z({},"__esModule",{value:!0}),r);var Et={};Jr(Et,{DEEPLY_EQUAL:()=>F,HooksContext:()=>R,NO_TARGET_NAME:()=>$,StoryStore:()=>ue,applyHooks:()=>re,combineArgs:()=>G,combineParameters:()=>g,composeConfigs:()=>je,composeStepRunners:()=>De,composeStories:()=>ft,composeStory:()=>mt,decorateStory:()=>mr,deepDiff:()=>I,defaultDecorateStory:()=>Oe,filterArgTypes:()=>ye,getArrayField:()=>J,getField:()=>D,getObjectField:()=>X,getSingletonField:()=>q,getValuesFromArgTypes:()=>w,groupArgsByTarget:()=>ie,inferControls:()=>Y,mapArgsToTypes:()=>Ee,noTargetArgs:()=>ot,normalizeComponentAnnotations:()=>U,normalizeInputType:()=>ar,normalizeInputTypes:()=>C,normalizeProjectAnnotations:()=>K,normalizeStory:()=>V,prepareStory:()=>W,processCSFFile:()=>we,sanitizeStoryContextUpdate:()=>fr,setProjectAnnotations:()=>ut,sortStoriesV6:()=>Ct,sortStoriesV7:()=>Ft,useAddonState:()=>Tt,useArgs:()=>er,useCallback:()=>v,useChannel:()=>Re,useEffect:()=>oe,useGlobals:()=>rr,useMemo:()=>be,useParameter:()=>Ze,useReducer:()=>Qe,useRef:()=>Xe,useSharedState:()=>Ir,useState:()=>xe,useStoryContext:()=>H,userOrAutoTitle:()=>Rt,userOrAutoTitleFromSpecifier:()=>vr,validateOptions:()=>Pe});module.exports=Xr(Et);var _e=u(require("memoizerific")),Pr=u(require("lodash/mapValues")),ze=u(require("lodash/pick")),Q=require("synchronous-promise");var ee=u(require("global"));var Ue=require("@storybook/channels");function We(){let r={setHandler:()=>{},send:()=>{}};return new Ue.Channel({transport:r})}var he=class{constructor(){this.getChannel=()=>{if(!this.channel){let e=We();return this.setChannel(e),e}return this.channel};this.getServerChannel=()=>{if(!this.serverChannel)throw new Error("Accessing non-existent serverChannel");return this.serverChannel};this.ready=()=>this.promise;this.hasChannel=()=>!!this.channel;this.hasServerChannel=()=>!!this.serverChannel;this.setChannel=e=>{this.channel=e,this.resolve()};this.setServerChannel=e=>{this.serverChannel=e};this.promise=new Promise(e=>{this.resolve=()=>e(this.getChannel())})}},ge="__STORYBOOK_ADDONS_PREVIEW";function qr(){return ee.default[ge]||(ee.default[ge]=new he),ee.default[ge]}var b=qr();var B=u(require("global")),k=require("@storybook/client-logger"),T=require("@storybook/core-events");var R=class{constructor(){this.hookListsMap=void 0;this.mountedDecorators=void 0;this.prevMountedDecorators=void 0;this.currentHooks=void 0;this.nextHookIndex=void 0;this.currentPhase=void 0;this.currentEffects=void 0;this.prevEffects=void 0;this.currentDecoratorName=void 0;this.hasUpdates=void 0;this.currentContext=void 0;this.renderListener=e=>{var t;e===((t=this.currentContext)==null?void 0:t.id)&&(this.triggerEffects(),this.currentContext=null,this.removeRenderListeners())};this.init()}init(){this.hookListsMap=new WeakMap,this.mountedDecorators=new Set,this.prevMountedDecorators=this.mountedDecorators,this.currentHooks=[],this.nextHookIndex=0,this.currentPhase="NONE",this.currentEffects=[],this.prevEffects=[],this.currentDecoratorName=null,this.hasUpdates=!1,this.currentContext=null}clean(){this.prevEffects.forEach(e=>{e.destroy&&e.destroy()}),this.init(),this.removeRenderListeners()}getNextHook(){let e=this.currentHooks[this.nextHookIndex];return this.nextHookIndex+=1,e}triggerEffects(){this.prevEffects.forEach(e=>{!this.currentEffects.includes(e)&&e.destroy&&e.destroy()}),this.currentEffects.forEach(e=>{this.prevEffects.includes(e)||(e.destroy=e.create())}),this.prevEffects=this.currentEffects,this.currentEffects=[]}addRenderListeners(){this.removeRenderListeners(),b.getChannel().on(T.STORY_RENDERED,this.renderListener)}removeRenderListeners(){b.getChannel().removeListener(T.STORY_RENDERED,this.renderListener)}};function Ye(r){return(...e)=>{let{hooks:t}=typeof e[0]=="function"?e[1]:e[0],o=t.currentPhase,n=t.currentHooks,s=t.nextHookIndex,i=t.currentDecoratorName;t.currentDecoratorName=r.name,t.prevMountedDecorators.has(r)?(t.currentPhase="UPDATE",t.currentHooks=t.hookListsMap.get(r)||[]):(t.currentPhase="MOUNT",t.currentHooks=[],t.hookListsMap.set(r,t.currentHooks),t.prevMountedDecorators.add(r)),t.nextHookIndex=0;let a=B.default.STORYBOOK_HOOKS_CONTEXT;B.default.STORYBOOK_HOOKS_CONTEXT=t;let d=r(...e);if(B.default.STORYBOOK_HOOKS_CONTEXT=a,t.currentPhase==="UPDATE"&&t.getNextHook()!=null)throw new Error("Rendered fewer hooks than expected. This may be caused by an accidental early return statement.");return t.currentPhase=o,t.currentHooks=n,t.nextHookIndex=s,t.currentDecoratorName=i,d}}var Se=0,Qr=25,re=r=>(e,t)=>{let o=r(Ye(e),t.map(n=>Ye(n)));return n=>{let{hooks:s}=n;s.prevMountedDecorators=s.mountedDecorators,s.mountedDecorators=new Set([e,...t]),s.currentContext=n,s.hasUpdates=!1;let i=o(n);for(Se=1;s.hasUpdates;)if(s.hasUpdates=!1,s.currentEffects=[],i=o(n),Se+=1,Se>Qr)throw new Error("Too many re-renders. Storybook limits the number of renders to prevent an infinite loop.");return s.addRenderListeners(),i}},Zr=(r,e)=>r.length===e.length&&r.every((t,o)=>t===e[o]),Te=()=>new Error("Storybook preview hooks can only be called inside decorators and story functions.");function Ke(){return B.default.STORYBOOK_HOOKS_CONTEXT||null}function Ae(){let r=Ke();if(r==null)throw Te();return r}function et(r,e,t){let o=Ae();if(o.currentPhase==="MOUNT"){t!=null&&!Array.isArray(t)&&k.logger.warn(`${r} received a final argument that is not an array (instead, received ${t}). When specified, the final argument must be an array.`);let n={name:r,deps:t};return o.currentHooks.push(n),e(n),n}if(o.currentPhase==="UPDATE"){let n=o.getNextHook();if(n==null)throw new Error("Rendered more hooks than during the previous render.");return n.name!==r&&k.logger.warn(`Storybook has detected a change in the order of Hooks${o.currentDecoratorName?` called by ${o.currentDecoratorName}`:""}. This will lead to bugs and errors if not fixed.`),t!=null&&n.deps==null&&k.logger.warn(`${r} received a final argument during this render, but not during the previous render. Even though the final argument is optional, its type cannot change between renders.`),t!=null&&n.deps!=null&&t.length!==n.deps.length&&k.logger.warn(`The final argument passed to ${r} changed size between renders. The order and size of this array must remain constant.
2
- Previous: ${n.deps}
3
- Incoming: ${t}`),(t==null||n.deps==null||!Zr(t,n.deps))&&(e(n),n.deps=t),n}throw Te()}function te(r,e,t){let{memoizedState:o}=et(r,n=>{n.memoizedState=e()},t);return o}function be(r,e){return te("useMemo",r,e)}function v(r,e){return te("useCallback",()=>r,e)}function Je(r,e){return te(r,()=>({current:e}),[])}function Xe(r){return Je("useRef",r)}function rt(){let r=Ke();if(r!=null&&r.currentPhase!=="NONE")r.hasUpdates=!0;else try{b.getChannel().emit(T.FORCE_RE_RENDER)}catch{k.logger.warn("State updates of Storybook preview hooks work only in browser")}}function qe(r,e){let t=Je(r,typeof e=="function"?e():e),o=n=>{t.current=typeof n=="function"?n(t.current):n,rt()};return[t.current,o]}function xe(r){return qe("useState",r)}function Qe(r,e,t){let o=t!=null?()=>t(e):e,[n,s]=qe("useReducer",o);return[n,a=>s(d=>r(d,a))]}function oe(r,e){let t=Ae(),o=te("useEffect",()=>({create:r}),e);t.currentEffects.includes(o)||t.currentEffects.push(o)}function Re(r,e=[]){let t=b.getChannel();return oe(()=>(Object.entries(r).forEach(([o,n])=>t.on(o,n)),()=>{Object.entries(r).forEach(([o,n])=>t.removeListener(o,n))}),[...Object.keys(r),...e]),v(t.emit.bind(t),[t])}function H(){let{currentContext:r}=Ae();if(r==null)throw Te();return r}function Ze(r,e){let{parameters:t}=H();if(r)return t[r]??e}function er(){let r=b.getChannel(),{id:e,args:t}=H(),o=v(s=>r.emit(T.UPDATE_STORY_ARGS,{storyId:e,updatedArgs:s}),[r,e]),n=v(s=>r.emit(T.RESET_STORY_ARGS,{storyId:e,argNames:s}),[r,e]);return[t,o,n]}function rr(){let r=b.getChannel(),{globals:e}=H(),t=v(o=>r.emit(T.UPDATE_GLOBALS,{globals:o}),[r]);return[e,t]}var tr=require("ts-dedent"),or=u(require("memoizerific")),tt=(0,or.default)(1)(r=>Object.values(r).reduce((e,t)=>(e[t.importPath]=e[t.importPath]||t,e),{})),ne=class{constructor({entries:e}={v:4,entries:{}}){this.entries=e}entryFromSpecifier(e){let t=Object.values(this.entries);if(e==="*")return t[0];if(typeof e=="string")return this.entries[e]?this.entries[e]:t.find(s=>s.id.startsWith(e));let{name:o,title:n}=e;return t.find(s=>s.name===o&&s.title===n)}storyIdToEntry(e){let t=this.entries[e];if(!t)throw new Error(tr.dedent`Couldn't find story matching '${e}' after HMR.
1
+ "use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var store_exports={};__export(store_exports,{DEEPLY_EQUAL:()=>DEEPLY_EQUAL,HooksContext:()=>HooksContext,StoryStore:()=>StoryStore,UNTARGETED:()=>UNTARGETED,applyHooks:()=>applyHooks,combineArgs:()=>combineArgs,combineParameters:()=>combineParameters,composeConfigs:()=>composeConfigs,composeStepRunners:()=>composeStepRunners,composeStories:()=>composeStories,composeStory:()=>composeStory,decorateStory:()=>decorateStory,deepDiff:()=>deepDiff,defaultDecorateStory:()=>defaultDecorateStory,filterArgTypes:()=>filterArgTypes,getArrayField:()=>getArrayField,getField:()=>getField,getObjectField:()=>getObjectField,getSingletonField:()=>getSingletonField,getValuesFromArgTypes:()=>getValuesFromArgTypes,groupArgsByTarget:()=>groupArgsByTarget,inferControls:()=>inferControls,mapArgsToTypes:()=>mapArgsToTypes,noTargetArgs:()=>noTargetArgs,normalizeComponentAnnotations:()=>normalizeComponentAnnotations,normalizeInputType:()=>normalizeInputType,normalizeInputTypes:()=>normalizeInputTypes,normalizeProjectAnnotations:()=>normalizeProjectAnnotations,normalizeStory:()=>normalizeStory,prepareMeta:()=>prepareMeta,prepareStory:()=>prepareStory,processCSFFile:()=>processCSFFile,sanitizeStoryContextUpdate:()=>sanitizeStoryContextUpdate,setProjectAnnotations:()=>setProjectAnnotations,sortStoriesV6:()=>sortStoriesV6,sortStoriesV7:()=>sortStoriesV7,useAddonState:()=>useAddonState,useArgs:()=>useArgs,useCallback:()=>useCallback,useChannel:()=>useChannel,useEffect:()=>useEffect,useGlobals:()=>useGlobals,useMemo:()=>useMemo,useParameter:()=>useParameter,useReducer:()=>useReducer,useRef:()=>useRef,useSharedState:()=>useSharedState,useState:()=>useState,useStoryContext:()=>useStoryContext,userOrAutoTitle:()=>userOrAutoTitle,userOrAutoTitleFromSpecifier:()=>userOrAutoTitleFromSpecifier,validateOptions:()=>validateOptions});module.exports=__toCommonJS(store_exports);var import_memoizerific2=__toESM(require("memoizerific")),import_mapValues4=__toESM(require("lodash/mapValues.js")),import_pick=__toESM(require("lodash/pick.js")),import_synchronous_promise=require("synchronous-promise");var import_global=require("@storybook/global");var import_channels=require("@storybook/channels");function mockChannel(){let transport={setHandler:()=>{},send:()=>{}};return new import_channels.Channel({transport})}var AddonStore=class{constructor(){this.getChannel=()=>{if(!this.channel){let channel=mockChannel();return this.setChannel(channel),channel}return this.channel};this.getServerChannel=()=>{if(!this.serverChannel)throw new Error("Accessing non-existent serverChannel");return this.serverChannel};this.ready=()=>this.promise;this.hasChannel=()=>!!this.channel;this.hasServerChannel=()=>!!this.serverChannel;this.setChannel=channel=>{this.channel=channel,this.resolve()};this.setServerChannel=channel=>{this.serverChannel=channel};this.promise=new Promise(res=>{this.resolve=()=>res(this.getChannel())})}},KEY="__STORYBOOK_ADDONS_PREVIEW";function getAddonsStore(){return import_global.global[KEY]||(import_global.global[KEY]=new AddonStore),import_global.global[KEY]}var addons=getAddonsStore();var import_global2=require("@storybook/global"),import_client_logger=require("@storybook/client-logger"),import_core_events=require("@storybook/core-events");var HooksContext=class{constructor(){this.hookListsMap=void 0;this.mountedDecorators=void 0;this.prevMountedDecorators=void 0;this.currentHooks=void 0;this.nextHookIndex=void 0;this.currentPhase=void 0;this.currentEffects=void 0;this.prevEffects=void 0;this.currentDecoratorName=void 0;this.hasUpdates=void 0;this.currentContext=void 0;this.renderListener=storyId=>{var _a;storyId===((_a=this.currentContext)==null?void 0:_a.id)&&(this.triggerEffects(),this.currentContext=null,this.removeRenderListeners())};this.init()}init(){this.hookListsMap=new WeakMap,this.mountedDecorators=new Set,this.prevMountedDecorators=this.mountedDecorators,this.currentHooks=[],this.nextHookIndex=0,this.currentPhase="NONE",this.currentEffects=[],this.prevEffects=[],this.currentDecoratorName=null,this.hasUpdates=!1,this.currentContext=null}clean(){this.prevEffects.forEach(effect=>{effect.destroy&&effect.destroy()}),this.init(),this.removeRenderListeners()}getNextHook(){let hook=this.currentHooks[this.nextHookIndex];return this.nextHookIndex+=1,hook}triggerEffects(){this.prevEffects.forEach(effect=>{!this.currentEffects.includes(effect)&&effect.destroy&&effect.destroy()}),this.currentEffects.forEach(effect=>{this.prevEffects.includes(effect)||(effect.destroy=effect.create())}),this.prevEffects=this.currentEffects,this.currentEffects=[]}addRenderListeners(){this.removeRenderListeners(),addons.getChannel().on(import_core_events.STORY_RENDERED,this.renderListener)}removeRenderListeners(){addons.getChannel().removeListener(import_core_events.STORY_RENDERED,this.renderListener)}};function hookify(fn){return(...args)=>{let{hooks}=typeof args[0]=="function"?args[1]:args[0],prevPhase=hooks.currentPhase,prevHooks=hooks.currentHooks,prevNextHookIndex=hooks.nextHookIndex,prevDecoratorName=hooks.currentDecoratorName;hooks.currentDecoratorName=fn.name,hooks.prevMountedDecorators.has(fn)?(hooks.currentPhase="UPDATE",hooks.currentHooks=hooks.hookListsMap.get(fn)||[]):(hooks.currentPhase="MOUNT",hooks.currentHooks=[],hooks.hookListsMap.set(fn,hooks.currentHooks),hooks.prevMountedDecorators.add(fn)),hooks.nextHookIndex=0;let prevContext=import_global2.global.STORYBOOK_HOOKS_CONTEXT;import_global2.global.STORYBOOK_HOOKS_CONTEXT=hooks;let result=fn(...args);if(import_global2.global.STORYBOOK_HOOKS_CONTEXT=prevContext,hooks.currentPhase==="UPDATE"&&hooks.getNextHook()!=null)throw new Error("Rendered fewer hooks than expected. This may be caused by an accidental early return statement.");return hooks.currentPhase=prevPhase,hooks.currentHooks=prevHooks,hooks.nextHookIndex=prevNextHookIndex,hooks.currentDecoratorName=prevDecoratorName,result}}var numberOfRenders=0,RENDER_LIMIT=25,applyHooks=applyDecorators=>(storyFn,decorators)=>{let decorated=applyDecorators(hookify(storyFn),decorators.map(decorator=>hookify(decorator)));return context=>{let{hooks}=context;hooks.prevMountedDecorators=hooks.mountedDecorators,hooks.mountedDecorators=new Set([storyFn,...decorators]),hooks.currentContext=context,hooks.hasUpdates=!1;let result=decorated(context);for(numberOfRenders=1;hooks.hasUpdates;)if(hooks.hasUpdates=!1,hooks.currentEffects=[],result=decorated(context),numberOfRenders+=1,numberOfRenders>RENDER_LIMIT)throw new Error("Too many re-renders. Storybook limits the number of renders to prevent an infinite loop.");return hooks.addRenderListeners(),result}},areDepsEqual=(deps,nextDeps)=>deps.length===nextDeps.length&&deps.every((dep,i)=>dep===nextDeps[i]),invalidHooksError=()=>new Error("Storybook preview hooks can only be called inside decorators and story functions.");function getHooksContextOrNull(){return import_global2.global.STORYBOOK_HOOKS_CONTEXT||null}function getHooksContextOrThrow(){let hooks=getHooksContextOrNull();if(hooks==null)throw invalidHooksError();return hooks}function useHook(name,callback,deps){let hooks=getHooksContextOrThrow();if(hooks.currentPhase==="MOUNT"){deps!=null&&!Array.isArray(deps)&&import_client_logger.logger.warn(`${name} received a final argument that is not an array (instead, received ${deps}). When specified, the final argument must be an array.`);let hook={name,deps};return hooks.currentHooks.push(hook),callback(hook),hook}if(hooks.currentPhase==="UPDATE"){let hook=hooks.getNextHook();if(hook==null)throw new Error("Rendered more hooks than during the previous render.");return hook.name!==name&&import_client_logger.logger.warn(`Storybook has detected a change in the order of Hooks${hooks.currentDecoratorName?` called by ${hooks.currentDecoratorName}`:""}. This will lead to bugs and errors if not fixed.`),deps!=null&&hook.deps==null&&import_client_logger.logger.warn(`${name} received a final argument during this render, but not during the previous render. Even though the final argument is optional, its type cannot change between renders.`),deps!=null&&hook.deps!=null&&deps.length!==hook.deps.length&&import_client_logger.logger.warn(`The final argument passed to ${name} changed size between renders. The order and size of this array must remain constant.
2
+ Previous: ${hook.deps}
3
+ Incoming: ${deps}`),(deps==null||hook.deps==null||!areDepsEqual(deps,hook.deps))&&(callback(hook),hook.deps=deps),hook}throw invalidHooksError()}function useMemoLike(name,nextCreate,deps){let{memoizedState}=useHook(name,hook=>{hook.memoizedState=nextCreate()},deps);return memoizedState}function useMemo(nextCreate,deps){return useMemoLike("useMemo",nextCreate,deps)}function useCallback(callback,deps){return useMemoLike("useCallback",()=>callback,deps)}function useRefLike(name,initialValue){return useMemoLike(name,()=>({current:initialValue}),[])}function useRef(initialValue){return useRefLike("useRef",initialValue)}function triggerUpdate(){let hooks=getHooksContextOrNull();if(hooks!=null&&hooks.currentPhase!=="NONE")hooks.hasUpdates=!0;else try{addons.getChannel().emit(import_core_events.FORCE_RE_RENDER)}catch{import_client_logger.logger.warn("State updates of Storybook preview hooks work only in browser")}}function useStateLike(name,initialState){let stateRef=useRefLike(name,typeof initialState=="function"?initialState():initialState),setState=update=>{stateRef.current=typeof update=="function"?update(stateRef.current):update,triggerUpdate()};return[stateRef.current,setState]}function useState(initialState){return useStateLike("useState",initialState)}function useReducer(reducer,initialArg,init){let initialState=init!=null?()=>init(initialArg):initialArg,[state,setState]=useStateLike("useReducer",initialState);return[state,action=>setState(prevState=>reducer(prevState,action))]}function useEffect(create,deps){let hooks=getHooksContextOrThrow(),effect=useMemoLike("useEffect",()=>({create}),deps);hooks.currentEffects.includes(effect)||hooks.currentEffects.push(effect)}function useChannel(eventMap,deps=[]){let channel=addons.getChannel();return useEffect(()=>(Object.entries(eventMap).forEach(([type,listener])=>channel.on(type,listener)),()=>{Object.entries(eventMap).forEach(([type,listener])=>channel.removeListener(type,listener))}),[...Object.keys(eventMap),...deps]),useCallback(channel.emit.bind(channel),[channel])}function useStoryContext(){let{currentContext}=getHooksContextOrThrow();if(currentContext==null)throw invalidHooksError();return currentContext}function useParameter(parameterKey,defaultValue){let{parameters}=useStoryContext();if(parameterKey)return parameters[parameterKey]??defaultValue}function useArgs(){let channel=addons.getChannel(),{id:storyId,args}=useStoryContext(),updateArgs=useCallback(updatedArgs=>channel.emit(import_core_events.UPDATE_STORY_ARGS,{storyId,updatedArgs}),[channel,storyId]),resetArgs=useCallback(argNames=>channel.emit(import_core_events.RESET_STORY_ARGS,{storyId,argNames}),[channel,storyId]);return[args,updateArgs,resetArgs]}function useGlobals(){let channel=addons.getChannel(),{globals}=useStoryContext(),updateGlobals=useCallback(newGlobals=>channel.emit(import_core_events.UPDATE_GLOBALS,{globals:newGlobals}),[channel]);return[globals,updateGlobals]}var import_ts_dedent=require("ts-dedent"),import_memoizerific=__toESM(require("memoizerific")),getImportPathMap=(0,import_memoizerific.default)(1)(entries=>Object.values(entries).reduce((acc,entry)=>(acc[entry.importPath]=acc[entry.importPath]||entry,acc),{})),StoryIndexStore=class{constructor({entries}={v:4,entries:{}}){this.entries=entries}entryFromSpecifier(specifier){let entries=Object.values(this.entries);if(specifier==="*")return entries[0];if(typeof specifier=="string")return this.entries[specifier]?this.entries[specifier]:entries.find(entry=>entry.id.startsWith(specifier));let{name,title}=specifier;return entries.find(entry=>entry.name===name&&entry.title===title)}storyIdToEntry(storyId){let storyEntry=this.entries[storyId];if(!storyEntry)throw new Error(import_ts_dedent.dedent`Couldn't find story matching '${storyId}' after HMR.
4
4
  - Did you remove it from your CSF file?
5
5
  - Are you sure a story with that id exists?
6
6
  - Please check your entries field of your main.js config.
7
- - Also check the browser console and terminal for error messages.`);return t}importPathToEntry(e){return tt(this.entries)[e]}};var nr=require("dequal"),se=require("@storybook/client-logger"),L=u(require("lodash/isPlainObject")),Fe=require("ts-dedent"),N=Symbol("incompatible"),Ce=(r,e)=>{let t=e.type;if(r==null||!t||e.mapping)return r;switch(t.name){case"string":return String(r);case"enum":return r;case"number":return Number(r);case"boolean":return r==="true";case"array":return!t.value||!Array.isArray(r)?N:r.reduce((o,n,s)=>{let i=Ce(n,{type:t.value});return i!==N&&(o[s]=i),o},new Array(r.length));case"object":return typeof r=="string"||typeof r=="number"?r:!t.value||typeof r!="object"?N:Object.entries(r).reduce((o,[n,s])=>{let i=Ce(s,{type:t.value[n]});return i===N?o:Object.assign(o,{[n]:i})},{});default:return N}},Ee=(r,e)=>Object.entries(r).reduce((t,[o,n])=>{if(!e[o])return t;let s=Ce(n,e[o]);return s===N?t:Object.assign(t,{[o]:s})},{}),G=(r,e)=>Array.isArray(r)&&Array.isArray(e)?e.reduce((t,o,n)=>(t[n]=G(r[n],e[n]),t),[...r]).filter(t=>t!==void 0):!(0,L.default)(r)||!(0,L.default)(e)?e:Object.keys({...r,...e}).reduce((t,o)=>{if(o in e){let n=G(r[o],e[o]);n!==void 0&&(t[o]=n)}else t[o]=r[o];return t},{}),Pe=(r,e)=>Object.entries(e).reduce((t,[o,{options:n}])=>{function s(){return o in r&&(t[o]=r[o]),t}if(!n)return s();if(!Array.isArray(n))return se.once.error(Fe.dedent`
8
- Invalid argType: '${o}.options' should be an array.
7
+ - Also check the browser console and terminal for error messages.`);return storyEntry}importPathToEntry(importPath){return getImportPathMap(this.entries)[importPath]}};var import_dequal=require("dequal"),import_client_logger2=require("@storybook/client-logger"),import_isPlainObject=__toESM(require("lodash/isPlainObject.js")),import_ts_dedent2=require("ts-dedent"),INCOMPATIBLE=Symbol("incompatible"),map=(arg,argType)=>{let type=argType.type;if(arg==null||!type||argType.mapping)return arg;switch(type.name){case"string":return String(arg);case"enum":return arg;case"number":return Number(arg);case"boolean":return arg==="true";case"array":return!type.value||!Array.isArray(arg)?INCOMPATIBLE:arg.reduce((acc,item,index)=>{let mapped=map(item,{type:type.value});return mapped!==INCOMPATIBLE&&(acc[index]=mapped),acc},new Array(arg.length));case"object":return typeof arg=="string"||typeof arg=="number"?arg:!type.value||typeof arg!="object"?INCOMPATIBLE:Object.entries(arg).reduce((acc,[key,val])=>{let mapped=map(val,{type:type.value[key]});return mapped===INCOMPATIBLE?acc:Object.assign(acc,{[key]:mapped})},{});default:return INCOMPATIBLE}},mapArgsToTypes=(args,argTypes)=>Object.entries(args).reduce((acc,[key,value])=>{if(!argTypes[key])return acc;let mapped=map(value,argTypes[key]);return mapped===INCOMPATIBLE?acc:Object.assign(acc,{[key]:mapped})},{}),combineArgs=(value,update)=>Array.isArray(value)&&Array.isArray(update)?update.reduce((acc,upd,index)=>(acc[index]=combineArgs(value[index],update[index]),acc),[...value]).filter(v=>v!==void 0):!(0,import_isPlainObject.default)(value)||!(0,import_isPlainObject.default)(update)?update:Object.keys({...value,...update}).reduce((acc,key)=>{if(key in update){let combined=combineArgs(value[key],update[key]);combined!==void 0&&(acc[key]=combined)}else acc[key]=value[key];return acc},{}),validateOptions=(args,argTypes)=>Object.entries(argTypes).reduce((acc,[key,{options}])=>{function allowArg(){return key in args&&(acc[key]=args[key]),acc}if(!options)return allowArg();if(!Array.isArray(options))return import_client_logger2.once.error(import_ts_dedent2.dedent`
8
+ Invalid argType: '${key}.options' should be an array.
9
9
 
10
10
  More info: https://storybook.js.org/docs/react/api/argtypes
11
- `),s();if(n.some(c=>c&&["object","function"].includes(typeof c)))return se.once.error(Fe.dedent`
12
- Invalid argType: '${o}.options' should only contain primitives. Use a 'mapping' for complex values.
11
+ `),allowArg();if(options.some(opt=>opt&&["object","function"].includes(typeof opt)))return import_client_logger2.once.error(import_ts_dedent2.dedent`
12
+ Invalid argType: '${key}.options' should only contain primitives. Use a 'mapping' for complex values.
13
13
 
14
14
  More info: https://storybook.js.org/docs/react/writing-stories/args#mapping-to-complex-arg-values
15
- `),s();let i=Array.isArray(r[o]),a=i&&r[o].findIndex(c=>!n.includes(c)),d=i&&a===-1;if(r[o]===void 0||n.includes(r[o])||d)return s();let l=i?`${o}[${a}]`:o,y=n.map(c=>typeof c=="string"?`'${c}'`:String(c)).join(", ");return se.once.warn(`Received illegal value for '${l}'. Supported options: ${y}`),t},{}),F=Symbol("Deeply equal"),I=(r,e)=>{if(typeof r!=typeof e)return e;if((0,nr.dequal)(r,e))return F;if(Array.isArray(r)&&Array.isArray(e)){let t=e.reduce((o,n,s)=>{let i=I(r[s],n);return i!==F&&(o[s]=i),o},new Array(e.length));return e.length>=r.length?t:t.concat(new Array(r.length-e.length).fill(void 0))}return(0,L.default)(r)&&(0,L.default)(e)?Object.keys({...r,...e}).reduce((t,o)=>{let n=I(r==null?void 0:r[o],e==null?void 0:e[o]);return n===F?t:Object.assign(t,{[o]:n})},{}):e},$="";function ie({args:r,argTypes:e}){let t={};return Object.entries(r).forEach(([o,n])=>{let{target:s=$}=e[o]||{};t[s]=t[s]||{},t[s][o]=n}),t}function ot(r){return ie(r)[$]}function nt(r){return Object.keys(r).forEach(e=>r[e]===void 0&&delete r[e]),r}var ae=class{constructor(){this.initialArgsByStoryId={};this.argsByStoryId={}}get(e){if(!(e in this.argsByStoryId))throw new Error(`No args known for ${e} -- has it been rendered yet?`);return this.argsByStoryId[e]}setInitial(e){if(!this.initialArgsByStoryId[e.id])this.initialArgsByStoryId[e.id]=e.initialArgs,this.argsByStoryId[e.id]=e.initialArgs;else if(this.initialArgsByStoryId[e.id]!==e.initialArgs){let t=I(this.initialArgsByStoryId[e.id],this.argsByStoryId[e.id]);this.initialArgsByStoryId[e.id]=e.initialArgs,this.argsByStoryId[e.id]=e.initialArgs,t!==F&&this.updateFromDelta(e,t)}}updateFromDelta(e,t){let o=Pe(t,e.argTypes);this.argsByStoryId[e.id]=G(this.argsByStoryId[e.id],o)}updateFromPersisted(e,t){let o=Ee(t,e.argTypes);return this.updateFromDelta(e,o)}update(e,t){if(!(e in this.argsByStoryId))throw new Error(`No args known for ${e} -- has it been rendered yet?`);this.argsByStoryId[e]=nt({...this.argsByStoryId[e],...t})}};var sr=require("@storybook/client-logger");var w=(r={})=>Object.entries(r).reduce((e,[t,{defaultValue:o}])=>(typeof o<"u"&&(e[t]=o),e),{});var de=class{constructor({globals:e={},globalTypes:t={}}){this.set({globals:e,globalTypes:t})}set({globals:e={},globalTypes:t={}}){let o=this.initialGlobals&&I(this.initialGlobals,this.globals);this.allowedGlobalNames=new Set([...Object.keys(e),...Object.keys(t)]);let n=w(t);this.initialGlobals={...n,...e},this.globals=this.initialGlobals,o&&o!==F&&this.updateFromPersisted(o)}filterAllowedGlobals(e){return Object.entries(e).reduce((t,[o,n])=>(this.allowedGlobalNames.has(o)?t[o]=n:sr.logger.warn(`Attempted to set a global (${o}) that is not defined in initial globals or globalTypes`),t),{})}updateFromPersisted(e){let t=this.filterAllowedGlobals(e);this.globals={...this.globals,...t}}get(){return this.globals}update(e){this.globals={...this.globals,...this.filterAllowedGlobals(e)}}};var ir=u(require("lodash/mapValues")),st=r=>typeof r=="string"?{name:r}:r,it=r=>typeof r=="string"?{type:r}:r,ar=(r,e)=>{let{type:t,control:o,...n}=r,s={name:e,...n};return t&&(s.type=st(t)),o?s.control=it(o):o===!1&&(s.control={disable:!0}),s},C=r=>(0,ir.default)(r,ar);var le=require("@storybook/csf"),dr=require("ts-dedent"),lr=require("@storybook/client-logger"),cr=u(require("util-deprecate"));var at=dr.dedent`
15
+ `),allowArg();let isArray=Array.isArray(args[key]),invalidIndex=isArray&&args[key].findIndex(val=>!options.includes(val)),isValidArray=isArray&&invalidIndex===-1;if(args[key]===void 0||options.includes(args[key])||isValidArray)return allowArg();let field=isArray?`${key}[${invalidIndex}]`:key,supportedOptions=options.map(opt=>typeof opt=="string"?`'${opt}'`:String(opt)).join(", ");return import_client_logger2.once.warn(`Received illegal value for '${field}'. Supported options: ${supportedOptions}`),acc},{}),DEEPLY_EQUAL=Symbol("Deeply equal"),deepDiff=(value,update)=>{if(typeof value!=typeof update)return update;if((0,import_dequal.dequal)(value,update))return DEEPLY_EQUAL;if(Array.isArray(value)&&Array.isArray(update)){let res=update.reduce((acc,upd,index)=>{let diff=deepDiff(value[index],upd);return diff!==DEEPLY_EQUAL&&(acc[index]=diff),acc},new Array(update.length));return update.length>=value.length?res:res.concat(new Array(value.length-update.length).fill(void 0))}return(0,import_isPlainObject.default)(value)&&(0,import_isPlainObject.default)(update)?Object.keys({...value,...update}).reduce((acc,key)=>{let diff=deepDiff(value==null?void 0:value[key],update==null?void 0:update[key]);return diff===DEEPLY_EQUAL?acc:Object.assign(acc,{[key]:diff})},{}):update},UNTARGETED="UNTARGETED";function groupArgsByTarget({args,argTypes}){let groupedArgs={};return Object.entries(args).forEach(([name,value])=>{let{target=UNTARGETED}=argTypes[name]||{};groupedArgs[target]=groupedArgs[target]||{},groupedArgs[target][name]=value}),groupedArgs}function noTargetArgs(context){return groupArgsByTarget(context)[UNTARGETED]}function deleteUndefined(obj){return Object.keys(obj).forEach(key=>obj[key]===void 0&&delete obj[key]),obj}var ArgsStore=class{constructor(){this.initialArgsByStoryId={};this.argsByStoryId={}}get(storyId){if(!(storyId in this.argsByStoryId))throw new Error(`No args known for ${storyId} -- has it been rendered yet?`);return this.argsByStoryId[storyId]}setInitial(story){if(!this.initialArgsByStoryId[story.id])this.initialArgsByStoryId[story.id]=story.initialArgs,this.argsByStoryId[story.id]=story.initialArgs;else if(this.initialArgsByStoryId[story.id]!==story.initialArgs){let delta=deepDiff(this.initialArgsByStoryId[story.id],this.argsByStoryId[story.id]);this.initialArgsByStoryId[story.id]=story.initialArgs,this.argsByStoryId[story.id]=story.initialArgs,delta!==DEEPLY_EQUAL&&this.updateFromDelta(story,delta)}}updateFromDelta(story,delta){let validatedDelta=validateOptions(delta,story.argTypes);this.argsByStoryId[story.id]=combineArgs(this.argsByStoryId[story.id],validatedDelta)}updateFromPersisted(story,persisted){let mappedPersisted=mapArgsToTypes(persisted,story.argTypes);return this.updateFromDelta(story,mappedPersisted)}update(storyId,argsUpdate){if(!(storyId in this.argsByStoryId))throw new Error(`No args known for ${storyId} -- has it been rendered yet?`);this.argsByStoryId[storyId]=deleteUndefined({...this.argsByStoryId[storyId],...argsUpdate})}};var import_client_logger3=require("@storybook/client-logger");var getValuesFromArgTypes=(argTypes={})=>Object.entries(argTypes).reduce((acc,[arg,{defaultValue}])=>(typeof defaultValue<"u"&&(acc[arg]=defaultValue),acc),{});var GlobalsStore=class{constructor({globals={},globalTypes={}}){this.set({globals,globalTypes})}set({globals={},globalTypes={}}){let delta=this.initialGlobals&&deepDiff(this.initialGlobals,this.globals);this.allowedGlobalNames=new Set([...Object.keys(globals),...Object.keys(globalTypes)]);let defaultGlobals=getValuesFromArgTypes(globalTypes);this.initialGlobals={...defaultGlobals,...globals},this.globals=this.initialGlobals,delta&&delta!==DEEPLY_EQUAL&&this.updateFromPersisted(delta)}filterAllowedGlobals(globals){return Object.entries(globals).reduce((acc,[key,value])=>(this.allowedGlobalNames.has(key)?acc[key]=value:import_client_logger3.logger.warn(`Attempted to set a global (${key}) that is not defined in initial globals or globalTypes`),acc),{})}updateFromPersisted(persisted){let allowedUrlGlobals=this.filterAllowedGlobals(persisted);this.globals={...this.globals,...allowedUrlGlobals}}get(){return this.globals}update(newGlobals){this.globals={...this.globals,...this.filterAllowedGlobals(newGlobals)}}};var import_mapValues=__toESM(require("lodash/mapValues.js")),normalizeType=type=>typeof type=="string"?{name:type}:type,normalizeControl=control=>typeof control=="string"?{type:control}:control,normalizeInputType=(inputType,key)=>{let{type,control,...rest}=inputType,normalized={name:key,...rest};return type&&(normalized.type=normalizeType(type)),control?normalized.control=normalizeControl(control):control===!1&&(normalized.control={disable:!0}),normalized},normalizeInputTypes=inputTypes=>(0,import_mapValues.default)(inputTypes,normalizeInputType);var import_csf=require("@storybook/csf"),import_ts_dedent3=require("ts-dedent"),import_client_logger4=require("@storybook/client-logger"),import_util_deprecate=__toESM(require("util-deprecate"));var deprecatedStoryAnnotation=import_ts_dedent3.dedent`
16
16
  CSF .story annotations deprecated; annotate story functions directly:
17
17
  - StoryFn.story.name => StoryFn.storyName
18
18
  - StoryFn.story.(parameters|decorators) => StoryFn.(parameters|decorators)
19
19
  See https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#hoisted-csf-annotations for details and codemod.
20
- `,dt=(0,cr.default)(()=>{},at);function V(r,e,t){let o=e,n=typeof e=="function"?e:null,{story:s}=o;s&&(lr.logger.debug("deprecated story",s),dt());let i=(0,le.storyNameFromExport)(r),a=typeof o!="function"&&o.name||o.storyName||(s==null?void 0:s.name)||i,d=[...o.decorators||[],...(s==null?void 0:s.decorators)||[]],l={...s==null?void 0:s.parameters,...o.parameters},y={...s==null?void 0:s.args,...o.args},c={...s==null?void 0:s.argTypes,...o.argTypes},f=[...o.loaders||[],...(s==null?void 0:s.loaders)||[]],{render:h,play:O,tags:P=[]}=o,fe=l.__id||(0,le.toId)(t.id,i);return{moduleExport:e,id:fe,name:a,tags:P,decorators:d,parameters:l,args:y,argTypes:C(c),loaders:f,...h&&{render:h},...n&&{userStoryFn:n},...O&&{play:O}}}var ur=require("@storybook/csf"),Ie=require("@storybook/client-logger");var pr=require("@storybook/csf");function U(r,e=r.title,t){let{id:o,argTypes:n}=r;return{id:(0,pr.sanitize)(o||e),...r,title:e,...n&&{argTypes:C(n)},parameters:{fileName:t,...r.parameters}}}var lt=r=>{let{globals:e,globalTypes:t}=r;(e||t)&&Ie.logger.error("Global args/argTypes can only be set globally",JSON.stringify({globals:e,globalTypes:t}))},ct=r=>{let{options:e}=r;e!=null&&e.storySort&&Ie.logger.error("The storySort option parameter can only be set globally")},yr=r=>{!r||(lt(r),ct(r))};function we(r,e,t){let{default:o,__namedExportsOrder:n,...s}=r,i=U(o,t,e);yr(i.parameters);let a={meta:i,stories:{}};return Object.keys(s).forEach(d=>{if((0,ur.isExportStory)(d,i)){let l=V(d,s[d],i);yr(l.parameters),a.stories[l.id]=l}}),a}var gr=require("ts-dedent"),hr=u(require("util-deprecate")),ke=u(require("global")),Sr=require("@storybook/csf");var ce=u(require("lodash/isPlainObject")),g=(...r)=>{let e={},t=r.filter(Boolean),o=t.reduce((n,s)=>(Object.entries(s).forEach(([i,a])=>{let d=n[i];Array.isArray(a)||typeof d>"u"?n[i]=a:(0,ce.default)(a)&&(0,ce.default)(d)?e[i]=!0:typeof a<"u"&&(n[i]=a)}),n),{});return Object.keys(e).forEach(n=>{let s=t.filter(Boolean).map(i=>i[n]).filter(i=>typeof i<"u");s.every(i=>(0,ce.default)(i))?o[n]=g(...s):o[n]=s[s.length-1]}),o};function mr(r,e,t){let o=t(r);return n=>e(o,n)}function fr({componentId:r,title:e,kind:t,id:o,name:n,story:s,parameters:i,initialArgs:a,argTypes:d,...l}={}){return l}function Oe(r,e){let t={},o=s=>i=>{if(!t.value)throw new Error("Decorated function called without init");return t.value={...t.value,...fr(i)},s(t.value)},n=e.reduce((s,i)=>mr(s,i,o),r);return s=>(t.value=s,n(s))}var pt=(0,hr.default)(()=>{},gr.dedent`
21
- \`argType.defaultValue\` is deprecated and will be removed in Storybook 7.0.
22
-
23
- https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#no-longer-inferring-default-values-of-args`);function W(r,e,t){var Ge;let{moduleExport:o,id:n,name:s}=r,{title:i}=e,a=[...r.tags||e.tags||[],"story"],d=g(t.parameters,e.parameters,r.parameters),l=[...r.decorators||[],...e.decorators||[],...t.decorators||[]],{applyDecorators:y=Oe,argTypesEnhancers:c=[],argsEnhancers:f=[],runStep:h}=t,O=[...t.loaders||[],...e.loaders||[],...r.loaders||[]],P=r.userStoryFn||r.render||e.render||t.render;if(!P)throw new Error(`No render function available for storyId '${n}'`);let fe=g(t.argTypes,e.argTypes,r.argTypes),{passArgsFirst:Mr=!0}=d;d.__isArgsStory=Mr&&P.length>0;let Me={...t.args,...e.args,...r.args},S={componentId:e.id,title:i,kind:i,id:n,name:s,story:s,component:e.component,subcomponents:e.subcomponents,tags:a,parameters:d,initialArgs:Me,argTypes:fe};S.argTypes=c.reduce((p,m)=>m({...S,argTypes:p}),S.argTypes);let Be=w(S.argTypes);Object.keys(Be).length>0&&pt();let Br={...Be,...Me};S.initialArgs=f.reduce((p,m)=>({...p,...m({...S,initialArgs:p})}),Br),(Ge=ke.default.FEATURES)!=null&&Ge.breakingChangesV7||(S.parameters={...S.parameters,__id:n,globals:t.globals,globalTypes:t.globalTypes,args:S.initialArgs,argTypes:S.argTypes});let Hr=async p=>{let m=await Promise.all(O.map(A=>A(p))),x=Object.assign({},...m);return{...p,loaded:x}},He=p=>{let m=Object.entries(p.args).reduce((j,[_,z])=>{var $e;let M=($e=p.argTypes[_])==null?void 0:$e.mapping;return j[_]=M&&z in M?M[z]:z,j},{}),x=Object.entries(m).reduce((j,[_,z])=>{let M=p.argTypes[_]||{};return(0,Sr.includeConditionalArg)(M,m,p.globals)&&(j[_]=z),j},{}),A={...p,args:x},{passArgsFirst:$r=!0}=p.parameters;return $r?P(A.args,A):P(A)},Lr=re(y)(He,l),Gr=p=>{var x;let m=p;if((x=ke.default.FEATURES)!=null&&x.argTypeTargetsV7){let A=ie(p);m={...p,allArgs:p.args,argsByTarget:A,args:A[$]||{}}}return Lr(m)},Le=r.play||e.play;return Object.freeze({...S,moduleExport:o,originalStoryFn:P,undecoratedStoryFn:He,unboundStoryFn:Gr,applyLoaders:Hr,playFunction:Le&&(async p=>{let m={...p,step:(x,A)=>h(x,A,m)};return Le(m)})})}var pe=u(require("lodash/mapValues")),Tr=require("ts-dedent"),Ar=require("@storybook/client-logger");var ve=(r,e,t)=>{let o=typeof r;switch(o){case"boolean":case"string":case"number":case"function":case"symbol":return{name:o};default:break}return r?t.has(r)?(Ar.logger.warn(Tr.dedent`
24
- We've detected a cycle in arg '${e}'. Args should be JSON-serializable.
20
+ `,deprecatedStoryAnnotationWarning=(0,import_util_deprecate.default)(()=>{},deprecatedStoryAnnotation);function normalizeStory(key,storyAnnotations,meta){let storyObject=storyAnnotations,userStoryFn=typeof storyAnnotations=="function"?storyAnnotations:null,{story}=storyObject;story&&(import_client_logger4.logger.debug("deprecated story",story),deprecatedStoryAnnotationWarning());let exportName=(0,import_csf.storyNameFromExport)(key),name=typeof storyObject!="function"&&storyObject.name||storyObject.storyName||(story==null?void 0:story.name)||exportName,decorators=[...storyObject.decorators||[],...(story==null?void 0:story.decorators)||[]],parameters={...story==null?void 0:story.parameters,...storyObject.parameters},args={...story==null?void 0:story.args,...storyObject.args},argTypes={...story==null?void 0:story.argTypes,...storyObject.argTypes},loaders=[...storyObject.loaders||[],...(story==null?void 0:story.loaders)||[]],{render,play,tags=[]}=storyObject,id=parameters.__id||(0,import_csf.toId)(meta.id,exportName);return{moduleExport:storyAnnotations,id,name,tags,decorators,parameters,args,argTypes:normalizeInputTypes(argTypes),loaders,...render&&{render},...userStoryFn&&{userStoryFn},...play&&{play}}}var import_csf3=require("@storybook/csf"),import_client_logger5=require("@storybook/client-logger"),import_ts_dedent4=__toESM(require("ts-dedent"));var import_csf2=require("@storybook/csf");function normalizeComponentAnnotations(defaultExport,title=defaultExport.title,importPath){let{id,argTypes}=defaultExport;return{id:(0,import_csf2.sanitize)(id||title),...defaultExport,title,...argTypes&&{argTypes:normalizeInputTypes(argTypes)},parameters:{fileName:importPath,...defaultExport.parameters}}}var checkGlobals=parameters=>{let{globals,globalTypes}=parameters;(globals||globalTypes)&&import_client_logger5.logger.error("Global args/argTypes can only be set globally",JSON.stringify({globals,globalTypes}))},checkStorySort=parameters=>{let{options}=parameters;options!=null&&options.storySort&&import_client_logger5.logger.error("The storySort option parameter can only be set globally")},checkDisallowedParameters=parameters=>{parameters&&(checkGlobals(parameters),checkStorySort(parameters))},checkSubcomponents=meta=>{meta.subcomponents&&(0,import_client_logger5.deprecate)(import_ts_dedent4.default`The \`subcomponents\` annotation is deprecated.
21
+
22
+ Please refer to the migration guide: https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#argstable-block'
23
+ `)};function processCSFFile(moduleExports,importPath,title){let{default:defaultExport,__namedExportsOrder,...namedExports}=moduleExports,meta=normalizeComponentAnnotations(defaultExport,title,importPath);checkDisallowedParameters(meta.parameters),checkSubcomponents(meta);let csfFile={meta,stories:{},moduleExports};return Object.keys(namedExports).forEach(key=>{if((0,import_csf3.isExportStory)(key,meta)){let storyMeta=normalizeStory(key,namedExports[key],meta);checkDisallowedParameters(storyMeta.parameters),csfFile.stories[storyMeta.id]=storyMeta}}),csfFile}var import_global3=require("@storybook/global"),import_csf4=require("@storybook/csf");var import_isPlainObject2=__toESM(require("lodash/isPlainObject.js")),combineParameters=(...parameterSets)=>{let mergeKeys={},definedParametersSets=parameterSets.filter(Boolean),combined=definedParametersSets.reduce((acc,parameters)=>(Object.entries(parameters).forEach(([key,value])=>{let existing=acc[key];Array.isArray(value)||typeof existing>"u"?acc[key]=value:(0,import_isPlainObject2.default)(value)&&(0,import_isPlainObject2.default)(existing)?mergeKeys[key]=!0:typeof value<"u"&&(acc[key]=value)}),acc),{});return Object.keys(mergeKeys).forEach(key=>{let mergeValues=definedParametersSets.filter(Boolean).map(p=>p[key]).filter(value=>typeof value<"u");mergeValues.every(value=>(0,import_isPlainObject2.default)(value))?combined[key]=combineParameters(...mergeValues):combined[key]=mergeValues[mergeValues.length-1]}),combined};function decorateStory(storyFn,decorator,bindWithContext){let boundStoryFunction=bindWithContext(storyFn);return context=>decorator(boundStoryFunction,context)}function sanitizeStoryContextUpdate({componentId,title,kind,id,name,story,parameters,initialArgs,argTypes,...update}={}){return update}function defaultDecorateStory(storyFn,decorators){let contextStore={},bindWithContext=decoratedStoryFn=>update=>{if(!contextStore.value)throw new Error("Decorated function called without init");return contextStore.value={...contextStore.value,...sanitizeStoryContextUpdate(update)},decoratedStoryFn(contextStore.value)},decoratedWithContextStore=decorators.reduce((story,decorator)=>decorateStory(story,decorator,bindWithContext),storyFn);return context=>(contextStore.value=context,decoratedWithContextStore(context))}function prepareStory(storyAnnotations,componentAnnotations,projectAnnotations){let{moduleExport,id,name}=storyAnnotations||{},partialAnnotations=preparePartialAnnotations(storyAnnotations,componentAnnotations,projectAnnotations),loaders=[...projectAnnotations.loaders||[],...componentAnnotations.loaders||[],...(storyAnnotations==null?void 0:storyAnnotations.loaders)||[]],applyLoaders=async context=>{let loadResults=await Promise.all(loaders.map(loader=>loader(context))),loaded=Object.assign({},...loadResults);return{...context,loaded}},undecoratedStoryFn=context=>{let{passArgsFirst:renderTimePassArgsFirst=!0}=context.parameters;return renderTimePassArgsFirst?render(context.args,context):render(context)},{applyDecorators=defaultDecorateStory,runStep}=projectAnnotations,decorators=[...(storyAnnotations==null?void 0:storyAnnotations.decorators)||[],...componentAnnotations.decorators||[],...projectAnnotations.decorators||[]],render=(storyAnnotations==null?void 0:storyAnnotations.userStoryFn)||(storyAnnotations==null?void 0:storyAnnotations.render)||componentAnnotations.render||projectAnnotations.render;if(!render)throw new Error(`No render function available for storyId '${id}'`);let decoratedStoryFn=applyHooks(applyDecorators)(undecoratedStoryFn,decorators),unboundStoryFn=context=>decoratedStoryFn(context),prepareContext=context=>{var _a;let finalContext=context;if((_a=import_global3.global.FEATURES)!=null&&_a.argTypeTargetsV7){let argsByTarget=groupArgsByTarget(context);finalContext={...context,allArgs:context.args,argsByTarget,args:argsByTarget[UNTARGETED]||{}}}let mappedArgs=Object.entries(finalContext.args).reduce((acc,[key,val])=>{var _a2;let mapping=(_a2=finalContext.argTypes[key])==null?void 0:_a2.mapping;return acc[key]=mapping&&val in mapping?mapping[val]:val,acc},{}),includedArgs=Object.entries(mappedArgs).reduce((acc,[key,val])=>{let argType=finalContext.argTypes[key]||{};return(0,import_csf4.includeConditionalArg)(argType,mappedArgs,finalContext.globals)&&(acc[key]=val),acc},{});return{...finalContext,args:includedArgs}},play=(storyAnnotations==null?void 0:storyAnnotations.play)||componentAnnotations.play;return{...partialAnnotations,moduleExport,id,name,story:name,originalStoryFn:render,undecoratedStoryFn,unboundStoryFn,applyLoaders,playFunction:play&&(async storyContext=>{let playFunctionContext={...storyContext,step:(label,play2)=>runStep(label,play2,playFunctionContext)};return play(playFunctionContext)}),prepareContext}}function prepareMeta(componentAnnotations,projectAnnotations,moduleExport){return{...preparePartialAnnotations(void 0,componentAnnotations,projectAnnotations),moduleExport}}function preparePartialAnnotations(storyAnnotations,componentAnnotations,projectAnnotations){var _a;let id=(storyAnnotations==null?void 0:storyAnnotations.id)||componentAnnotations.id,tags=[...(storyAnnotations==null?void 0:storyAnnotations.tags)||componentAnnotations.tags||[],"story"],parameters=combineParameters(projectAnnotations.parameters,componentAnnotations.parameters,storyAnnotations==null?void 0:storyAnnotations.parameters),{argTypesEnhancers=[],argsEnhancers=[]}=projectAnnotations,render=(storyAnnotations==null?void 0:storyAnnotations.userStoryFn)||(storyAnnotations==null?void 0:storyAnnotations.render)||componentAnnotations.render||projectAnnotations.render;if(!render)throw new Error(`No render function available for id '${id}'`);let passedArgTypes=combineParameters(projectAnnotations.argTypes,componentAnnotations.argTypes,storyAnnotations==null?void 0:storyAnnotations.argTypes),{passArgsFirst=!0}=parameters;parameters.__isArgsStory=passArgsFirst&&render.length>0;let passedArgs={...projectAnnotations.args,...componentAnnotations.args,...storyAnnotations==null?void 0:storyAnnotations.args},contextForEnhancers={componentId:componentAnnotations.id,title:componentAnnotations.title,kind:componentAnnotations.title,id:(storyAnnotations==null?void 0:storyAnnotations.id)||componentAnnotations.id,name:(storyAnnotations==null?void 0:storyAnnotations.name)||"__meta",story:(storyAnnotations==null?void 0:storyAnnotations.name)||"__meta",component:componentAnnotations.component,subcomponents:componentAnnotations.subcomponents,tags,parameters,initialArgs:passedArgs,argTypes:passedArgTypes};contextForEnhancers.argTypes=argTypesEnhancers.reduce((accumulatedArgTypes,enhancer)=>enhancer({...contextForEnhancers,argTypes:accumulatedArgTypes}),contextForEnhancers.argTypes);let initialArgsBeforeEnhancers={...passedArgs};contextForEnhancers.initialArgs=argsEnhancers.reduce((accumulatedArgs,enhancer)=>({...accumulatedArgs,...enhancer({...contextForEnhancers,initialArgs:accumulatedArgs})}),initialArgsBeforeEnhancers),(_a=import_global3.global.FEATURES)!=null&&_a.breakingChangesV7||(contextForEnhancers.parameters={...contextForEnhancers.parameters,__id:id,globals:projectAnnotations.globals,globalTypes:projectAnnotations.globalTypes,args:contextForEnhancers.initialArgs,argTypes:contextForEnhancers.argTypes});let{name,story,...withoutStoryIdentifiers}=contextForEnhancers;return withoutStoryIdentifiers}var import_mapValues2=__toESM(require("lodash/mapValues.js")),import_ts_dedent5=require("ts-dedent"),import_client_logger6=require("@storybook/client-logger");var inferType=(value,name,visited)=>{let type=typeof value;switch(type){case"boolean":case"string":case"number":case"function":case"symbol":return{name:type};default:break}return value?visited.has(value)?(import_client_logger6.logger.warn(import_ts_dedent5.dedent`
24
+ We've detected a cycle in arg '${name}'. Args should be JSON-serializable.
25
25
 
26
26
  Consider using the mapping feature or fully custom args:
27
27
  - Mapping: https://storybook.js.org/docs/react/writing-stories/args#mapping-to-complex-arg-values
28
28
  - Custom args: https://storybook.js.org/docs/react/essentials/controls#fully-custom-args
29
- `),{name:"other",value:"cyclic object"}):(t.add(r),Array.isArray(r)?{name:"array",value:r.length>0?ve(r[0],e,new Set(t)):{name:"other",value:"unknown"}}:{name:"object",value:(0,pe.default)(r,s=>ve(s,e,new Set(t)))}):{name:"object",value:{}}},Ne=r=>{let{id:e,argTypes:t={},initialArgs:o={}}=r,n=(0,pe.default)(o,(i,a)=>({name:a,type:ve(i,`${e}.${a}`,new Set)})),s=(0,pe.default)(t,(i,a)=>({name:a}));return g(n,s,t)};Ne.secondPass=!0;var Rr=u(require("lodash/mapValues")),Fr=require("@storybook/client-logger");var xr=u(require("lodash/pickBy")),br=(r,e)=>Array.isArray(e)?e.includes(r):r.match(e),ye=(r,e,t)=>!e&&!t?r:r&&(0,xr.default)(r,(o,n)=>{let s=o.name||n;return(!e||br(s,e))&&(!t||!br(s,t))});var yt=(r,e,t)=>{let{type:o,options:n}=r;if(!!o){if(t.color&&t.color.test(e)){let s=o.name;if(s==="string")return{control:{type:"color"}};s!=="enum"&&Fr.logger.warn(`Addon controls: Control of type color only supports string, received "${s}" instead`)}if(t.date&&t.date.test(e))return{control:{type:"date"}};switch(o.name){case"array":return{control:{type:"object"}};case"boolean":return{control:{type:"boolean"}};case"string":return{control:{type:"text"}};case"number":return{control:{type:"number"}};case"enum":{let{value:s}=o;return{control:{type:(s==null?void 0:s.length)<=5?"radio":"select"},options:s}}case"function":case"symbol":return null;default:return{control:{type:n?"select":"object"}}}}},Y=r=>{let{argTypes:e,parameters:{__isArgsStory:t,controls:{include:o=null,exclude:n=null,matchers:s={}}={}}}=r;if(!t)return e;let i=ye(e,o,n),a=(0,Rr.default)(i,(d,l)=>(d==null?void 0:d.type)&&yt(d,l,s));return g(a,i)};Y.secondPass=!0;function K({argTypes:r,globalTypes:e,argTypesEnhancers:t,...o}){return{...r&&{argTypes:C(r)},...e&&{globalTypes:C(e)},argTypesEnhancers:[...t||[],Ne,Y],...o}}function De(r){return async(e,t,o)=>{await r.reduceRight((s,i)=>async()=>i(e,s,o),async()=>t(o))()}}function D(r,e){return r.map(t=>t[e]).filter(Boolean)}function J(r,e){return D(r,e).reduce((t,o)=>[...t,...o],[])}function X(r,e){return Object.assign({},...D(r,e))}function q(r,e){return D(r,e).pop()}function je(r){let e=J(r,"argTypesEnhancers"),t=D(r,"runStep");return{parameters:g(...D(r,"parameters")),decorators:J(r,"decorators"),args:X(r,"args"),argsEnhancers:J(r,"argsEnhancers"),argTypes:X(r,"argTypes"),argTypesEnhancers:[...e.filter(o=>!o.secondPass),...e.filter(o=>o.secondPass)],globals:X(r,"globals"),globalTypes:X(r,"globalTypes"),loaders:J(r,"loaders"),render:q(r,"render"),renderToCanvas:q(r,"renderToCanvas"),renderToDOM:q(r,"renderToDOM"),applyDecorators:q(r,"applyDecorators"),runStep:De(t)}}var Cr=require("@storybook/csf");var Er={};function ut(r){let e=Array.isArray(r)?r:[r];Er=je(e)}function mt(r,e,t=Er,o={},n){var f;if(r===void 0)throw new Error("Expected a story but received undefined.");e.title=e.title??"ComposedStory";let s=U(e),i=n||r.storyName||((f=r.story)==null?void 0:f.name)||r.name||"unknown",a=V(i,r,s),d=K({...t,...o}),l=W(a,s,d),y=w(t.globalTypes),c=h=>{let O={...l,hooks:new R,globals:y,args:{...l.initialArgs,...h}};return l.unboundStoryFn(O)};return c.storyName=i,c.args=l.initialArgs,c.play=l.playFunction,c.parameters=l.parameters,c}function ft(r,e,t){let{default:o,__esModule:n,__namedExportsOrder:s,...i}=r;return Object.entries(i).reduce((d,[l,y])=>(0,Cr.isExportStory)(l,o)?Object.assign(d,{[l]:t(y,o,e,l)}):d,{})}var gt=1e3,ht=1e4,St=20,ue=class{constructor(){this.getStoriesJsonData=()=>{let{storyIndex:e}=this;if(!e)throw new Error("getStoriesJsonData called before initialization");let t=this.getSetStoriesPayload(),o=["fileName","docsOnly","framework","__id","__isArgsStory"];return{v:3,stories:(0,Pr.default)(t.stories,s=>{let{importPath:i}=e.entries[s.id];return{...(0,ze.default)(s,["id","name","title"]),importPath:i,kind:s.title,story:s.name,parameters:{...(0,ze.default)(s.parameters,o),fileName:i}}})}};this.args=new ae,this.hooks={},this.processCSFFileWithCache=(0,_e.default)(gt)(we),this.prepareStoryWithCache=(0,_e.default)(ht)(W),this.initializationPromise=new Q.SynchronousPromise(e=>{this.resolveInitializationPromise=e})}setProjectAnnotations(e){this.projectAnnotations=K(e);let{globals:t,globalTypes:o}=e;this.globals?this.globals.set({globals:t,globalTypes:o}):this.globals=new de({globals:t,globalTypes:o})}initialize({storyIndex:e,importFn:t,cache:o=!1}){return this.storyIndex=new ne(e),this.importFn=t,this.resolveInitializationPromise(),o?this.cacheAllCSFFiles():Q.SynchronousPromise.resolve()}async onStoriesChanged({importFn:e,storyIndex:t}){await this.initializationPromise,e&&(this.importFn=e),t&&(this.storyIndex.entries=t.entries),this.cachedCSFFiles&&await this.cacheAllCSFFiles()}async storyIdToEntry(e){return await this.initializationPromise,this.storyIndex.storyIdToEntry(e)}loadCSFFileByStoryId(e){if(!this.storyIndex||!this.importFn)throw new Error("loadCSFFileByStoryId called before initialization");let{importPath:t,title:o}=this.storyIndex.storyIdToEntry(e);return this.importFn(t).then(n=>this.processCSFFileWithCache(n,t,o))}loadAllCSFFiles({batchSize:e=St}={}){if(!this.storyIndex)throw new Error("loadAllCSFFiles called before initialization");let t=Object.entries(this.storyIndex.entries).map(([n,{importPath:s}])=>[s,n]),o=n=>{if(n.length===0)return Q.SynchronousPromise.resolve([]);let s=n.slice(0,e).map(([i,a])=>this.loadCSFFileByStoryId(a).then(d=>({importPath:i,csfFile:d})));return Q.SynchronousPromise.all(s).then(i=>o(n.slice(e)).then(a=>i.concat(a)))};return o(t).then(n=>n.reduce((s,{importPath:i,csfFile:a})=>(s[i]=a,s),{}))}cacheAllCSFFiles(){return this.initializationPromise.then(()=>this.loadAllCSFFiles().then(e=>{this.cachedCSFFiles=e}))}async loadStory({storyId:e}){await this.initializationPromise;let t=await this.loadCSFFileByStoryId(e);return this.storyFromCSFFile({storyId:e,csfFile:t})}storyFromCSFFile({storyId:e,csfFile:t}){if(!this.projectAnnotations)throw new Error("storyFromCSFFile called before initialization");let o=t.stories[e];if(!o)throw new Error(`Didn't find '${e}' in CSF file, this is unexpected`);let n=t.meta,s=this.prepareStoryWithCache(o,n,this.projectAnnotations);return this.args.setInitial(s),this.hooks[s.id]=this.hooks[s.id]||new R,s}componentStoriesFromCSFFile({csfFile:e}){if(!this.storyIndex)throw new Error("componentStoriesFromCSFFile called before initialization");return Object.keys(this.storyIndex.entries).filter(t=>!!e.stories[t]).map(t=>this.storyFromCSFFile({storyId:t,csfFile:e}))}async loadEntry(e){let t=await this.storyIdToEntry(e),{importFn:o,storyIndex:n}=this;if(!n||!o)throw new Error("loadEntry called before initialization");let s=t.type==="docs"?t.storiesImports:[],[i,...a]=await Promise.all([o(t.importPath),...s.map(d=>{let l=n.importPathToEntry(d);return this.loadCSFFileByStoryId(l.id)})]);return{entryExports:i,csfFiles:a}}getStoryContext(e){if(!this.globals)throw new Error("getStoryContext called before initialization");return{...e,args:this.args.get(e.id),globals:this.globals.get(),hooks:this.hooks[e.id]}}cleanupStory(e){this.hooks[e.id].clean()}extract(e={includeDocsOnly:!1}){if(!this.storyIndex)throw new Error("extract called before initialization");let{cachedCSFFiles:t}=this;if(!t)throw new Error("Cannot call extract() unless you call cacheAllCSFFiles() first.");return Object.entries(this.storyIndex.entries).reduce((o,[n,{type:s,importPath:i}])=>{if(s==="docs")return o;let a=t[i],d=this.storyFromCSFFile({storyId:n,csfFile:a});return!e.includeDocsOnly&&d.parameters.docsOnly||(o[n]=Object.entries(d).reduce((l,[y,c])=>y==="moduleExport"||typeof c=="function"?l:Array.isArray(c)?Object.assign(l,{[y]:c.slice().sort()}):Object.assign(l,{[y]:c}),{args:d.initialArgs})),o},{})}getSetStoriesPayload(){if(!this.globals)throw new Error("getSetStoriesPayload called before initialization");let e=this.extract({includeDocsOnly:!0}),t=Object.values(e).reduce((o,{title:n})=>(o[n]={},o),{});return{v:2,globals:this.globals.get(),globalParameters:{},kindParameters:t,stories:e}}getSetIndexPayload(){if(!this.storyIndex)throw new Error("getSetIndexPayload called before initialization");let e=this.extract({includeDocsOnly:!0});return{v:4,entries:Object.fromEntries(Object.entries(this.storyIndex.entries).map(([t,o])=>[t,e[t]?{...o,args:e[t].initialArgs,initialArgs:e[t].initialArgs,argTypes:e[t].argTypes,parameters:e[t].parameters}:o]))}}raw(){return Object.values(this.extract()).map(({id:e})=>this.fromId(e)).filter(Boolean)}fromId(e){if(!this.storyIndex)throw new Error("fromId called before initialization");if(!this.cachedCSFFiles)throw new Error("Cannot call fromId/raw() unless you call cacheAllCSFFiles() first.");let t;try{({importPath:t}=this.storyIndex.storyIdToEntry(e))}catch{return null}let o=this.cachedCSFFiles[t],n=this.storyFromCSFFile({storyId:e,csfFile:o});return{...n,storyFn:s=>{let i={...this.getStoryContext(n),viewMode:"story"};return n.unboundStoryFn({...i,...s})}}}};var E=require("@storybook/core-events");function Ir(r,e){let t=b.getChannel(),[o]=t.last(`${E.SHARED_STATE_CHANGED}-manager-${r}`)||t.last(`${E.SHARED_STATE_SET}-manager-${r}`)||[],[n,s]=xe(o||e),i=be(()=>({[`${E.SHARED_STATE_CHANGED}-manager-${r}`]:d=>s(d),[`${E.SHARED_STATE_SET}-manager-${r}`]:d=>s(d)}),[r]),a=Re(i,[r]);return oe(()=>{e!==void 0&&!o&&a(`${E.SHARED_STATE_SET}-client-${r}`,e)},[r]),[n,d=>{s(d),a(`${E.SHARED_STATE_CHANGED}-client-${r}`,d)}]}function Tt(r,e){return Ir(r,e)}var me=u(require("slash")),Or=require("ts-dedent"),kr=require("@storybook/client-logger"),At=r=>{let e=[...r],t=e[e.length-1],o=t.indexOf("."),n=o>0?t.substr(0,o):t;e[e.length-1]=n;let[s,...i]=e;return s===""&&(e=i),e},bt=/^index$/i,xt=r=>{let e;return r.filter((t,o)=>o===r.length-1&&(t===e||bt.test(t))?!1:(e=t,!0))};function wr(r){let e=new RegExp("/{1,}","g");return r.join("/").replace(e,"/")}var vr=(r,e,t)=>{let{directory:o,importPathMatcher:n,titlePrefix:s=""}=e||{};typeof r=="number"&&kr.once.warn(Or.dedent`
29
+ `),{name:"other",value:"cyclic object"}):(visited.add(value),Array.isArray(value)?{name:"array",value:value.length>0?inferType(value[0],name,new Set(visited)):{name:"other",value:"unknown"}}:{name:"object",value:(0,import_mapValues2.default)(value,field=>inferType(field,name,new Set(visited)))}):{name:"object",value:{}}},inferArgTypes=context=>{let{id,argTypes:userArgTypes={},initialArgs={}}=context,argTypes=(0,import_mapValues2.default)(initialArgs,(arg,key)=>({name:key,type:inferType(arg,`${id}.${key}`,new Set)})),userArgTypesNames=(0,import_mapValues2.default)(userArgTypes,(argType,key)=>({name:key}));return combineParameters(argTypes,userArgTypesNames,userArgTypes)};inferArgTypes.secondPass=!0;var import_mapValues3=__toESM(require("lodash/mapValues.js")),import_client_logger7=require("@storybook/client-logger");var import_pickBy=__toESM(require("lodash/pickBy.js")),matches=(name,descriptor)=>Array.isArray(descriptor)?descriptor.includes(name):name.match(descriptor),filterArgTypes=(argTypes,include,exclude)=>!include&&!exclude?argTypes:argTypes&&(0,import_pickBy.default)(argTypes,(argType,key)=>{let name=argType.name||key;return(!include||matches(name,include))&&(!exclude||!matches(name,exclude))});var inferControl=(argType,name,matchers)=>{let{type,options}=argType;if(type){if(matchers.color&&matchers.color.test(name)){let controlType=type.name;if(controlType==="string")return{control:{type:"color"}};controlType!=="enum"&&import_client_logger7.logger.warn(`Addon controls: Control of type color only supports string, received "${controlType}" instead`)}if(matchers.date&&matchers.date.test(name))return{control:{type:"date"}};switch(type.name){case"array":return{control:{type:"object"}};case"boolean":return{control:{type:"boolean"}};case"string":return{control:{type:"text"}};case"number":return{control:{type:"number"}};case"enum":{let{value}=type;return{control:{type:(value==null?void 0:value.length)<=5?"radio":"select"},options:value}}case"function":case"symbol":return null;default:return{control:{type:options?"select":"object"}}}}},inferControls=context=>{let{argTypes,parameters:{__isArgsStory,controls:{include=null,exclude=null,matchers={}}={}}}=context;if(!__isArgsStory)return argTypes;let filteredArgTypes=filterArgTypes(argTypes,include,exclude),withControls=(0,import_mapValues3.default)(filteredArgTypes,(argType,name)=>(argType==null?void 0:argType.type)&&inferControl(argType,name,matchers));return combineParameters(withControls,filteredArgTypes)};inferControls.secondPass=!0;function normalizeProjectAnnotations({argTypes,globalTypes,argTypesEnhancers,...annotations}){return{...argTypes&&{argTypes:normalizeInputTypes(argTypes)},...globalTypes&&{globalTypes:normalizeInputTypes(globalTypes)},argTypesEnhancers:[...argTypesEnhancers||[],inferArgTypes,inferControls],...annotations}}var import_global4=require("@storybook/global");function composeStepRunners(stepRunners){return async(label,play,playContext)=>{await stepRunners.reduceRight((innerPlay,stepRunner)=>async()=>stepRunner(label,innerPlay,playContext),async()=>play(playContext))()}}function getField(moduleExportList,field){return moduleExportList.map(xs=>{var _a;return((_a=xs.default)==null?void 0:_a[field])??xs[field]}).filter(Boolean)}function getArrayField(moduleExportList,field,options={}){return getField(moduleExportList,field).reduce((a,b)=>options.reverseFileOrder?[...b,...a]:[...a,...b],[])}function getObjectField(moduleExportList,field){return Object.assign({},...getField(moduleExportList,field))}function getSingletonField(moduleExportList,field){return getField(moduleExportList,field).pop()}function composeConfigs(moduleExportList){var _a;let allArgTypeEnhancers=getArrayField(moduleExportList,"argTypesEnhancers"),stepRunners=getField(moduleExportList,"runStep");return{parameters:combineParameters(...getField(moduleExportList,"parameters")),decorators:getArrayField(moduleExportList,"decorators",{reverseFileOrder:!(((_a=import_global4.global.FEATURES)==null?void 0:_a.legacyDecoratorFileOrder)??!1)}),args:getObjectField(moduleExportList,"args"),argsEnhancers:getArrayField(moduleExportList,"argsEnhancers"),argTypes:getObjectField(moduleExportList,"argTypes"),argTypesEnhancers:[...allArgTypeEnhancers.filter(e=>!e.secondPass),...allArgTypeEnhancers.filter(e=>e.secondPass)],globals:getObjectField(moduleExportList,"globals"),globalTypes:getObjectField(moduleExportList,"globalTypes"),loaders:getArrayField(moduleExportList,"loaders"),render:getSingletonField(moduleExportList,"render"),renderToCanvas:getSingletonField(moduleExportList,"renderToCanvas"),renderToDOM:getSingletonField(moduleExportList,"renderToDOM"),applyDecorators:getSingletonField(moduleExportList,"applyDecorators"),runStep:composeStepRunners(stepRunners)}}var import_csf5=require("@storybook/csf");var GLOBAL_STORYBOOK_PROJECT_ANNOTATIONS={};function setProjectAnnotations(projectAnnotations){let annotations=Array.isArray(projectAnnotations)?projectAnnotations:[projectAnnotations];GLOBAL_STORYBOOK_PROJECT_ANNOTATIONS=composeConfigs(annotations)}function composeStory(storyAnnotations,componentAnnotations,projectAnnotations=GLOBAL_STORYBOOK_PROJECT_ANNOTATIONS,defaultConfig={},exportsName){var _a;if(storyAnnotations===void 0)throw new Error("Expected a story but received undefined.");componentAnnotations.title=componentAnnotations.title??"ComposedStory";let normalizedComponentAnnotations=normalizeComponentAnnotations(componentAnnotations),storyName=exportsName||storyAnnotations.storyName||((_a=storyAnnotations.story)==null?void 0:_a.name)||storyAnnotations.name||"unknown",normalizedStory=normalizeStory(storyName,storyAnnotations,normalizedComponentAnnotations),normalizedProjectAnnotations=normalizeProjectAnnotations({...projectAnnotations,...defaultConfig}),story=prepareStory(normalizedStory,normalizedComponentAnnotations,normalizedProjectAnnotations),defaultGlobals=getValuesFromArgTypes(projectAnnotations.globalTypes),composedStory=extraArgs=>{let context={...story,hooks:new HooksContext,globals:defaultGlobals,args:{...story.initialArgs,...extraArgs}};return story.unboundStoryFn(story.prepareContext(context))};return composedStory.storyName=storyName,composedStory.args=story.initialArgs,composedStory.play=story.playFunction,composedStory.parameters=story.parameters,composedStory}function composeStories(storiesImport,globalConfig,composeStoryFn){let{default:meta,__esModule,__namedExportsOrder,...stories}=storiesImport;return Object.entries(stories).reduce((storiesMap,[exportsName,story])=>(0,import_csf5.isExportStory)(exportsName,meta)?Object.assign(storiesMap,{[exportsName]:composeStoryFn(story,meta,globalConfig,exportsName)}):storiesMap,{})}var CSF_CACHE_SIZE=1e3,STORY_CACHE_SIZE=1e4,EXTRACT_BATCH_SIZE=20,StoryStore=class{constructor(){this.getStoriesJsonData=()=>{let{storyIndex}=this;if(!storyIndex)throw new Error("getStoriesJsonData called before initialization");let value=this.getSetStoriesPayload(),allowedParameters=["fileName","docsOnly","framework","__id","__isArgsStory"];return{v:3,stories:(0,import_mapValues4.default)(value.stories,story=>{let{importPath}=storyIndex.entries[story.id];return{...(0,import_pick.default)(story,["id","name","title"]),importPath,kind:story.title,story:story.name,parameters:{...(0,import_pick.default)(story.parameters,allowedParameters),fileName:importPath}}})}};this.args=new ArgsStore,this.hooks={},this.processCSFFileWithCache=(0,import_memoizerific2.default)(CSF_CACHE_SIZE)(processCSFFile),this.prepareStoryWithCache=(0,import_memoizerific2.default)(STORY_CACHE_SIZE)(prepareStory),this.initializationPromise=new import_synchronous_promise.SynchronousPromise(resolve=>{this.resolveInitializationPromise=resolve})}setProjectAnnotations(projectAnnotations){this.projectAnnotations=normalizeProjectAnnotations(projectAnnotations);let{globals,globalTypes}=projectAnnotations;this.globals?this.globals.set({globals,globalTypes}):this.globals=new GlobalsStore({globals,globalTypes})}initialize({storyIndex,importFn,cache=!1}){return this.storyIndex=new StoryIndexStore(storyIndex),this.importFn=importFn,this.resolveInitializationPromise(),cache?this.cacheAllCSFFiles():import_synchronous_promise.SynchronousPromise.resolve()}async onStoriesChanged({importFn,storyIndex}){await this.initializationPromise,importFn&&(this.importFn=importFn),storyIndex&&(this.storyIndex.entries=storyIndex.entries),this.cachedCSFFiles&&await this.cacheAllCSFFiles()}async storyIdToEntry(storyId){return await this.initializationPromise,this.storyIndex.storyIdToEntry(storyId)}loadCSFFileByStoryId(storyId){if(!this.storyIndex||!this.importFn)throw new Error("loadCSFFileByStoryId called before initialization");let{importPath,title}=this.storyIndex.storyIdToEntry(storyId);return this.importFn(importPath).then(moduleExports=>this.processCSFFileWithCache(moduleExports,importPath,title))}loadAllCSFFiles({batchSize=EXTRACT_BATCH_SIZE}={}){if(!this.storyIndex)throw new Error("loadAllCSFFiles called before initialization");let importPaths=Object.entries(this.storyIndex.entries).map(([storyId,{importPath}])=>[importPath,storyId]),loadInBatches=remainingImportPaths=>{if(remainingImportPaths.length===0)return import_synchronous_promise.SynchronousPromise.resolve([]);let csfFilePromiseList=remainingImportPaths.slice(0,batchSize).map(([importPath,storyId])=>this.loadCSFFileByStoryId(storyId).then(csfFile=>({importPath,csfFile})));return import_synchronous_promise.SynchronousPromise.all(csfFilePromiseList).then(firstResults=>loadInBatches(remainingImportPaths.slice(batchSize)).then(restResults=>firstResults.concat(restResults)))};return loadInBatches(importPaths).then(list=>list.reduce((acc,{importPath,csfFile})=>(acc[importPath]=csfFile,acc),{}))}cacheAllCSFFiles(){return this.initializationPromise.then(()=>this.loadAllCSFFiles().then(csfFiles=>{this.cachedCSFFiles=csfFiles}))}async loadStory({storyId}){await this.initializationPromise;let csfFile=await this.loadCSFFileByStoryId(storyId);return this.storyFromCSFFile({storyId,csfFile})}storyFromCSFFile({storyId,csfFile}){if(!this.projectAnnotations)throw new Error("storyFromCSFFile called before initialization");let storyAnnotations=csfFile.stories[storyId];if(!storyAnnotations)throw new Error(`Didn't find '${storyId}' in CSF file, this is unexpected`);let componentAnnotations=csfFile.meta,story=this.prepareStoryWithCache(storyAnnotations,componentAnnotations,this.projectAnnotations);return this.args.setInitial(story),this.hooks[story.id]=this.hooks[story.id]||new HooksContext,story}componentStoriesFromCSFFile({csfFile}){if(!this.storyIndex)throw new Error("componentStoriesFromCSFFile called before initialization");return Object.keys(this.storyIndex.entries).filter(storyId=>!!csfFile.stories[storyId]).map(storyId=>this.storyFromCSFFile({storyId,csfFile}))}async loadEntry(id){let entry=await this.storyIdToEntry(id),{importFn,storyIndex}=this;if(!storyIndex||!importFn)throw new Error("loadEntry called before initialization");let storyImports=entry.type==="docs"?entry.storiesImports:[],[entryExports,...csfFiles]=await Promise.all([importFn(entry.importPath),...storyImports.map(storyImportPath=>{let firstStoryEntry=storyIndex.importPathToEntry(storyImportPath);return this.loadCSFFileByStoryId(firstStoryEntry.id)})]);return{entryExports,csfFiles}}getStoryContext(story){if(!this.globals)throw new Error("getStoryContext called before initialization");return{...story,args:this.args.get(story.id),globals:this.globals.get(),hooks:this.hooks[story.id]}}cleanupStory(story){this.hooks[story.id].clean()}extract(options={includeDocsOnly:!1}){if(!this.storyIndex)throw new Error("extract called before initialization");let{cachedCSFFiles}=this;if(!cachedCSFFiles)throw new Error("Cannot call extract() unless you call cacheAllCSFFiles() first.");return Object.entries(this.storyIndex.entries).reduce((acc,[storyId,{type,importPath}])=>{if(type==="docs")return acc;let csfFile=cachedCSFFiles[importPath],story=this.storyFromCSFFile({storyId,csfFile});return!options.includeDocsOnly&&story.parameters.docsOnly||(acc[storyId]=Object.entries(story).reduce((storyAcc,[key,value])=>key==="moduleExport"||typeof value=="function"?storyAcc:Array.isArray(value)?Object.assign(storyAcc,{[key]:value.slice().sort()}):Object.assign(storyAcc,{[key]:value}),{args:story.initialArgs})),acc},{})}getSetStoriesPayload(){if(!this.globals)throw new Error("getSetStoriesPayload called before initialization");let stories=this.extract({includeDocsOnly:!0}),kindParameters=Object.values(stories).reduce((acc,{title})=>(acc[title]={},acc),{});return{v:2,globals:this.globals.get(),globalParameters:{},kindParameters,stories}}getSetIndexPayload(){if(!this.storyIndex)throw new Error("getSetIndexPayload called before initialization");let stories=this.extract({includeDocsOnly:!0});return{v:4,entries:Object.fromEntries(Object.entries(this.storyIndex.entries).map(([id,entry])=>[id,stories[id]?{...entry,args:stories[id].initialArgs,initialArgs:stories[id].initialArgs,argTypes:stories[id].argTypes,parameters:stories[id].parameters}:entry]))}}raw(){return Object.values(this.extract()).map(({id})=>this.fromId(id)).filter(Boolean)}fromId(storyId){if(!this.storyIndex)throw new Error("fromId called before initialization");if(!this.cachedCSFFiles)throw new Error("Cannot call fromId/raw() unless you call cacheAllCSFFiles() first.");let importPath;try{({importPath}=this.storyIndex.storyIdToEntry(storyId))}catch{return null}let csfFile=this.cachedCSFFiles[importPath],story=this.storyFromCSFFile({storyId,csfFile});return{...story,storyFn:update=>{let context={...this.getStoryContext(story),viewMode:"story"};return story.unboundStoryFn({...context,...update})}}}};var import_core_events2=require("@storybook/core-events");function useSharedState(sharedId,defaultState){let channel=addons.getChannel(),[lastValue]=channel.last(`${import_core_events2.SHARED_STATE_CHANGED}-manager-${sharedId}`)||channel.last(`${import_core_events2.SHARED_STATE_SET}-manager-${sharedId}`)||[],[state,setState]=useState(lastValue||defaultState),allListeners=useMemo(()=>({[`${import_core_events2.SHARED_STATE_CHANGED}-manager-${sharedId}`]:s=>setState(s),[`${import_core_events2.SHARED_STATE_SET}-manager-${sharedId}`]:s=>setState(s)}),[sharedId]),emit=useChannel(allListeners,[sharedId]);return useEffect(()=>{defaultState!==void 0&&!lastValue&&emit(`${import_core_events2.SHARED_STATE_SET}-client-${sharedId}`,defaultState)},[sharedId]),[state,s=>{setState(s),emit(`${import_core_events2.SHARED_STATE_CHANGED}-client-${sharedId}`,s)}]}function useAddonState(addonId,defaultState){return useSharedState(addonId,defaultState)}var import_slash=__toESM(require("slash")),import_ts_dedent6=require("ts-dedent"),import_client_logger8=require("@storybook/client-logger"),stripExtension=path=>{let parts=[...path],last=parts[parts.length-1],dotIndex=last.indexOf("."),stripped=dotIndex>0?last.substr(0,dotIndex):last;parts[parts.length-1]=stripped;let[first,...rest]=parts;return first===""&&(parts=rest),parts},indexRe=/^index$/i,removeRedundantFilename=paths=>{let prevVal;return paths.filter((val,index)=>index===paths.length-1&&(val===prevVal||indexRe.test(val))?!1:(prevVal=val,!0))};function pathJoin(paths){let slashes=new RegExp("/{1,}","g");return paths.join("/").replace(slashes,"/")}var userOrAutoTitleFromSpecifier=(fileName,entry,userTitle)=>{let{directory,importPathMatcher,titlePrefix=""}=entry||{};typeof fileName=="number"&&import_client_logger8.once.warn(import_ts_dedent6.dedent`
30
30
  CSF Auto-title received a numeric fileName. This typically happens when
31
31
  webpack is mis-configured in production mode. To force webpack to produce
32
32
  filenames, set optimization.moduleIds = "named" in your webpack config.
33
- `);let i=(0,me.default)(String(r));if(n.exec(i)){if(!t){let a=i.replace(o,""),l=(0,me.default)(wr([s,a])).split("/");return l=At(l),l=xt(l),l.join("/")}return s?(0,me.default)(wr([s,t])):t}},Rt=(r,e,t)=>{for(let o=0;o<e.length;o+=1){let n=vr(r,e[o],t);if(n)return n}return t||void 0};var _r=require("ts-dedent");var Nr=/\s*\/\s*/,Dr=(r={})=>(e,t)=>{if(e.title===t.title&&!r.includeNames)return 0;let o=r.method||"configure",n=r.order||[],s=e.title.trim().split(Nr),i=t.title.trim().split(Nr);r.includeNames&&(s.push(e.name),i.push(t.name));let a=0;for(;s[a]||i[a];){if(!s[a])return-1;if(!i[a])return 1;let d=s[a],l=i[a];if(d!==l){let c=n.indexOf(d),f=n.indexOf(l),h=n.indexOf("*");return c!==-1||f!==-1?(c===-1&&(h!==-1?c=h:c=n.length),f===-1&&(h!==-1?f=h:f=n.length),c-f):o==="configure"?0:d.localeCompare(l,r.locales?r.locales:void 0,{numeric:!0,sensitivity:"accent"})}let y=n.indexOf(d);y===-1&&(y=n.indexOf("*")),n=y!==-1&&Array.isArray(n[y+1])?n[y+1]:[],a+=1}return 0};var zr=(r,e,t)=>{if(e){let o;typeof e=="function"?o=e:o=Dr(e),r.sort(o)}else r.sort((o,n)=>t.indexOf(o.importPath)-t.indexOf(n.importPath));return r},Ft=(r,e,t)=>{try{return zr(r,e,t)}catch(o){throw new Error(_r.dedent`
34
- Error sorting stories with sort parameter ${e}:
33
+ `);let normalizedFileName=(0,import_slash.default)(String(fileName));if(importPathMatcher.exec(normalizedFileName)){if(!userTitle){let suffix=normalizedFileName.replace(directory,""),path=(0,import_slash.default)(pathJoin([titlePrefix,suffix])).split("/");return path=stripExtension(path),path=removeRedundantFilename(path),path.join("/")}return titlePrefix?(0,import_slash.default)(pathJoin([titlePrefix,userTitle])):userTitle}},userOrAutoTitle=(fileName,storiesEntries,userTitle)=>{for(let i=0;i<storiesEntries.length;i+=1){let title=userOrAutoTitleFromSpecifier(fileName,storiesEntries[i],userTitle);if(title)return title}return userTitle||void 0};var import_ts_dedent7=require("ts-dedent");var STORY_KIND_PATH_SEPARATOR=/\s*\/\s*/,storySort=(options={})=>(a,b)=>{if(a.title===b.title&&!options.includeNames)return 0;let method=options.method||"configure",order=options.order||[],storyTitleA=a.title.trim().split(STORY_KIND_PATH_SEPARATOR),storyTitleB=b.title.trim().split(STORY_KIND_PATH_SEPARATOR);options.includeNames&&(storyTitleA.push(a.name),storyTitleB.push(b.name));let depth=0;for(;storyTitleA[depth]||storyTitleB[depth];){if(!storyTitleA[depth])return-1;if(!storyTitleB[depth])return 1;let nameA=storyTitleA[depth],nameB=storyTitleB[depth];if(nameA!==nameB){let indexA=order.indexOf(nameA),indexB=order.indexOf(nameB),indexWildcard=order.indexOf("*");return indexA!==-1||indexB!==-1?(indexA===-1&&(indexWildcard!==-1?indexA=indexWildcard:indexA=order.length),indexB===-1&&(indexWildcard!==-1?indexB=indexWildcard:indexB=order.length),indexA-indexB):method==="configure"?0:nameA.localeCompare(nameB,options.locales?options.locales:void 0,{numeric:!0,sensitivity:"accent"})}let index=order.indexOf(nameA);index===-1&&(index=order.indexOf("*")),order=index!==-1&&Array.isArray(order[index+1])?order[index+1]:[],depth+=1}return 0};var sortStoriesCommon=(stories,storySortParameter,fileNameOrder)=>{if(storySortParameter){let sortFn;typeof storySortParameter=="function"?sortFn=storySortParameter:sortFn=storySort(storySortParameter),stories.sort(sortFn)}else stories.sort((s1,s2)=>fileNameOrder.indexOf(s1.importPath)-fileNameOrder.indexOf(s2.importPath));return stories},sortStoriesV7=(stories,storySortParameter,fileNameOrder)=>{try{return sortStoriesCommon(stories,storySortParameter,fileNameOrder)}catch(err){throw new Error(import_ts_dedent7.dedent`
34
+ Error sorting stories with sort parameter ${storySortParameter}:
35
35
 
36
- > ${o.message}
36
+ > ${err.message}
37
37
 
38
38
  Are you using a V6-style sort function in V7 mode?
39
39
 
40
40
  More info: https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#v7-style-story-sort
41
- `)}},jr=r=>{let{id:e,title:t,name:o,parameters:n,type:s}=r;return{id:e,title:t,name:o,importPath:n.fileName,type:s}},Ct=(r,e,t)=>{if(e&&typeof e=="function")return r.sort(e),r.map(n=>jr(n[1]));let o=r.map(n=>jr(n[1]));return zr(o,e,t)};0&&(module.exports={DEEPLY_EQUAL,HooksContext,NO_TARGET_NAME,StoryStore,applyHooks,combineArgs,combineParameters,composeConfigs,composeStepRunners,composeStories,composeStory,decorateStory,deepDiff,defaultDecorateStory,filterArgTypes,getArrayField,getField,getObjectField,getSingletonField,getValuesFromArgTypes,groupArgsByTarget,inferControls,mapArgsToTypes,noTargetArgs,normalizeComponentAnnotations,normalizeInputType,normalizeInputTypes,normalizeProjectAnnotations,normalizeStory,prepareStory,processCSFFile,sanitizeStoryContextUpdate,setProjectAnnotations,sortStoriesV6,sortStoriesV7,useAddonState,useArgs,useCallback,useChannel,useEffect,useGlobals,useMemo,useParameter,useReducer,useRef,useSharedState,useState,useStoryContext,userOrAutoTitle,userOrAutoTitleFromSpecifier,validateOptions});
41
+ `)}},toIndexEntry=story=>{let{id,title,name,parameters,type}=story;return{id,title,name,importPath:parameters.fileName,type}},sortStoriesV6=(stories,storySortParameter,fileNameOrder)=>{if(storySortParameter&&typeof storySortParameter=="function")return stories.sort(storySortParameter),stories.map(s=>toIndexEntry(s[1]));let storiesV7=stories.map(s=>toIndexEntry(s[1]));return sortStoriesCommon(storiesV7,storySortParameter,fileNameOrder)};0&&(module.exports={DEEPLY_EQUAL,HooksContext,StoryStore,UNTARGETED,applyHooks,combineArgs,combineParameters,composeConfigs,composeStepRunners,composeStories,composeStory,decorateStory,deepDiff,defaultDecorateStory,filterArgTypes,getArrayField,getField,getObjectField,getSingletonField,getValuesFromArgTypes,groupArgsByTarget,inferControls,mapArgsToTypes,noTargetArgs,normalizeComponentAnnotations,normalizeInputType,normalizeInputTypes,normalizeProjectAnnotations,normalizeStory,prepareMeta,prepareStory,processCSFFile,sanitizeStoryContextUpdate,setProjectAnnotations,sortStoriesV6,sortStoriesV7,useAddonState,useArgs,useCallback,useChannel,useEffect,useGlobals,useMemo,useParameter,useReducer,useRef,useSharedState,useState,useStoryContext,userOrAutoTitle,userOrAutoTitleFromSpecifier,validateOptions});