@storybook/nextjs 8.6.0-alpha.4 → 8.6.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,9 +1,10 @@
1
- export { F as FrameworkOptions, S as StorybookConfig } from './types-a7a34fc4.js';
1
+ import { ReactRenderer, Meta, ReactPreview } from '@storybook/react';
2
+ export { F as FrameworkOptions, N as NextJsParameters, S as StorybookConfig } from './types-aef892a1.js';
2
3
  import { NamedOrDefaultProjectAnnotations, NormalizedProjectAnnotations, Args, StoryAnnotationsOrFn, ProjectAnnotations, ComposedStoryFn, Store_CSFExports, StoriesWithPartialProps } from 'storybook/internal/types';
3
- import { ReactRenderer, Meta } from '@storybook/react';
4
4
  import '@storybook/builder-webpack5';
5
5
  import '@storybook/preset-react-webpack';
6
6
  import 'next/image';
7
+ import 'next/router';
7
8
 
8
9
  /**
9
10
  * Function that sets the globalConfig of your storybook. The global config is the preview module of
@@ -83,4 +84,8 @@ declare function composeStory<TArgs extends Args = Args>(story: StoryAnnotations
83
84
  */
84
85
  declare function composeStories<TModule extends Store_CSFExports<ReactRenderer, any>>(csfExports: TModule, projectAnnotations?: ProjectAnnotations<ReactRenderer>): Omit<StoriesWithPartialProps<ReactRenderer, TModule>, keyof Store_CSFExports>;
85
86
 
