@storybook/nextjs 8.3.0-alpha.3 → 8.3.0-alpha.5

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 (51) hide show
  1. package/dist/chunk-VO5G2M3L.mjs +20 -0
  2. package/dist/export-mocks/cache/index.d.ts +5 -5
  3. package/dist/export-mocks/headers/index.d.ts +18 -18
  4. package/dist/export-mocks/headers/index.js +1 -1
  5. package/dist/export-mocks/headers/index.mjs +1 -1
  6. package/dist/export-mocks/index.js +1 -1
  7. package/dist/export-mocks/index.mjs +4 -4
  8. package/dist/export-mocks/navigation/index.d.ts +11 -12
  9. package/dist/export-mocks/navigation/index.js +1 -1
  10. package/dist/export-mocks/navigation/index.mjs +2 -2
  11. package/dist/export-mocks/router/index.d.ts +7 -5
  12. package/dist/export-mocks/router/index.js +1 -1
  13. package/dist/export-mocks/router/index.mjs +1 -1
  14. package/dist/font/webpack/loader/storybook-nextjs-font-loader.js +4 -4
  15. package/dist/font/webpack/loader/storybook-nextjs-font-loader.mjs +9 -9
  16. package/dist/images/next-image.d.ts +1 -1
  17. package/dist/images/next-image.js +1 -1
  18. package/dist/images/next-image.mjs +1 -1
  19. package/dist/images/next-legacy-image.d.ts +1 -1
  20. package/dist/images/next-legacy-image.js +1 -1
  21. package/dist/images/next-legacy-image.mjs +1 -1
  22. package/dist/{index.d-e10eb603.d.ts → index.d-5a935e77.d.ts} +70 -27
  23. package/dist/index.d.ts +2 -2
  24. package/dist/index.js +1 -1
  25. package/dist/index.mjs +5 -3
  26. package/dist/next-image-loader-stub.d.ts +1 -1
  27. package/dist/next-image-loader-stub.js +1 -1
  28. package/dist/next-image-loader-stub.mjs +2 -2
  29. package/dist/preset.d.ts +2 -2
  30. package/dist/preset.js +1 -1
  31. package/dist/preview.js +1 -1
  32. package/dist/preview.mjs +1 -1
  33. package/dist/react-18-6AMDNICQ.mjs +7 -0
  34. package/dist/swc/next-swc-loader-patch.js +1 -1
  35. package/dist/swc/next-swc-loader-patch.mjs +2 -2
  36. package/package.json +9 -9
  37. package/template/cli/js/Button.jsx +2 -0
  38. package/template/cli/js/Button.stories.js +1 -0
  39. package/template/cli/js/Header.jsx +1 -0
  40. package/template/cli/js/Header.stories.js +1 -0
  41. package/template/cli/js/Page.stories.js +2 -1
  42. package/template/cli/ts-3-8/Button.stories.ts +1 -0
  43. package/template/cli/ts-3-8/Button.tsx +1 -0
  44. package/template/cli/ts-3-8/Page.stories.ts +1 -1
  45. package/template/cli/ts-4-9/Button.stories.ts +1 -0
  46. package/template/cli/ts-4-9/Button.tsx +1 -0
  47. package/template/cli/ts-4-9/Header.stories.ts +1 -0
  48. package/template/cli/ts-4-9/Page.stories.ts +1 -1
  49. package/dist/chunk-BLSRQDRO.mjs +0 -20
  50. package/dist/react-18-4VSW3XPO.mjs +0 -5
  51. package/dist/{types-6414f95f.d.ts → types-79ace3a8.d.ts} +2 -2
@@ -16,8 +16,17 @@ interface MockResultThrow {
16
16
  */
17
17
  value: any;
18
18
  }
19
+ interface MockSettledResultFulfilled<T> {
20
+ type: 'fulfilled';
21
+ value: T;
22
+ }
23
+ interface MockSettledResultRejected {
24
+ type: 'rejected';
25
+ value: any;
26
+ }
19
27
  type MockResult<T> = MockResultReturn<T> | MockResultThrow | MockResultIncomplete;
