7.6.17 • Published 7 days ago

@storybook/store v7.6.17

Weekly downloads
-
License
MIT
Repository
github
Last release
7 days ago

Storybook Store

The store is reponsible for loading a story from a CSF file and preparing into a Story type, which is our internal format.

Story vs StoryContext

Story functions and decorators recieve a StoryContext<Framework> object (parameterized by their framework).

The Story type that we pass around in our code includes all of those fields apart from the args, globals, hooks and viewMode, which are mutable and stored separately in the store.

Identification

The first set of fields on a Story are the identifying fields for a story:

  • componentId - the URL "id" of the component
  • title - the title of the component, which generates the sidebar entry
  • id - the story "id" (in the URL)
  • name - the name of the story

Annotations

The main fields on a Story are the various annotations. Annotations can be set:

  • At the project level in preview.js (or via addons)
  • At the component level via export default { ... } in a CSF file
  • At the story level via export const Story = {...} in a CSF file.

Not all annotations can be set at every level but most can.

Parameters

The story parameters is a static, serializable object of data that provides details about the story. Those details can be used by addons or Storybook itself to render UI or provide defaults about the story rendering.

Parameters cannot change and are synchronized to the manager once when the story is loaded (note over the lifetime of a development Storybook a story can be loaded several times due to hot module reload, so the parameters technically can change for that reason).

Usually addons will read from a single key of parameters namespaced by the name of that addon. For instance the configuration of the backgrounds addon is driven by the parameters.backgrounds namespace.

Parameters are inheritable -- you can set project parameters via export parameters = {}, at the component level by the parameters key of the component (default) export in CSF, and on a single story via the parameters key on the story data.

Some notable parameters:

  • parameters.fileName - the file that the story was defined in, when available

Args

Args are "inputs" to stories.

You can think of them equivalently to React props, Angular inputs and outputs, etc.

Changing the args cause the story to be re-rendered with the new set of args.

Using args in a story

By default (starting in 6.0) the args will be passed to the story as first argument and the context as second:

const YourStory = ({ x, y } /*, context*/) => /* render your story using `x` and `y` */

If you set the parameters.options.passArgsFirst option on a story to false, args are passed to a story in the context, preserving the pre-6.0 story API; like parameters, they are available as context.args.

const YourStory = ({ args: { x, y }}) => /* render your story using `x` and `y` */

Arg types and values

Arg types are used by the docs addon to populate the props table and are documented there. They are controlled by argTypes and can (sometimes) be automatically inferred from type information about the story or the component rendered by the story.

A story can set initial values of its args with the args annotation. If you set an initial value for an arg that doesn't have a type a simple type will be inferred from the value.

If an arg doesn't have an initial value, it will start unset, although it can still be set later via user interaction.

Args can be set at the project, component and story level.

Using args in an addon

Args values are automatically synchronized (via the changeStoryArgs and storyArgsChanged events) between the preview and manager; APIs exist in lib/api to read and set args in the manager.

Args need to be serializable -- so currently cannot include callbacks (this may change in a future version).

Note that arg values are passed directly to a story -- you should only store the actual value that the story needs to render in the arg. If you need more complex information supporting that, use parameters or addon state.

Both @storybook/client-api (preview) and @storybook/api (manager) export a useArgs() hook that you can use to access args in decorators or addon panels. The API is as follows:

import { useArgs } from '@storybook/client-api'; // or '@storybook/api'

// `args` is the args of the currently rendered story
// `updateArgs` will update its args. You can pass a subset of the args; other args will not be changed.
const [args, updateArgs] = useArgs();

ArgTypes

Arg types add type information and metadata about args that are used to control the docs and controls addons.

ArgTypes enhancement

To add a argTypes enhancer, export const argTypesEnhancers = [] from preview.js or and addon

There is a default enhancer that ensures that each arg in a story has a baseline argType. This value can be improved by subsequent enhancers, e.g. those provided by @storybook/addon-docs.

Globals