86
- export { composeStories, composeStory, setProjectAnnotations };
87
+ declare function definePreview(preview: NextPreview['input']): NextPreview;
88
+ interface NextPreview extends ReactPreview {
89
+ }
90
+
91
+ export { composeStories, composeStory, definePreview, setProjectAnnotations };
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 __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});function getIsReactActEnvironment(){return globalThis.IS_REACT_ACT_ENVIRONMENT}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};typeof Promise.withResolvers>"u"&&(Promise.withResolvers=()=>{let resolve=null,reject=null;return{promise:new Promise((res,rej)=>{resolve=res,reject=rej}),resolve,reject}});renderElement=async(node,el,rootOptions)=>{let root=await getReactRoot(el,rootOptions);if(getIsReactActEnvironment()){root.render(node);return}let{promise,resolve}=Promise.withResolvers();return root.render(React3.createElement(WithCallback,{callback:resolve},node)),promise},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 React6=__toESM(require("react")),import_preview_api=require("storybook/internal/preview-api");var entry_preview_exports={};__export(entry_preview_exports,{beforeAll:()=>beforeAll,decorators:()=>decorators,mount:()=>mount,parameters:()=>parameters,render:()=>render,renderToCanvas:()=>renderToCanvas});var React5=__toESM(require("react")),import_semver=__toESM(require("semver"));var React=__toESM(require("react")),DeprecatedReactTestUtils=__toESM(require("react-dom/test-utils")),clonedReact={...React},reactAct=typeof clonedReact.act=="function"?clonedReact.act:DeprecatedReactTestUtils.act;function setReactActEnvironment(isReactActEnvironment){globalThis.IS_REACT_ACT_ENVIRONMENT=isReactActEnvironment}function getReactActEnvironment(){return globalThis.IS_REACT_ACT_ENVIRONMENT}function withGlobalActEnvironment(actImplementation){return callback=>{let previousActEnvironment=getReactActEnvironment();setReactActEnvironment(!0);try{let callbackNeedsToBeAwaited=!1,actResult=actImplementation(()=>{let result=callback();return result!==null&&typeof result=="object"&&typeof result.then=="function"&&(callbackNeedsToBeAwaited=!0),result});if(callbackNeedsToBeAwaited){let thenable=actResult;return{then:(resolve,reject)=>{thenable.then(returnValue=>{setReactActEnvironment(previousActEnvironment),resolve(returnValue)},error=>{setReactActEnvironment(previousActEnvironment),reject(error)})}}}else return setReactActEnvironment(previousActEnvironment),actResult}catch(error){throw setReactActEnvironment(previousActEnvironment),error}}}var act2=process.env.NODE_ENV==="production"?cb=>cb():withGlobalActEnvironment(reactAct);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,actQueue=[],isActing=!1,processActQueue=async()=>{if(isActing||actQueue.length===0)return;isActing=!0;let actTask=actQueue.shift();actTask&&await actTask(),isActing=!1,processActQueue()};async function renderToCanvas({storyContext,unboundStoryFn,showMain,showException,forceRemount},canvasElement){let{renderElement:renderElement2,unmountElement:unmountElement2}=await Promise.resolve().then(()=>(init_react_18(),react_18_exports)),Story=unboundStoryFn,content=storyContext.parameters.__isPortableStory?import_react2.default.createElement(Story,{...storyContext}):import_react2.default.createElement(ErrorBoundary,{showMain,showException},import_react2.default.createElement(Story,{...storyContext})),element=Wrapper?import_react2.default.createElement(Wrapper,null,content):content;return forceRemount&&unmountElement2(canvasElement),await new Promise(async(resolve,reject)=>{actQueue.push(async()=>{try{await act2(async()=>{await renderElement2(element,canvasElement,storyContext?.parameters?.react?.rootOptions)}),resolve()}catch(e){reject(e)}}),processActQueue()}),async()=>{await act2(()=>{unmountElement2(canvasElement)})}}var mount=context=>async ui=>(ui!=null&&(context.originalStoryFn=()=>ui),await context.renderToCanvas(),context.canvas);var parameters={renderer:"react"},decorators=[(story,context)=>{if(!context.parameters?.react?.rsc)return story();let major=import_semver.default.major(React5.version),minor=import_semver.default.minor(React5.version);if(major<18||major===18&&minor<3)throw new Error("React Server Components require React >= 18.3");return React5.createElement(React5.Suspense,null,story())}],beforeAll=async()=>{try{let{configure}=await import("@storybook/test");configure({unstable_advanceTimersWrapper:cb=>act2(cb),asyncWrapper:async cb=>{let previousActEnvironment=getReactActEnvironment();setReactActEnvironment(!1);try{let result=await cb();return await new Promise(resolve=>{setTimeout(()=>{resolve()},0),jestFakeTimersAreEnabled()&&jest.advanceTimersByTime(0)}),result}finally{setReactActEnvironment(previousActEnvironment)}},eventWrapper:cb=>{let result;return act2(()=>(result=cb(),result)),result}})}catch{}};function jestFakeTimersAreEnabled(){return typeof jest<"u"&&jest!==null?setTimeout._isMockFunction===!0||Object.prototype.hasOwnProperty.call(setTimeout,"clock"):!1}var INTERNAL_DEFAULT_PROJECT_ANNOTATIONS={...entry_preview_exports,renderToCanvas:async(renderContext,canvasElement)=>{if(renderContext.storyContext.testingLibraryRender==null){renderContext.storyContext.parameters.__isPortableStory=!0;let unmount2=await renderToCanvas(renderContext,canvasElement);return async()=>{await unmount2()}}let{storyContext:{context,unboundStoryFn:Story,testingLibraryRender:render2}}=renderContext,{unmount}=render2(React6.createElement(Story,{...context}),{container:context.canvasElement});return unmount}};var preview_exports={};__export(preview_exports,{decorators:()=>decorators2,loaders:()=>loaders,parameters:()=>parameters2});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 React8=__toESM(require("react"));var import_react3=__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_react3.useMemo)(import_head_manager.default,[]);return headManager.getIsSsr=()=>!1,import_react3.default.createElement(import_head_manager_context.HeadManagerContext.Provider,{value:headManager},children)},head_manager_provider_default=HeadManagerProvider;var HeadManagerDecorator=Story=>React8.createElement(head_manager_provider_default,null,React8.createElement(Story,null));var React9=__toESM(require("react")),import_image_context=require("@storybook/nextjs/dist/image-context"),ImageContext=import_image_context.ImageContext,ImageDecorator=(Story,{parameters:parameters3})=>parameters3.nextjs?.image?React9.createElement(ImageContext.Provider,{value:parameters3.nextjs.image},React9.createElement(Story,null)):React9.createElement(Story,null);var React12=__toESM(require("react")),import_redirect_boundary=require("next/dist/client/components/redirect-boundary");var import_react4=__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_react4.useMemo)(()=>getSelectedParams(tree),[tree]),newLazyCacheNode={lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null};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,parentTree:tree,parentCacheNode:newLazyCacheNode,url:pathname,loading:null}},children))))))};var import_react5=__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_react5.default.createElement(import_router_context.RouterContext.Provider,{value:(0,import_router.getRouter)()},children);var defaultRouterParams={pathname:"/",query:{}},RouterDecorator=(Story,{parameters:parameters3})=>parameters3.nextjs?.appDirectory??!1?AppRouterProvider?React12.createElement(AppRouterProvider,{routeParams:{...defaultRouterParams,...parameters3.nextjs?.navigation}},React12.createElement(import_redirect_boundary.RedirectBoundary,null,React12.createElement(Story,null))):null:React12.createElement(PageRouterProvider,null,React12.createElement(Story,null));var React13=__toESM(require("react")),import_styled_jsx=require("styled-jsx"),StyledJsxDecorator=Story=>React13.createElement(import_styled_jsx.StyleRegistry,null,React13.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: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.setDefaultProjectAnnotations)(INTERNAL_DEFAULT_PROJECT_ANNOTATIONS2),(0,import_preview_api2.setProjectAnnotations)(projectAnnotations)}var INTERNAL_DEFAULT_PROJECT_ANNOTATIONS2=(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,INTERNAL_DEFAULT_PROJECT_ANNOTATIONS2,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});function getIsReactActEnvironment(){return globalThis.IS_REACT_ACT_ENVIRONMENT}var React10,ReactDOM,nodes,WithCallback,renderElement,unmountElement,getReactRoot,init_react_18=__esm({"../../lib/react-dom-shim/dist/react-18.mjs"(){"use strict";React10=__toESM(require("react"),1),ReactDOM=__toESM(require("react-dom/client"),1),nodes=new Map;WithCallback=({callback,children})=>{let once=React10.useRef();return React10.useLayoutEffect(()=>{once.current!==callback&&(once.current=callback,callback())},[callback]),children};typeof Promise.withResolvers>"u"&&(Promise.withResolvers=()=>{let resolve=null,reject=null;return{promise:new Promise((res,rej)=>{resolve=res,reject=rej}),resolve,reject}});renderElement=async(node,el,rootOptions)=>{let root=await getReactRoot(el,rootOptions);if(getIsReactActEnvironment()){root.render(node);return}let{promise,resolve}=Promise.withResolvers();return root.render(React10.createElement(WithCallback,{callback:resolve},node)),promise},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,definePreview:()=>definePreview,setProjectAnnotations:()=>setProjectAnnotations});module.exports=__toCommonJS(src_exports);var import_react6=require("@storybook/react");var preview_exports={};__export(preview_exports,{decorators:()=>decorators,loaders:()=>loaders,parameters:()=>parameters});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 React2=__toESM(require("react"));var import_react=__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_react.useMemo)(import_head_manager.default,[]);return headManager.getIsSsr=()=>!1,import_react.default.createElement(import_head_manager_context.HeadManagerContext.Provider,{value:headManager},children)},head_manager_provider_default=HeadManagerProvider;var HeadManagerDecorator=Story=>React2.createElement(head_manager_provider_default,null,React2.createElement(Story,null));var React3=__toESM(require("react")),import_image_context=require("@storybook/nextjs/dist/image-context"),ImageContext=import_image_context.ImageContext,ImageDecorator=(Story,{parameters:parameters3})=>parameters3.nextjs?.image?React3.createElement(ImageContext.Provider,{value:parameters3.nextjs.image},React3.createElement(Story,null)):React3.createElement(Story,null);var React6=__toESM(require("react")),import_redirect_boundary=require("next/dist/client/components/redirect-boundary");var import_react2=__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_react2.useMemo)(()=>getSelectedParams(tree),[tree]),newLazyCacheNode={lazyData:null,rsc:null,prefetchRsc:null,head:null,prefetchHead:null,parallelRoutes:new Map,loading:null};return import_react2.default.createElement(import_hooks_client_context.PathParamsContext.Provider,{value:pathParams},import_react2.default.createElement(import_hooks_client_context.PathnameContext.Provider,{value:pathname},import_react2.default.createElement(import_hooks_client_context.SearchParamsContext.Provider,{value:new URLSearchParams(query)},import_react2.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_react2.default.createElement(import_app_router_context.AppRouterContext.Provider,{value:(0,import_navigation.getRouter)()},import_react2.default.createElement(import_app_router_context.LayoutRouterContext.Provider,{value:{childNodes:new Map,tree,parentTree:tree,parentCacheNode:newLazyCacheNode,url:pathname,loading:null}},children))))))};var import_react3=__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_react3.default.createElement(import_router_context.RouterContext.Provider,{value:(0,import_router.getRouter)()},children);var defaultRouterParams={pathname:"/",query:{}},RouterDecorator=(Story,{parameters:parameters3})=>parameters3.nextjs?.appDirectory??!1?AppRouterProvider?React6.createElement(AppRouterProvider,{routeParams:{...defaultRouterParams,...parameters3.nextjs?.navigation}},React6.createElement(import_redirect_boundary.RedirectBoundary,null,React6.createElement(Story,null))):null:React6.createElement(PageRouterProvider,null,React6.createElement(Story,null));var React7=__toESM(require("react")),import_styled_jsx=require("styled-jsx"),StyledJsxDecorator=Story=>React7.createElement(import_styled_jsx.StyleRegistry,null,React7.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 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})},parameters={docs:{source:{excludeDecorators:!0}},react:{rootOptions:{onCaughtError(error){(0,import_is_next_router_error.isNextRouterError)(error)||console.error(error)}}}};var import_preview_api2=require("storybook/internal/preview-api");var React13=__toESM(require("react")),import_preview_api=require("storybook/internal/preview-api");var entry_preview_exports={};__export(entry_preview_exports,{beforeAll:()=>beforeAll,decorators:()=>decorators2,mount:()=>mount,parameters:()=>parameters2,render:()=>render,renderToCanvas:()=>renderToCanvas});var React12=__toESM(require("react")),import_semver=__toESM(require("semver"));var React8=__toESM(require("react")),DeprecatedReactTestUtils=__toESM(require("react-dom/test-utils")),clonedReact={...React8},reactAct=typeof clonedReact.act=="function"?clonedReact.act:DeprecatedReactTestUtils.act;function setReactActEnvironment(isReactActEnvironment){globalThis.IS_REACT_ACT_ENVIRONMENT=isReactActEnvironment}function getReactActEnvironment(){return globalThis.IS_REACT_ACT_ENVIRONMENT}function withGlobalActEnvironment(actImplementation){return callback=>{let previousActEnvironment=getReactActEnvironment();setReactActEnvironment(!0);try{let callbackNeedsToBeAwaited=!1,actResult=actImplementation(()=>{let result=callback();return result!==null&&typeof result=="object"&&typeof result.then=="function"&&(callbackNeedsToBeAwaited=!0),result});if(callbackNeedsToBeAwaited){let thenable=actResult;return{then:(resolve,reject)=>{thenable.then(returnValue=>{setReactActEnvironment(previousActEnvironment),resolve(returnValue)},error=>{setReactActEnvironment(previousActEnvironment),reject(error)})}}}else return setReactActEnvironment(previousActEnvironment),actResult}catch(error){throw setReactActEnvironment(previousActEnvironment),error}}}var act2=process.env.NODE_ENV==="production"?cb=>cb():withGlobalActEnvironment(reactAct);var import_react4=__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_react4.default.createElement(Component,{...args})};var import_react5=__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_react5.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_react5.StrictMode:import_react5.Fragment,actQueue=[],isActing=!1,processActQueue=async()=>{if(isActing||actQueue.length===0)return;isActing=!0;let actTask=actQueue.shift();actTask&&await actTask(),isActing=!1,processActQueue()};async function renderToCanvas({storyContext,unboundStoryFn,showMain,showException,forceRemount},canvasElement){let{renderElement:renderElement2,unmountElement:unmountElement2}=await Promise.resolve().then(()=>(init_react_18(),react_18_exports)),Story=unboundStoryFn,content=storyContext.parameters.__isPortableStory?import_react5.default.createElement(Story,{...storyContext}):import_react5.default.createElement(ErrorBoundary,{showMain,showException},import_react5.default.createElement(Story,{...storyContext})),element=Wrapper?import_react5.default.createElement(Wrapper,null,content):content;return forceRemount&&unmountElement2(canvasElement),await new Promise(async(resolve,reject)=>{actQueue.push(async()=>{try{await act2(async()=>{await renderElement2(element,canvasElement,storyContext?.parameters?.react?.rootOptions)}),resolve()}catch(e){reject(e)}}),processActQueue()}),async()=>{await act2(()=>{unmountElement2(canvasElement)})}}var mount=context=>async ui=>(ui!=null&&(context.originalStoryFn=()=>ui),await context.renderToCanvas(),context.canvas);var parameters2={renderer:"react"},decorators2=[(story,context)=>{if(!context.parameters?.react?.rsc)return story();let major=import_semver.default.major(React12.version),minor=import_semver.default.minor(React12.version);if(major<18||major===18&&minor<3)throw new Error("React Server Components require React >= 18.3");return React12.createElement(React12.Suspense,null,story())}],beforeAll=async()=>{try{let{configure}=await import("@storybook/test");configure({unstable_advanceTimersWrapper:cb=>act2(cb),asyncWrapper:async cb=>{let previousActEnvironment=getReactActEnvironment();setReactActEnvironment(!1);try{let result=await cb();return await new Promise(resolve=>{setTimeout(()=>{resolve()},0),jestFakeTimersAreEnabled()&&jest.advanceTimersByTime(0)}),result}finally{setReactActEnvironment(previousActEnvironment)}},eventWrapper:cb=>{let result;return act2(()=>(result=cb(),result)),result}})}catch{}};function jestFakeTimersAreEnabled(){return typeof jest<"u"&&jest!==null?setTimeout._isMockFunction===!0||Object.prototype.hasOwnProperty.call(setTimeout,"clock"):!1}var INTERNAL_DEFAULT_PROJECT_ANNOTATIONS={...entry_preview_exports,renderToCanvas:async(renderContext,canvasElement)=>{if(renderContext.storyContext.testingLibraryRender==null){renderContext.storyContext.parameters.__isPortableStory=!0;let unmount2=await renderToCanvas(renderContext,canvasElement);return async()=>{await unmount2()}}let{storyContext:{context,unboundStoryFn:Story,testingLibraryRender:render2}}=renderContext,{unmount}=render2(React13.createElement(Story,{...context}),{container:context.canvasElement});return unmount}};function setProjectAnnotations(projectAnnotations){return(0,import_preview_api2.setDefaultProjectAnnotations)(INTERNAL_DEFAULT_PROJECT_ANNOTATIONS2),(0,import_preview_api2.setProjectAnnotations)(projectAnnotations)}var INTERNAL_DEFAULT_PROJECT_ANNOTATIONS2=(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,INTERNAL_DEFAULT_PROJECT_ANNOTATIONS2,exportsName)}function composeStories(csfExports,projectAnnotations){return(0,import_preview_api2.composeStories)(csfExports,projectAnnotations,composeStory)}function definePreview(preview){return(0,import_react6.definePreview)({...preview,addons:[preview_exports,...preview.addons??[]]})}0&&(module.exports={composeStories,composeStory,definePreview,setProjectAnnotations});
package/dist/index.mjs CHANGED
@@ -1,12 +1,13 @@
1
1
  import { preview_exports } from './chunk-LS3CVOUD.mjs';