20
- interface MockContext<TArgs, TReturns> {
28
+ type MockSettledResult<T> = MockSettledResultFulfilled<T> | MockSettledResultRejected;
29
+ interface MockContext<T extends Procedure> {
21
30
  /**
22
31
  * This is an array containing all arguments for each call. One item of the array is the arguments of that call.
23
32
  *
@@ -32,11 +41,15 @@ interface MockContext<TArgs, TReturns> {
32
41
  * ['arg3'], // second call
33
42
  * ]
34
43
  */
35
- calls: TArgs[];
44
+ calls: Parameters<T>[];
36
45
  /**
37
46
  * This is an array containing all instances that were instantiated when mock was called with a `new` keyword. Note that this is an actual context (`this`) of the function, not a return value.
38
47
  */
39
- instances: TReturns[];
48
+ instances: ReturnType<T>[];
49
+ /**
50
+ * An array of `this` values that were used during each call to the mock function.
51
+ */
52
+ contexts: ThisParameterType<T>[];
40
53
  /**
41
54
  * The order of mock's execution. This returns an array of numbers which are shared between all defined mocks.
42
55
  *
@@ -55,7 +68,7 @@ interface MockContext<TArgs, TReturns> {
55
68
  /**
56
69
  * This is an array containing all values that were `returned` from the function.
57
70
  *
58
- * The `value` property contains the returned value or thrown error. If the function returned a promise, the `value` will be the _resolved_ value, not the actual `Promise`, unless it was never resolved.
71
+ * The `value` property contains the returned value or thrown error. If the function returned a `Promise`, then `result` will always be `'return'` even if the promise was rejected.
59
72
  *
60
73
  * @example
61
74
  * const fn = vi.fn()
@@ -80,43 +93,73 @@ interface MockContext<TArgs, TReturns> {
80
93
  * },
81
94
  * ]
82
95
  */
83
- results: MockResult<TReturns>[];
96
+ results: MockResult<ReturnType<T>>[];
97
+ /**
98
+ * An array containing all values that were `resolved` or `rejected` from the function.
99
+ *
100
+ * This array will be empty if the function was never resolved or rejected.
101
+ *
102
+ * @example
103
+ * const fn = vi.fn().mockResolvedValueOnce('result')
104
+ *
105
+ * const result = fn()
106
+ *
107
+ * fn.mock.settledResults === []
108
+ * fn.mock.results === [
109
+ * {
110
+ * type: 'return',
111
+ * value: Promise<'result'>,
112
+ * },
113
+ * ]
114
+ *
115
+ * await result
116
+ *
117
+ * fn.mock.settledResults === [
118
+ * {
119
+ * type: 'fulfilled',
120
+ * value: 'result',
121
+ * },
122
+ * ]
123
+ */
124
+ settledResults: MockSettledResult<Awaited<ReturnType<T>>>[];
84
125
  /**
85
126
  * This contains the arguments of the last call. If spy wasn't called, will return `undefined`.
86
127
  */
87
- lastCall: TArgs | undefined;
128
+ lastCall: Parameters<T> | undefined;
88
129
  }
89
- interface MockInstance<TArgs extends any[] = any[], TReturns = any> {
130
+ type Procedure = (...args: any[]) => any;
131
+ type NormalizedPrecedure<T extends Procedure> = (...args: Parameters<T>) => ReturnType<T>;
132
+ interface MockInstance<T extends Procedure = Procedure> {
90
133
  /**
91
134
  * Use it to return the name given to mock with method `.mockName(name)`.
92
135
  */
93
- getMockName: () => string;
136
+ getMockName(): string;
94
137
  /**
95
138
  * Sets internal mock name. Useful to see the name of the mock if an assertion fails.
96
139
  */
97
- mockName: (n: string) => this;
140
+ mockName(n: string): this;
98
141
  /**
99
142
  * Current context of the mock. It stores information about all invocation calls, instances, and results.
100
143
  */
101
- mock: MockContext<TArgs, TReturns>;
144
+ mock: MockContext<T>;
102
145
  /**
103
146
  * Clears all information about every call. After calling it, all properties on `.mock` will return an empty state. This method does not reset implementations.
104
147
  *
105
148
  * It is useful if you need to clean up mock between different assertions.
106
149
  */
107
- mockClear: () => this;
150
+ mockClear(): this;
108
151
  /**
109
152
  * Does what `mockClear` does and makes inner implementation an empty function (returning `undefined` when invoked). This also resets all "once" implementations.
110
153
  *
111
154
  * This is useful when you want to completely reset a mock to the default state.
112
155
  */
113
- mockReset: () => this;
156
+ mockReset(): this;
114
157
  /**
115
158
  * Does what `mockReset` does and restores inner implementation to the original function.
116
159
  *
117
160
  * Note that restoring mock from `vi.fn()` will set implementation to an empty function that returns `undefined`. Restoring a `vi.fn(impl)` will restore implementation to `impl`.
118
161
  */
119
- mockRestore: () => void;
162
+ mockRestore(): void;
120
163
  /**
121
164
  * Returns current mock implementation if there is one.
122
165
  *
@@ -124,14 +167,14 @@ interface MockInstance<TArgs extends any[] = any[], TReturns = any> {
124
167
  *
125
168
  * If mock was created with `vi.spyOn`, it will return `undefined` unless a custom implementation was provided.
126
169
  */
127
- getMockImplementation: () => ((...args: TArgs) => TReturns) | undefined;
170
+ getMockImplementation(): NormalizedPrecedure<T> | undefined;
128
171
  /**
129
172
  * Accepts a function that will be used as an implementation of the mock.
130
173
  * @example
131
174
  * const increment = vi.fn().mockImplementation(count => count + 1);
132
175
  * expect(increment(3)).toBe(4);
133
176
  */
134
- mockImplementation: (fn: ((...args: TArgs) => TReturns)) => this;
177
+ mockImplementation(fn: NormalizedPrecedure<T>): this;
135
178
  /**
136
179
  * Accepts a function that will be used as a mock implementation during the next call. Can be chained so that multiple function calls produce different results.
137
180
  * @example
@@ -139,7 +182,7 @@ interface MockInstance<TArgs extends any[] = any[], TReturns = any> {
139
182
  * expect(fn(3)).toBe(4);
140
183
  * expect(fn(3)).toBe(3);
141
184
  */
142
- mockImplementationOnce: (fn: ((...args: TArgs) => TReturns)) => this;
185
+ mockImplementationOnce(fn: NormalizedPrecedure<T>): this;
143
186
  /**
144
187
  * Overrides the original mock implementation temporarily while the callback is being executed.
145
188
  * @example
@@ -151,15 +194,15 @@ interface MockInstance<TArgs extends any[] = any[], TReturns = any> {
151
194
  *
152
195
  * myMockFn() // 'original'
153
196
  */
154
- withImplementation: <T>(fn: ((...args: TArgs) => TReturns), cb: () => T) => T extends Promise<unknown> ? Promise<this> : this;
197
+ withImplementation<T2>(fn: NormalizedPrecedure<T>, cb: () => T2): T2 extends Promise<unknown> ? Promise<this> : this;
155
198
  /**
156
199
  * Use this if you need to return `this` context from the method without invoking actual implementation.
157
200
  */
158
- mockReturnThis: () => this;
201
+ mockReturnThis(): this;
159
202
  /**
160
203
  * Accepts a value that will be returned whenever the mock function is called.
161
204
  */
162
- mockReturnValue: (obj: TReturns) => this;
205
+ mockReturnValue(obj: ReturnType<T>): this;
163
206
  /**
164
207
  * Accepts a value that will be returned during the next function call. If chained, every consecutive call will return the specified value.
165
208
  *
@@ -174,14 +217,14 @@ interface MockInstance<TArgs extends any[] = any[], TReturns = any> {
174
217
  * // 'first call', 'second call', 'default'
175
218
  * console.log(myMockFn(), myMockFn(), myMockFn())
176
219
  */
177
- mockReturnValueOnce: (obj: TReturns) => this;
220
+ mockReturnValueOnce(obj: ReturnType<T>): this;
178
221
  /**
179
222
  * Accepts a value that will be resolved when async function is called.
180
223
  * @example
181
224
  * const asyncMock = vi.fn().mockResolvedValue(42)
182
225
  * asyncMock() // Promise<42>
183
226
  */
184
- mockResolvedValue: (obj: Awaited<TReturns>) => this;
227
+ mockResolvedValue(obj: Awaited<ReturnType<T>>): this;
185
228
  /**
186
229
  * Accepts a value that will be resolved during the next function call. If chained, every consecutive call will resolve specified value.
187
230
  * @example
@@ -194,14 +237,14 @@ interface MockInstance<TArgs extends any[] = any[], TReturns = any> {
194
237
  * // Promise<'first call'>, Promise<'second call'>, Promise<'default'>
195
238
  * console.log(myMockFn(), myMockFn(), myMockFn())
196
239
  */
197
- mockResolvedValueOnce: (obj: Awaited<TReturns>) => this;
240
+ mockResolvedValueOnce(obj: Awaited<ReturnType<T>>): this;
198
241
  /**
199
242
  * Accepts an error that will be rejected when async function is called.
200
243
  * @example
201
244
  * const asyncMock = vi.fn().mockRejectedValue(new Error('Async error'))
202
245
  * await asyncMock() // throws 'Async error'
203
246
  */
204
- mockRejectedValue: (obj: any) => this;
247
+ mockRejectedValue(obj: any): this;
205
248
  /**
206
249
  * Accepts a value that will be rejected during the next function call. If chained, every consecutive call will reject specified value.
207
250
  * @example
@@ -213,11 +256,11 @@ interface MockInstance<TArgs extends any[] = any[], TReturns = any> {
213
256
  * await asyncMock() // first call
214
257
  * await asyncMock() // throws "Async error"
215
258
  */
216
- mockRejectedValueOnce: (obj: any) => this;
259
+ mockRejectedValueOnce(obj: any): this;
217
260
  }
218
- interface Mock<TArgs extends any[] = any, TReturns = any> extends MockInstance<TArgs, TReturns> {
219
- new (...args: TArgs): TReturns;
220
- (...args: TArgs): TReturns;
261
+ interface Mock<T extends Procedure = Procedure> extends MockInstance<T> {
262
+ new (...args: Parameters<T>): ReturnType<T>;
263
+ (...args: Parameters<T>): ReturnType<T>;
221
264
  }
222
265
 
223
266
  export { Mock as M };
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- export { F as FrameworkOptions, S as StorybookConfig } from './types-6414f95f.js';
1
+ export { F as FrameworkOptions, S as StorybookConfig } from './types-79ace3a8.js';
2
2
  import { NamedOrDefaultProjectAnnotations, ProjectAnnotations, Args, StoryAnnotationsOrFn, ComposedStoryFn, Store_CSFExports, StoriesWithPartialProps } from 'storybook/internal/types';
3
3
  import { ReactRenderer, Meta } from '@storybook/react';
4
- import '@storybook/preset-react-webpack';
5
4
  import '@storybook/builder-webpack5';
5
+ import '@storybook/preset-react-webpack';
6
6
  import 'next/image';
7
7
 
8
8
  /** Function that sets the globalConfig of your storybook. The global config is the preview module of your .storybook folder.
package/dist/index.js CHANGED
@@ -1 +1 @@
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 __commonJS=(cb,mod)=>function(){return mod||(0,cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};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 require_react_18=__commonJS({"../../lib/react-dom-shim/dist/react-18.js"(exports2,module2){"use strict";var __create2=Object.create,__defProp2=Object.defineProperty,__getOwnPropDesc2=Object.getOwnPropertyDescriptor,__getOwnPropNames2=Object.getOwnPropertyNames,__getProtoOf2=Object.getPrototypeOf,__hasOwnProp2=Object.prototype.hasOwnProperty,__export2=(target,all)=>{for(var name in all)__defProp2(target,name,{get:all[name],enumerable:!0})},__copyProps2=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames2(from))!__hasOwnProp2.call(to,key)&&key!==except&&__defProp2(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc2(from,key))||desc.enumerable});return to},__toESM2=(mod,isNodeMode,target)=>(target=mod!=null?__create2(__getProtoOf2(mod)):{},__copyProps2(isNodeMode||!mod||!mod.__esModule?__defProp2(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS2=mod=>__copyProps2(__defProp2({},"__esModule",{value:!0}),mod),react_18_exports={};__export2(react_18_exports,{renderElement:()=>renderElement,unmountElement:()=>unmountElement});module2.exports=__toCommonJS2(react_18_exports);var React11=__toESM2(require("react")),ReactDOM=__toESM2(require("react-dom/client")),nodes=new Map,WithCallback=({callback,children})=>{let once=React11.useRef();return React11.useLayoutEffect(()=>{once.current!==callback&&(once.current=callback,callback())},[callback]),children},renderElement=async(node,el,rootOptions)=>{let root=await getReactRoot(el,rootOptions);return new Promise(resolve=>{root.render(React11.createElement(WithCallback,{callback:()=>resolve(null)},node))})},unmountElement=(el,shouldUseNewRootApi)=>{let root=nodes.get(el);root&&(root.unmount(),nodes.delete(el))},getReactRoot=async(el,rootOptions)=>{let root=nodes.get(el);return root||(root=ReactDOM.createRoot(el,rootOptions),nodes.set(el,root)),root}}});var src_exports={};__export(src_exports,{composeStories:()=>composeStories,composeStory:()=>composeStory,setProjectAnnotations:()=>setProjectAnnotations});module.exports=__toCommonJS(src_exports);var import_preview_api2=require("storybook/internal/preview-api");var import_preview_api=require("storybook/internal/preview-api");var entry_preview_exports={};__export(entry_preview_exports,{mount:()=>mount,parameters:()=>parameters,render:()=>render,renderToCanvas:()=>renderToCanvas});var import_react=__toESM(require("react")),render=(args,context)=>{let{id,component:Component}=context;if(!Component)throw new Error(`Unable to render story ${id} as the component annotation is missing from the default export`);return import_react.default.createElement(Component,{...args})};var scope=(()=>{let win;return typeof window<"u"?win=window:typeof globalThis<"u"?win=globalThis:typeof global<"u"?win=global:typeof self<"u"?win=self:win={},win})();var import_react2=__toESM(require("react")),{FRAMEWORK_OPTIONS}=scope,ErrorBoundary=class extends import_react2.Component{constructor(){super(...arguments);this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidMount(){let{hasError}=this.state,{showMain}=this.props;hasError||showMain()}componentDidCatch(err){let{showException}=this.props;showException(err)}render(){let{hasError}=this.state,{children}=this.props;return hasError?null:children}},Wrapper=FRAMEWORK_OPTIONS?.strictMode?import_react2.StrictMode:import_react2.Fragment;async function renderToCanvas({storyContext,unboundStoryFn,showMain,showException,forceRemount},canvasElement){let{renderElement,unmountElement}=await Promise.resolve().then(()=>__toESM(require_react_18())),content=import_react2.default.createElement(ErrorBoundary,{showMain,showException},import_react2.default.createElement(unboundStoryFn,{...storyContext})),element=Wrapper?import_react2.default.createElement(Wrapper,null,content):content;return forceRemount&&unmountElement(canvasElement),await renderElement(element,canvasElement,storyContext?.parameters?.react?.rootOptions),()=>unmountElement(canvasElement)}var mount=context=>async ui=>(ui!=null&&(context.originalStoryFn=()=>ui),await context.renderToCanvas(),context.canvas);var parameters={renderer:"react"};var import_preview_errors=require("storybook/internal/preview-errors"),import_react3=__toESM(require("react"));var INTERNAL_DEFAULT_PROJECT_ANNOTATIONS={...entry_preview_exports,renderToCanvas:({storyContext:{context,unboundStoryFn:Story,testingLibraryRender:render2,canvasElement}})=>{if(render2==null)throw new import_preview_errors.TestingLibraryMustBeConfiguredError;let{unmount}=render2(import_react3.default.createElement(Story,{...context}),{baseElement:context.canvasElement});return unmount}};var preview_exports={};__export(preview_exports,{decorators:()=>decorators,loaders:()=>loaders,parameters:()=>parameters2});var import_config=require("next/config");(0,import_config.setConfig)(process.env.__NEXT_RUNTIME_CONFIG);var React4=__toESM(require("react")),import_image_context=require("@storybook/nextjs/dist/image-context"),ImageContext=import_image_context.ImageContext,ImageDecorator=(Story,{parameters:parameters3})=>parameters3.nextjs?.image?React4.createElement(ImageContext.Provider,{value:parameters3.nextjs.image},React4.createElement(Story,null)):React4.createElement(Story,null);var React7=__toESM(require("react"));var import_react4=__toESM(require("react")),import_app_router_context=require("next/dist/shared/lib/app-router-context.shared-runtime"),import_hooks_client_context=require("next/dist/shared/lib/hooks-client-context.shared-runtime"),import_segment=require("next/dist/shared/lib/segment"),import_navigation=require("@storybook/nextjs/navigation.mock");function getSelectedParams(currentTree,params={}){let parallelRoutes=currentTree[1];for(let parallelRoute of Object.values(parallelRoutes)){let segment=parallelRoute[0],isDynamicParameter=Array.isArray(segment),segmentValue=isDynamicParameter?segment[1]:segment;if(!segmentValue||segmentValue.startsWith(import_segment.PAGE_SEGMENT_KEY))continue;isDynamicParameter&&(segment[2]==="c"||segment[2]==="oc")?params[segment[0]]=segment[1].split("/"):isDynamicParameter&&(params[segment[0]]=segment[1]),params=getSelectedParams(parallelRoute,params)}return params}var getParallelRoutes=segmentsList=>{let segment=segmentsList.shift();return segment?[segment,{children:getParallelRoutes(segmentsList)}]:[]},AppRouterProvider=({children,routeParams})=>{let{pathname,query,segments=[]}=routeParams,tree=[pathname,{children:getParallelRoutes([...segments])}],pathParams=(0,import_react4.useMemo)(()=>getSelectedParams(tree),[tree]);return import_react4.default.createElement(import_hooks_client_context.PathParamsContext.Provider,{value:pathParams},import_react4.default.createElement(import_hooks_client_context.PathnameContext.Provider,{value:pathname},import_react4.default.createElement(import_hooks_client_context.SearchParamsContext.Provider,{value:new URLSearchParams(query)},import_react4.default.createElement(import_app_router_context.GlobalLayoutRouterContext.Provider,{value:{changeByServerResponse(){},buildId:"storybook",tree,focusAndScrollRef:{apply:!1,hashFragment:null,segmentPaths:[tree],onlyHashChange:!1},nextUrl:pathname}},import_react4.default.createElement(import_app_router_context.AppRouterContext.Provider,{value:(0,import_navigation.getRouter)()},import_react4.default.createElement(import_app_router_context.LayoutRouterContext.Provider,{value:{childNodes:new Map,tree,url:pathname}},children))))))};var import_router_context=require("next/dist/shared/lib/router-context.shared-runtime"),import_react5=__toESM(require("react")),import_router=require("@storybook/nextjs/router.mock"),PageRouterProvider=({children})=>import_react5.default.createElement(import_router_context.RouterContext.Provider,{value:(0,import_router.getRouter)()},children);var import_redirect_boundary=require("next/dist/client/components/redirect-boundary"),defaultRouterParams={pathname:"/",query:{}},RouterDecorator=(Story,{parameters:parameters3})=>parameters3.nextjs?.appDirectory??!1?AppRouterProvider?React7.createElement(AppRouterProvider,{routeParams:{...defaultRouterParams,...parameters3.nextjs?.navigation}},React7.createElement(import_redirect_boundary.RedirectBoundary,null,React7.createElement(Story,null))):null:React7.createElement(PageRouterProvider,null,React7.createElement(Story,null));var React8=__toESM(require("react")),import_styled_jsx=require("styled-jsx"),StyledJsxDecorator=Story=>React8.createElement(import_styled_jsx.StyleRegistry,null,React8.createElement(Story,null));var React10=__toESM(require("react"));var import_react6=__toESM(require("react")),import_head_manager_context=require("next/dist/shared/lib/head-manager-context.shared-runtime"),import_head_manager=__toESM(require("next/dist/client/head-manager")),HeadManagerProvider=({children})=>{let headManager=(0,import_react6.useMemo)(import_head_manager.default,[]);return headManager.getIsSsr=()=>!1,import_react6.default.createElement(import_head_manager_context.HeadManagerContext.Provider,{value:headManager},children)},head_manager_provider_default=HeadManagerProvider;var HeadManagerDecorator=Story=>React10.createElement(head_manager_provider_default,null,React10.createElement(Story,null));var import_router2=require("@storybook/nextjs/router.mock"),import_navigation2=require("@storybook/nextjs/navigation.mock"),import_is_next_router_error=require("next/dist/client/components/is-next-router-error");function addNextHeadCount(){let meta=document.createElement("meta");meta.name="next-head-count",meta.content="0",document.head.appendChild(meta)}function isAsyncClientComponentError(error){return typeof error=="string"&&(error.includes("A component was suspended by an uncached promise.")||error.includes("async/await is not yet supported in Client Components"))}addNextHeadCount();var origConsoleError=globalThis.console.error;globalThis.console.error=(...args)=>{let error=args[0];(0,import_is_next_router_error.isNextRouterError)(error)||isAsyncClientComponentError(error)||origConsoleError.apply(globalThis.console,args)};globalThis.addEventListener("error",ev=>{if((0,import_is_next_router_error.isNextRouterError)(ev.error)||isAsyncClientComponentError(ev.error)){ev.preventDefault();return}});var decorators=[StyledJsxDecorator,ImageDecorator,RouterDecorator,HeadManagerDecorator],loaders=async({globals,parameters:parameters3})=>{let{router,appDirectory}=parameters3.nextjs??{};appDirectory?(0,import_navigation2.createNavigation)(router):(0,import_router2.createRouter)({locale:globals.locale,...router})},parameters2={docs:{source:{excludeDecorators:!0}},react:{rootOptions:{onCaughtError(error){(0,import_is_next_router_error.isNextRouterError)(error)||console.error(error)}}}};function setProjectAnnotations(projectAnnotations){return(0,import_preview_api2.setProjectAnnotations)(projectAnnotations)}var defaultProjectAnnotations=(0,import_preview_api2.composeConfigs)([INTERNAL_DEFAULT_PROJECT_ANNOTATIONS,preview_exports]);function composeStory(story,componentAnnotations,projectAnnotations,exportsName){return(0,import_preview_api2.composeStory)(story,componentAnnotations,projectAnnotations,defaultProjectAnnotations,exportsName)}function composeStories(csfExports,projectAnnotations){return(0,import_preview_api2.composeStories)(csfExports,projectAnnotations,composeStory)}0&&(module.exports={composeStories,composeStory,setProjectAnnotations});
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 __esm=(fn,res)=>function(){return fn&&(res=(0,fn[__getOwnPropNames(fn)[0]])(fn=0)),res};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 react_18_exports={};__export(react_18_exports,{renderElement:()=>renderElement,unmountElement:()=>unmountElement});var React3,ReactDOM,nodes,WithCallback,renderElement,unmountElement,getReactRoot,init_react_18=__esm({"../../lib/react-dom-shim/dist/react-18.mjs"(){"use strict";React3=__toESM(require("react"),1),ReactDOM=__toESM(require("react-dom/client"),1),nodes=new Map,WithCallback=({callback,children})=>{let once=React3.useRef();return React3.useLayoutEffect(()=>{once.current!==callback&&(once.current=callback,callback())},[callback]),children},renderElement=async(node,el,rootOptions)=>{let root=await getReactRoot(el,rootOptions);return new Promise(resolve=>{root.render(React3.createElement(WithCallback,{callback:()=>resolve(null)},node))})},unmountElement=(el,shouldUseNewRootApi)=>{let root=nodes.get(el);root&&(root.unmount(),nodes.delete(el))},getReactRoot=async(el,rootOptions)=>{let root=nodes.get(el);return root||(root=ReactDOM.createRoot(el,rootOptions),nodes.set(el,root)),root}}});var src_exports={};__export(src_exports,{composeStories:()=>composeStories,composeStory:()=>composeStory,setProjectAnnotations:()=>setProjectAnnotations});module.exports=__toCommonJS(src_exports);var import_preview_api2=require("storybook/internal/preview-api");var entry_preview_rsc_exports={};__export(entry_preview_rsc_exports,{ServerComponentDecorator:()=>ServerComponentDecorator,decorators:()=>decorators,parameters:()=>parameters});var React=__toESM(require("react")),import_semver=__toESM(require("semver")),ServerComponentDecorator=(Story,{parameters:parameters4})=>{if(!parameters4?.react?.rsc)return React.createElement(Story,null);let major=import_semver.default.major(React.version),minor=import_semver.default.minor(React.version);if(major<18||major===18&&minor<3)throw new Error("React Server Components require React >= 18.3");return React.createElement(React.Suspense,null,React.createElement(Story,null))},decorators=[ServerComponentDecorator],parameters={react:{rsc:!0}};var import_react3=__toESM(require("react")),import_preview_api=require("storybook/internal/preview-api"),import_preview_errors=require("storybook/internal/preview-errors");var entry_preview_exports={};__export(entry_preview_exports,{mount:()=>mount,parameters:()=>parameters2,render:()=>render,renderToCanvas:()=>renderToCanvas});var import_react=__toESM(require("react")),render=(args,context)=>{let{id,component:Component}=context;if(!Component)throw new Error(`Unable to render story ${id} as the component annotation is missing from the default export`);return import_react.default.createElement(Component,{...args})};var import_react2=__toESM(require("react"));var scope=(()=>{let win;return typeof window<"u"?win=window:typeof globalThis<"u"?win=globalThis:typeof global<"u"?win=global:typeof self<"u"?win=self:win={},win})();var{FRAMEWORK_OPTIONS}=scope,ErrorBoundary=class extends import_react2.Component{constructor(){super(...arguments);this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}componentDidMount(){let{hasError}=this.state,{showMain}=this.props;hasError||showMain()}componentDidCatch(err){let{showException}=this.props;showException(err)}render(){let{hasError}=this.state,{children}=this.props;return hasError?null:children}},Wrapper=FRAMEWORK_OPTIONS?.strictMode?import_react2.StrictMode:import_react2.Fragment;async function renderToCanvas({storyContext,unboundStoryFn,showMain,showException,forceRemount},canvasElement){let{renderElement:renderElement2,unmountElement:unmountElement2}=await Promise.resolve().then(()=>(init_react_18(),react_18_exports)),content=import_react2.default.createElement(ErrorBoundary,{showMain,showException},import_react2.default.createElement(unboundStoryFn,{...storyContext})),element=Wrapper?import_react2.default.createElement(Wrapper,null,content):content;return forceRemount&&unmountElement2(canvasElement),await renderElement2(element,canvasElement,storyContext?.parameters?.react?.rootOptions),()=>unmountElement2(canvasElement)}var mount=context=>async ui=>(ui!=null&&(context.originalStoryFn=()=>ui),await context.renderToCanvas(),context.canvas);var parameters2={renderer:"react"};var INTERNAL_DEFAULT_PROJECT_ANNOTATIONS={...entry_preview_exports,renderToCanvas:(renderContext,canvasElement)=>{if(renderContext.storyContext.testingLibraryRender==null)throw new import_preview_errors.TestingLibraryMustBeConfiguredError;let{storyContext:{context,unboundStoryFn:Story,testingLibraryRender:render2}}=renderContext,{unmount}=render2(import_react3.default.createElement(Story,{...context}),{container:context.canvasElement});return unmount}};var preview_exports={};__export(preview_exports,{decorators:()=>decorators2,loaders:()=>loaders,parameters:()=>parameters3});var import_navigation2=require("@storybook/nextjs/navigation.mock"),import_router2=require("@storybook/nextjs/router.mock"),import_is_next_router_error=require("next/dist/client/components/is-next-router-error");var import_config=require("next/config");(0,import_config.setConfig)(process.env.__NEXT_RUNTIME_CONFIG);var React7=__toESM(require("react"));var import_react4=__toESM(require("react")),import_head_manager=__toESM(require("next/dist/client/head-manager")),import_head_manager_context=require("next/dist/shared/lib/head-manager-context.shared-runtime"),HeadManagerProvider=({children})=>{let headManager=(0,import_react4.useMemo)(import_head_manager.default,[]);return headManager.getIsSsr=()=>!1,import_react4.default.createElement(import_head_manager_context.HeadManagerContext.Provider,{value:headManager},children)},head_manager_provider_default=HeadManagerProvider;var HeadManagerDecorator=Story=>React7.createElement(head_manager_provider_default,null,React7.createElement(Story,null));var React8=__toESM(require("react")),import_image_context=require("@storybook/nextjs/dist/image-context"),ImageContext=import_image_context.ImageContext,ImageDecorator=(Story,{parameters:parameters4})=>parameters4.nextjs?.image?React8.createElement(ImageContext.Provider,{value:parameters4.nextjs.image},React8.createElement(Story,null)):React8.createElement(Story,null);var React11=__toESM(require("react")),import_redirect_boundary=require("next/dist/client/components/redirect-boundary");var import_react5=__toESM(require("react")),import_navigation=require("@storybook/nextjs/navigation.mock"),import_app_router_context=require("next/dist/shared/lib/app-router-context.shared-runtime"),import_hooks_client_context=require("next/dist/shared/lib/hooks-client-context.shared-runtime"),import_segment=require("next/dist/shared/lib/segment");function getSelectedParams(currentTree,params={}){let parallelRoutes=currentTree[1];for(let parallelRoute of Object.values(parallelRoutes)){let segment=parallelRoute[0],isDynamicParameter=Array.isArray(segment),segmentValue=isDynamicParameter?segment[1]:segment;if(!segmentValue||segmentValue.startsWith(import_segment.PAGE_SEGMENT_KEY))continue;isDynamicParameter&&(segment[2]==="c"||segment[2]==="oc")?params[segment[0]]=segment[1].split("/"):isDynamicParameter&&(params[segment[0]]=segment[1]),params=getSelectedParams(parallelRoute,params)}return params}var getParallelRoutes=segmentsList=>{let segment=segmentsList.shift();return segment?[segment,{children:getParallelRoutes(segmentsList)}]:[]},AppRouterProvider=({children,routeParams})=>{let{pathname,query,segments=[]}=routeParams,tree=[pathname,{children:getParallelRoutes([...segments])}],pathParams=(0,import_react5.useMemo)(()=>getSelectedParams(tree),[tree]);return import_react5.default.createElement(import_hooks_client_context.PathParamsContext.Provider,{value:pathParams},import_react5.default.createElement(import_hooks_client_context.PathnameContext.Provider,{value:pathname},import_react5.default.createElement(import_hooks_client_context.SearchParamsContext.Provider,{value:new URLSearchParams(query)},import_react5.default.createElement(import_app_router_context.GlobalLayoutRouterContext.Provider,{value:{changeByServerResponse(){},buildId:"storybook",tree,focusAndScrollRef:{apply:!1,hashFragment:null,segmentPaths:[tree],onlyHashChange:!1},nextUrl:pathname}},import_react5.default.createElement(import_app_router_context.AppRouterContext.Provider,{value:(0,import_navigation.getRouter)()},import_react5.default.createElement(import_app_router_context.LayoutRouterContext.Provider,{value:{childNodes:new Map,tree,url:pathname}},children))))))};var import_react6=__toESM(require("react")),import_router=require("@storybook/nextjs/router.mock"),import_router_context=require("next/dist/shared/lib/router-context.shared-runtime"),PageRouterProvider=({children})=>import_react6.default.createElement(import_router_context.RouterContext.Provider,{value:(0,import_router.getRouter)()},children);var defaultRouterParams={pathname:"/",query:{}},RouterDecorator=(Story,{parameters:parameters4})=>parameters4.nextjs?.appDirectory??!1?AppRouterProvider?React11.createElement(AppRouterProvider,{routeParams:{...defaultRouterParams,...parameters4.nextjs?.navigation}},React11.createElement(import_redirect_boundary.RedirectBoundary,null,React11.createElement(Story,null))):null:React11.createElement(PageRouterProvider,null,React11.createElement(Story,null));var React12=__toESM(require("react")),import_styled_jsx=require("styled-jsx"),StyledJsxDecorator=Story=>React12.createElement(import_styled_jsx.StyleRegistry,null,React12.createElement(Story,null));function addNextHeadCount(){let meta=document.createElement("meta");meta.name="next-head-count",meta.content="0",document.head.appendChild(meta)}function isAsyncClientComponentError(error){return typeof error=="string"&&(error.includes("A component was suspended by an uncached promise.")||error.includes("async/await is not yet supported in Client Components"))}addNextHeadCount();var origConsoleError=globalThis.console.error;globalThis.console.error=(...args)=>{let error=args[0];(0,import_is_next_router_error.isNextRouterError)(error)||isAsyncClientComponentError(error)||origConsoleError.apply(globalThis.console,args)};globalThis.addEventListener("error",ev=>{if((0,import_is_next_router_error.isNextRouterError)(ev.error)||isAsyncClientComponentError(ev.error)){ev.preventDefault();return}});var decorators2=[StyledJsxDecorator,ImageDecorator,RouterDecorator,HeadManagerDecorator],loaders=async({globals,parameters:parameters4})=>{let{router,appDirectory}=parameters4.nextjs??{};appDirectory?(0,import_navigation2.createNavigation)(router):(0,import_router2.createRouter)({locale:globals.locale,...router})},parameters3={docs:{source:{excludeDecorators:!0}},react:{rootOptions:{onCaughtError(error){(0,import_is_next_router_error.isNextRouterError)(error)||console.error(error)}}}};function setProjectAnnotations(projectAnnotations){return(0,import_preview_api2.setProjectAnnotations)(projectAnnotations)}var defaultProjectAnnotations=(0,import_preview_api2.composeConfigs)([INTERNAL_DEFAULT_PROJECT_ANNOTATIONS,entry_preview_rsc_exports,preview_exports]);function composeStory(story,componentAnnotations,projectAnnotations,exportsName){return(0,import_preview_api2.composeStory)(story,componentAnnotations,projectAnnotations,defaultProjectAnnotations,exportsName)}function composeStories(csfExports,projectAnnotations){return(0,import_preview_api2.composeStories)(csfExports,projectAnnotations,composeStory)}0&&(module.exports={composeStories,composeStory,setProjectAnnotations});
package/dist/index.mjs CHANGED
@@ -1,10 +1,12 @@
1
- import { preview_exports } from './chunk-BLSRQDRO.mjs';
1
+ import { preview_exports } from './chunk-VO5G2M3L.mjs';
2
2
  import './chunk-NQ32RFK2.mjs';
3
3
  import { __export } from './chunk-42AJV46F.mjs';
4
4
  import { composeConfigs, setProjectAnnotations as setProjectAnnotations$1, composeStory as composeStory$1, composeStories as composeStories$1 } from 'storybook/internal/preview-api';
5
- import React2, { StrictMode, Fragment, Component } from 'react';
5
+ import * as React from 'react';
6
+ import React__default, { StrictMode, Fragment, Component } from 'react';
7
+ import semver from 'semver';
6
8
  import { TestingLibraryMustBeConfiguredError } from 'storybook/internal/preview-errors';
7
9
 
8
- var entry_preview_exports={};__export(entry_preview_exports,{mount:()=>mount,parameters:()=>parameters,render:()=>render,renderToCanvas:()=>renderToCanvas});var render=(args,context)=>{let{id,component:Component}=context;if(!Component)throw new Error(`Unable to render story ${id} as the component annotation is missing from the default export`);return React2.createElement(Component,{...args})};var scope=(()=>{let win;return typeof window<"u"?win=window:typeof globalThis<"u"?win=globalThis:typeof global<"u"?win=global:typeof self<"u"?win=self:win={},win})();var{FRAMEWORK_OPTIONS}=scope,ErrorBoundary=class extends Component{constructor(){super(...arguments);this.state={hasError:!1};}static getDerivedStateFromError(){return {hasError:!0}}componentDidMount(){let{hasError}=this.state,{showMain}=this.props;hasError||showMain();}componentDidCatch(err){let{showException}=this.props;showException(err);}render(){let{hasError}=this.state,{children}=this.props;return hasError?null:children}},Wrapper=FRAMEWORK_OPTIONS?.strictMode?StrictMode:Fragment;async function renderToCanvas({storyContext,unboundStoryFn,showMain,showException,forceRemount},canvasElement){let{renderElement,unmountElement}=await import('./react-18-4VSW3XPO.mjs'),content=React2.createElement(ErrorBoundary,{showMain,showException},React2.createElement(unboundStoryFn,{...storyContext})),element=Wrapper?React2.createElement(Wrapper,null,content):content;return forceRemount&&unmountElement(canvasElement),await renderElement(element,canvasElement,storyContext?.parameters?.react?.rootOptions),()=>unmountElement(canvasElement)}var mount=context=>async ui=>(ui!=null&&(context.originalStoryFn=()=>ui),await context.renderToCanvas(),context.canvas);var parameters={renderer:"react"};var INTERNAL_DEFAULT_PROJECT_ANNOTATIONS={...entry_preview_exports,renderToCanvas:({storyContext:{context,unboundStoryFn:Story,testingLibraryRender:render2,canvasElement}})=>{if(render2==null)throw new TestingLibraryMustBeConfiguredError;let{unmount}=render2(React2.createElement(Story,{...context}),{baseElement:context.canvasElement});return unmount}};function setProjectAnnotations(projectAnnotations){return setProjectAnnotations$1(projectAnnotations)}var defaultProjectAnnotations=composeConfigs([INTERNAL_DEFAULT_PROJECT_ANNOTATIONS,preview_exports]);function composeStory(story,componentAnnotations,projectAnnotations,exportsName){return composeStory$1(story,componentAnnotations,projectAnnotations,defaultProjectAnnotations,exportsName)}function composeStories(csfExports,projectAnnotations){return composeStories$1(csfExports,projectAnnotations,composeStory)}
10
+ var entry_preview_rsc_exports={};__export(entry_preview_rsc_exports,{ServerComponentDecorator:()=>ServerComponentDecorator,decorators:()=>decorators,parameters:()=>parameters});var ServerComponentDecorator=(Story,{parameters:parameters3})=>{if(!parameters3?.react?.rsc)return React.createElement(Story,null);let major=semver.major(React.version),minor=semver.minor(React.version);if(major<18||major===18&&minor<3)throw new Error("React Server Components require React >= 18.3");return React.createElement(React.Suspense,null,React.createElement(Story,null))},decorators=[ServerComponentDecorator],parameters={react:{rsc:!0}};var entry_preview_exports={};__export(entry_preview_exports,{mount:()=>mount,parameters:()=>parameters2,render:()=>render,renderToCanvas:()=>renderToCanvas});var render=(args,context)=>{let{id,component:Component}=context;if(!Component)throw new Error(`Unable to render story ${id} as the component annotation is missing from the default export`);return React__default.createElement(Component,{...args})};var scope=(()=>{let win;return typeof window<"u"?win=window:typeof globalThis<"u"?win=globalThis:typeof global<"u"?win=global:typeof self<"u"?win=self:win={},win})();var{FRAMEWORK_OPTIONS}=scope,ErrorBoundary=class extends Component{constructor(){super(...arguments);this.state={hasError:!1};}static getDerivedStateFromError(){return {hasError:!0}}componentDidMount(){let{hasError}=this.state,{showMain}=this.props;hasError||showMain();}componentDidCatch(err){let{showException}=this.props;showException(err);}render(){let{hasError}=this.state,{children}=this.props;return hasError?null:children}},Wrapper=FRAMEWORK_OPTIONS?.strictMode?StrictMode:Fragment;async function renderToCanvas({storyContext,unboundStoryFn,showMain,showException,forceRemount},canvasElement){let{renderElement,unmountElement}=await import('./react-18-6AMDNICQ.mjs'),content=React__default.createElement(ErrorBoundary,{showMain,showException},React__default.createElement(unboundStoryFn,{...storyContext})),element=Wrapper?React__default.createElement(Wrapper,null,content):content;return forceRemount&&unmountElement(canvasElement),await renderElement(element,canvasElement,storyContext?.parameters?.react?.rootOptions),()=>unmountElement(canvasElement)}var mount=context=>async ui=>(ui!=null&&(context.originalStoryFn=()=>ui),await context.renderToCanvas(),context.canvas);var parameters2={renderer:"react"};var INTERNAL_DEFAULT_PROJECT_ANNOTATIONS={...entry_preview_exports,renderToCanvas:(renderContext,canvasElement)=>{if(renderContext.storyContext.testingLibraryRender==null)throw new TestingLibraryMustBeConfiguredError;let{storyContext:{context,unboundStoryFn:Story,testingLibraryRender:render2}}=renderContext,{unmount}=render2(React__default.createElement(Story,{...context}),{container:context.canvasElement});return unmount}};function setProjectAnnotations(projectAnnotations){return setProjectAnnotations$1(projectAnnotations)}var defaultProjectAnnotations=composeConfigs([INTERNAL_DEFAULT_PROJECT_ANNOTATIONS,entry_preview_rsc_exports,preview_exports]);function composeStory(story,componentAnnotations,projectAnnotations,exportsName){return composeStory$1(story,componentAnnotations,projectAnnotations,defaultProjectAnnotations,exportsName)}function composeStories(csfExports,projectAnnotations){return composeStories$1(csfExports,projectAnnotations,composeStory)}
9
11
 
10
12
  export { composeStories, composeStory, setProjectAnnotations };
@@ -1,5 +1,5 @@
1
- import { RawLoaderDefinition } from 'webpack';
2
1
  import { NextConfig } from 'next';
2
+ import { RawLoaderDefinition } from 'webpack';
3
3
 
4
4
  interface LoaderOptions {
5
5
  filename: string;