Globals are rendering information that is global across stories. They are used for things like themes and internationalization (i18n) in stories, where you want Storybook to "remember" your setting as you browse between stories.

They can be accessed in stories and decorators in the context.globals key.

Initial values of globals

To set initial values of globals, export const globals = {...} from preview.js

Using globals in an addon

Similar to args, globals are synchronized to the manager and can be accessed via the useGlobals hook.

import { useGlobals } from '@storybook/addons'; // or '@storybook/api'

const [globals, updateGlobals] = useGlobals();
7.6.19

7 days ago

7.6.18

15 days ago

7.6.17

3 months ago

7.6.16

3 months ago

7.6.15

3 months ago

7.6.14

3 months ago

7.6.13

3 months ago

7.6.12

3 months ago

7.6.11

3 months ago

7.6.10

4 months ago

7.6.9

4 months ago

7.6.8

4 months ago

7.6.7

4 months ago

7.6.6

5 months ago

7.6.5

5 months ago

7.6.4

5 months ago

7.3.0-alpha.0

9 months ago

7.4.0-alpha.0

9 months ago

7.4.0-alpha.1

9 months ago

7.4.0-alpha.2

9 months ago

7.6.0-beta.2

6 months ago

7.1.0-rc.0

10 months ago

7.1.0-rc.1

10 months ago

7.1.0-rc.2

10 months ago

7.6.0-beta.0

6 months ago

7.6.0-beta.1

6 months ago

7.6.0-alpha.1

7 months ago

7.6.0-alpha.0

7 months ago

7.6.0-alpha.3

6 months ago

7.6.0-alpha.2

7 months ago

7.6.0-alpha.5

6 months ago

7.6.0-alpha.4

6 months ago

7.6.0-alpha.7

6 months ago

7.6.0-alpha.6

6 months ago

7.2.0-alpha.0

10 months ago

7.3.1

9 months ago

7.3.0

9 months ago

7.4.4

8 months ago

7.4.3

8 months ago

7.4.2

8 months ago

7.4.1

8 months ago

7.4.6

7 months ago

7.4.5

8 months ago

7.4.0

8 months ago

7.5.3

6 months ago

7.5.2

6 months ago

7.5.1

7 months ago

7.5.0

7 months ago

7.1.0-beta.0

10 months ago

7.1.0-beta.2

10 months ago

7.1.0-beta.1

10 months ago

7.1.0-beta.3

10 months ago

7.6.2

5 months ago

7.6.1

5 months ago

7.6.0

5 months ago

7.6.3

5 months ago

7.2.2-alpha.1

9 months ago

7.2.2-alpha.0

9 months ago

7.1.0-alpha.43

10 months ago

7.1.0-alpha.44

10 months ago

7.5.0-alpha.3

8 months ago

7.5.0-alpha.4

7 months ago

7.5.0-alpha.1

8 months ago

7.5.0-alpha.2

8 months ago

7.5.0-alpha.0

8 months ago

7.5.0-alpha.7

7 months ago

7.5.0-alpha.5

7 months ago

7.5.0-alpha.6

7 months ago

7.1.0-alpha.42

10 months ago

7.0.27

10 months ago

7.1.1

10 months ago

7.0.25

10 months ago

7.1.0

10 months ago

7.0.26

10 months ago

7.2.3

9 months ago

7.2.0-rc.0

10 months ago

7.2.2

9 months ago

7.2.1

9 months ago

7.2.0

9 months ago

7.3.2

9 months ago

7.1.0-alpha.41

11 months ago

7.1.0-alpha.40

11 months ago

7.0.24

11 months ago

7.0.19

11 months ago

7.1.0-alpha.32

11 months ago

7.1.0-alpha.33

11 months ago

7.1.0-alpha.34

11 months ago

7.1.0-alpha.35

11 months ago

7.1.0-alpha.36

11 months ago

7.1.0-alpha.37

11 months ago

7.1.0-alpha.38

11 months ago