2
2
  import './chunk-NQ32RFK2.mjs';
3
3
  import { __export } from './chunk-42AJV46F.mjs';
4
+ import { definePreview as definePreview$1 } from '@storybook/react';
4
5
  import { composeConfigs, setDefaultProjectAnnotations, setProjectAnnotations as setProjectAnnotations$1, composeStory as composeStory$1, composeStories as composeStories$1 } from 'storybook/internal/preview-api';
5
6
  import * as React3 from 'react';
6
7
  import React3__default, { StrictMode, Fragment, Component } from 'react';
7
8
  import semver from 'semver';
8
9
  import * as DeprecatedReactTestUtils from 'react-dom/test-utils';
9
10
 
10
- var entry_preview_exports={};__export(entry_preview_exports,{beforeAll:()=>beforeAll,decorators:()=>decorators,mount:()=>mount,parameters:()=>parameters,render:()=>render,renderToCanvas:()=>renderToCanvas});var clonedReact={...React3},reactAct=typeof clonedReact.act=="function"?clonedReact.act:DeprecatedReactTestUtils.act;function setReactActEnvironment(isReactActEnvironment){globalThis.IS_REACT_ACT_ENVIRONMENT=isReactActEnvironment;}function getReactActEnvironment(){return globalThis.IS_REACT_ACT_ENVIRONMENT}function withGlobalActEnvironment(actImplementation){return callback=>{let previousActEnvironment=getReactActEnvironment();setReactActEnvironment(!0);try{let callbackNeedsToBeAwaited=!1,actResult=actImplementation(()=>{let result=callback();return result!==null&&typeof result=="object"&&typeof result.then=="function"&&(callbackNeedsToBeAwaited=!0),result});if(callbackNeedsToBeAwaited){let thenable=actResult;return {then:(resolve,reject)=>{thenable.then(returnValue=>{setReactActEnvironment(previousActEnvironment),resolve(returnValue);},error=>{setReactActEnvironment(previousActEnvironment),reject(error);});}}}else return setReactActEnvironment(previousActEnvironment),actResult}catch(error){throw setReactActEnvironment(previousActEnvironment),error}}}var act2=process.env.NODE_ENV==="production"?cb=>cb():withGlobalActEnvironment(reactAct);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 React3__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,actQueue=[],isActing=!1,processActQueue=async()=>{if(isActing||actQueue.length===0)return;isActing=!0;let actTask=actQueue.shift();actTask&&await actTask(),isActing=!1,processActQueue();};async function renderToCanvas({storyContext,unboundStoryFn,showMain,showException,forceRemount},canvasElement){let{renderElement,unmountElement}=await import('./react-18-T4ABSJCR.mjs'),Story=unboundStoryFn,content=storyContext.parameters.__isPortableStory?React3__default.createElement(Story,{...storyContext}):React3__default.createElement(ErrorBoundary,{showMain,showException},React3__default.createElement(Story,{...storyContext})),element=Wrapper?React3__default.createElement(Wrapper,null,content):content;return forceRemount&&unmountElement(canvasElement),await new Promise(async(resolve,reject)=>{actQueue.push(async()=>{try{await act2(async()=>{await renderElement(element,canvasElement,storyContext?.parameters?.react?.rootOptions);}),resolve();}catch(e){reject(e);}}),processActQueue();}),async()=>{await act2(()=>{unmountElement(canvasElement);});}}var mount=context=>async ui=>(ui!=null&&(context.originalStoryFn=()=>ui),await context.renderToCanvas(),context.canvas);var parameters={renderer:"react"},decorators=[(story,context)=>{if(!context.parameters?.react?.rsc)return story();let major=semver.major(React3.version),minor=semver.minor(React3.version);if(major<18||major===18&&minor<3)throw new Error("React Server Components require React >= 18.3");return React3.createElement(React3.Suspense,null,story())}],beforeAll=async()=>{try{let{configure}=await import('@storybook/test');configure({unstable_advanceTimersWrapper:cb=>act2(cb),asyncWrapper:async cb=>{let previousActEnvironment=getReactActEnvironment();setReactActEnvironment(!1);try{let result=await cb();return await new Promise(resolve=>{setTimeout(()=>{resolve();},0),jestFakeTimersAreEnabled()&&jest.advanceTimersByTime(0);}),result}finally{setReactActEnvironment(previousActEnvironment);}},eventWrapper:cb=>{let result;return act2(()=>(result=cb(),result)),result}});}catch{}};function jestFakeTimersAreEnabled(){return typeof jest<"u"&&jest!==null?setTimeout._isMockFunction===!0||Object.prototype.hasOwnProperty.call(setTimeout,"clock"):!1}var INTERNAL_DEFAULT_PROJECT_ANNOTATIONS={...entry_preview_exports,renderToCanvas:async(renderContext,canvasElement)=>{if(renderContext.storyContext.testingLibraryRender==null){renderContext.storyContext.parameters.__isPortableStory=!0;let unmount2=await renderToCanvas(renderContext,canvasElement);return async()=>{await unmount2();}}let{storyContext:{context,unboundStoryFn:Story,testingLibraryRender:render2}}=renderContext,{unmount}=render2(React3.createElement(Story,{...context}),{container:context.canvasElement});return unmount}};function setProjectAnnotations(projectAnnotations){return setDefaultProjectAnnotations(INTERNAL_DEFAULT_PROJECT_ANNOTATIONS2),setProjectAnnotations$1(projectAnnotations)}var INTERNAL_DEFAULT_PROJECT_ANNOTATIONS2=composeConfigs([INTERNAL_DEFAULT_PROJECT_ANNOTATIONS,preview_exports]);function composeStory(story,componentAnnotations,projectAnnotations,exportsName){return composeStory$1(story,componentAnnotations,projectAnnotations,INTERNAL_DEFAULT_PROJECT_ANNOTATIONS2,exportsName)}function composeStories(csfExports,projectAnnotations){return composeStories$1(csfExports,projectAnnotations,composeStory)}
11
+ var entry_preview_exports={};__export(entry_preview_exports,{beforeAll:()=>beforeAll,decorators:()=>decorators,mount:()=>mount,parameters:()=>parameters,render:()=>render,renderToCanvas:()=>renderToCanvas});var clonedReact={...React3},reactAct=typeof clonedReact.act=="function"?clonedReact.act:DeprecatedReactTestUtils.act;function setReactActEnvironment(isReactActEnvironment){globalThis.IS_REACT_ACT_ENVIRONMENT=isReactActEnvironment;}function getReactActEnvironment(){return globalThis.IS_REACT_ACT_ENVIRONMENT}function withGlobalActEnvironment(actImplementation){return callback=>{let previousActEnvironment=getReactActEnvironment();setReactActEnvironment(!0);try{let callbackNeedsToBeAwaited=!1,actResult=actImplementation(()=>{let result=callback();return result!==null&&typeof result=="object"&&typeof result.then=="function"&&(callbackNeedsToBeAwaited=!0),result});if(callbackNeedsToBeAwaited){let thenable=actResult;return {then:(resolve,reject)=>{thenable.then(returnValue=>{setReactActEnvironment(previousActEnvironment),resolve(returnValue);},error=>{setReactActEnvironment(previousActEnvironment),reject(error);});}}}else return setReactActEnvironment(previousActEnvironment),actResult}catch(error){throw setReactActEnvironment(previousActEnvironment),error}}}var act2=process.env.NODE_ENV==="production"?cb=>cb():withGlobalActEnvironment(reactAct);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 React3__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,actQueue=[],isActing=!1,processActQueue=async()=>{if(isActing||actQueue.length===0)return;isActing=!0;let actTask=actQueue.shift();actTask&&await actTask(),isActing=!1,processActQueue();};async function renderToCanvas({storyContext,unboundStoryFn,showMain,showException,forceRemount},canvasElement){let{renderElement,unmountElement}=await import('./react-18-T4ABSJCR.mjs'),Story=unboundStoryFn,content=storyContext.parameters.__isPortableStory?React3__default.createElement(Story,{...storyContext}):React3__default.createElement(ErrorBoundary,{showMain,showException},React3__default.createElement(Story,{...storyContext})),element=Wrapper?React3__default.createElement(Wrapper,null,content):content;return forceRemount&&unmountElement(canvasElement),await new Promise(async(resolve,reject)=>{actQueue.push(async()=>{try{await act2(async()=>{await renderElement(element,canvasElement,storyContext?.parameters?.react?.rootOptions);}),resolve();}catch(e){reject(e);}}),processActQueue();}),async()=>{await act2(()=>{unmountElement(canvasElement);});}}var mount=context=>async ui=>(ui!=null&&(context.originalStoryFn=()=>ui),await context.renderToCanvas(),context.canvas);var parameters={renderer:"react"},decorators=[(story,context)=>{if(!context.parameters?.react?.rsc)return story();let major=semver.major(React3.version),minor=semver.minor(React3.version);if(major<18||major===18&&minor<3)throw new Error("React Server Components require React >= 18.3");return React3.createElement(React3.Suspense,null,story())}],beforeAll=async()=>{try{let{configure}=await import('@storybook/test');configure({unstable_advanceTimersWrapper:cb=>act2(cb),asyncWrapper:async cb=>{let previousActEnvironment=getReactActEnvironment();setReactActEnvironment(!1);try{let result=await cb();return await new Promise(resolve=>{setTimeout(()=>{resolve();},0),jestFakeTimersAreEnabled()&&jest.advanceTimersByTime(0);}),result}finally{setReactActEnvironment(previousActEnvironment);}},eventWrapper:cb=>{let result;return act2(()=>(result=cb(),result)),result}});}catch{}};function jestFakeTimersAreEnabled(){return typeof jest<"u"&&jest!==null?setTimeout._isMockFunction===!0||Object.prototype.hasOwnProperty.call(setTimeout,"clock"):!1}var INTERNAL_DEFAULT_PROJECT_ANNOTATIONS={...entry_preview_exports,renderToCanvas:async(renderContext,canvasElement)=>{if(renderContext.storyContext.testingLibraryRender==null){renderContext.storyContext.parameters.__isPortableStory=!0;let unmount2=await renderToCanvas(renderContext,canvasElement);return async()=>{await unmount2();}}let{storyContext:{context,unboundStoryFn:Story,testingLibraryRender:render2}}=renderContext,{unmount}=render2(React3.createElement(Story,{...context}),{container:context.canvasElement});return unmount}};function setProjectAnnotations(projectAnnotations){return setDefaultProjectAnnotations(INTERNAL_DEFAULT_PROJECT_ANNOTATIONS2),setProjectAnnotations$1(projectAnnotations)}var INTERNAL_DEFAULT_PROJECT_ANNOTATIONS2=composeConfigs([INTERNAL_DEFAULT_PROJECT_ANNOTATIONS,preview_exports]);function composeStory(story,componentAnnotations,projectAnnotations,exportsName){return composeStory$1(story,componentAnnotations,projectAnnotations,INTERNAL_DEFAULT_PROJECT_ANNOTATIONS2,exportsName)}function composeStories(csfExports,projectAnnotations){return composeStories$1(csfExports,projectAnnotations,composeStory)}function definePreview(preview){return definePreview$1({...preview,addons:[preview_exports,...preview.addons??[]]})}
11
12
 
