@storybook/nextjs 7.0.0-alpha.50 → 7.0.0-alpha.52
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 +1 -1
- package/dist/preset.d.ts +12 -12
- package/dist/preset.js +2 -2
- package/dist/preset.mjs +2 -2
- package/dist/{types-4223e3ef.d.ts → types-5de4e7b7.d.ts} +5 -5
- package/package.json +11 -12
- package/template/cli/js/Button.stories.js +41 -0
- package/template/cli/js/Header.stories.js +23 -0
- package/template/cli/js/Page.stories.js +24 -0
- package/template/cli/ts/Button.stories.ts +2 -4
- package/template/cli/ts/Header.stories.ts +2 -2
- package/template/cli/ts/Page.stories.ts +2 -2
- package/template/cli/js/Button.stories.jsx +0 -42
- package/template/cli/js/Header.stories.jsx +0 -26
- package/template/cli/js/Page.stories.jsx +0 -25
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from '@storybook/react';
|
|
2
|
-
export { F as FrameworkOptions, S as StorybookConfig } from './types-
|
|
2
|
+
export { F as FrameworkOptions, S as StorybookConfig } from './types-5de4e7b7.js';
|
|
3
3
|
import '@storybook/preset-react-webpack';
|
|
4
4
|
import '@storybook/builder-webpack5';
|
package/dist/preset.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FileSystemCache } from 'file-system-cache';
|
|
2
2
|
import { TransformOptions } from '@babel/core';
|
|
3
3
|
import { Server } from 'http';
|
|
4
|
-
import { S as StorybookConfig$1 } from './types-
|
|
4
|
+
import { S as StorybookConfig$1 } from './types-5de4e7b7.js';
|
|
5
5
|
import '@storybook/preset-react-webpack';
|
|
6
6
|
import '@storybook/builder-webpack5';
|
|
7
7
|
|
|
@@ -740,8 +740,8 @@ interface Options$1 {
|
|
|
740
740
|
/**
|
|
741
741
|
* ⚠️ This file contains internal WIP types they MUST NOT be exported outside this package for now!
|
|
742
742
|
*/
|
|
743
|
-
|
|
744
|
-
|
|
743
|
+
type BuilderName = 'webpack5' | '@storybook/builder-webpack5' | string;
|
|
744
|
+
type RendererName = string;
|
|
745
745
|
interface CoreConfig {
|
|
746
746
|
builder?: BuilderName | {
|
|
747
747
|
name: BuilderName;
|
|
@@ -805,7 +805,7 @@ interface ReleaseNotesData {
|
|
|
805
805
|
currentVersion: string;
|
|
806
806
|
showOnFirstLaunch: boolean;
|
|
807
807
|
}
|
|
808
|
-
|
|
808
|
+
type PackageJson = PackageJson$1 & Record<string, any>;
|
|
809
809
|
interface LoadOptions {
|
|
810
810
|
packageJson: PackageJson;
|
|
811
811
|
outputDir?: string;
|
|
@@ -862,7 +862,7 @@ interface StorybookConfigOptions {
|
|
|
862
862
|
presets: Presets;
|
|
863
863
|
presetsList?: LoadedPreset[];
|
|
864
864
|
}
|
|
865
|
-
|
|
865
|
+
type Options = LoadOptions & StorybookConfigOptions & CLIOptions & BuilderOptions;
|
|
866
866
|
interface CoreCommon_IndexerOptions {
|
|
867
867
|
makeTitle: (userTitle?: string) => string;
|
|
868
868
|
}
|
|
@@ -916,8 +916,8 @@ interface CoreCommon_StoriesSpecifier {
|
|
|
916
916
|
*/
|
|
917
917
|
files?: string;
|
|
918
918
|
}
|
|
919
|
-
|
|
920
|
-
|
|
919
|
+
type CoreCommon_StoriesEntry = string | CoreCommon_StoriesSpecifier;
|
|
920
|
+
type Preset = string | {
|
|
921
921
|
name: string;
|
|
922
922
|
options?: any;
|
|
923
923
|
};
|
|
@@ -925,14 +925,14 @@ declare type Preset = string | {
|
|
|
925
925
|
* An additional script that gets injected into the
|
|
926
926
|
* preview or the manager,
|
|
927
927
|
*/
|
|
928
|
-
|
|
929
|
-
|
|
928
|
+
type Entry = string;
|
|
929
|
+
type CoreCommon_StorybookRefs = Record<string, {
|
|
930
930
|
title: string;
|
|
931
931
|
url: string;
|
|
932
932
|
} | {
|
|
933
933
|
disable: boolean;
|
|
934
934
|
}>;
|
|
935
|
-
|
|
935
|
+
type DocsOptions = {
|
|
936
936
|
/**
|
|
937
937
|
* Should we generate docs entries at all under any circumstances? (i.e. can they be rendered)
|
|
938
938
|
*/
|
|
@@ -1062,8 +1062,8 @@ interface StorybookConfig {
|
|
|
1062
1062
|
previewHead?: (head: string, options: Options) => string;
|
|
1063
1063
|
previewBody?: (body: string, options: Options) => string;
|
|
1064
1064
|
}
|
|
1065
|
-
|
|
1066
|
-
|
|
1065
|
+
type PresetProperty<K, TStorybookConfig = StorybookConfig> = TStorybookConfig[K extends keyof TStorybookConfig ? K : never] | PresetPropertyFn<K, TStorybookConfig>;
|
|
1066
|
+
type PresetPropertyFn<K, TStorybookConfig = StorybookConfig, TOptions = {}> = (config: TStorybookConfig[K extends keyof TStorybookConfig ? K : never], options: Options & TOptions) => TStorybookConfig[K extends keyof TStorybookConfig ? K : never] | Promise<TStorybookConfig[K extends keyof TStorybookConfig ? K : never]>;
|
|
1067
1067
|
|
|
1068
1068
|
declare const addons: PresetProperty<'addons', StorybookConfig$1>;
|
|
1069
1069
|
declare const frameworkOptions: (_: never, options: Options) => Promise<StorybookConfig$1['framework']>;
|
package/dist/preset.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var z=Object.create;var u=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var Y=Object.getOwnPropertyNames;var Z=Object.getPrototypeOf,ee=Object.prototype.hasOwnProperty;var oe=(e,t)=>{for(var o in t)u(e,o,{get:t[o],enumerable:!0})},w=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Y(t))!ee.call(e,s)&&s!==o&&u(e,s,{get:()=>t[s],enumerable:!(r=Q(t,s))||r.enumerable});return e};var a=(e,t,o)=>(o=e!=null?z(Z(e)):{},w(t||!e||!e.__esModule?u(o,"default",{value:e,enumerable:!0}):o,e)),te=e=>w(u({},"__esModule",{value:!0}),e);var ue={};oe(ue,{addons:()=>pe,babel:()=>le,config:()=>me,core:()=>ce,frameworkOptions:()=>fe,webpackFinal:()=>ge});module.exports=te(ue);var f=require("path"),G=require("@babel/core"),K=require("@storybook/core-common");var y=a(require("semver")),_=require("webpack");var x=a(require("path")),j=require("webpack"),N=require("next/constants"),h=a(require("find-up")),R=require("fs-extra"),P=a(require("ts-dedent")),S=require("url"),O=e=>{var t;(t=e.plugins)==null||t.push(new j.DefinePlugin({"process.env.__NEXT_VERSION":JSON.stringify(m())}))},m=()=>require(d("next/package.json")).version,re=async e=>["mjs","js"].reduce(async(o,r)=>(await o||(o=(0,h.default)(`next.config.${r}`,{cwd:e})),o),Promise.resolve(void 0)),E=async({baseConfig:e={},nextConfigPath:t,configDir:o})=>{let r=t||await re(o);if(!r||await(0,R.pathExists)(r)===!1)throw new Error(P.default`
|
|
2
2
|
Could not find or resolve your Next config file. Please provide the next config file path as a framework option.
|
|
3
3
|
|
|
4
4
|
More info: https://github.com/storybookjs/storybook/blob/next/code/frameworks/nextjs/README.md#options
|
|
5
|
-
`);let s=await import(r)
|
|
5
|
+
`);let s=await import((0,S.pathToFileURL)(r).href),n=typeof s=="function"?s(N.PHASE_DEVELOPMENT_SERVER,{defaultConfig:e}):s;return n.default||n},i=(e,t,o)=>{e.resolve??={},e.resolve.alias??={};let r=e.resolve.alias,s=d(`${o??t}`);Array.isArray(r)?r.push({name:t,alias:s}):r[t]=s},d=e=>{let t=require.resolve(e,{paths:[x.default.resolve()]}),r=t.lastIndexOf(e.replace(/\//g,x.default.sep))+e.length;return t.substring(0,r)};var W=async({baseConfig:e,nextConfigPath:t,configDir:o})=>{let r=await E({baseConfig:e,nextConfigPath:t,configDir:o});return i(e,"next/config"),se(e,r),r},I=m(),se=(e,t)=>{var s,n;let o={"process.env.__NEXT_RUNTIME_CONFIG":JSON.stringify({serverRuntimeConfig:{},publicRuntimeConfig:t.publicRuntimeConfig})},r=(s=t.experimental)==null?void 0:s.newNextLinkBehavior;(y.default.gte(I,"13.0.0")&&r!==!1||y.default.gte(I,"12.2.0")&&r)&&(o["process.env.__NEXT_NEW_LINK_BEHAVIOR"]=!0),(n=e.plugins)==null||n.push(new _.DefinePlugin(o))};var k=require("next/dist/build/webpack/config/blocks/css/loaders/getCssModuleLocalIdent"),b=require("next/dist/build/webpack/config/blocks/css/loaders/file-resolve"),q=a(require("semver"));var V=(e,t)=>{var r,s,n;let o=(r=e.module)==null?void 0:r.rules;o==null||o.forEach((c,l)=>{typeof c!="string"&&c.test instanceof RegExp&&c.test.test("test.css")&&(o[l]={test:/\.css$/,use:["style-loader",{loader:"css-loader",options:{importLoaders:1,...A(t),modules:{auto:!0,getLocalIdent:k.getCssModuleLocalIdent}}},"postcss-loader"]})}),o==null||o.push({test:/\.(scss|sass)$/,use:["style-loader",{loader:"css-loader",options:{importLoaders:3,...A(t),modules:{auto:!0,getLocalIdent:k.getCssModuleLocalIdent}}},"postcss-loader","resolve-url-loader",{loader:"sass-loader",options:{sourceMap:!0,sassOptions:t.sassOptions,additionalData:((s=t.sassOptions)==null?void 0:s.prependData)||((n=t.sassOptions)==null?void 0:n.additionalData)}}]})},A=e=>ie()?{url:{filter:F(e)},import:{filter:L(e)}}:{url:F(e),import:L(e)},F=e=>(t,o)=>{var r;return(0,b.cssFileResolve)(t,o,(r=e.experimental)==null?void 0:r.urlImports)},L=e=>(t,o,r)=>{var s;return(0,b.cssFileResolve)(typeof t=="string"?t:t.url,r,(s=e.experimental)==null?void 0:s.urlImports)},ie=()=>{try{let e=require(d("css-loader/package.json")).version;return q.default.gte(e,"6.0.0")}catch{return!1}};var D=a(require("tsconfig-paths-webpack-plugin")),T=require("tsconfig-paths"),$=e=>{let t=(0,T.loadConfig)();t.resultType==="failed"||!t.baseUrl||(e.resolve??={},e.resolve.plugins??=[],e.resolve.plugins.push(new D.default({configFile:t.configFileAbsolutePath,extensions:[".js",".jsx",".ts",".tsx"]})))};var M=a(require("semver"));var U=e=>{let t=ne();i(e,t)},ne=()=>{let e=m();return M.default.gte(e,"11.1.0")?"next/dist/shared/lib/router-context":"next/dist/next-server/lib/router-context"};var B=a(require("semver"));var J=e=>{let t=m();B.default.gte(t,"12.0.0")?i(e,"styled-jsx"):(i(e,"styled-jsx/babel"),i(e,"styled-jsx/css"),i(e,"styled-jsx/macro"),i(e,"styled-jsx/server"),i(e,"styled-jsx/style"),i(e,"styled-jsx/webpack"))};var X=a(require("semver"));var H=e=>{ae(e),i(e,"next/image")},ae=e=>{var s,n,c;let t=m();if(X.default.lt(t,"11.0.0"))return;let o=(s=e.module)==null?void 0:s.rules,r=o==null?void 0:o.find(l=>typeof l!="string"&&l.test instanceof RegExp&&l.test.test("test.jpg"));!r||(r.test=/\.(apng|eot|otf|ttf|woff|woff2|cur|ani|pdf)(\?.*)?$/,o==null||o.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:(n=r.generator)==null?void 0:n.filename}}]}),o==null||o.push({test:/\.(png|jpg|jpeg|gif|webp|avif|ico|bmp|svg)$/i,issuer:/\.(css|scss|sass)$/,type:"asset/resource",generator:{filename:(c=r.generator)==null?void 0:c.filename}}))};var pe=[(0,f.dirname)(require.resolve((0,f.join)("@storybook/preset-react-webpack","package.json"))),(0,f.dirname)(require.resolve((0,f.join)("@storybook/builder-webpack5","package.json")))],v={},fe=async(e,t)=>{let o=await t.presets.apply("framework");return typeof o=="string"?{name:o,options:v}:typeof o>"u"?{name:require.resolve("@storybook/nextjs"),options:v}:{name:o.name,options:{...v,...o.options}}},ce=async(e,t)=>{let o=await t.presets.apply("framework");return{...e,builder:{name:(0,f.dirname)(require.resolve((0,f.join)("@storybook/builder-webpack5","package.json"))),options:typeof o=="string"?{}:o.options.builder||{}},renderer:(0,f.dirname)(require.resolve((0,f.join)("@storybook/react","package.json")))}},me=(e=[])=>[...e,require.resolve("@storybook/nextjs/preview.js")],le=async e=>{var c,l,C;let t=(0,G.loadPartialConfig)({...e,filename:`${(0,K.getProjectRoot)()}/__fake__.js`}),o=t==null?void 0:t.options,r=p=>typeof p=="object"&&p!==null&&"file"in p;((c=o==null?void 0:o.presets)==null?void 0:c.find(p=>{var g;return Array.isArray(p)&&p[0]==="next/babel"||p==="next/babel"||r(p)&&((g=p.file)==null?void 0:g.request)==="next/babel"}))||(l=o==null?void 0:o.presets)==null||l.push("next/babel");let n=(C=o==null?void 0:o.presets)==null?void 0:C.filter(p=>{var g;return!(r(p)&&((g=p.file)==null?void 0:g.request)===require.resolve("@babel/preset-react"))});return{...o,presets:n,babelrc:!1,configFile:!1}},ge=async(e,t)=>{let o=await t.presets.apply("frameworkOptions"),{options:{nextConfigPath:r}={}}=o,s=await W({baseConfig:e,nextConfigPath:r,configDir:t.configDir});return O(e),$(e),V(e,s),H(e),U(e),J(e),e};0&&(module.exports={addons,babel,config,core,frameworkOptions,webpackFinal});
|
package/dist/preset.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{a as i}from"./chunk-QY6LZ6WI.mjs";import{dirname as
|
|
1
|
+
import{a as i}from"./chunk-QY6LZ6WI.mjs";import{dirname as l,join as m}from"path";import{loadPartialConfig as G}from"@babel/core";import{getProjectRoot as K}from"@storybook/core-common";import y from"semver";import{DefinePlugin as q}from"webpack";import u from"path";import{DefinePlugin as E}from"webpack";import{PHASE_DEVELOPMENT_SERVER as I}from"next/constants";import _ from"find-up";import{pathExists as W}from"fs-extra";import A from"ts-dedent";import{pathToFileURL as F}from"url";var d=e=>{e.plugins?.push(new E({"process.env.__NEXT_VERSION":JSON.stringify(p())}))},p=()=>i(c("next/package.json")).version,L=async e=>["mjs","js"].reduce(async(t,r)=>(await t||(t=_(`next.config.${r}`,{cwd:e})),t),Promise.resolve(void 0)),x=async({baseConfig:e={},nextConfigPath:o,configDir:t})=>{let r=o||await L(t);if(!r||await W(r)===!1)throw new Error(A`
|
|
2
2
|
Could not find or resolve your Next config file. Please provide the next config file path as a framework option.
|
|
3
3
|
|
|
4
4
|
More info: https://github.com/storybookjs/storybook/blob/next/code/frameworks/nextjs/README.md#options
|
|
5
|
-
`);let s=await import(r)
|
|
5
|
+
`);let s=await import(F(r).href),f=typeof s=="function"?s(I,{defaultConfig:e}):s;return f.default||f},n=(e,o,t)=>{e.resolve??={},e.resolve.alias??={};let r=e.resolve.alias,s=c(`${t??o}`);Array.isArray(r)?r.push({name:o,alias:s}):r[o]=s},c=e=>{let o=i.resolve(e,{paths:[u.resolve()]}),r=o.lastIndexOf(e.replace(/\//g,u.sep))+e.length;return o.substring(0,r)};var k=async({baseConfig:e,nextConfigPath:o,configDir:t})=>{let r=await x({baseConfig:e,nextConfigPath:o,configDir:t});return n(e,"next/config"),V(e,r),r},b=p(),V=(e,o)=>{let t={"process.env.__NEXT_RUNTIME_CONFIG":JSON.stringify({serverRuntimeConfig:{},publicRuntimeConfig:o.publicRuntimeConfig})},r=o.experimental?.newNextLinkBehavior;(y.gte(b,"13.0.0")&&r!==!1||y.gte(b,"12.2.0")&&r)&&(t["process.env.__NEXT_NEW_LINK_BEHAVIOR"]=!0),e.plugins?.push(new q(t))};import{getCssModuleLocalIdent as v}from"next/dist/build/webpack/config/blocks/css/loaders/getCssModuleLocalIdent";import{cssFileResolve as N}from"next/dist/build/webpack/config/blocks/css/loaders/file-resolve";import D from"semver";var h=(e,o)=>{let t=e.module?.rules;t?.forEach((r,s)=>{typeof r!="string"&&r.test instanceof RegExp&&r.test.test("test.css")&&(t[s]={test:/\.css$/,use:["style-loader",{loader:"css-loader",options:{importLoaders:1,...C(o),modules:{auto:!0,getLocalIdent:v}}},"postcss-loader"]})}),t?.push({test:/\.(scss|sass)$/,use:["style-loader",{loader:"css-loader",options:{importLoaders:3,...C(o),modules:{auto:!0,getLocalIdent:v}}},"postcss-loader","resolve-url-loader",{loader:"sass-loader",options:{sourceMap:!0,sassOptions:o.sassOptions,additionalData:o.sassOptions?.prependData||o.sassOptions?.additionalData}}]})},C=e=>T()?{url:{filter:w(e)},import:{filter:j(e)}}:{url:w(e),import:j(e)},w=e=>(o,t)=>N(o,t,e.experimental?.urlImports),j=e=>(o,t,r)=>N(typeof o=="string"?o:o.url,r,e.experimental?.urlImports),T=()=>{try{let e=i(c("css-loader/package.json")).version;return D.gte(e,"6.0.0")}catch{return!1}};import $ from"tsconfig-paths-webpack-plugin";import{loadConfig as M}from"tsconfig-paths";var P=e=>{let o=M();o.resultType==="failed"||!o.baseUrl||(e.resolve??={},e.resolve.plugins??=[],e.resolve.plugins.push(new $({configFile:o.configFileAbsolutePath,extensions:[".js",".jsx",".ts",".tsx"]})))};import U from"semver";var R=e=>{let o=B();n(e,o)},B=()=>{let e=p();return U.gte(e,"11.1.0")?"next/dist/shared/lib/router-context":"next/dist/next-server/lib/router-context"};import J from"semver";var S=e=>{let o=p();J.gte(o,"12.0.0")?n(e,"styled-jsx"):(n(e,"styled-jsx/babel"),n(e,"styled-jsx/css"),n(e,"styled-jsx/macro"),n(e,"styled-jsx/server"),n(e,"styled-jsx/style"),n(e,"styled-jsx/webpack"))};import X from"semver";var O=e=>{H(e),n(e,"next/image")},H=e=>{let o=p();if(X.lt(o,"11.0.0"))return;let t=e.module?.rules,r=t?.find(s=>typeof s!="string"&&s.test instanceof RegExp&&s.test.test("test.jpg"));!r||(r.test=/\.(apng|eot|otf|ttf|woff|woff2|cur|ani|pdf)(\?.*)?$/,t?.push({test:/\.(png|jpg|jpeg|gif|webp|avif|ico|bmp|svg)$/i,issuer:{not:/\.(css|scss|sass)$/},use:[{loader:i.resolve("@storybook/nextjs/next-image-loader-stub.js"),options:{filename:r.generator?.filename}}]}),t?.push({test:/\.(png|jpg|jpeg|gif|webp|avif|ico|bmp|svg)$/i,issuer:/\.(css|scss|sass)$/,type:"asset/resource",generator:{filename:r.generator?.filename}}))};var Fe=[l(i.resolve(m("@storybook/preset-react-webpack","package.json"))),l(i.resolve(m("@storybook/builder-webpack5","package.json")))],g={},Le=async(e,o)=>{let t=await o.presets.apply("framework");return typeof t=="string"?{name:t,options:g}:typeof t>"u"?{name:i.resolve("@storybook/nextjs"),options:g}:{name:t.name,options:{...g,...t.options}}},qe=async(e,o)=>{let t=await o.presets.apply("framework");return{...e,builder:{name:l(i.resolve(m("@storybook/builder-webpack5","package.json"))),options:typeof t=="string"?{}:t.options.builder||{}},renderer:l(i.resolve(m("@storybook/react","package.json")))}},Ve=(e=[])=>[...e,i.resolve("@storybook/nextjs/preview.js")],De=async e=>{let t=G({...e,filename:`${K()}/__fake__.js`})?.options,r=a=>typeof a=="object"&&a!==null&&"file"in a;t?.presets?.find(a=>Array.isArray(a)&&a[0]==="next/babel"||a==="next/babel"||r(a)&&a.file?.request==="next/babel")||t?.presets?.push("next/babel");let f=t?.presets?.filter(a=>!(r(a)&&a.file?.request===i.resolve("@babel/preset-react")));return{...t,presets:f,babelrc:!1,configFile:!1}},Te=async(e,o)=>{let t=await o.presets.apply("frameworkOptions"),{options:{nextConfigPath:r}={}}=t,s=await k({baseConfig:e,nextConfigPath:r,configDir:o.configDir});return d(e),P(e),h(e,s),O(e),R(e),S(e),e};export{Fe as addons,De as babel,Ve as config,qe as core,Le as frameworkOptions,Te as webpackFinal};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { ReactOptions, StorybookConfig as StorybookConfig$1, TypescriptOptions as TypescriptOptions$1 } from '@storybook/preset-react-webpack';
|
|
2
2
|
import { BuilderOptions, StorybookConfigWebpack, TypescriptOptions } from '@storybook/builder-webpack5';
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
type FrameworkName = '@storybook/nextjs';
|
|
5
|
+
type BuilderName = '@storybook/builder-webpack5';
|
|
6
|
+
type FrameworkOptions = ReactOptions & {
|
|
7
7
|
nextConfigPath?: string;
|
|
8
8
|
builder?: BuilderOptions;
|
|
9
9
|
};
|
|
10
|
-
|
|
10
|
+
type StorybookConfigFramework = {
|
|
11
11
|
framework: FrameworkName | {
|
|
12
12
|
name: FrameworkName;
|
|
13
13
|
options: FrameworkOptions;
|
|
@@ -23,6 +23,6 @@ declare type StorybookConfigFramework = {
|
|
|
23
23
|
/**
|
|
24
24
|
* The interface for Storybook configuration in `main.ts` files.
|
|
25
25
|
*/
|
|
26
|
-
|
|
26
|
+
type StorybookConfig = Omit<StorybookConfig$1, keyof StorybookConfigWebpack | keyof StorybookConfigFramework> & StorybookConfigWebpack & StorybookConfigFramework;
|
|
27
27
|
|
|
28
28
|
export { FrameworkOptions as F, StorybookConfig as S };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@storybook/nextjs",
|
|
3
|
-
"version": "7.0.0-alpha.
|
|
3
|
+
"version": "7.0.0-alpha.52",
|
|
4
4
|
"description": "Storybook for Next.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"storybook",
|
|
@@ -59,14 +59,13 @@
|
|
|
59
59
|
"prep": "../../../scripts/prepare/bundle.ts"
|
|
60
60
|
},
|
|
61
61
|
"dependencies": {
|
|
62
|
-
"@
|
|
63
|
-
"@storybook/
|
|
64
|
-
"@storybook/
|
|
65
|
-
"@storybook/
|
|
66
|
-
"@storybook/
|
|
67
|
-
"@storybook/
|
|
68
|
-
"@
|
|
69
|
-
"@types/node": "^14.14.20 || ^16.0.0",
|
|
62
|
+
"@storybook/addons": "7.0.0-alpha.52",
|
|
63
|
+
"@storybook/builder-webpack5": "7.0.0-alpha.52",
|
|
64
|
+
"@storybook/core-common": "7.0.0-alpha.52",
|
|
65
|
+
"@storybook/node-logger": "7.0.0-alpha.52",
|
|
66
|
+
"@storybook/preset-react-webpack": "7.0.0-alpha.52",
|
|
67
|
+
"@storybook/react": "7.0.0-alpha.52",
|
|
68
|
+
"@types/node": "^16.0.0 || ^18.0.0",
|
|
70
69
|
"find-up": "^5.0.0",
|
|
71
70
|
"fs-extra": "^9.0.1",
|
|
72
71
|
"image-size": "^1.0.0",
|
|
@@ -81,9 +80,9 @@
|
|
|
81
80
|
"tsconfig-paths-webpack-plugin": "^3.5.2"
|
|
82
81
|
},
|
|
83
82
|
"devDependencies": {
|
|
84
|
-
"@storybook/addon-actions": "7.0.0-alpha.
|
|
83
|
+
"@storybook/addon-actions": "7.0.0-alpha.52",
|
|
85
84
|
"next": "^12.2.4",
|
|
86
|
-
"typescript": "
|
|
85
|
+
"typescript": "^4.9.3",
|
|
87
86
|
"webpack": "^5.65.0"
|
|
88
87
|
},
|
|
89
88
|
"peerDependencies": {
|
|
@@ -120,5 +119,5 @@
|
|
|
120
119
|
],
|
|
121
120
|
"platform": "node"
|
|
122
121
|
},
|
|
123
|
-
"gitHead": "
|
|
122
|
+
"gitHead": "d2494e3f51ce0f55bcb1ef693a6477c669fbe666"
|
|
124
123
|
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Button } from './Button';
|
|
2
|
+
|
|
3
|
+
// More on how to set up stories at: https://storybook.js.org/docs/7.0/react/writing-stories/introduction
|
|
4
|
+
export default {
|
|
5
|
+
title: 'Example/Button',
|
|
6
|
+
component: Button,
|
|
7
|
+
tags: ['docsPage'],
|
|
8
|
+
argTypes: {
|
|
9
|
+
backgroundColor: {
|
|
10
|
+
control: 'color',
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
// More on writing stories with args: https://storybook.js.org/docs/7.0/react/writing-stories/args
|
|
16
|
+
export const Primary = {
|
|
17
|
+
args: {
|
|
18
|
+
primary: true,
|
|
19
|
+
label: 'Button',
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export const Secondary = {
|
|
24
|
+
args: {
|
|
25
|
+
label: 'Button',
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export const Large = {
|
|
30
|
+
args: {
|
|
31
|
+
size: 'large',
|
|
32
|
+
label: 'Button',
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export const Small = {
|
|
37
|
+
args: {
|
|
38
|
+
size: 'small',
|
|
39
|
+
label: 'Button',
|
|
40
|
+
},
|
|
41
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Header } from './Header';
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
title: 'Example/Header',
|
|
5
|
+
component: Header,
|
|
6
|
+
// This component will have an automatically generated docsPage entry: https://storybook.js.org/docs/7.0/react/writing-docs/docs-page
|
|
7
|
+
tags: ['docsPage'],
|
|
8
|
+
parameters: {
|
|
9
|
+
// More on how to position stories at: https://storybook.js.org/docs/7.0/react/configure/story-layout
|
|
10
|
+
layout: 'fullscreen',
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
export const LoggedIn = {
|
|
14
|
+
args: {
|
|
15
|
+
user: {
|
|
16
|
+
name: 'Jane Doe',
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export const LoggedOut = {
|
|
22
|
+
args: {},
|
|
23
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { within, userEvent } from '@storybook/testing-library';
|
|
2
|
+
import { Page } from './Page';
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
title: 'Example/Page',
|
|
6
|
+
component: Page,
|
|
7
|
+
parameters: {
|
|
8
|
+
// More on how to position stories at: https://storybook.js.org/docs/7.0/react/configure/story-layout
|
|
9
|
+
layout: 'fullscreen',
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export const LoggedOut = {};
|
|
14
|
+
|
|
15
|
+
// More on interaction testing: https://storybook.js.org/docs/7.0/react/writing-tests/interaction-testing
|
|
16
|
+
export const LoggedIn = {
|
|
17
|
+
play: async ({ canvasElement }) => {
|
|
18
|
+
const canvas = within(canvasElement);
|
|
19
|
+
const loginButton = await canvas.getByRole('button', {
|
|
20
|
+
name: /Log in/i,
|
|
21
|
+
});
|
|
22
|
+
await userEvent.click(loginButton);
|
|
23
|
+
},
|
|
24
|
+
};
|
|
@@ -2,13 +2,11 @@ import type { Meta, StoryObj } from '@storybook/react';
|
|
|
2
2
|
|
|
3
3
|
import { Button } from './Button';
|
|
4
4
|
|
|
5
|
-
// More on how to set up stories at: https://storybook.js.org/docs/react/writing-stories/introduction
|
|
5
|
+
// More on how to set up stories at: https://storybook.js.org/docs/7.0/react/writing-stories/introduction
|
|
6
6
|
const meta: Meta<typeof Button> = {
|
|
7
7
|
title: 'Example/Button',
|
|
8
8
|
component: Button,
|
|
9
|
-
// This component will have an automatically generated docsPage entry: https://storybook.js.org/docs/react/writing-docs/docs-page
|
|
10
9
|
tags: ['docsPage'],
|
|
11
|
-
// More on argTypes: https://storybook.js.org/docs/react/api/argtypes
|
|
12
10
|
argTypes: {
|
|
13
11
|
backgroundColor: {
|
|
14
12
|
control: 'color',
|
|
@@ -19,7 +17,7 @@ const meta: Meta<typeof Button> = {
|
|
|
19
17
|
export default meta;
|
|
20
18
|
type Story = StoryObj<typeof Button>;
|
|
21
19
|
|
|
22
|
-
// More on
|
|
20
|
+
// More on writing stories with args: https://storybook.js.org/docs/7.0/react/writing-stories/args
|
|
23
21
|
export const Primary: Story = {
|
|
24
22
|
args: {
|
|
25
23
|
primary: true,
|
|
@@ -4,10 +4,10 @@ import { Header } from './Header';
|
|
|
4
4
|
const meta: Meta<typeof Header> = {
|
|
5
5
|
title: 'Example/Header',
|
|
6
6
|
component: Header,
|
|
7
|
-
// This component will have an automatically generated docsPage entry: https://storybook.js.org/docs/react/writing-docs/docs-page
|
|
7
|
+
// This component will have an automatically generated docsPage entry: https://storybook.js.org/docs/7.0/react/writing-docs/docs-page
|
|
8
8
|
tags: ['docsPage'],
|
|
9
9
|
parameters: {
|
|
10
|
-
// More on
|
|
10
|
+
// More on how to position stories at: https://storybook.js.org/docs/7.0/react/configure/story-layout
|
|
11
11
|
layout: 'fullscreen',
|
|
12
12
|
},
|
|
13
13
|
};
|
|
@@ -7,7 +7,7 @@ const meta: Meta<typeof Page> = {
|
|
|
7
7
|
title: 'Example/Page',
|
|
8
8
|
component: Page,
|
|
9
9
|
parameters: {
|
|
10
|
-
// More on
|
|
10
|
+
// More on how to position stories at: https://storybook.js.org/docs/7.0/react/configure/story-layout
|
|
11
11
|
layout: 'fullscreen',
|
|
12
12
|
},
|
|
13
13
|
};
|
|
@@ -17,7 +17,7 @@ type Story = StoryObj<typeof Page>;
|
|
|
17
17
|
|
|
18
18
|
export const LoggedOut: Story = {};
|
|
19
19
|
|
|
20
|
-
// More on interaction testing: https://storybook.js.org/docs/react/writing-tests/interaction-testing
|
|
20
|
+
// More on interaction testing: https://storybook.js.org/docs/7.0/react/writing-tests/interaction-testing
|
|
21
21
|
export const LoggedIn: Story = {
|
|
22
22
|
play: async ({ canvasElement }) => {
|
|
23
23
|
const canvas = within(canvasElement);
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
|
-
import { Button } from './Button';
|
|
4
|
-
|
|
5
|
-
// More on default export: https://storybook.js.org/docs/react/writing-stories/introduction#default-export
|
|
6
|
-
export default {
|
|
7
|
-
title: 'Example/Button',
|
|
8
|
-
component: Button,
|
|
9
|
-
// This component will have an automatically generated docsPage entry: https://storybook.js.org/docs/react/writing-docs/docs-page
|
|
10
|
-
tags: ['docsPage'],
|
|
11
|
-
// More on argTypes: https://storybook.js.org/docs/react/api/argtypes
|
|
12
|
-
argTypes: {
|
|
13
|
-
backgroundColor: { control: 'color' },
|
|
14
|
-
},
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
// More on component templates: https://storybook.js.org/docs/react/writing-stories/introduction#using-args
|
|
18
|
-
const Template = (args) => <Button {...args} />;
|
|
19
|
-
|
|
20
|
-
export const Primary = Template.bind({});
|
|
21
|
-
// More on args: https://storybook.js.org/docs/react/writing-stories/args
|
|
22
|
-
Primary.args = {
|
|
23
|
-
primary: true,
|
|
24
|
-
label: 'Button',
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
export const Secondary = Template.bind({});
|
|
28
|
-
Secondary.args = {
|
|
29
|
-
label: 'Button',
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
export const Large = Template.bind({});
|
|
33
|
-
Large.args = {
|
|
34
|
-
size: 'large',
|
|
35
|
-
label: 'Button',
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
export const Small = Template.bind({});
|
|
39
|
-
Small.args = {
|
|
40
|
-
size: 'small',
|
|
41
|
-
label: 'Button',
|
|
42
|
-
};
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
|
-
import { Header } from './Header';
|
|
4
|
-
|
|
5
|
-
export default {
|
|
6
|
-
title: 'Example/Header',
|
|
7
|
-
component: Header,
|
|
8
|
-
// This component will have an automatically generated docsPage entry: https://storybook.js.org/docs/react/writing-docs/docs-page
|
|
9
|
-
tags: ['docsPage'],
|
|
10
|
-
parameters: {
|
|
11
|
-
// More on Story layout: https://storybook.js.org/docs/react/configure/story-layout
|
|
12
|
-
layout: 'fullscreen',
|
|
13
|
-
},
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
const Template = (args) => <Header {...args} />;
|
|
17
|
-
|
|
18
|
-
export const LoggedIn = Template.bind({});
|
|
19
|
-
LoggedIn.args = {
|
|
20
|
-
user: {
|
|
21
|
-
name: 'Jane Doe',
|
|
22
|
-
},
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
export const LoggedOut = Template.bind({});
|
|
26
|
-
LoggedOut.args = {};
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { within, userEvent } from '@storybook/testing-library';
|
|
3
|
-
|
|
4
|
-
import { Page } from './Page';
|
|
5
|
-
|
|
6
|
-
export default {
|
|
7
|
-
title: 'Example/Page',
|
|
8
|
-
component: Page,
|
|
9
|
-
parameters: {
|
|
10
|
-
// More on Story layout: https://storybook.js.org/docs/react/configure/story-layout
|
|
11
|
-
layout: 'fullscreen',
|
|
12
|
-
},
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
const Template = (args) => <Page {...args} />;
|
|
16
|
-
|
|
17
|
-
// More on interaction testing: https://storybook.js.org/docs/react/writing-tests/interaction-testing
|
|
18
|
-
export const LoggedOut = Template.bind({});
|
|
19
|
-
|
|
20
|
-
export const LoggedIn = Template.bind({});
|
|
21
|
-
LoggedIn.play = async ({ canvasElement }) => {
|
|
22
|
-
const canvas = within(canvasElement);
|
|
23
|
-
const loginButton = await canvas.getByRole('button', { name: /Log in/i });
|
|
24
|
-
await userEvent.click(loginButton);
|
|
25
|
-
};
|