7.1.0-alpha.39

11 months ago

7.1.0-alpha.30

11 months ago

7.1.0-alpha.31

11 months ago

7.1.0-alpha.28

11 months ago

7.1.0-alpha.29

11 months ago

7.0.23

11 months ago

7.0.21

11 months ago

7.0.22

11 months ago

7.0.20

11 months ago

7.0.12

12 months ago

7.0.13

12 months ago

7.0.10

1 year ago

7.0.11

12 months ago

7.0.18

12 months ago

7.0.16

12 months ago

7.0.17

12 months ago

7.0.14

12 months ago

7.0.15

12 months ago

7.1.0-alpha.20

12 months ago

7.1.0-alpha.12

1 year ago

7.1.0-alpha.13

1 year ago

7.1.0-alpha.14

1 year ago

7.1.0-alpha.15

12 months ago

7.1.0-alpha.16

12 months ago

7.1.0-alpha.17

12 months ago

7.1.0-alpha.18

12 months ago

7.1.0-alpha.19

12 months ago

7.0.8

1 year ago

7.0.9

1 year ago

7.1.0-alpha.21

12 months ago

7.1.0-alpha.22

12 months ago

7.1.0-alpha.23

12 months ago

7.1.0-alpha.24

12 months ago

7.1.0-alpha.25

12 months ago

7.1.0-alpha.26

11 months ago

7.1.0-alpha.27

11 months ago

7.0.0-beta.62

1 year ago

7.0.0-beta.63

1 year ago

7.0.0-beta.64

1 year ago

7.1.0-alpha.10

1 year ago

7.1.0-alpha.11

1 year ago

6.5.17-alpha.0

1 year ago

7.0.7

1 year ago

7.0.6

1 year ago

7.0.5

1 year ago

7.0.0-rc.8

1 year ago

7.0.0-rc.7

1 year ago

7.0.0-rc.9

1 year ago

7.0.0-rc.4

1 year ago

7.0.0-rc.3

1 year ago

7.0.0-rc.6

1 year ago

7.0.0-rc.5

1 year ago

7.0.0-rc.0

1 year ago

7.0.0-rc.2

1 year ago

7.0.0-rc.1

1 year ago

7.0.0

1 year ago

7.0.4

1 year ago

7.0.3

1 year ago

7.0.2

1 year ago

7.0.1

1 year ago

7.0.0-rc.11

1 year ago

7.0.0-rc.10

1 year ago

7.1.0-alpha.0

1 year ago

7.1.0-alpha.9

1 year ago

7.1.0-alpha.1

1 year ago

7.1.0-alpha.2

1 year ago

7.1.0-alpha.3

1 year ago

7.1.0-alpha.4

1 year ago

7.1.0-alpha.5

1 year ago

7.1.0-alpha.6

1 year ago

7.1.0-alpha.7

1 year ago

7.1.0-alpha.8

1 year ago

7.0.0-beta.60

1 year ago

7.0.0-beta.61

1 year ago

7.0.0-beta.55

1 year ago

7.0.0-beta.56

1 year ago

7.0.0-beta.57

1 year ago

7.0.0-beta.58

1 year ago

7.0.0-beta.59

1 year ago

7.0.0-beta.50

1 year ago

7.0.0-beta.51

1 year ago

7.0.0-beta.52

1 year ago

7.0.0-beta.53

1 year ago

7.0.0-beta.54

1 year ago

7.0.0-beta.47

1 year ago

7.0.0-beta.48

1 year ago

7.0.0-beta.49

1 year ago

7.0.0-beta.44

1 year ago

7.0.0-beta.45

1 year ago

7.0.0-beta.46

1 year ago

7.0.0-beta.40

1 year ago

7.0.0-beta.41

1 year ago

7.0.0-beta.42

1 year ago

7.0.0-beta.43

1 year ago

7.0.0-beta.38

1 year ago

7.0.0-beta.39

1 year ago

6.5.15

1 year ago