12
- export { composeStories, composeStory, setProjectAnnotations };
13
+ export { composeStories, composeStory, definePreview, setProjectAnnotations };
@@ -0,0 +1,10 @@
1
+ import { S as StorybookConfig } from '../types-aef892a1.js';
2
+ import 'storybook/internal/types';
3
+ import '@storybook/builder-webpack5';
4
+ import '@storybook/preset-react-webpack';
5
+ import 'next/image';
6
+ import 'next/router';
7
+
8
+ declare function defineMain(config: StorybookConfig): StorybookConfig;
9
+
10
+ export { defineMain };
@@ -0,0 +1 @@
1
+ "use strict";var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __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 __toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var node_exports={};__export(node_exports,{defineMain:()=>defineMain});module.exports=__toCommonJS(node_exports);function defineMain(config){return config}0&&(module.exports={defineMain});
@@ -0,0 +1,5 @@
1
+ import '../chunk-42AJV46F.mjs';
2
+
3
+ function defineMain(config){return config}
4
+
5
+ export { defineMain };
package/dist/preset.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import { PresetProperty } from 'storybook/internal/types';
2
- import { S as StorybookConfig } from './types-a7a34fc4.js';
2
+ import { S as StorybookConfig } from './types-aef892a1.js';
3
3
  import '@storybook/builder-webpack5';
