@storybook/addon-docs 7.0.0-alpha.6 → 7.0.0-alpha.60
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/README.md +14 -77
- package/angular/index.js +1 -1
- package/dist/DocsRenderer-FLOC7YSC.mjs +1 -0
- package/dist/chunk-HXSBEJGO.mjs +1 -0
- package/dist/chunk-MA2MUXQN.mjs +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +1 -0
- package/dist/index.mjs +1 -0
- package/dist/preset.d.ts +5 -0
- package/dist/preset.js +7 -0
- package/dist/preset.mjs +7 -0
- package/dist/preview.d.ts +3 -0
- package/dist/preview.js +1 -0
- package/dist/preview.mjs +1 -0
- package/dist/shims/mdx-react-shim.d.ts +1 -0
- package/dist/shims/mdx-react-shim.js +1 -0
- package/dist/shims/mdx-react-shim.mjs +1 -0
- package/jest-transform-mdx.js +4 -3
- package/jest.config.js +7 -0
- package/package.json +80 -46
- package/preset.js +1 -1
- package/preview.js +2 -1
- package/web-components/README.md +1 -0
- package/LICENSE +0 -21
- package/blocks.d.ts +0 -2
- package/blocks.js +0 -14
- package/dist/cjs/blocks/Anchor.js +0 -23
- package/dist/cjs/blocks/ArgsTable.js +0 -329
- package/dist/cjs/blocks/Canvas.js +0 -119
- package/dist/cjs/blocks/Description.js +0 -126
- package/dist/cjs/blocks/DocsContainer.js +0 -134
- package/dist/cjs/blocks/DocsContext.js +0 -25
- package/dist/cjs/blocks/DocsPage.js +0 -30
- package/dist/cjs/blocks/DocsRenderer.js +0 -50
- package/dist/cjs/blocks/DocsStory.js +0 -68
- package/dist/cjs/blocks/ExternalDocsContainer.js +0 -64
- package/dist/cjs/blocks/ExternalPreview.js +0 -99
- package/dist/cjs/blocks/Heading.js +0 -31
- package/dist/cjs/blocks/Meta.js +0 -64
- package/dist/cjs/blocks/Preview.js +0 -23
- package/dist/cjs/blocks/Primary.js +0 -39
- package/dist/cjs/blocks/Props.js +0 -29
- package/dist/cjs/blocks/Source.js +0 -185
- package/dist/cjs/blocks/SourceContainer.js +0 -67
- package/dist/cjs/blocks/Stories.js +0 -51
- package/dist/cjs/blocks/Story.js +0 -152
- package/dist/cjs/blocks/Subheading.js +0 -31
- package/dist/cjs/blocks/Subtitle.js +0 -39
- package/dist/cjs/blocks/Title.js +0 -44
- package/dist/cjs/blocks/Wrapper.js +0 -20
- package/dist/cjs/blocks/enhanceSource.js +0 -92
- package/dist/cjs/blocks/index.js +0 -394
- package/dist/cjs/blocks/mdx.js +0 -234
- package/dist/cjs/blocks/types.js +0 -10
- package/dist/cjs/blocks/useStory.js +0 -44
- package/dist/cjs/blocks/utils.js +0 -40
- package/dist/cjs/index.js +0 -18
- package/dist/cjs/manager.js +0 -20
- package/dist/cjs/preset.js +0 -162
- package/dist/cjs/preview.js +0 -22
- package/dist/cjs/shared.js +0 -22
- package/dist/esm/blocks/Anchor.js +0 -8
- package/dist/esm/blocks/ArgsTable.js +0 -292
- package/dist/esm/blocks/Canvas.js +0 -93
- package/dist/esm/blocks/Description.js +0 -107
- package/dist/esm/blocks/DocsContainer.js +0 -105
- package/dist/esm/blocks/DocsContext.js +0 -16
- package/dist/esm/blocks/DocsPage.js +0 -11
- package/dist/esm/blocks/DocsRenderer.js +0 -32
- package/dist/esm/blocks/DocsStory.js +0 -46
- package/dist/esm/blocks/ExternalDocsContainer.js +0 -48
- package/dist/esm/blocks/ExternalPreview.js +0 -89
- package/dist/esm/blocks/Heading.js +0 -17
- package/dist/esm/blocks/Meta.js +0 -45
- package/dist/esm/blocks/Preview.js +0 -9
- package/dist/esm/blocks/Primary.js +0 -23
- package/dist/esm/blocks/Props.js +0 -14
- package/dist/esm/blocks/Source.js +0 -150
- package/dist/esm/blocks/SourceContainer.js +0 -44
- package/dist/esm/blocks/Stories.js +0 -30
- package/dist/esm/blocks/Story.js +0 -123
- package/dist/esm/blocks/Subheading.js +0 -17
- package/dist/esm/blocks/Subtitle.js +0 -23
- package/dist/esm/blocks/Title.js +0 -24
- package/dist/esm/blocks/Wrapper.js +0 -8
- package/dist/esm/blocks/enhanceSource.js +0 -87
- package/dist/esm/blocks/index.js +0 -27
- package/dist/esm/blocks/mdx.js +0 -203
- package/dist/esm/blocks/types.js +0 -2
- package/dist/esm/blocks/useStory.js +0 -34
- package/dist/esm/blocks/utils.js +0 -29
- package/dist/esm/index.js +0 -1
- package/dist/esm/manager.js +0 -16
- package/dist/esm/preset.js +0 -132
- package/dist/esm/preview.js +0 -10
- package/dist/esm/shared.js +0 -11
- package/dist/types/blocks/Anchor.d.ts +0 -6
- package/dist/types/blocks/ArgsTable.d.ts +0 -33
- package/dist/types/blocks/Canvas.d.ts +0 -9
- package/dist/types/blocks/Description.d.ts +0 -20
- package/dist/types/blocks/DocsContainer.d.ts +0 -7
- package/dist/types/blocks/DocsContext.d.ts +0 -5
- package/dist/types/blocks/DocsPage.d.ts +0 -2
- package/dist/types/blocks/DocsRenderer.d.ts +0 -7
- package/dist/types/blocks/DocsStory.d.ts +0 -3
- package/dist/types/blocks/ExternalDocsContainer.d.ts +0 -4
- package/dist/types/blocks/ExternalPreview.d.ts +0 -19
- package/dist/types/blocks/Heading.d.ts +0 -6
- package/dist/types/blocks/Meta.d.ts +0 -12
- package/dist/types/blocks/Preview.d.ts +0 -3
- package/dist/types/blocks/Primary.d.ts +0 -6
- package/dist/types/blocks/Props.d.ts +0 -3
- package/dist/types/blocks/Source.d.ts +0 -38
- package/dist/types/blocks/SourceContainer.d.ts +0 -14
- package/dist/types/blocks/Stories.d.ts +0 -7
- package/dist/types/blocks/Story.d.ts +0 -30
- package/dist/types/blocks/Subheading.d.ts +0 -3
- package/dist/types/blocks/Subtitle.d.ts +0 -6
- package/dist/types/blocks/Title.d.ts +0 -8
- package/dist/types/blocks/Wrapper.d.ts +0 -2
- package/dist/types/blocks/enhanceSource.d.ts +0 -3
- package/dist/types/blocks/index.d.ts +0 -26
- package/dist/types/blocks/mdx.d.ts +0 -20
- package/dist/types/blocks/types.d.ts +0 -13
- package/dist/types/blocks/useStory.d.ts +0 -5
- package/dist/types/blocks/utils.d.ts +0 -3
- package/dist/types/index.d.ts +0 -1
- package/dist/types/manager.d.ts +0 -1
- package/dist/types/preset.d.ts +0 -12
- package/dist/types/preview.d.ts +0 -5
- package/dist/types/shared.d.ts +0 -24
- package/manager.js +0 -1
- package/mdx-compiler-plugin.js +0 -1
- package/register.js +0 -6
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
import React, { useContext } from 'react';
|
|
2
|
-
import { Source as PureSource, SourceError } from '@storybook/components';
|
|
3
|
-
import { DocsContext } from './DocsContext';
|
|
4
|
-
import { SourceContext } from './SourceContainer';
|
|
5
|
-
import { CURRENT_SELECTION } from './types';
|
|
6
|
-
import { SourceType } from '../shared';
|
|
7
|
-
import { enhanceSource } from './enhanceSource';
|
|
8
|
-
import { useStories } from './useStory';
|
|
9
|
-
export let SourceState;
|
|
10
|
-
|
|
11
|
-
(function (SourceState) {
|
|
12
|
-
SourceState["OPEN"] = "open";
|
|
13
|
-
SourceState["CLOSED"] = "closed";
|
|
14
|
-
SourceState["NONE"] = "none";
|
|
15
|
-
})(SourceState || (SourceState = {}));
|
|
16
|
-
|
|
17
|
-
const getSourceState = stories => {
|
|
18
|
-
const states = stories.map(story => story.parameters.docs?.source?.state).filter(Boolean);
|
|
19
|
-
if (states.length === 0) return SourceState.CLOSED; // FIXME: handling multiple stories is a pain
|
|
20
|
-
|
|
21
|
-
return states[0];
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
const getStorySource = (storyId, sourceContext) => {
|
|
25
|
-
const {
|
|
26
|
-
sources
|
|
27
|
-
} = sourceContext; // source rendering is async so source is unavailable at the start of the render cycle,
|
|
28
|
-
// so we fail gracefully here without warning
|
|
29
|
-
|
|
30
|
-
return sources?.[storyId] || {
|
|
31
|
-
code: '',
|
|
32
|
-
format: false
|
|
33
|
-
};
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
const getSnippet = (snippet, story) => {
|
|
37
|
-
if (!story) {
|
|
38
|
-
return snippet;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
const {
|
|
42
|
-
parameters
|
|
43
|
-
} = story; // eslint-disable-next-line no-underscore-dangle
|
|
44
|
-
|
|
45
|
-
const isArgsStory = parameters.__isArgsStory;
|
|
46
|
-
const type = parameters.docs?.source?.type || SourceType.AUTO; // if user has hard-coded the snippet, that takes precedence
|
|
47
|
-
|
|
48
|
-
const userCode = parameters.docs?.source?.code;
|
|
49
|
-
|
|
50
|
-
if (userCode !== undefined) {
|
|
51
|
-
return userCode;
|
|
52
|
-
} // if user has explicitly set this as dynamic, use snippet
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
if (type === SourceType.DYNAMIC) {
|
|
56
|
-
return parameters.docs?.transformSource?.(snippet, story) || snippet;
|
|
57
|
-
} // if this is an args story and there's a snippet
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
if (type === SourceType.AUTO && snippet && isArgsStory) {
|
|
61
|
-
return parameters.docs?.transformSource?.(snippet, story) || snippet;
|
|
62
|
-
} // otherwise, use the source code logic
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
const enhanced = enhanceSource(story) || parameters;
|
|
66
|
-
return enhanced?.docs?.source?.code || '';
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
export const getSourceProps = (props, docsContext, sourceContext) => {
|
|
70
|
-
const {
|
|
71
|
-
id: currentId,
|
|
72
|
-
storyById
|
|
73
|
-
} = docsContext;
|
|
74
|
-
let parameters = {};
|
|
75
|
-
|
|
76
|
-
try {
|
|
77
|
-
({
|
|
78
|
-
parameters
|
|
79
|
-
} = storyById(currentId));
|
|
80
|
-
} catch (err) {// TODO: in external mode, there is no "current"
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
const codeProps = props;
|
|
84
|
-
const singleProps = props;
|
|
85
|
-
const multiProps = props;
|
|
86
|
-
let source = codeProps.code; // prefer user-specified code
|
|
87
|
-
|
|
88
|
-
let {
|
|
89
|
-
format
|
|
90
|
-
} = codeProps; // prefer user-specified code
|
|
91
|
-
|
|
92
|
-
const targetIds = multiProps.ids || [singleProps.id || currentId];
|
|
93
|
-
const storyIds = targetIds.map(targetId => targetId === CURRENT_SELECTION ? currentId : targetId);
|
|
94
|
-
const stories = useStories(storyIds, docsContext);
|
|
95
|
-
|
|
96
|
-
if (!stories.every(Boolean)) {
|
|
97
|
-
return {
|
|
98
|
-
error: SourceError.SOURCE_UNAVAILABLE,
|
|
99
|
-
state: SourceState.NONE
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
if (!source) {
|
|
104
|
-
// just take the format from the first story, given how they're all concatinated together...
|
|
105
|
-
// TODO: we should consider sending an event with all the sources separately, instead of concatenating them here
|
|
106
|
-
({
|
|
107
|
-
format
|
|
108
|
-
} = getStorySource(storyIds[0], sourceContext));
|
|
109
|
-
source = storyIds.map((storyId, idx) => {
|
|
110
|
-
const {
|
|
111
|
-
code: storySource
|
|
112
|
-
} = getStorySource(storyId, sourceContext);
|
|
113
|
-
const storyObj = stories[idx];
|
|
114
|
-
return getSnippet(storySource, storyObj);
|
|
115
|
-
}).join('\n\n');
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
const state = getSourceState(stories);
|
|
119
|
-
const {
|
|
120
|
-
docs: docsParameters = {}
|
|
121
|
-
} = parameters;
|
|
122
|
-
const {
|
|
123
|
-
source: sourceParameters = {}
|
|
124
|
-
} = docsParameters;
|
|
125
|
-
const {
|
|
126
|
-
language: docsLanguage = null
|
|
127
|
-
} = sourceParameters;
|
|
128
|
-
return source ? {
|
|
129
|
-
code: source,
|
|
130
|
-
state,
|
|
131
|
-
format,
|
|
132
|
-
language: props.language || docsLanguage || 'jsx',
|
|
133
|
-
dark: props.dark || false
|
|
134
|
-
} : {
|
|
135
|
-
error: SourceError.SOURCE_UNAVAILABLE,
|
|
136
|
-
state
|
|
137
|
-
};
|
|
138
|
-
};
|
|
139
|
-
/**
|
|
140
|
-
* Story source doc block renders source code if provided,
|
|
141
|
-
* or the source for a story if `storyId` is provided, or
|
|
142
|
-
* the source for the current story if nothing is provided.
|
|
143
|
-
*/
|
|
144
|
-
|
|
145
|
-
export const Source = props => {
|
|
146
|
-
const sourceContext = useContext(SourceContext);
|
|
147
|
-
const docsContext = useContext(DocsContext);
|
|
148
|
-
const sourceProps = getSourceProps(props, docsContext, sourceContext);
|
|
149
|
-
return /*#__PURE__*/React.createElement(PureSource, sourceProps);
|
|
150
|
-
};
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import React, { createContext, useEffect, useState } from 'react';
|
|
2
|
-
import deepEqual from 'fast-deep-equal';
|
|
3
|
-
import { addons } from '@storybook/addons';
|
|
4
|
-
import { SNIPPET_RENDERED } from '../shared';
|
|
5
|
-
export const SourceContext = /*#__PURE__*/createContext({
|
|
6
|
-
sources: {}
|
|
7
|
-
});
|
|
8
|
-
export const SourceContainer = ({
|
|
9
|
-
children
|
|
10
|
-
}) => {
|
|
11
|
-
const [sources, setSources] = useState({});
|
|
12
|
-
const channel = addons.getChannel();
|
|
13
|
-
useEffect(() => {
|
|
14
|
-
const handleSnippetRendered = (id, newSource, format = false) => {
|
|
15
|
-
// optimization: if the source is the same, ignore the incoming event
|
|
16
|
-
if (sources[id] && sources[id].code === newSource) {
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
setSources(current => {
|
|
21
|
-
const newSources = Object.assign({}, current, {
|
|
22
|
-
[id]: {
|
|
23
|
-
code: newSource,
|
|
24
|
-
format
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
if (!deepEqual(current, newSources)) {
|
|
29
|
-
return newSources;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return current;
|
|
33
|
-
});
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
channel.on(SNIPPET_RENDERED, handleSnippetRendered);
|
|
37
|
-
return () => channel.off(SNIPPET_RENDERED, handleSnippetRendered);
|
|
38
|
-
}, []);
|
|
39
|
-
return /*#__PURE__*/React.createElement(SourceContext.Provider, {
|
|
40
|
-
value: {
|
|
41
|
-
sources
|
|
42
|
-
}
|
|
43
|
-
}, children);
|
|
44
|
-
};
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
|
-
|
|
3
|
-
import React, { useContext } from 'react';
|
|
4
|
-
import { DocsContext } from './DocsContext';
|
|
5
|
-
import { DocsStory } from './DocsStory';
|
|
6
|
-
import { Heading } from './Heading';
|
|
7
|
-
export const Stories = ({
|
|
8
|
-
title,
|
|
9
|
-
includePrimary = false
|
|
10
|
-
}) => {
|
|
11
|
-
const {
|
|
12
|
-
componentStories
|
|
13
|
-
} = useContext(DocsContext);
|
|
14
|
-
let stories = componentStories();
|
|
15
|
-
stories = stories.filter(story => !story.parameters?.docs?.disable);
|
|
16
|
-
if (!includePrimary) stories = stories.slice(1);
|
|
17
|
-
|
|
18
|
-
if (!stories || stories.length === 0) {
|
|
19
|
-
return null;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Heading, null, title), stories.map(story => story && /*#__PURE__*/React.createElement(DocsStory, _extends({
|
|
23
|
-
key: story.id
|
|
24
|
-
}, story, {
|
|
25
|
-
expanded: true
|
|
26
|
-
}))));
|
|
27
|
-
};
|
|
28
|
-
Stories.defaultProps = {
|
|
29
|
-
title: 'Stories'
|
|
30
|
-
};
|
package/dist/esm/blocks/Story.js
DELETED
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import React, { useContext, useRef, useEffect, useState } from 'react';
|
|
2
|
-
import { MDXProvider } from '@mdx-js/react';
|
|
3
|
-
import { resetComponents, Story as PureStory, StorySkeleton } from '@storybook/components';
|
|
4
|
-
import { toId, storyNameFromExport } from '@storybook/csf';
|
|
5
|
-
import { CURRENT_SELECTION } from './types';
|
|
6
|
-
import { DocsContext } from './DocsContext';
|
|
7
|
-
import { useStory } from './useStory';
|
|
8
|
-
export const storyBlockIdFromId = storyId => `story--${storyId}`;
|
|
9
|
-
export const lookupStoryId = (storyName, {
|
|
10
|
-
mdxStoryNameToKey,
|
|
11
|
-
mdxComponentAnnotations
|
|
12
|
-
}) => toId(mdxComponentAnnotations.id || mdxComponentAnnotations.title, storyNameFromExport(mdxStoryNameToKey[storyName]));
|
|
13
|
-
export const getStoryId = (props, context) => {
|
|
14
|
-
const {
|
|
15
|
-
id,
|
|
16
|
-
of,
|
|
17
|
-
meta
|
|
18
|
-
} = props;
|
|
19
|
-
|
|
20
|
-
if (of) {
|
|
21
|
-
return context.storyIdByModuleExport(of, meta);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const {
|
|
25
|
-
name
|
|
26
|
-
} = props;
|
|
27
|
-
const inputId = id === CURRENT_SELECTION ? context.id : id;
|
|
28
|
-
return inputId || lookupStoryId(name, context);
|
|
29
|
-
};
|
|
30
|
-
export const getStoryProps = ({
|
|
31
|
-
height,
|
|
32
|
-
inline
|
|
33
|
-
}, story) => {
|
|
34
|
-
const {
|
|
35
|
-
name: storyName,
|
|
36
|
-
parameters = {}
|
|
37
|
-
} = story || {};
|
|
38
|
-
const {
|
|
39
|
-
docs = {}
|
|
40
|
-
} = parameters;
|
|
41
|
-
|
|
42
|
-
if (docs.disable) {
|
|
43
|
-
return null;
|
|
44
|
-
} // prefer block props, then story parameters defined by the framework-specific settings and optionally overridden by users
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const {
|
|
48
|
-
inlineStories = false,
|
|
49
|
-
iframeHeight = 100
|
|
50
|
-
} = docs;
|
|
51
|
-
const storyIsInline = typeof inline === 'boolean' ? inline : inlineStories;
|
|
52
|
-
return Object.assign({
|
|
53
|
-
inline: storyIsInline,
|
|
54
|
-
id: story?.id,
|
|
55
|
-
height: height || (storyIsInline ? undefined : iframeHeight),
|
|
56
|
-
title: storyName
|
|
57
|
-
}, storyIsInline && {
|
|
58
|
-
parameters
|
|
59
|
-
});
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
const Story = props => {
|
|
63
|
-
const context = useContext(DocsContext);
|
|
64
|
-
const storyRef = useRef();
|
|
65
|
-
const storyId = getStoryId(props, context);
|
|
66
|
-
const story = useStory(storyId, context);
|
|
67
|
-
const [showLoader, setShowLoader] = useState(true);
|
|
68
|
-
useEffect(() => {
|
|
69
|
-
let cleanup;
|
|
70
|
-
|
|
71
|
-
if (story && storyRef.current) {
|
|
72
|
-
const element = storyRef.current;
|
|
73
|
-
cleanup = context.renderStoryToElement(story, element);
|
|
74
|
-
setShowLoader(false);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
return () => cleanup && cleanup();
|
|
78
|
-
}, [story]);
|
|
79
|
-
|
|
80
|
-
if (!story) {
|
|
81
|
-
return /*#__PURE__*/React.createElement(StorySkeleton, null);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
const storyProps = getStoryProps(props, story);
|
|
85
|
-
|
|
86
|
-
if (!storyProps) {
|
|
87
|
-
return null;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
const inline = context.type === 'external' || storyProps.inline;
|
|
91
|
-
|
|
92
|
-
if (inline) {
|
|
93
|
-
// We do this so React doesn't complain when we replace the span in a secondary render
|
|
94
|
-
const htmlContents = `<span></span>`; // FIXME: height/style/etc. lifted from PureStory
|
|
95
|
-
|
|
96
|
-
const {
|
|
97
|
-
height
|
|
98
|
-
} = storyProps;
|
|
99
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
100
|
-
id: storyBlockIdFromId(story.id)
|
|
101
|
-
}, /*#__PURE__*/React.createElement(MDXProvider, {
|
|
102
|
-
components: resetComponents
|
|
103
|
-
}, height ? /*#__PURE__*/React.createElement("style", null, `#story--${story.id} { min-height: ${height}px; transform: translateZ(0); overflow: auto }`) : null, showLoader && /*#__PURE__*/React.createElement(StorySkeleton, null), /*#__PURE__*/React.createElement("div", {
|
|
104
|
-
ref: storyRef,
|
|
105
|
-
"data-name": story.name,
|
|
106
|
-
dangerouslySetInnerHTML: {
|
|
107
|
-
__html: htmlContents
|
|
108
|
-
}
|
|
109
|
-
})));
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
113
|
-
id: storyBlockIdFromId(story.id)
|
|
114
|
-
}, /*#__PURE__*/React.createElement(MDXProvider, {
|
|
115
|
-
components: resetComponents
|
|
116
|
-
}, /*#__PURE__*/React.createElement(PureStory, storyProps)));
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
Story.defaultProps = {
|
|
120
|
-
children: null,
|
|
121
|
-
name: null
|
|
122
|
-
};
|
|
123
|
-
export { Story };
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { H3 } from '@storybook/components';
|
|
3
|
-
import { HeaderMdx } from './mdx';
|
|
4
|
-
export const Subheading = ({
|
|
5
|
-
children,
|
|
6
|
-
disableAnchor
|
|
7
|
-
}) => {
|
|
8
|
-
if (disableAnchor || typeof children !== 'string') {
|
|
9
|
-
return /*#__PURE__*/React.createElement(H3, null, children);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const tagID = children.toLowerCase().replace(/[^a-z0-9]/gi, '-');
|
|
13
|
-
return /*#__PURE__*/React.createElement(HeaderMdx, {
|
|
14
|
-
as: "h3",
|
|
15
|
-
id: tagID
|
|
16
|
-
}, children);
|
|
17
|
-
};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import React, { useContext } from 'react';
|
|
2
|
-
import { Subtitle as PureSubtitle } from '@storybook/components';
|
|
3
|
-
import { DocsContext } from './DocsContext';
|
|
4
|
-
export const Subtitle = ({
|
|
5
|
-
children
|
|
6
|
-
}) => {
|
|
7
|
-
const {
|
|
8
|
-
id,
|
|
9
|
-
storyById
|
|
10
|
-
} = useContext(DocsContext);
|
|
11
|
-
const {
|
|
12
|
-
parameters
|
|
13
|
-
} = storyById(id);
|
|
14
|
-
let text = children;
|
|
15
|
-
|
|
16
|
-
if (!text) {
|
|
17
|
-
text = parameters?.componentSubtitle;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
return text ? /*#__PURE__*/React.createElement(PureSubtitle, {
|
|
21
|
-
className: "sbdocs-subtitle"
|
|
22
|
-
}, text) : null;
|
|
23
|
-
};
|
package/dist/esm/blocks/Title.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import React, { useContext } from 'react';
|
|
2
|
-
import { Title as PureTitle } from '@storybook/components';
|
|
3
|
-
import { DocsContext } from './DocsContext';
|
|
4
|
-
const STORY_KIND_PATH_SEPARATOR = /\s*\/\s*/;
|
|
5
|
-
export const extractTitle = ({
|
|
6
|
-
title
|
|
7
|
-
}) => {
|
|
8
|
-
const groups = title.trim().split(STORY_KIND_PATH_SEPARATOR);
|
|
9
|
-
return groups && groups[groups.length - 1] || title;
|
|
10
|
-
};
|
|
11
|
-
export const Title = ({
|
|
12
|
-
children
|
|
13
|
-
}) => {
|
|
14
|
-
const context = useContext(DocsContext);
|
|
15
|
-
let text = children;
|
|
16
|
-
|
|
17
|
-
if (!text) {
|
|
18
|
-
text = extractTitle(context);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
return text ? /*#__PURE__*/React.createElement(PureTitle, {
|
|
22
|
-
className: "sbdocs-title"
|
|
23
|
-
}, text) : null;
|
|
24
|
-
};
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { combineParameters } from '@storybook/store'; // ============================================================
|
|
2
|
-
// START @storybook/source-loader/extract-source
|
|
3
|
-
//
|
|
4
|
-
// This code duplicated because tree-shaking isn't working.
|
|
5
|
-
// It's not DRY, but source-loader is on the chopping block for
|
|
6
|
-
// the next version of addon-docs, so it's not the worst sin.
|
|
7
|
-
// ============================================================
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* given a location, extract the text from the full source
|
|
11
|
-
*/
|
|
12
|
-
function extractSource(location, lines) {
|
|
13
|
-
const {
|
|
14
|
-
startBody: start,
|
|
15
|
-
endBody: end
|
|
16
|
-
} = location;
|
|
17
|
-
|
|
18
|
-
if (start.line === end.line && lines[start.line - 1] !== undefined) {
|
|
19
|
-
return lines[start.line - 1].substring(start.col, end.col);
|
|
20
|
-
} // NOTE: storysource locations are 1-based not 0-based!
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const startLine = lines[start.line - 1];
|
|
24
|
-
const endLine = lines[end.line - 1];
|
|
25
|
-
|
|
26
|
-
if (startLine === undefined || endLine === undefined) {
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return [startLine.substring(start.col), ...lines.slice(start.line, end.line - 1), endLine.substring(0, end.col)].join('\n');
|
|
31
|
-
} // ============================================================
|
|
32
|
-
// END @storybook/source-loader/extract-source
|
|
33
|
-
// ============================================================
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Replaces full story id name like: story-kind--story-name -> story-name
|
|
38
|
-
* @param id
|
|
39
|
-
*/
|
|
40
|
-
const storyIdToSanitizedStoryName = id => id.replace(/^.*?--/, '');
|
|
41
|
-
|
|
42
|
-
const extract = (targetId, {
|
|
43
|
-
source,
|
|
44
|
-
locationsMap
|
|
45
|
-
}) => {
|
|
46
|
-
if (!locationsMap) {
|
|
47
|
-
return source;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
const sanitizedStoryName = storyIdToSanitizedStoryName(targetId);
|
|
51
|
-
const location = locationsMap[sanitizedStoryName];
|
|
52
|
-
|
|
53
|
-
if (!location) {
|
|
54
|
-
return source;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
const lines = source.split('\n');
|
|
58
|
-
return extractSource(location, lines);
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
export const enhanceSource = story => {
|
|
62
|
-
const {
|
|
63
|
-
id,
|
|
64
|
-
parameters
|
|
65
|
-
} = story;
|
|
66
|
-
const {
|
|
67
|
-
storySource,
|
|
68
|
-
docs = {}
|
|
69
|
-
} = parameters;
|
|
70
|
-
const {
|
|
71
|
-
transformSource
|
|
72
|
-
} = docs; // no input or user has manually overridden the output
|
|
73
|
-
|
|
74
|
-
if (!storySource?.source || docs.source?.code) {
|
|
75
|
-
return null;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
const input = extract(id, storySource);
|
|
79
|
-
const code = transformSource ? transformSource(input, story) : input;
|
|
80
|
-
return {
|
|
81
|
-
docs: combineParameters(docs, {
|
|
82
|
-
source: {
|
|
83
|
-
code
|
|
84
|
-
}
|
|
85
|
-
})
|
|
86
|
-
};
|
|
87
|
-
};
|
package/dist/esm/blocks/index.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
export { ColorPalette, ColorItem, IconGallery, IconItem, Typeset } from '@storybook/components';
|
|
2
|
-
export * from './Anchor';
|
|
3
|
-
export * from './ArgsTable';
|
|
4
|
-
export * from './Canvas';
|
|
5
|
-
export * from './Description';
|
|
6
|
-
export * from './DocsContext';
|
|
7
|
-
export * from './DocsPage';
|
|
8
|
-
export * from './DocsContainer';
|
|
9
|
-
export * from './DocsRenderer'; // For testing
|
|
10
|
-
|
|
11
|
-
export * from './ExternalDocsContainer';
|
|
12
|
-
export * from './DocsStory';
|
|
13
|
-
export * from './Heading';
|
|
14
|
-
export * from './Meta';
|
|
15
|
-
export * from './Preview';
|
|
16
|
-
export * from './Primary';
|
|
17
|
-
export * from './Props';
|
|
18
|
-
export * from './Source';
|
|
19
|
-
export * from './SourceContainer';
|
|
20
|
-
export * from './Stories';
|
|
21
|
-
export * from './Story';
|
|
22
|
-
export * from './Subheading';
|
|
23
|
-
export * from './Subtitle';
|
|
24
|
-
export * from './Title';
|
|
25
|
-
export * from './Wrapper';
|
|
26
|
-
export * from './types';
|
|
27
|
-
export * from './mdx';
|