6.5.16

1 year ago

7.0.0-alpha.59

1 year ago

7.0.0-alpha.58

1 year ago

7.0.0-alpha.62

1 year ago

7.0.0-alpha.60

1 year ago

7.0.0-alpha.61

1 year ago

7.0.0-beta.33

1 year ago

7.0.0-beta.34

1 year ago

7.0.0-beta.35

1 year ago

7.0.0-beta.36

1 year ago

7.0.0-beta.30

1 year ago

7.0.0-beta.31

1 year ago

7.0.0-beta.32

1 year ago

6.5.15-alpha.1

1 year ago

6.5.15-alpha.0

1 year ago

7.0.0-beta.23

1 year ago

7.0.0-beta.24

1 year ago

7.0.0-beta.25

1 year ago

7.0.0-beta.20

1 year ago

7.0.0-beta.21

1 year ago

7.0.0-beta.26

1 year ago

7.0.0-beta.27

1 year ago

7.0.0-beta.28

1 year ago

7.0.0-beta.29

1 year ago

7.0.0-beta.11

1 year ago

7.0.0-beta.12

1 year ago

7.0.0-beta.13

1 year ago

7.0.0-beta.14

1 year ago

7.0.0-beta.10

1 year ago

7.0.0-beta.19

1 year ago

7.0.0-beta.15

1 year ago

7.0.0-beta.16

1 year ago

7.0.0-beta.17

1 year ago

7.0.0-beta.18

1 year ago

6.5.16-alpha.0

1 year ago

7.0.0-beta.6

1 year ago

7.0.0-beta.7

1 year ago

7.0.0-beta.4

1 year ago

7.0.0-beta.5

1 year ago

7.0.0-beta.8

1 year ago

7.0.0-beta.9

1 year ago

7.0.0-beta.2

1 year ago

7.0.0-beta.3

1 year ago

7.0.0-beta.0

1 year ago

7.0.0-beta.1

1 year ago

6.5.13

2 years ago

6.5.14

1 year ago

7.0.0-alpha.55

1 year ago

7.0.0-alpha.56

1 year ago

7.0.0-alpha.53

1 year ago

7.0.0-alpha.54

1 year ago

7.0.0-alpha.57

1 year ago

6.5.14-alpha.0

1 year ago

6.5.14-alpha.1

1 year ago

6.5.14-alpha.2

1 year ago

6.5.13-alpha.1

2 years ago

7.0.0-alpha.44

2 years ago

7.0.0-alpha.45

2 years ago

7.0.0-alpha.42

2 years ago

7.0.0-alpha.43

2 years ago

7.0.0-alpha.48

2 years ago

7.0.0-alpha.49

1 year ago

7.0.0-alpha.46

2 years ago

7.0.0-alpha.47

2 years ago

7.0.0-alpha.51

1 year ago

7.0.0-alpha.52

1 year ago

7.0.0-alpha.50

1 year ago

7.0.0-alpha.37

2 years ago

7.0.0-alpha.38

2 years ago

7.0.0-alpha.35

2 years ago

7.0.0-alpha.39

2 years ago

7.0.0-alpha.40

2 years ago

7.0.0-alpha.41

2 years ago

6.5.11

2 years ago

6.5.12

2 years ago

6.5.11-alpha.2

2 years ago

7.0.0-alpha.26

2 years ago

7.0.0-alpha.27

2 years ago

7.0.0-alpha.25

2 years ago

7.0.0-alpha.28

2 years ago

7.0.0-alpha.29

2 years ago

7.0.0-alpha.30

2 years ago

6.5.13-alpha.0

2 years ago

7.0.0-alpha.33

2 years ago

7.0.0-alpha.34

2 years ago

7.0.0-alpha.31

2 years ago

6.5.11-alpha.1

2 years ago

7.0.0-alpha.24

2 years ago

7.0.0-alpha.23

2 years ago

6.5.10

2 years ago

7.0.0-alpha.7

2 years ago