4
4
  import '@storybook/preset-react-webpack';
5
5
  import 'next/image';
6
+ import 'next/router';
6
7
 
7
8
  declare const addons: PresetProperty<'addons'>;
8
9
  declare const core: PresetProperty<'core'>;
@@ -2,6 +2,7 @@ import { CompatibleString } from 'storybook/internal/types';
2
2
  import { BuilderOptions, StorybookConfigWebpack, TypescriptOptions } from '@storybook/builder-webpack5';
3
3
  import { ReactOptions, StorybookConfig as StorybookConfig$1, TypescriptOptions as TypescriptOptions$1 } from '@storybook/preset-react-webpack';
4
4
  import * as _NextImage from 'next/image';
5
+ import { NextRouter } from 'next/router';
5
6
 
6
7
  type FrameworkName = CompatibleString<'@storybook/nextjs'>;
7
8
  type BuilderName = CompatibleString<'@storybook/builder-webpack5'>;
@@ -25,5 +26,26 @@ type StorybookConfigFramework = {
25
26
  };
26
27
  /** The interface for Storybook configuration in `main.ts` files. */
27
28
  type StorybookConfig = Omit<StorybookConfig$1, keyof StorybookConfigWebpack | keyof StorybookConfigFramework> & StorybookConfigWebpack & StorybookConfigFramework;
