preset.js 31 KB

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 jsx_pragma_exports={};__export(jsx_pragma_exports,{default:()=>jsxPragma});function jsxPragma({types:t}){return{inherits:import_plugin_syntax_jsx.default,visitor:{JSXElement(_path,state){state.set("jsx",!0)},JSXFragment(_path,state){state.set("jsx",!0)},Program:{exit(path4,state){if(state.get("jsx")){let pragma=t.identifier(state.opts.pragma),importAs=pragma,existingBinding=state.opts.reuseImport!==!1&&state.opts.importAs&&path4.scope.getBinding(state.opts.importAs);if(state.opts.property){state.opts.importAs?importAs=t.identifier(state.opts.importAs):importAs=path4.scope.generateUidIdentifier("pragma");let mapping2=t.variableDeclaration("var",[t.variableDeclarator(pragma,t.memberExpression(importAs,t.identifier(state.opts.property)))]),newPath;existingBinding&&t.isVariableDeclarator(existingBinding.path.node)&&t.isCallExpression(existingBinding.path.node.init)&&t.isIdentifier(existingBinding.path.node.init.callee)&&existingBinding.path.node.init.callee.name==="require"?[newPath]=existingBinding.path.parentPath.insertAfter(mapping2):[newPath]=path4.unshiftContainer("body",mapping2);for(let declar of newPath.get("declarations")){let kind=["var","let","const"].find(k=>newPath.node.kind===k)||"const";path4.scope.registerBinding(kind,declar)}}if(!existingBinding){let importSpecifier=t.importDeclaration([state.opts.import?t.importSpecifier(importAs,t.identifier(state.opts.import)):state.opts.importNamespace?t.importNamespaceSpecifier(importAs):t.importDefaultSpecifier(importAs)],t.stringLiteral(state.opts.module||"react")),[newPath]=path4.unshiftContainer("body",importSpecifier);for(let specifier of newPath.get("specifiers"))path4.scope.registerBinding("module",specifier)}}}}}}}var import_plugin_syntax_jsx,init_jsx_pragma=__esm({"src/babel/plugins/jsx-pragma.ts"(){"use strict";import_plugin_syntax_jsx=__toESM(require("next/dist/compiled/babel/plugin-syntax-jsx"))}});var optimize_hook_destructuring_exports={};__export(optimize_hook_destructuring_exports,{default:()=>optimizeHookDestructuring});function optimizeHookDestructuring({types:t}){let visitor={CallExpression(path4,state){let{onlyBuiltIns}=state.opts,libs=state.opts.lib&&(state.opts.lib===!0?["react","preact/hooks"]:[].concat(state.opts.lib));if(!t.isVariableDeclarator(path4.parent)||!t.isArrayPattern(path4.parent.id))return;let hookName=path4.node.callee.name;if(libs){let binding=path4.scope.getBinding(hookName);if(!binding||binding.kind!=="module")return;let specifier=binding.path.parent.source.value;if(!libs.some(lib=>lib===specifier))return}(onlyBuiltIns?isBuiltInHook:isHook).test(hookName)&&(path4.parent.id=t.objectPattern(path4.parent.id.elements.reduce((patterns,element,i)=>element===null?patterns:patterns.concat(t.objectProperty(t.numericLiteral(i),element)),[])))}};return{name:"optimize-hook-destructuring",visitor:{Program(path4,state){path4.traverse(visitor,state)}}}}var isHook,isBuiltInHook,init_optimize_hook_destructuring=__esm({"src/babel/plugins/optimize-hook-destructuring.ts"(){"use strict";isHook=/^use[A-Z]/,isBuiltInHook=/^use(Callback|Context|DebugValue|Effect|ImperativeHandle|LayoutEffect|Memo|Reducer|Ref|State)$/}});var react_loadable_plugin_exports={};__export(react_loadable_plugin_exports,{default:()=>react_loadable_plugin_default});function react_loadable_plugin_default({types:t}){return{visitor:{ImportDeclaration(path4,state){if(path4.node.source.value!=="next/dynamic")return;let defaultSpecifier=path4.get("specifiers").find(specifier=>specifier.isImportDefaultSpecifier());if(!defaultSpecifier)return;let bindingName=defaultSpecifier.node.local.name,binding=path4.scope.getBinding(bindingName);binding&&binding.referencePaths.forEach(refPath=>{var _a,_b,_c;let callExpression=refPath.parentPath;if(callExpression.isMemberExpression()&&callExpression.node.computed===!1){let property=callExpression.get("property");!Array.isArray(property)&&property.isIdentifier({name:"Map"})&&(callExpression=callExpression.parentPath)}if(!callExpression.isCallExpression())return;let callExpression_=callExpression,args=callExpression_.get("arguments");if(args.length>2)throw callExpression_.buildCodeFrameError("next/dynamic only accepts 2 arguments");if(!args[0])return;let loader,options;if(args[0].isObjectExpression()?options=args[0]:(args[1]||callExpression_.node.arguments.push(t.objectExpression([])),args=callExpression_.get("arguments"),loader=args[0],options=args[1]),!options.isObjectExpression())return;let properties=options.get("properties"),propertiesMap={};if(properties.forEach(property=>{let key=property.get("key");propertiesMap[key.node.name]=property}),propertiesMap.loadableGenerated||(propertiesMap.loader&&(loader=propertiesMap.loader.get("value")),propertiesMap.modules&&(loader=propertiesMap.modules.get("value")),!loader||Array.isArray(loader)))return;let dynamicImports=[],dynamicKeys=[];if(propertiesMap.ssr){let ssr=propertiesMap.ssr.get("value"),nodePath=Array.isArray(ssr)?void 0:ssr;nodePath&&nodePath.node.type==="BooleanLiteral"&&nodePath.node.value===!1&&loader&&(_a=state.file.opts.caller)!=null&&_a.isServer&&loader.replaceWith(t.arrowFunctionExpression([],t.nullLiteral(),!0))}if(loader.traverse({Import(importPath){var _a2;let importArguments=importPath.parentPath.get("arguments");if(!Array.isArray(importArguments))return;let{node}=importArguments[0];dynamicImports.push(node),dynamicKeys.push(t.binaryExpression("+",t.stringLiteral(`${(_a2=state.file.opts.caller)!=null&&_a2.pagesDir?(0,import_path3.relative)(state.file.opts.caller.pagesDir,state.file.opts.filename):state.file.opts.filename} -> `),node))}}),!!dynamicImports.length&&(options.node.properties.push(t.objectProperty(t.identifier("loadableGenerated"),t.objectExpression((_b=state.file.opts.caller)!=null&&_b.isDev||(_c=state.file.opts.caller)!=null&&_c.isServer?[t.objectProperty(t.identifier("modules"),t.arrayExpression(dynamicKeys))]:[t.objectProperty(t.identifier("webpack"),t.arrowFunctionExpression([],t.arrayExpression(dynamicImports.map(dynamicImport=>t.callExpression(t.memberExpression(t.identifier("require"),t.identifier("resolveWeak")),[dynamicImport])))))]))),loader.isCallExpression())){let arrowFunction=t.arrowFunctionExpression([],loader.node);loader.replaceWith(arrowFunction)}})}}}}var import_path3,init_react_loadable_plugin=__esm({"src/babel/plugins/react-loadable-plugin.ts"(){"use strict";import_path3=require("path")}});var amp_attributes_exports={};__export(amp_attributes_exports,{default:()=>AmpAttributePatcher});function AmpAttributePatcher(){return{visitor:{JSXOpeningElement(path4){let openingElement=path4.node,{name,attributes}=openingElement;if(name&&name.type==="JSXIdentifier"&&name.name.startsWith("amp-"))for(let attribute of attributes)attribute.type==="JSXAttribute"&&attribute.name.name==="className"&&(attribute.name.name="class")}}}}var init_amp_attributes=__esm({"src/babel/plugins/amp-attributes.ts"(){"use strict"}});var preset_exports={};__export(preset_exports,{addons:()=>addons,babel:()=>babel,core:()=>core,previewAnnotations:()=>previewAnnotations,webpackFinal:()=>webpackFinal});module.exports=__toCommonJS(preset_exports);var import_path6=require("path"),import_core=require("@babel/core"),import_core_common2=require("@storybook/core-common");var import_semver=__toESM(require("semver")),import_webpack2=require("webpack");var import_path=__toESM(require("path")),import_webpack=require("webpack"),import_constants=require("next/constants"),import_find_up=__toESM(require("find-up")),import_fs_extra=require("fs-extra"),import_node_url=require("url"),configureRuntimeNextjsVersionResolution=baseConfig=>{var _a;(_a=baseConfig.plugins)==null||_a.push(new import_webpack.DefinePlugin({"process.env.__NEXT_VERSION":JSON.stringify(getNextjsVersion())}))},getNextjsVersion=()=>require(scopedResolve("next/package.json")).version,findNextConfigFile=async configDir=>["mjs","js"].reduce(async(acc,ext)=>(await acc||(acc=(0,import_find_up.default)(`next.config.${ext}`,{cwd:configDir})),acc),Promise.resolve(void 0)),resolveNextConfig=async({baseConfig={},nextConfigPath,configDir})=>{let nextConfigFile=nextConfigPath||await findNextConfigFile(configDir);if(!nextConfigFile||await(0,import_fs_extra.pathExists)(nextConfigFile)===!1)return{};let nextConfigExport=await import((0,import_node_url.pathToFileURL)(nextConfigFile).href),nextConfig=typeof nextConfigExport=="function"?nextConfigExport(import_constants.PHASE_DEVELOPMENT_SERVER,{defaultConfig:baseConfig}):nextConfigExport;return nextConfig.default||nextConfig},addScopedAlias=(baseConfig,name,alias)=>{baseConfig.resolve??={},baseConfig.resolve.alias??={};let aliasConfig=baseConfig.resolve.alias,scopedAlias=scopedResolve(`${alias??name}`);Array.isArray(aliasConfig)?aliasConfig.push({name,alias:scopedAlias}):aliasConfig[name]=scopedAlias},scopedResolve=id=>{let scopedModulePath;try{scopedModulePath=require.resolve(id,{paths:[import_path.default.resolve()]})}catch{scopedModulePath=require.resolve(id)}let beginningOfMainScriptPath=scopedModulePath.lastIndexOf(id.replace(/\//g,import_path.default.sep))+id.length;return scopedModulePath.substring(0,beginningOfMainScriptPath)};var tryResolve=path4=>{try{return require.resolve(path4)}catch{return!1}},configureConfig=async({baseConfig,nextConfigPath,configDir})=>{let nextConfig=await resolveNextConfig({baseConfig,nextConfigPath,configDir});return addScopedAlias(baseConfig,"next/config"),tryResolve("next/dist/compiled/react")&&addScopedAlias(baseConfig,"react","next/dist/compiled/react"),tryResolve("next/dist/compiled/react-dom")&&addScopedAlias(baseConfig,"react-dom","next/dist/compiled/react-dom"),setupRuntimeConfig(baseConfig,nextConfig),nextConfig},version=getNextjsVersion(),setupRuntimeConfig=(baseConfig,nextConfig)=>{var _a,_b;let definePluginConfig={"process.env.__NEXT_RUNTIME_CONFIG":JSON.stringify({serverRuntimeConfig:{},publicRuntimeConfig:nextConfig.publicRuntimeConfig})},newNextLinkBehavior=(_a=nextConfig.experimental)==null?void 0:_a.newNextLinkBehavior;import_semver.default.gte(version,"13.0.0")&&import_semver.default.lt(version,"13.0.6")&&newNextLinkBehavior!==!1?definePluginConfig["process.env.__NEXT_NEW_LINK_BEHAVIOR"]=!0:definePluginConfig["process.env.__NEXT_NEW_LINK_BEHAVIOR"]=newNextLinkBehavior,(_b=baseConfig.plugins)==null||_b.push(new import_webpack2.DefinePlugin(definePluginConfig))};var import_getCssModuleLocalIdent=require("next/dist/build/webpack/config/blocks/css/loaders/getCssModuleLocalIdent"),import_file_resolve=require("next/dist/build/webpack/config/blocks/css/loaders/file-resolve"),import_semver2=__toESM(require("semver"));var configureCss=(baseConfig,nextConfig)=>{var _a,_b,_c;let rules=(_a=baseConfig.module)==null?void 0:_a.rules;rules==null||rules.forEach((rule,i)=>{rule&&typeof rule!="string"&&rule.test instanceof RegExp&&rule.test.test("test.css")&&(rules[i]={test:/\.css$/,use:[require.resolve("style-loader"),{loader:require.resolve("css-loader"),options:{importLoaders:1,...getImportAndUrlCssLoaderOptions(nextConfig),modules:{auto:!0,getLocalIdent:import_getCssModuleLocalIdent.getCssModuleLocalIdent}}},require.resolve("postcss-loader")],exclude:/next\/.*\/target.css$/})}),rules==null||rules.push({test:/\.(scss|sass)$/,use:[require.resolve("style-loader"),{loader:require.resolve("css-loader"),options:{importLoaders:3,...getImportAndUrlCssLoaderOptions(nextConfig),modules:{auto:!0,getLocalIdent:import_getCssModuleLocalIdent.getCssModuleLocalIdent}}},require.resolve("postcss-loader"),require.resolve("resolve-url-loader"),{loader:require.resolve("sass-loader"),options:{sourceMap:!0,sassOptions:nextConfig.sassOptions,additionalData:((_b=nextConfig.sassOptions)==null?void 0:_b.prependData)||((_c=nextConfig.sassOptions)==null?void 0:_c.additionalData)}}]})},getImportAndUrlCssLoaderOptions=nextConfig=>isCssLoaderV6()?{url:{filter:getUrlResolver(nextConfig)},import:{filter:getImportResolver(nextConfig)}}:{url:getUrlResolver(nextConfig),import:getImportResolver(nextConfig)},getUrlResolver=nextConfig=>(url,resourcePath)=>{var _a;return(0,import_file_resolve.cssFileResolve)(url,resourcePath,(_a=nextConfig.experimental)==null?void 0:_a.urlImports)},getImportResolver=nextConfig=>(url,_,resourcePath)=>{var _a;return(0,import_file_resolve.cssFileResolve)(typeof url=="string"?url:url.url,resourcePath,(_a=nextConfig.experimental)==null?void 0:_a.urlImports)},isCssLoaderV6=()=>{try{let cssLoaderVersion=require(scopedResolve("css-loader/package.json")).version;return import_semver2.default.gte(cssLoaderVersion,"6.0.0")}catch{return!1}};var import_tsconfig_paths_webpack_plugin=__toESM(require("tsconfig-paths-webpack-plugin")),import_tsconfig_paths=require("tsconfig-paths"),configureImports=({baseConfig,configDir})=>{let configLoadResult=(0,import_tsconfig_paths.loadConfig)(configDir);configLoadResult.resultType==="failed"||!configLoadResult.baseUrl||(baseConfig.resolve??={},baseConfig.resolve.plugins??=[],baseConfig.resolve.plugins.push(new import_tsconfig_paths_webpack_plugin.default({configFile:configLoadResult.configFileAbsolutePath,extensions:[".js",".jsx",".ts",".tsx"]})))};var import_semver3=__toESM(require("semver"));var configureStyledJsx=baseConfig=>{let version2=getNextjsVersion();import_semver3.default.gte(version2,"12.0.0")?addScopedAlias(baseConfig,"styled-jsx"):(addScopedAlias(baseConfig,"styled-jsx/babel"),addScopedAlias(baseConfig,"styled-jsx/css"),addScopedAlias(baseConfig,"styled-jsx/macro"),addScopedAlias(baseConfig,"styled-jsx/server"),addScopedAlias(baseConfig,"styled-jsx/style"),addScopedAlias(baseConfig,"styled-jsx/webpack"))};var import_semver4=__toESM(require("semver")),import_path2=__toESM(require("path"));var configureImages=(baseConfig,nextConfig)=>{configureStaticImageImport(baseConfig,nextConfig),configureImageDefaults(baseConfig)},fallbackFilename="static/media/[path][name][ext]",configureImageDefaults=baseConfig=>{let version2=getNextjsVersion(),resolve=baseConfig.resolve??{};resolve.alias={...resolve.alias,"sb-original/next/image":require.resolve("next/image"),"next/image":import_path2.default.resolve(__dirname,"./images/next-image")},import_semver4.default.satisfies(version2,">=13.0.0")&&(resolve.alias={...resolve.alias,"sb-original/next/legacy/image":require.resolve("next/legacy/image"),"next/legacy/image":import_path2.default.resolve(__dirname,"./images/next-legacy-image")}),import_semver4.default.satisfies(version2,"^12.2.0")&&(resolve.alias={...resolve.alias,"sb-original/next/future/image":require.resolve("next/future/image"),"next/future/image":import_path2.default.resolve(__dirname,"./images/next-future-image")})},configureStaticImageImport=(baseConfig,nextConfig)=>{var _a,_b,_c;let version2=getNextjsVersion();if(import_semver4.default.lt(version2,"11.0.0"))return;let rules=(_a=baseConfig.module)==null?void 0:_a.rules,assetRule=rules==null?void 0:rules.find(rule=>rule&&typeof rule!="string"&&rule.test instanceof RegExp&&rule.test.test("test.jpg"));assetRule&&(assetRule.test=/\.(apng|eot|otf|ttf|woff|woff2|cur|ani|pdf)(\?.*)?$/,rules==null||rules.push({test:/\.(png|jpg|jpeg|gif|webp|avif|ico|bmp|svg)$/i,issuer:{not:/\.(css|scss|sass)$/},use:[{loader:require.resolve("@storybook/nextjs/next-image-loader-stub.js"),options:{filename:((_b=assetRule.generator)==null?void 0:_b.filename)??fallbackFilename,nextConfig}}]}),rules==null||rules.push({test:/\.(png|jpg|jpeg|gif|webp|avif|ico|bmp|svg)$/i,issuer:/\.(css|scss|sass)$/,type:"asset/resource",generator:{filename:((_c=assetRule.generator)==null?void 0:_c.filename)??fallbackFilename}}))};var import_semver5=__toESM(require("semver")),import_webpack3=require("webpack");function configureNextImport(baseConfig){let nextJSVersion=getNextjsVersion(),isNext12=import_semver5.default.satisfies(nextJSVersion,"~12"),isNextVersionSmallerThan12dot2=import_semver5.default.lt(nextJSVersion,"12.2.0"),isNextVersionSmallerThan13=import_semver5.default.lt(nextJSVersion,"13.0.0");baseConfig.plugins=baseConfig.plugins??[],(!isNext12||isNextVersionSmallerThan12dot2)&&baseConfig.plugins.push(new import_webpack3.IgnorePlugin({resourceRegExp:/next\/future\/image$/})),isNextVersionSmallerThan13&&baseConfig.plugins.push(new import_webpack3.IgnorePlugin({resourceRegExp:/(next\/dist\/shared\/lib\/hooks-client-context|next\/dist\/shared\/lib\/hooks-client-context\.shared-runtime|next\/legacy\/image)$/})),isNextVersionSmallerThan12dot2&&baseConfig.plugins.push(new import_webpack3.IgnorePlugin({resourceRegExp:/next\/dist\/shared\/lib\/app-router-context$/}))}function convertNodeToJSON(types,node){if(types.isBooleanLiteral(node)||types.isStringLiteral(node)||types.isNumericLiteral(node))return node.value;if(!(node.name==="undefined"&&!node.value))return types.isNullLiteral(node)?null:types.isObjectExpression(node)?computeProps(types,node.properties):types.isArrayExpression(node)?node.elements.reduce((acc,element)=>[...acc,...(element==null?void 0:element.type)==="SpreadElement"?convertNodeToJSON(types,element.argument):[convertNodeToJSON(types,element)]],[]):{}}function computeProps(types,props){return props.reduce((acc,prop)=>{if(prop.type==="SpreadElement")return{...acc,...convertNodeToJSON(types,prop.argument)};if(prop.type!=="ObjectMethod"){let val=convertNodeToJSON(types,prop.value);if(val!==void 0&&types.isIdentifier(prop.key))return{...acc,[prop.key.name]:val}}return acc},{})}function isDefined(value){return value!==void 0}function removeTransformedVariableDeclarations(path4,types,metas){path4.parentPath.traverse({ExportNamedDeclaration(declaratorPath){var _a;(_a=declaratorPath.parentPath)!=null&&_a.isProgram()&&metas.forEach(meta=>{types.isVariableDeclaration(declaratorPath.node.declaration)&&declaratorPath.node.declaration.declarations.length===1&&types.isVariableDeclarator(declaratorPath.node.declaration.declarations[0])&&types.isIdentifier(declaratorPath.node.declaration.declarations[0].id)&&meta.identifierName===declaratorPath.node.declaration.declarations[0].id.name&&declaratorPath.replaceWith(types.exportNamedDeclaration(null,[types.exportSpecifier(types.identifier(meta.identifierName),types.identifier(meta.identifierName))]))})},VariableDeclarator(declaratorPath){var _a;(_a=declaratorPath.parentPath.parentPath)!=null&&_a.isProgram()&&metas.some(meta=>types.isIdentifier(declaratorPath.node.id)&&meta.identifierName===declaratorPath.node.id.name)&&declaratorPath.remove()}})}function replaceImportWithParamterImport(path4,types,source,metas,filename){path4.replaceWithMultiple([...metas.map(meta=>types.importDeclaration([types.importDefaultSpecifier(types.identifier(meta.identifierName))],types.stringLiteral(`storybook-nextjs-font-loader?${JSON.stringify({source:source.value,props:meta.properties,fontFamily:meta.functionName,filename})}!${source.value}`)))])}function getVariableMetasBySpecifier(program,types,specifier){return program.node.body.map(statement=>{if(!types.isVariableDeclaration(statement)&&!types.isExportNamedDeclaration(statement))return;let exportedNamedDeclaration=!types.isVariableDeclaration(statement)&&types.isVariableDeclaration(statement.declaration)&&statement.declaration.declarations.length===1?statement.declaration.declarations[0]:null,declaration=types.isVariableDeclaration(statement)?statement.declarations[0]:exportedNamedDeclaration;if(!declaration||!types.isIdentifier(declaration.id)||!types.isCallExpression(declaration.init)||!types.isIdentifier(declaration.init.callee)||(specifier.type!=="ImportSpecifier"||specifier.imported.type!=="Identifier"||declaration.init.callee.name!==specifier.imported.name&&declaration.init.callee.name!==specifier.local.name)&&(specifier.type!=="ImportDefaultSpecifier"||declaration.init.callee.name!==specifier.local.name))return;let options=declaration.init.arguments[0];if(!types.isObjectExpression(options))throw program.buildCodeFrameError("Please pass an options object to the call expression of next/font functions");options.properties.forEach(property=>{if(types.isSpreadElement(property))throw program.buildCodeFrameError("Please do not use spread elements in the options object in next/font function calls")});let identifierName=declaration.id.name,properties=convertNodeToJSON(types,options),functionName=declaration.init.callee.name;return specifier.type==="ImportSpecifier"&&specifier.imported&&specifier.imported.type==="Identifier"&&declaration.init.callee.name!==specifier.imported.name&&(functionName=specifier.imported.name),{identifierName,properties,functionName}}).filter(isDefined)}function TransformFontImports({types}){return{name:"storybook-nextjs-font-imports",visitor:{ImportDeclaration(path4,state){let{node}=path4,{source}=node,{filename=""}=state;if(source.value==="next/font/local"||source.value==="@next/font/local"){let{specifiers}=node,specifier=specifiers[0];if(!path4.parentPath.isProgram())return;let program=path4.parentPath,variableMetas=getVariableMetasBySpecifier(program,types,specifier);removeTransformedVariableDeclarations(path4,types,variableMetas),replaceImportWithParamterImport(path4,types,source,variableMetas,filename)}if(source.value==="next/font/google"||source.value==="@next/font/google"){let{specifiers}=node,variableMetas=specifiers.flatMap(specifier=>{if(!path4.parentPath.isProgram())return[];let program=path4.parentPath;return getVariableMetasBySpecifier(program,types,specifier)}).filter(isDefined);removeTransformedVariableDeclarations(path4,types,variableMetas),replaceImportWithParamterImport(path4,types,source,variableMetas,filename)}}}}}function configureNextFont(baseConfig,isSWC){var _a,_b,_c;let fontLoaderPath=require.resolve("@storybook/nextjs/font/webpack/loader/storybook-nextjs-font-loader");isSWC?(_b=(_a=baseConfig.module)==null?void 0:_a.rules)==null||_b.push({test:/next\/.*\/target.css$/,loader:fontLoaderPath}):baseConfig.resolveLoader={...baseConfig.resolveLoader,alias:{...(_c=baseConfig.resolveLoader)==null?void 0:_c.alias,"storybook-nextjs-font-loader":fontLoaderPath}}}var import_path4=require("path"),isLoadIntentTest=process.env.NODE_ENV==="test",isLoadIntentDevelopment=process.env.NODE_ENV==="development";function styledJsxOptions(options){return options=options||{},options.styleModule="styled-jsx/style",Array.isArray(options.plugins)&&(options.plugins=options.plugins.map(plugin=>{if(Array.isArray(plugin)){let[name,pluginOptions]=plugin;return[require.resolve(name),pluginOptions]}return require.resolve(plugin)})),options}function supportsStaticESM(caller){return!!(caller!=null&&caller.supportsStaticESM)}var preset_default=(api,options={})=>{var _a,_b;let supportsESM=api.caller(supportsStaticESM),isServer=api.caller(caller=>!!caller&&caller.isServer),isCallerDevelopment=api.caller(caller=>caller==null?void 0:caller.isDev),isTest=isCallerDevelopment==null&&isLoadIntentTest,isDevelopment=isCallerDevelopment===!0||isCallerDevelopment==null&&isLoadIntentDevelopment,isBabelLoader=api.caller(caller=>!!caller&&(caller.name==="babel-loader"||caller.name==="next-babel-turbo-loader")),useJsxRuntime=((_a=options["preset-react"])==null?void 0:_a.runtime)==="automatic"||!!api.caller(caller=>!!caller&&caller.hasJsxRuntime)&&((_b=options["preset-react"])==null?void 0:_b.runtime)!=="classic",presetEnvConfig={modules:"auto",exclude:["transform-typeof-symbol"],...options["preset-env"]};return(isServer||isTest)&&(!presetEnvConfig.targets||!(typeof presetEnvConfig.targets=="object"&&"node"in presetEnvConfig.targets))&&(presetEnvConfig.targets={node:process.versions.node}),{sourceType:"unambiguous",presets:[[require("@babel/preset-env"),presetEnvConfig],[require("@babel/preset-react"),{development:isDevelopment||isTest,...useJsxRuntime?{runtime:"automatic"}:{pragma:"__jsx"},...options["preset-react"]}],[require("@babel/preset-typescript"),{allowNamespaces:!0,...options["preset-typescript"]}]],plugins:[!useJsxRuntime&&[(init_jsx_pragma(),__toCommonJS(jsx_pragma_exports)),{module:"react",importAs:"React",pragma:"__jsx",property:"createElement"}],[(init_optimize_hook_destructuring(),__toCommonJS(optimize_hook_destructuring_exports)),{lib:!0}],require("@babel/plugin-syntax-dynamic-import"),require("@babel/plugin-syntax-import-assertions"),(init_react_loadable_plugin(),__toCommonJS(react_loadable_plugin_exports)),[require("@babel/plugin-transform-class-properties"),options["class-properties"]||{}],[require("@babel/plugin-transform-object-rest-spread"),{useBuiltIns:!0}],!isServer&&[require("@babel/plugin-transform-runtime"),{corejs:!1,helpers:!0,regenerator:!0,useESModules:supportsESM&&presetEnvConfig.modules!=="commonjs",absoluteRuntime:isBabelLoader?(0,import_path4.dirname)(require.resolve("@babel/runtime/package.json")):void 0,...options["transform-runtime"]}],[isTest&&options["styled-jsx"]&&options["styled-jsx"]["babel-test"]?require("styled-jsx/babel-test"):require("styled-jsx/babel"),styledJsxOptions(options["styled-jsx"])],(init_amp_attributes(),__toCommonJS(amp_attributes_exports)),isServer&&require("@babel/plugin-syntax-bigint"),require("@babel/plugin-transform-numeric-separator"),require("@babel/plugin-transform-export-namespace-from")].filter(Boolean)}};var import_node_polyfill_webpack_plugin=__toESM(require("node-polyfill-webpack-plugin")),configureNodePolyfills=baseConfig=>(baseConfig.plugins=[...baseConfig.plugins||[],new import_node_polyfill_webpack_plugin.default],baseConfig.resolve={...baseConfig.resolve,fallback:{fs:!1}},baseConfig);var import_semver6=__toESM(require("semver"));var mapping={"<11.1.0":{"next/dist/next-server/lib/router-context":"next/dist/next-server/lib/router-context"},">=11.1.0 <13.5.0":{"next/dist/shared/lib/router-context":"next/dist/shared/lib/router-context"},">=13.0.2 <13.5.0":{"next/dist/shared/lib/hooks-client-context.shared-runtime":"next/dist/shared/lib/hooks-client-context"},"<13.0.0":{"@storybook/nextjs/dist/routing/app-router-provider":"@storybook/nextjs/dist/routing/app-router-provider-mock"},"<13.5.0":{"next/dist/shared/lib/router-context.shared-runtime":"next/dist/shared/lib/router-context","next/dist/shared/lib/head-manager-context.shared-runtime":"next/dist/shared/lib/head-manager-context","next/dist/shared/lib/app-router-context.shared-runtime":"next/dist/shared/lib/app-router-context"}},configureAliasing=baseConfig=>{let version2=getNextjsVersion(),result={};Object.keys(mapping).forEach(key=>{import_semver6.default.intersects(version2,key)&&Object.assign(result,mapping[key])}),Object.entries(result).forEach(([name,alias])=>{addScopedAlias(baseConfig,name,alias)})};var import_core_common=require("@storybook/core-common"),import_builder_webpack5=require("@storybook/builder-webpack5"),import_path5=__toESM(require("path")),import_semver7=__toESM(require("semver")),import_server_errors=require("@storybook/core-events/server-errors");var applyFastRefresh=async options=>{let isDevelopment=options.configType==="DEVELOPMENT",framework=await options.presets.apply("framework"),reactOptions=typeof framework=="object"?framework.options:{};return isDevelopment&&(reactOptions.fastRefresh||process.env.FAST_REFRESH==="true")},configureSWCLoader=async(baseConfig,options,nextConfig)=>{let isDevelopment=options.configType!=="PRODUCTION",version2=getNextjsVersion();if(import_semver7.default.lt(version2,"14.0.0"))throw new import_server_errors.NextjsSWCNotSupportedError;let dir=(0,import_core_common.getProjectRoot)(),{virtualModules}=await(0,import_builder_webpack5.getVirtualModules)(options);baseConfig.module.rules=[...baseConfig.module.rules.filter(r=>{var _a;return!((_a=r.loader)!=null&&_a.includes("swc-loader"))}),{test:/\.(m?(j|t)sx?)$/,include:[(0,import_core_common.getProjectRoot)()],exclude:[/(node_modules)/,...Object.keys(virtualModules)],enforce:"post",use:{loader:require.resolve("./swc/next-swc-loader-patch.js"),options:{isServer:!1,rootDir:dir,pagesDir:`${dir}/pages`,appDir:`${dir}/apps`,hasReactRefresh:await applyFastRefresh(options),nextConfig,supportedBrowsers:require("next/dist/build/utils").getSupportedBrowsers(dir,isDevelopment),swcCacheDir:import_path5.default.join(dir,(nextConfig==null?void 0:nextConfig.distDir)??".next","cache","swc"),bundleTarget:"default"}}}]};var addons=[(0,import_path6.dirname)(require.resolve((0,import_path6.join)("@storybook/preset-react-webpack","package.json")))],core=async(config,options)=>{let framework=await options.presets.apply("framework");return{...config,builder:{name:(0,import_path6.dirname)(require.resolve((0,import_path6.join)("@storybook/builder-webpack5","package.json"))),options:{...typeof framework=="string"?{}:framework.options.builder||{}}},renderer:(0,import_path6.dirname)(require.resolve((0,import_path6.join)("@storybook/react","package.json")))}},previewAnnotations=(entry=[])=>[...entry,(0,import_path6.join)((0,import_path6.dirname)(require.resolve("@storybook/nextjs/package.json")),"dist/preview.mjs")],babel=async baseConfig=>{var _a,_b,_c;let configPartial=(0,import_core.loadPartialConfig)({...baseConfig,filename:`${(0,import_core_common2.getProjectRoot)()}/__fake__.js`}),options=configPartial==null?void 0:configPartial.options,isPresetConfigItem=preset=>typeof preset=="object"&&preset!==null&&"file"in preset,isNextBabelConfig=preset=>{var _a2;return Array.isArray(preset)&&preset[0]==="next/babel"||preset==="next/babel"||isPresetConfigItem(preset)&&((_a2=preset.file)==null?void 0:_a2.request)==="next/babel"},hasNextBabelConfig=(_a=options==null?void 0:options.presets)==null?void 0:_a.find(isNextBabelConfig),presets=((_b=options==null?void 0:options.presets)==null?void 0:_b.filter(preset=>{var _a2;return!(isPresetConfigItem(preset)&&((_a2=preset.file)==null?void 0:_a2.request)===require.resolve("@babel/preset-react")||isNextBabelConfig(preset))}))??[];hasNextBabelConfig?Array.isArray(hasNextBabelConfig)&&hasNextBabelConfig[1]?presets.push([preset_default,hasNextBabelConfig[1]]):isPresetConfigItem(hasNextBabelConfig)&&((_c=hasNextBabelConfig.file)==null?void 0:_c.request)==="next/babel"?presets.push([preset_default,hasNextBabelConfig.options]):presets.push(preset_default):presets.push(preset_default);let plugins=[...(options==null?void 0:options.plugins)??[],TransformFontImports];return{...options,plugins,presets,babelrc:!1,configFile:!1}},webpackFinal=async(baseConfig,options)=>{let{builder,nextConfigPath}=await options.presets.apply("frameworkOptions"),nextConfig=await configureConfig({baseConfig,nextConfigPath,configDir:options.configDir});return configureAliasing(baseConfig),configureNextFont(baseConfig,builder==null?void 0:builder.useSWC),configureNextImport(baseConfig),configureRuntimeNextjsVersionResolution(baseConfig),configureImports({baseConfig,configDir:options.configDir}),configureCss(baseConfig,nextConfig),configureImages(baseConfig,nextConfig),configureStyledJsx(baseConfig),configureNodePolyfills(baseConfig),builder!=null&&builder.useSWC&&await configureSWCLoader(baseConfig,options,nextConfig),baseConfig};0&&(module.exports={addons,babel,core,previewAnnotations,webpackFinal});