7.0.0-alpha.6

2 years ago

7.0.0-alpha.8

2 years ago

7.0.0-alpha.3

2 years ago

7.0.0-alpha.2

2 years ago

7.0.0-alpha.5

2 years ago

7.0.0-alpha.4

2 years ago

6.5.11-alpha.0

2 years ago

6.5.10-alpha.0

2 years ago

6.5.10-alpha.1

2 years ago

7.0.0-alpha.20

2 years ago

7.0.0-alpha.21

2 years ago

7.0.0-alpha.11

2 years ago

7.0.0-alpha.12

2 years ago

7.0.0-alpha.10

2 years ago

7.0.0-alpha.16

2 years ago

7.0.0-alpha.13

2 years ago

7.0.0-alpha.19

2 years ago

7.0.0-alpha.17

2 years ago

7.0.0-alpha.18

2 years ago

6.5.9-alpha.2

2 years ago

6.5.9

2 years ago

7.0.0-alpha.1

2 years ago

7.0.0-alpha.0

2 years ago

6.5.0

2 years ago

6.5.6-alpha.0

2 years ago

6.5.4-alpha.0

2 years ago

6.5.0-rc.0

2 years ago

6.5.7-alpha.0

2 years ago

6.5.0-rc.1

2 years ago

6.5.0-beta.8

2 years ago

6.5.0-beta.5

2 years ago

6.5.0-beta.4

2 years ago

6.5.0-beta.7

2 years ago

6.5.0-beta.6

2 years ago

6.5.0-beta.3

2 years ago

6.5.0-beta.2

2 years ago

6.5.5-alpha.0

2 years ago

6.5.5-alpha.3

2 years ago

6.5.5-alpha.2

2 years ago

6.5.8-alpha.0

2 years ago

6.5.9-alpha.0

2 years ago

6.5.9-alpha.1

2 years ago

6.5.2

2 years ago

6.5.4

2 years ago

6.5.3

2 years ago

6.5.6

2 years ago

6.5.5

2 years ago

6.5.8

2 years ago

6.5.7

2 years ago

6.5.0-beta.1

2 years ago

6.5.0-beta.0

2 years ago

6.5.0-alpha.55

2 years ago

6.5.0-alpha.56

2 years ago

6.4.21

2 years ago

6.5.0-alpha.57

2 years ago

6.5.0-alpha.58

2 years ago

6.5.0-alpha.59

2 years ago

6.4.22

2 years ago

6.5.0-alpha.60

2 years ago

6.5.0-alpha.61

2 years ago

6.5.0-alpha.62

2 years ago

6.5.0-alpha.63

2 years ago

6.5.0-alpha.64

2 years ago

6.5.0-alpha.52

2 years ago

6.5.0-alpha.53

2 years ago

6.5.0-alpha.54

2 years ago

6.4.20

2 years ago

6.5.0-alpha.48

2 years ago

6.5.0-alpha.49

2 years ago

6.5.0-alpha.50

2 years ago

6.5.0-alpha.51

2 years ago

6.5.0-alpha.43

2 years ago

6.5.0-alpha.44

2 years ago

6.5.0-alpha.45

2 years ago

6.5.0-alpha.46

2 years ago

6.5.0-alpha.47

2 years ago

6.5.0-alpha.10

2 years ago

6.5.0-alpha.11

2 years ago

6.5.0-alpha.12

2 years ago

6.5.0-alpha.7

2 years ago

6.5.0-alpha.6

2 years ago

6.5.0-alpha.9

2 years ago

6.5.0-alpha.13

2 years ago

6.5.0-alpha.14

2 years ago

6.5.0-alpha.15

2 years ago

6.5.0-alpha.16

2 years ago

6.5.0-alpha.17

2 years ago

6.5.0-alpha.18

2 years ago

6.5.0-alpha.19

2 years ago

6.5.0-alpha.20

2 years ago

6.5.0-alpha.21

2 years ago

6.5.0-alpha.22