29
+ interface NextJsParameters {
30
+ /**
31
+ * Next.js framework configuration
32
+ *
33
+ * @see https://storybook.js.org/docs/get-started/frameworks/nextjs
34
+ */
35
+ nextjs?: {
36
+ /**
37
+ * Enable App Directory features If your story imports components that use next/navigation, you
38
+ * need to set this parameter to true
39
+ */
40
+ appDirectory?: boolean;
41
+ /**
42
+ * Next.js navigation configuration when using `next/navigation`. Please note that it can only
43
+ * be used in components/pages in the app directory.
44
+ */
45
+ navigation?: NextRouter;
46
+ /** Next.js router configuration */
47
+ router?: NextRouter;
48
+ };
49
+ }
28
50
 
29
- export { FrameworkOptions as F, StorybookConfig as S };
51
+ export { FrameworkOptions as F, NextJsParameters as N, StorybookConfig as S };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/nextjs",
3
- "version": "8.6.0-alpha.4",
3
+ "version": "8.6.0-beta.0",
4
4
  "description": "Storybook for Next.js",
5
5
  "keywords": [
6
6
  "storybook",
@@ -87,6 +87,12 @@
87
87
  "import": "./dist/export-mocks/router/index.mjs",
88
88
  "require": "./dist/export-mocks/router/index.js"
89
89
  },
