@storybook/vue3 7.0.0-alpha.1 → 7.0.0-alpha.4
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/cjs/config.js +3 -11
- package/dist/cjs/docs/config.js +2 -5
- package/dist/cjs/docs/extractArgTypes.js +23 -32
- package/dist/cjs/index.js +16 -29
- package/dist/cjs/preview/config.js +4 -4
- package/dist/cjs/preview/decorateStory.js +18 -27
- package/dist/cjs/preview/globals.js +3 -1
- package/dist/cjs/preview/index.js +32 -27
- package/dist/cjs/preview/render.js +50 -48
- package/dist/esm/docs/config.js +0 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/preview/index.js +2 -3
- package/dist/esm/preview/render.js +28 -22
- package/dist/types/config.d.ts +0 -1
- package/dist/types/docs/config.d.ts +0 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/preview/index.d.ts +1 -2
- package/dist/types/preview/render.d.ts +2 -3
- package/package.json +6 -7
- package/dist/cjs/docs/prepareForInline.js +0 -61
- package/dist/esm/docs/prepareForInline.js +0 -22
- package/dist/types/docs/prepareForInline.d.ts +0 -4
package/dist/cjs/config.js
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
require("core-js/modules/es.object.to-string.js");
|
|
4
|
-
|
|
5
|
-
require("core-js/modules/web.dom-collections.for-each.js");
|
|
6
|
-
|
|
7
|
-
require("core-js/modules/es.object.keys.js");
|
|
8
|
-
|
|
9
3
|
Object.defineProperty(exports, "__esModule", {
|
|
10
4
|
value: true
|
|
11
5
|
});
|
|
@@ -15,14 +9,12 @@ var _exportNames = {
|
|
|
15
9
|
};
|
|
16
10
|
Object.defineProperty(exports, "argTypesEnhancers", {
|
|
17
11
|
enumerable: true,
|
|
18
|
-
get: function
|
|
12
|
+
get: function () {
|
|
19
13
|
return _config.argTypesEnhancers;
|
|
20
14
|
}
|
|
21
15
|
});
|
|
22
16
|
exports.parameters = void 0;
|
|
23
17
|
|
|
24
|
-
require("core-js/modules/es.object.assign.js");
|
|
25
|
-
|
|
26
18
|
var _config = require("./docs/config");
|
|
27
19
|
|
|
28
20
|
var _config2 = require("./preview/config");
|
|
@@ -33,12 +25,12 @@ Object.keys(_config2).forEach(function (key) {
|
|
|
33
25
|
if (key in exports && exports[key] === _config2[key]) return;
|
|
34
26
|
Object.defineProperty(exports, key, {
|
|
35
27
|
enumerable: true,
|
|
36
|
-
get: function
|
|
28
|
+
get: function () {
|
|
37
29
|
return _config2[key];
|
|
38
30
|
}
|
|
39
31
|
});
|
|
40
32
|
});
|
|
41
|
-
|
|
33
|
+
const parameters = Object.assign({
|
|
42
34
|
framework: 'vue3'
|
|
43
35
|
}, _config.parameters);
|
|
44
36
|
exports.parameters = parameters;
|
package/dist/cjs/docs/config.js
CHANGED
|
@@ -9,16 +9,13 @@ var _docsTools = require("@storybook/docs-tools");
|
|
|
9
9
|
|
|
10
10
|
var _extractArgTypes = require("./extractArgTypes");
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
var parameters = {
|
|
12
|
+
const parameters = {
|
|
15
13
|
docs: {
|
|
16
14
|
inlineStories: true,
|
|
17
|
-
prepareForInline: _prepareForInline.prepareForInline,
|
|
18
15
|
extractArgTypes: _extractArgTypes.extractArgTypes,
|
|
19
16
|
extractComponentDescription: _docsTools.extractComponentDescription
|
|
20
17
|
}
|
|
21
18
|
};
|
|
22
19
|
exports.parameters = parameters;
|
|
23
|
-
|
|
20
|
+
const argTypesEnhancers = [_docsTools.enhanceArgTypes];
|
|
24
21
|
exports.argTypesEnhancers = argTypesEnhancers;
|
|
@@ -5,51 +5,42 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.extractArgTypes = void 0;
|
|
7
7
|
|
|
8
|
-
require("core-js/modules/es.object.to-string.js");
|
|
9
|
-
|
|
10
|
-
require("core-js/modules/web.dom-collections.for-each.js");
|
|
11
|
-
|
|
12
|
-
require("core-js/modules/es.function.name.js");
|
|
13
|
-
|
|
14
|
-
require("core-js/modules/es.symbol.js");
|
|
15
|
-
|
|
16
|
-
require("core-js/modules/es.symbol.description.js");
|
|
17
|
-
|
|
18
|
-
require("core-js/modules/es.object.assign.js");
|
|
19
|
-
|
|
20
8
|
var _docsTools = require("@storybook/docs-tools");
|
|
21
9
|
|
|
22
|
-
|
|
10
|
+
const SECTIONS = ['props', 'events', 'slots'];
|
|
23
11
|
|
|
24
|
-
|
|
12
|
+
const extractArgTypes = component => {
|
|
25
13
|
if (!(0, _docsTools.hasDocgen)(component)) {
|
|
26
14
|
return null;
|
|
27
15
|
}
|
|
28
16
|
|
|
29
|
-
|
|
30
|
-
SECTIONS.forEach(
|
|
31
|
-
|
|
32
|
-
props.forEach(
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
17
|
+
const results = {};
|
|
18
|
+
SECTIONS.forEach(section => {
|
|
19
|
+
const props = (0, _docsTools.extractComponentProps)(component, section);
|
|
20
|
+
props.forEach(({
|
|
21
|
+
propDef,
|
|
22
|
+
docgenInfo,
|
|
23
|
+
jsDocTags
|
|
24
|
+
}) => {
|
|
25
|
+
const {
|
|
26
|
+
name,
|
|
27
|
+
type,
|
|
28
|
+
description,
|
|
29
|
+
defaultValue: defaultSummary,
|
|
30
|
+
required
|
|
31
|
+
} = propDef;
|
|
32
|
+
const sbType = section === 'props' ? (0, _docsTools.convert)(docgenInfo) : {
|
|
42
33
|
name: 'void'
|
|
43
34
|
};
|
|
44
35
|
results[name] = {
|
|
45
|
-
name
|
|
46
|
-
description
|
|
36
|
+
name,
|
|
37
|
+
description,
|
|
47
38
|
type: Object.assign({
|
|
48
|
-
required
|
|
39
|
+
required
|
|
49
40
|
}, sbType),
|
|
50
41
|
table: {
|
|
51
|
-
type
|
|
52
|
-
jsDocTags
|
|
42
|
+
type,
|
|
43
|
+
jsDocTags,
|
|
53
44
|
defaultValue: defaultSummary,
|
|
54
45
|
category: section
|
|
55
46
|
}
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
require("core-js/modules/es.object.to-string.js");
|
|
4
|
-
|
|
5
|
-
require("core-js/modules/web.dom-collections.for-each.js");
|
|
6
|
-
|
|
7
|
-
require("core-js/modules/es.object.keys.js");
|
|
8
|
-
|
|
9
3
|
Object.defineProperty(exports, "__esModule", {
|
|
10
4
|
value: true
|
|
11
5
|
});
|
|
@@ -18,66 +12,59 @@ var _exportNames = {
|
|
|
18
12
|
getStorybook: true,
|
|
19
13
|
forceReRender: true,
|
|
20
14
|
raw: true,
|
|
21
|
-
|
|
22
|
-
activeStoryComponent: true
|
|
15
|
+
setup: true
|
|
23
16
|
};
|
|
24
|
-
Object.defineProperty(exports, "activeStoryComponent", {
|
|
25
|
-
enumerable: true,
|
|
26
|
-
get: function get() {
|
|
27
|
-
return _preview.activeStoryComponent;
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
17
|
Object.defineProperty(exports, "addDecorator", {
|
|
31
18
|
enumerable: true,
|
|
32
|
-
get: function
|
|
19
|
+
get: function () {
|
|
33
20
|
return _preview.addDecorator;
|
|
34
21
|
}
|
|
35
22
|
});
|
|
36
23
|
Object.defineProperty(exports, "addParameters", {
|
|
37
24
|
enumerable: true,
|
|
38
|
-
get: function
|
|
25
|
+
get: function () {
|
|
39
26
|
return _preview.addParameters;
|
|
40
27
|
}
|
|
41
28
|
});
|
|
42
|
-
Object.defineProperty(exports, "app", {
|
|
43
|
-
enumerable: true,
|
|
44
|
-
get: function get() {
|
|
45
|
-
return _preview.app;
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
29
|
Object.defineProperty(exports, "configure", {
|
|
49
30
|
enumerable: true,
|
|
50
|
-
get: function
|
|
31
|
+
get: function () {
|
|
51
32
|
return _preview.configure;
|
|
52
33
|
}
|
|
53
34
|
});
|
|
54
35
|
Object.defineProperty(exports, "forceReRender", {
|
|
55
36
|
enumerable: true,
|
|
56
|
-
get: function
|
|
37
|
+
get: function () {
|
|
57
38
|
return _preview.forceReRender;
|
|
58
39
|
}
|
|
59
40
|
});
|
|
60
41
|
Object.defineProperty(exports, "getStorybook", {
|
|
61
42
|
enumerable: true,
|
|
62
|
-
get: function
|
|
43
|
+
get: function () {
|
|
63
44
|
return _preview.getStorybook;
|
|
64
45
|
}
|
|
65
46
|
});
|
|
66
47
|
Object.defineProperty(exports, "raw", {
|
|
67
48
|
enumerable: true,
|
|
68
|
-
get: function
|
|
49
|
+
get: function () {
|
|
69
50
|
return _preview.raw;
|
|
70
51
|
}
|
|
71
52
|
});
|
|
72
53
|
Object.defineProperty(exports, "setAddon", {
|
|
73
54
|
enumerable: true,
|
|
74
|
-
get: function
|
|
55
|
+
get: function () {
|
|
75
56
|
return _preview.setAddon;
|
|
76
57
|
}
|
|
77
58
|
});
|
|
59
|
+
Object.defineProperty(exports, "setup", {
|
|
60
|
+
enumerable: true,
|
|
61
|
+
get: function () {
|
|
62
|
+
return _preview.setup;
|
|
63
|
+
}
|
|
64
|
+
});
|
|
78
65
|
Object.defineProperty(exports, "storiesOf", {
|
|
79
66
|
enumerable: true,
|
|
80
|
-
get: function
|
|
67
|
+
get: function () {
|
|
81
68
|
return _preview.storiesOf;
|
|
82
69
|
}
|
|
83
70
|
});
|
|
@@ -92,7 +79,7 @@ Object.keys(_types).forEach(function (key) {
|
|
|
92
79
|
if (key in exports && exports[key] === _types[key]) return;
|
|
93
80
|
Object.defineProperty(exports, key, {
|
|
94
81
|
enumerable: true,
|
|
95
|
-
get: function
|
|
82
|
+
get: function () {
|
|
96
83
|
return _types[key];
|
|
97
84
|
}
|
|
98
85
|
});
|
|
@@ -5,20 +5,20 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
Object.defineProperty(exports, "applyDecorators", {
|
|
7
7
|
enumerable: true,
|
|
8
|
-
get: function
|
|
8
|
+
get: function () {
|
|
9
9
|
return _decorateStory.decorateStory;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
12
|
exports.parameters = void 0;
|
|
13
13
|
Object.defineProperty(exports, "render", {
|
|
14
14
|
enumerable: true,
|
|
15
|
-
get: function
|
|
15
|
+
get: function () {
|
|
16
16
|
return _render.render;
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
19
|
Object.defineProperty(exports, "renderToDOM", {
|
|
20
20
|
enumerable: true,
|
|
21
|
-
get: function
|
|
21
|
+
get: function () {
|
|
22
22
|
return _render.renderToDOM;
|
|
23
23
|
}
|
|
24
24
|
});
|
|
@@ -27,7 +27,7 @@ var _render = require("./render");
|
|
|
27
27
|
|
|
28
28
|
var _decorateStory = require("./decorateStory");
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
const parameters = {
|
|
31
31
|
framework: 'vue3'
|
|
32
32
|
};
|
|
33
33
|
exports.parameters = parameters;
|
|
@@ -5,12 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.decorateStory = decorateStory;
|
|
7
7
|
|
|
8
|
-
require("core-js/modules/es.function.name.js");
|
|
9
|
-
|
|
10
|
-
require("core-js/modules/es.object.assign.js");
|
|
11
|
-
|
|
12
|
-
require("core-js/modules/es.object.to-string.js");
|
|
13
|
-
|
|
14
8
|
var _vue = require("vue");
|
|
15
9
|
|
|
16
10
|
var _store = require("@storybook/store");
|
|
@@ -29,7 +23,7 @@ function normalizeFunctionalComponent(options) {
|
|
|
29
23
|
}
|
|
30
24
|
|
|
31
25
|
function prepare(rawStory, innerStory) {
|
|
32
|
-
|
|
26
|
+
const story = rawStory;
|
|
33
27
|
|
|
34
28
|
if (story == null) {
|
|
35
29
|
return null;
|
|
@@ -44,32 +38,29 @@ function prepare(rawStory, innerStory) {
|
|
|
44
38
|
}
|
|
45
39
|
|
|
46
40
|
return {
|
|
47
|
-
render
|
|
41
|
+
render() {
|
|
48
42
|
return (0, _vue.h)(story);
|
|
49
43
|
}
|
|
44
|
+
|
|
50
45
|
};
|
|
51
46
|
}
|
|
52
47
|
|
|
53
48
|
function decorateStory(storyFn, decorators) {
|
|
54
|
-
return decorators.reduce(
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
49
|
+
return decorators.reduce((decorated, decorator) => context => {
|
|
50
|
+
let story;
|
|
51
|
+
const decoratedStory = decorator(update => {
|
|
52
|
+
story = decorated(Object.assign({}, context, (0, _store.sanitizeStoryContextUpdate)(update)));
|
|
53
|
+
return story;
|
|
54
|
+
}, context);
|
|
55
|
+
|
|
56
|
+
if (!story) {
|
|
57
|
+
story = decorated(context);
|
|
58
|
+
}
|
|
65
59
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
60
|
+
if (decoratedStory === story) {
|
|
61
|
+
return story;
|
|
62
|
+
}
|
|
69
63
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}, function (context) {
|
|
73
|
-
return prepare(storyFn(context));
|
|
74
|
-
});
|
|
64
|
+
return prepare(decoratedStory, story);
|
|
65
|
+
}, context => prepare(storyFn(context)));
|
|
75
66
|
}
|
|
@@ -4,6 +4,8 @@ var _global = _interopRequireDefault(require("global"));
|
|
|
4
4
|
|
|
5
5
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
const {
|
|
8
|
+
window: globalWindow
|
|
9
|
+
} = _global.default;
|
|
8
10
|
globalWindow.STORYBOOK_REACT_CLASSES = {};
|
|
9
11
|
globalWindow.STORYBOOK_ENV = 'vue3';
|
|
@@ -3,15 +3,14 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
6
|
+
exports.setAddon = exports.raw = exports.getStorybook = exports.forceReRender = exports.configure = exports.clearDecorators = exports.addParameters = exports.addDecorator = void 0;
|
|
7
|
+
Object.defineProperty(exports, "setup", {
|
|
7
8
|
enumerable: true,
|
|
8
|
-
get: function
|
|
9
|
-
return _render.
|
|
9
|
+
get: function () {
|
|
10
|
+
return _render.setup;
|
|
10
11
|
}
|
|
11
12
|
});
|
|
12
|
-
exports.storiesOf =
|
|
13
|
-
|
|
14
|
-
require("core-js/modules/es.array.concat.js");
|
|
13
|
+
exports.storiesOf = void 0;
|
|
15
14
|
|
|
16
15
|
var _coreClient = require("@storybook/core-client");
|
|
17
16
|
|
|
@@ -21,42 +20,48 @@ var _decorateStory = require("./decorateStory");
|
|
|
21
20
|
|
|
22
21
|
var _render = require("./render");
|
|
23
22
|
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
const framework = 'vue3';
|
|
24
|
+
const api = (0, _coreClient.start)(_render.renderToDOM, {
|
|
26
25
|
decorateStory: _decorateStory.decorateStory,
|
|
27
26
|
render: _render.render
|
|
28
27
|
});
|
|
29
28
|
|
|
30
|
-
|
|
29
|
+
const storiesOf = (kind, m) => {
|
|
31
30
|
return api.clientApi.storiesOf(kind, m).addParameters({
|
|
32
|
-
framework
|
|
31
|
+
framework
|
|
33
32
|
});
|
|
34
33
|
};
|
|
35
34
|
|
|
36
35
|
exports.storiesOf = storiesOf;
|
|
37
36
|
|
|
38
|
-
|
|
39
|
-
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
40
|
-
args[_key] = arguments[_key];
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return api.configure.apply(api, [framework].concat(args));
|
|
44
|
-
};
|
|
37
|
+
const configure = (...args) => api.configure(framework, ...args);
|
|
45
38
|
|
|
46
39
|
exports.configure = configure;
|
|
47
|
-
|
|
40
|
+
const {
|
|
41
|
+
addDecorator
|
|
42
|
+
} = api.clientApi;
|
|
48
43
|
exports.addDecorator = addDecorator;
|
|
49
|
-
|
|
44
|
+
const {
|
|
45
|
+
addParameters
|
|
46
|
+
} = api.clientApi;
|
|
50
47
|
exports.addParameters = addParameters;
|
|
51
|
-
|
|
48
|
+
const {
|
|
49
|
+
clearDecorators
|
|
50
|
+
} = api.clientApi;
|
|
52
51
|
exports.clearDecorators = clearDecorators;
|
|
53
|
-
|
|
52
|
+
const {
|
|
53
|
+
setAddon
|
|
54
|
+
} = api.clientApi;
|
|
54
55
|
exports.setAddon = setAddon;
|
|
55
|
-
|
|
56
|
+
const {
|
|
57
|
+
forceReRender
|
|
58
|
+
} = api;
|
|
56
59
|
exports.forceReRender = forceReRender;
|
|
57
|
-
|
|
60
|
+
const {
|
|
61
|
+
getStorybook
|
|
62
|
+
} = api.clientApi;
|
|
58
63
|
exports.getStorybook = getStorybook;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
exports.
|
|
64
|
+
const {
|
|
65
|
+
raw
|
|
66
|
+
} = api.clientApi;
|
|
67
|
+
exports.raw = raw;
|
|
@@ -1,36 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
require("core-js/modules/es.array.slice.js");
|
|
4
|
-
|
|
5
|
-
require("core-js/modules/es.object.freeze.js");
|
|
6
|
-
|
|
7
3
|
Object.defineProperty(exports, "__esModule", {
|
|
8
4
|
value: true
|
|
9
5
|
});
|
|
10
|
-
exports.render =
|
|
6
|
+
exports.render = void 0;
|
|
11
7
|
exports.renderToDOM = renderToDOM;
|
|
12
|
-
exports.
|
|
13
|
-
|
|
14
|
-
require("core-js/modules/es.function.name.js");
|
|
15
|
-
|
|
16
|
-
require("core-js/modules/es.array.concat.js");
|
|
8
|
+
exports.setup = void 0;
|
|
17
9
|
|
|
18
10
|
var _tsDedent = _interopRequireDefault(require("ts-dedent"));
|
|
19
11
|
|
|
20
12
|
var _vue = require("vue");
|
|
21
13
|
|
|
22
|
-
var _templateObject;
|
|
23
|
-
|
|
24
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
15
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
16
|
+
const render = (props, context) => {
|
|
17
|
+
const {
|
|
18
|
+
id,
|
|
19
|
+
component: Component
|
|
20
|
+
} = context;
|
|
31
21
|
|
|
32
22
|
if (!Component) {
|
|
33
|
-
throw new Error(
|
|
23
|
+
throw new Error(`Unable to render story ${id} as the component annotation is missing from the default export`);
|
|
34
24
|
} // TODO remove this hack
|
|
35
25
|
|
|
36
26
|
|
|
@@ -38,45 +28,57 @@ var render = function render(props, context) {
|
|
|
38
28
|
};
|
|
39
29
|
|
|
40
30
|
exports.render = render;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
31
|
+
|
|
32
|
+
let setupFunction = app => {};
|
|
33
|
+
|
|
34
|
+
const setup = fn => {
|
|
35
|
+
setupFunction = fn;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
exports.setup = setup;
|
|
39
|
+
const map = new Map();
|
|
40
|
+
|
|
41
|
+
function renderToDOM({
|
|
42
|
+
title,
|
|
43
|
+
name,
|
|
44
|
+
storyFn,
|
|
45
|
+
showMain,
|
|
46
|
+
showError,
|
|
47
|
+
showException
|
|
48
|
+
}, domElement) {
|
|
49
|
+
// TODO: explain cyclical nature of these app => story => mount
|
|
50
|
+
let element;
|
|
51
|
+
const storybookApp = (0, _vue.createApp)({
|
|
52
|
+
unmounted() {
|
|
53
|
+
map.delete(domElement);
|
|
54
|
+
},
|
|
55
|
+
|
|
56
|
+
render() {
|
|
57
|
+
map.set(domElement, storybookApp);
|
|
58
|
+
setupFunction(storybookApp);
|
|
59
|
+
return (0, _vue.h)(element);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
});
|
|
65
63
|
storybookApp.config.errorHandler = showException;
|
|
66
|
-
|
|
64
|
+
element = storyFn();
|
|
67
65
|
|
|
68
66
|
if (!element) {
|
|
69
67
|
showError({
|
|
70
|
-
title:
|
|
71
|
-
description: (0, _tsDedent.default)
|
|
68
|
+
title: `Expecting a Vue component from the story: "${name}" of "${title}".`,
|
|
69
|
+
description: (0, _tsDedent.default)`
|
|
70
|
+
Did you forget to return the Vue component from the story?
|
|
71
|
+
Use "() => ({ template: '<my-comp></my-comp>' })" or "() => ({ components: MyComp, template: '<my-comp></my-comp>' })" when defining the story.
|
|
72
|
+
`
|
|
72
73
|
});
|
|
73
74
|
return;
|
|
74
75
|
}
|
|
75
76
|
|
|
76
77
|
showMain();
|
|
77
|
-
activeStoryComponent.value = element;
|
|
78
78
|
|
|
79
|
-
if (
|
|
80
|
-
|
|
79
|
+
if (map.has(domElement)) {
|
|
80
|
+
map.get(domElement).unmount(domElement);
|
|
81
81
|
}
|
|
82
|
+
|
|
83
|
+
storybookApp.mount(domElement);
|
|
82
84
|
}
|
package/dist/esm/docs/config.js
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { extractComponentDescription, enhanceArgTypes } from '@storybook/docs-tools';
|
|
2
2
|
import { extractArgTypes } from './extractArgTypes';
|
|
3
|
-
import { prepareForInline } from './prepareForInline';
|
|
4
3
|
export const parameters = {
|
|
5
4
|
docs: {
|
|
6
5
|
inlineStories: true,
|
|
7
|
-
prepareForInline,
|
|
8
6
|
extractArgTypes,
|
|
9
7
|
extractComponentDescription
|
|
10
8
|
}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { storiesOf, setAddon, addDecorator, addParameters, configure, getStorybook, forceReRender, raw,
|
|
1
|
+
export { storiesOf, setAddon, addDecorator, addParameters, configure, getStorybook, forceReRender, raw, setup } from './preview';
|
|
2
2
|
export * from './preview/types-6-0'; // optimization: stop HMR propagation in webpack
|
|
3
3
|
|
|
4
4
|
module?.hot?.decline();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { start } from '@storybook/core-client';
|
|
2
2
|
import './globals';
|
|
3
3
|
import { decorateStory } from './decorateStory';
|
|
4
|
-
import { render, renderToDOM
|
|
4
|
+
import { render, renderToDOM } from './render';
|
|
5
5
|
const framework = 'vue3';
|
|
6
6
|
const api = start(renderToDOM, {
|
|
7
7
|
decorateStory,
|
|
@@ -34,5 +34,4 @@ export const {
|
|
|
34
34
|
export const {
|
|
35
35
|
raw
|
|
36
36
|
} = api.clientApi;
|
|
37
|
-
export
|
|
38
|
-
export { activeStoryComponent } from './render';
|
|
37
|
+
export { setup } from './render';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import dedent from 'ts-dedent';
|
|
2
|
-
import { createApp, h
|
|
2
|
+
import { createApp, h } from 'vue';
|
|
3
3
|
export const render = (props, context) => {
|
|
4
4
|
const {
|
|
5
5
|
id,
|
|
@@ -13,22 +13,13 @@ export const render = (props, context) => {
|
|
|
13
13
|
|
|
14
14
|
return h(Component, props);
|
|
15
15
|
};
|
|
16
|
-
export const activeStoryComponent = shallowRef(null);
|
|
17
|
-
let root = null;
|
|
18
|
-
export const storybookApp = createApp({
|
|
19
|
-
// If an end-user calls `unmount` on the app, we need to clear our root variable
|
|
20
|
-
unmounted() {
|
|
21
|
-
root = null;
|
|
22
|
-
},
|
|
23
|
-
|
|
24
|
-
setup() {
|
|
25
|
-
return () => {
|
|
26
|
-
if (!activeStoryComponent.value) throw new Error('No Vue 3 Story available. Was it set correctly?');
|
|
27
|
-
return h(activeStoryComponent.value);
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
16
|
|
|
31
|
-
}
|
|
17
|
+
let setupFunction = app => {};
|
|
18
|
+
|
|
19
|
+
export const setup = fn => {
|
|
20
|
+
setupFunction = fn;
|
|
21
|
+
};
|
|
22
|
+
const map = new Map();
|
|
32
23
|
export function renderToDOM({
|
|
33
24
|
title,
|
|
34
25
|
name,
|
|
@@ -37,24 +28,39 @@ export function renderToDOM({
|
|
|
37
28
|
showError,
|
|
38
29
|
showException
|
|
39
30
|
}, domElement) {
|
|
31
|
+
// TODO: explain cyclical nature of these app => story => mount
|
|
32
|
+
let element;
|
|
33
|
+
const storybookApp = createApp({
|
|
34
|
+
unmounted() {
|
|
35
|
+
map.delete(domElement);
|
|
36
|
+
},
|
|
37
|
+
|
|
38
|
+
render() {
|
|
39
|
+
map.set(domElement, storybookApp);
|
|
40
|
+
setupFunction(storybookApp);
|
|
41
|
+
return h(element);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
});
|
|
40
45
|
storybookApp.config.errorHandler = showException;
|
|
41
|
-
|
|
46
|
+
element = storyFn();
|
|
42
47
|
|
|
43
48
|
if (!element) {
|
|
44
49
|
showError({
|
|
45
50
|
title: `Expecting a Vue component from the story: "${name}" of "${title}".`,
|
|
46
51
|
description: dedent`
|
|
47
|
-
|
|
48
|
-
|
|
52
|
+
Did you forget to return the Vue component from the story?
|
|
53
|
+
Use "() => ({ template: '<my-comp></my-comp>' })" or "() => ({ components: MyComp, template: '<my-comp></my-comp>' })" when defining the story.
|
|
49
54
|
`
|
|
50
55
|
});
|
|
51
56
|
return;
|
|
52
57
|
}
|
|
53
58
|
|
|
54
59
|
showMain();
|
|
55
|
-
activeStoryComponent.value = element;
|
|
56
60
|
|
|
57
|
-
if (
|
|
58
|
-
|
|
61
|
+
if (map.has(domElement)) {
|
|
62
|
+
map.get(domElement).unmount(domElement);
|
|
59
63
|
}
|
|
64
|
+
|
|
65
|
+
storybookApp.mount(domElement);
|
|
60
66
|
}
|
package/dist/types/config.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export declare const parameters: {
|
|
2
2
|
docs: {
|
|
3
3
|
inlineStories: boolean;
|
|
4
|
-
prepareForInline: (storyFn: import("@storybook/csf").PartialStoryFn<import(".").VueFramework, import("@storybook/csf").Args>, { args }: import("@storybook/csf").StoryContext<import(".").VueFramework, import("@storybook/csf").Args>) => import("react").DetailedReactHTMLElement<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>;
|
|
5
4
|
extractArgTypes: import("lib/docs-tools/dist/types").ArgTypesExtractor;
|
|
6
5
|
extractComponentDescription: typeof import("lib/docs-tools/dist/types").extractComponentDescription;
|
|
7
6
|
};
|
|
@@ -2,7 +2,6 @@ import { extractComponentDescription } from '@storybook/docs-tools';
|
|
|
2
2
|
export declare const parameters: {
|
|
3
3
|
docs: {
|
|
4
4
|
inlineStories: boolean;
|
|
5
|
-
prepareForInline: (storyFn: import("@storybook/csf").PartialStoryFn<import("..").VueFramework, import("@storybook/csf").Args>, { args }: import("@storybook/csf").StoryContext<import("..").VueFramework, import("@storybook/csf").Args>) => import("react").DetailedReactHTMLElement<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>;
|
|
6
5
|
extractArgTypes: import("@storybook/docs-tools").ArgTypesExtractor;
|
|
7
6
|
extractComponentDescription: typeof extractComponentDescription;
|
|
8
7
|
};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { storiesOf, setAddon, addDecorator, addParameters, configure, getStorybook, forceReRender, raw,
|
|
1
|
+
export { storiesOf, setAddon, addDecorator, addParameters, configure, getStorybook, forceReRender, raw, setup, } from './preview';
|
|
2
2
|
export * from './preview/types-6-0';
|
|
@@ -27,5 +27,4 @@ export declare const setAddon: (() => never) | ((addon: any) => void);
|
|
|
27
27
|
export declare const forceReRender: (() => never) | (() => void);
|
|
28
28
|
export declare const getStorybook: (() => never) | (() => import("lib/client-api/dist/types/ClientApi").GetStorybookKind<VueFramework>[]);
|
|
29
29
|
export declare const raw: (() => never) | (() => import("lib/store/dist/types").BoundStory<VueFramework>[]);
|
|
30
|
-
export
|
|
31
|
-
export { activeStoryComponent } from './render';
|
|
30
|
+
export { setup } from './render';
|
|
@@ -2,6 +2,5 @@ import type { RenderContext } from '@storybook/store';
|
|
|
2
2
|
import type { ArgsStoryFn } from '@storybook/csf';
|
|
3
3
|
import { VueFramework } from './types-6-0';
|
|
4
4
|
export declare const render: ArgsStoryFn<VueFramework>;
|
|
5
|
-
export declare const
|
|
6
|
-
export declare
|
|
7
|
-
export declare function renderToDOM({ title, name, storyFn, showMain, showError, showException }: RenderContext<VueFramework>, domElement: HTMLElement): void;
|
|
5
|
+
export declare const setup: (fn: (app: any) => void) => void;
|
|
6
|
+
export declare function renderToDOM({ title, name, storyFn, showMain, showError, showException }: RenderContext<VueFramework>, domElement: Element): void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@storybook/vue3",
|
|
3
|
-
"version": "7.0.0-alpha.
|
|
3
|
+
"version": "7.0.0-alpha.4",
|
|
4
4
|
"description": "Storybook Vue 3 renderer",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"storybook"
|
|
@@ -33,16 +33,15 @@
|
|
|
33
33
|
"prepare": "node ../../scripts/prepare.js"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@storybook/addons": "7.0.0-alpha.
|
|
37
|
-
"@storybook/core-client": "7.0.0-alpha.
|
|
36
|
+
"@storybook/addons": "7.0.0-alpha.4",
|
|
37
|
+
"@storybook/core-client": "7.0.0-alpha.4",
|
|
38
38
|
"@storybook/csf": "0.0.2--canary.4566f4d.1",
|
|
39
|
-
"@storybook/docs-tools": "7.0.0-alpha.
|
|
40
|
-
"@storybook/store": "7.0.0-alpha.
|
|
39
|
+
"@storybook/docs-tools": "7.0.0-alpha.4",
|
|
40
|
+
"@storybook/store": "7.0.0-alpha.4",
|
|
41
41
|
"core-js": "^3.8.2",
|
|
42
42
|
"global": "^4.4.0",
|
|
43
43
|
"react": "16.14.0",
|
|
44
44
|
"react-dom": "16.14.0",
|
|
45
|
-
"regenerator-runtime": "^0.13.7",
|
|
46
45
|
"ts-dedent": "^2.0.0"
|
|
47
46
|
},
|
|
48
47
|
"devDependencies": {
|
|
@@ -59,5 +58,5 @@
|
|
|
59
58
|
"publishConfig": {
|
|
60
59
|
"access": "public"
|
|
61
60
|
},
|
|
62
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "006ed54452dd7c37a8cbe91a84f5312182f7ca00"
|
|
63
62
|
}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
-
|
|
5
|
-
require("core-js/modules/es.array.iterator.js");
|
|
6
|
-
|
|
7
|
-
require("core-js/modules/es.object.to-string.js");
|
|
8
|
-
|
|
9
|
-
require("core-js/modules/es.string.iterator.js");
|
|
10
|
-
|
|
11
|
-
require("core-js/modules/es.weak-map.js");
|
|
12
|
-
|
|
13
|
-
require("core-js/modules/web.dom-collections.iterator.js");
|
|
14
|
-
|
|
15
|
-
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
16
|
-
|
|
17
|
-
require("core-js/modules/es.symbol.js");
|
|
18
|
-
|
|
19
|
-
require("core-js/modules/es.symbol.description.js");
|
|
20
|
-
|
|
21
|
-
require("core-js/modules/es.symbol.iterator.js");
|
|
22
|
-
|
|
23
|
-
Object.defineProperty(exports, "__esModule", {
|
|
24
|
-
value: true
|
|
25
|
-
});
|
|
26
|
-
exports.prepareForInline = void 0;
|
|
27
|
-
|
|
28
|
-
var _react = _interopRequireDefault(require("react"));
|
|
29
|
-
|
|
30
|
-
var Vue = _interopRequireWildcard(require("vue"));
|
|
31
|
-
|
|
32
|
-
var _index = require("../index");
|
|
33
|
-
|
|
34
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
35
|
-
|
|
36
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
37
|
-
|
|
38
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
39
|
-
|
|
40
|
-
// This is cast as `any` to workaround type errors caused by Vue 2 types
|
|
41
|
-
var _ref = Vue,
|
|
42
|
-
render = _ref.render,
|
|
43
|
-
h = _ref.h;
|
|
44
|
-
|
|
45
|
-
var prepareForInline = function prepareForInline(storyFn, _ref2) {
|
|
46
|
-
var args = _ref2.args;
|
|
47
|
-
var component = storyFn();
|
|
48
|
-
var vnode = h(component, args); // By attaching the app context from `@storybook/vue3` to the vnode
|
|
49
|
-
// like this, these stoeis are able to access any app config stuff
|
|
50
|
-
// the end-user set inside `.storybook/preview.js`
|
|
51
|
-
|
|
52
|
-
vnode.appContext = _index.app._context; // eslint-disable-line no-underscore-dangle
|
|
53
|
-
|
|
54
|
-
return /*#__PURE__*/_react.default.createElement('div', {
|
|
55
|
-
ref: function ref(node) {
|
|
56
|
-
return node ? render(vnode, node) : null;
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
exports.prepareForInline = prepareForInline;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import * as Vue from 'vue';
|
|
3
|
-
import { app } from '../index'; // This is cast as `any` to workaround type errors caused by Vue 2 types
|
|
4
|
-
|
|
5
|
-
const {
|
|
6
|
-
render,
|
|
7
|
-
h
|
|
8
|
-
} = Vue;
|
|
9
|
-
export const prepareForInline = (storyFn, {
|
|
10
|
-
args
|
|
11
|
-
}) => {
|
|
12
|
-
const component = storyFn();
|
|
13
|
-
const vnode = h(component, args); // By attaching the app context from `@storybook/vue3` to the vnode
|
|
14
|
-
// like this, these stoeis are able to access any app config stuff
|
|
15
|
-
// the end-user set inside `.storybook/preview.js`
|
|
16
|
-
|
|
17
|
-
vnode.appContext = app._context; // eslint-disable-line no-underscore-dangle
|
|
18
|
-
|
|
19
|
-
return /*#__PURE__*/React.createElement('div', {
|
|
20
|
-
ref: node => node ? render(vnode, node) : null
|
|
21
|
-
});
|
|
22
|
-
};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { StoryContext, PartialStoryFn } from '@storybook/csf';
|
|
3
|
-
import { VueFramework } from '../index';
|
|
4
|
-
export declare const prepareForInline: (storyFn: PartialStoryFn<VueFramework>, { args }: StoryContext<VueFramework>) => React.DetailedReactHTMLElement<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>;
|