2 years ago

6.5.0-alpha.23

2 years ago

6.5.0-alpha.24

2 years ago

6.5.0-alpha.25

2 years ago

6.5.0-alpha.26

2 years ago

6.5.0-alpha.27

2 years ago

6.5.0-alpha.28

2 years ago

6.5.0-alpha.29

2 years ago

6.5.0-alpha.30

2 years ago

6.5.0-alpha.31

2 years ago

6.5.0-alpha.32

2 years ago

6.5.0-alpha.33

2 years ago

6.5.0-alpha.34

2 years ago

6.5.0-alpha.35

2 years ago

6.5.0-alpha.36

2 years ago

6.5.0-alpha.38

2 years ago

6.5.0-alpha.39

2 years ago

6.5.0-alpha.40

2 years ago

6.5.0-alpha.41

2 years ago

6.5.0-alpha.42

2 years ago

6.4.18

2 years ago

6.4.17

2 years ago

6.4.19

2 years ago

6.4.10

2 years ago

6.4.12

2 years ago

6.4.14

2 years ago

6.4.13

2 years ago

6.4.16

2 years ago

6.4.15

2 years ago

6.4.3

2 years ago

6.4.2

2 years ago

6.4.5

2 years ago

6.4.4

2 years ago

6.4.7

2 years ago

6.4.9

2 years ago

6.4.8

2 years ago

6.5.0-alpha.1

2 years ago

6.5.0-alpha.3

2 years ago

6.5.0-alpha.2

2 years ago

6.5.0-alpha.5

2 years ago

6.4.1

2 years ago

6.5.0-alpha.4

2 years ago

6.4.0

2 years ago

6.4.0-beta.30

2 years ago

6.4.0-beta.31

2 years ago

6.4.0-beta.32

2 years ago

6.4.0-beta.33

2 years ago

6.4.0-rc.0

2 years ago

6.4.0-rc.1

2 years ago

6.4.0-rc.11

2 years ago

6.4.0-rc.4

2 years ago

6.4.0-rc.5

2 years ago

6.4.0-rc.2

2 years ago

6.4.0-rc.10

2 years ago

6.4.0-rc.3

2 years ago

6.4.0-rc.8

2 years ago

6.4.0-rc.9

2 years ago

6.4.0-rc.6

2 years ago

6.4.0-rc.7

2 years ago

6.4.0-beta.27

3 years ago

6.4.0-beta.28

3 years ago

6.4.0-beta.29

3 years ago

6.4.0-beta.24

3 years ago

6.4.0-beta.25

3 years ago

6.4.0-beta.26

3 years ago

6.4.0-beta.23

3 years ago

6.4.0-beta.21

3 years ago

6.4.0-beta.22

3 years ago

6.4.0-beta.16

3 years ago

6.4.0-beta.17

3 years ago

6.4.0-beta.18

3 years ago

6.4.0-beta.19

3 years ago

6.4.0-beta.12

3 years ago

6.4.0-beta.13

3 years ago

6.4.0-beta.14

3 years ago

6.4.0-beta.15

3 years ago

6.4.0-beta.10

3 years ago

6.4.0-beta.11

3 years ago

6.4.0-beta.9

3 years ago

6.4.0-beta.8

3 years ago

6.4.0-beta.20

3 years ago

6.4.0-beta.5

3 years ago

6.4.0-beta.6

3 years ago

6.4.0-beta.4

3 years ago

6.4.0-beta.7

3 years ago

6.4.0-beta.3

3 years ago

6.4.0-beta.2

3 years ago

6.4.0-beta.1

3 years ago

6.4.0-alpha.41

3 years ago

6.4.0-beta.0

3 years ago

6.4.0-alpha.40

3 years ago

6.4.0-alpha.39

3 years ago

6.4.0-alpha.37

3 years ago

6.4.0-alpha.36

3 years ago

6.4.0-alpha.38

3 years ago

6.4.0-alpha.35

3 years ago