90
+ "./node": {
91
+ "types": "./dist/node/index.d.ts",
92
+ "node": "./dist/node/index.js",
93
+ "import": "./dist/node/index.mjs",
94
+ "require": "./dist/node/index.js"
95
+ },
90
96
  "./package.json": "./package.json"
91
97
  },
92
98
  "main": "dist/index.js",
@@ -114,6 +120,9 @@
114
120
  ],
115
121
  "navigation.mock": [
116
122
  "dist/export-mocks/navigation/index.d.ts"
123
+ ],
124
+ "node": [
125
+ "dist/node/index.d.ts"
117
126
  ]
118
127
  }
119
128
  },
@@ -144,10 +153,10 @@
144
153
  "@babel/preset-typescript": "^7.24.1",
145
154
  "@babel/runtime": "^7.24.4",
146
155
  "@pmmmwh/react-refresh-webpack-plugin": "^0.5.11",
147
- "@storybook/builder-webpack5": "8.6.0-alpha.4",
148
- "@storybook/preset-react-webpack": "8.6.0-alpha.4",
149
- "@storybook/react": "8.6.0-alpha.4",
150
- "@storybook/test": "8.6.0-alpha.4",
156
+ "@storybook/builder-webpack5": "8.6.0-beta.0",
157
+ "@storybook/preset-react-webpack": "8.6.0-beta.0",
158
+ "@storybook/react": "8.6.0-beta.0",
159
+ "@storybook/test": "8.6.0-beta.0",
151
160
  "@types/semver": "^7.3.4",
152
161
  "babel-loader": "^9.1.3",
153
162
  "css-loader": "^6.7.3",
@@ -184,7 +193,7 @@
184
193
  "next": "^13.5.0 || ^14.0.0 || ^15.0.0",
185
194
  "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta",
186
195
  "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta",
187
- "storybook": "^8.6.0-alpha.4",
196
+ "storybook": "^8.6.0-beta.0",
188
197
  "webpack": "^5.0.0"
189
198
  },
190
199
  "peerDependenciesMeta": {
@@ -209,6 +218,7 @@
209
218
  "./src/image-context.ts",
210
219
  "./src/index.ts",
211
220
  "./src/preset.ts",
221
+ "./src/node/index.ts",
212
222
  "./src/preview.tsx",
213
223
  "./src/export-mocks/index.ts",
214
224
  "./src/export-mocks/cache/index.ts",