@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.
@@ -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 get() {
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 get() {
28
+ get: function () {
37
29
  return _config2[key];
38
30
  }
39
31
  });
40
32
  });
41
- var parameters = Object.assign({
33
+ const parameters = Object.assign({
42
34
  framework: 'vue3'
43
35
  }, _config.parameters);
44
36
  exports.parameters = parameters;
@@ -9,16 +9,13 @@ var _docsTools = require("@storybook/docs-tools");
9
9
 
10
10
  var _extractArgTypes = require("./extractArgTypes");
11
11
 
12
- var _prepareForInline = require("./prepareForInline");
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
- var argTypesEnhancers = [_docsTools.enhanceArgTypes];
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
- var SECTIONS = ['props', 'events', 'slots'];
10
+ const SECTIONS = ['props', 'events', 'slots'];
23
11
 
24
- var extractArgTypes = function extractArgTypes(component) {
12
+ const extractArgTypes = component => {
25
13
  if (!(0, _docsTools.hasDocgen)(component)) {
26
14
  return null;
27
15
  }
28
16
 
29
- var results = {};
30
- SECTIONS.forEach(function (section) {
31
- var props = (0, _docsTools.extractComponentProps)(component, section);
32
- props.forEach(function (_ref) {
33
- var propDef = _ref.propDef,
34
- docgenInfo = _ref.docgenInfo,
35
- jsDocTags = _ref.jsDocTags;
36
- var name = propDef.name,
37
- type = propDef.type,
38
- description = propDef.description,
39
- defaultSummary = propDef.defaultValue,
40
- required = propDef.required;
41
- var sbType = section === 'props' ? (0, _docsTools.convert)(docgenInfo) : {
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: name,
46
- description: description,
36
+ name,
37
+ description,
47
38
  type: Object.assign({
48
- required: required
39
+ required
49
40
  }, sbType),
50
41
  table: {
51
- type: type,
52
- jsDocTags: 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
- app: true,
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 get() {
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 get() {
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 get() {
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 get() {
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 get() {
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 get() {
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 get() {
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 get() {
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 get() {
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 get() {
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 get() {
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 get() {
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
- var parameters = {
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
- var story = rawStory;
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: function 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(function (decorated, decorator) {
55
- return function (context) {
56
- var story;
57
- var decoratedStory = decorator(function (update) {
58
- story = decorated(Object.assign({}, context, (0, _store.sanitizeStoryContextUpdate)(update)));
59
- return story;
60
- }, context);
61
-
62
- if (!story) {
63
- story = decorated(context);
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
- if (decoratedStory === story) {
67
- return story;
68
- }
60
+ if (decoratedStory === story) {
61
+ return story;
62
+ }
69
63
 
70
- return prepare(decoratedStory, story);
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
- var globalWindow = _global.default.window;
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
- Object.defineProperty(exports, "activeStoryComponent", {
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 get() {
9
- return _render.activeStoryComponent;
9
+ get: function () {
10
+ return _render.setup;
10
11
  }
11
12
  });
12
- exports.storiesOf = exports.setAddon = exports.raw = exports.getStorybook = exports.forceReRender = exports.configure = exports.clearDecorators = exports.app = exports.addParameters = exports.addDecorator = void 0;
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
- var framework = 'vue3';
25
- var api = (0, _coreClient.start)(_render.renderToDOM, {
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
- var storiesOf = function storiesOf(kind, m) {
29
+ const storiesOf = (kind, m) => {
31
30
  return api.clientApi.storiesOf(kind, m).addParameters({
32
- framework: framework
31
+ framework
33
32
  });
34
33
  };
35
34
 
36
35
  exports.storiesOf = storiesOf;
37
36
 
38
- var configure = function configure() {
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
- var addDecorator = api.clientApi.addDecorator;
40
+ const {
41
+ addDecorator
42
+ } = api.clientApi;
48
43
  exports.addDecorator = addDecorator;
49
- var addParameters = api.clientApi.addParameters;
44
+ const {
45
+ addParameters
46
+ } = api.clientApi;
50
47
  exports.addParameters = addParameters;
51
- var clearDecorators = api.clientApi.clearDecorators;
48
+ const {
49
+ clearDecorators
50
+ } = api.clientApi;
52
51
  exports.clearDecorators = clearDecorators;
53
- var setAddon = api.clientApi.setAddon;
52
+ const {
53
+ setAddon
54
+ } = api.clientApi;
54
55
  exports.setAddon = setAddon;
55
- var forceReRender = api.forceReRender;
56
+ const {
57
+ forceReRender
58
+ } = api;
56
59
  exports.forceReRender = forceReRender;
57
- var getStorybook = api.clientApi.getStorybook;
60
+ const {
61
+ getStorybook
62
+ } = api.clientApi;
58
63
  exports.getStorybook = getStorybook;
59
- var raw = api.clientApi.raw;
60
- exports.raw = raw;
61
- var app = _render.storybookApp;
62
- exports.app = app;
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 = exports.activeStoryComponent = void 0;
6
+ exports.render = void 0;
11
7
  exports.renderToDOM = renderToDOM;
12
- exports.storybookApp = void 0;
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
- function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
27
-
28
- var render = function render(props, context) {
29
- var id = context.id,
30
- Component = context.component;
16
+ const render = (props, context) => {
17
+ const {
18
+ id,
19
+ component: Component
20
+ } = context;
31
21
 
32
22
  if (!Component) {
33
- throw new Error("Unable to render story ".concat(id, " as the component annotation is missing from the default export"));
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
- var activeStoryComponent = (0, _vue.shallowRef)(null);
42
- exports.activeStoryComponent = activeStoryComponent;
43
- var root = null;
44
- var storybookApp = (0, _vue.createApp)({
45
- // If an end-user calls `unmount` on the app, we need to clear our root variable
46
- unmounted: function unmounted() {
47
- root = null;
48
- },
49
- setup: function setup() {
50
- return function () {
51
- if (!activeStoryComponent.value) throw new Error('No Vue 3 Story available. Was it set correctly?');
52
- return (0, _vue.h)(activeStoryComponent.value);
53
- };
54
- }
55
- });
56
- exports.storybookApp = storybookApp;
57
-
58
- function renderToDOM(_ref, domElement) {
59
- var title = _ref.title,
60
- name = _ref.name,
61
- storyFn = _ref.storyFn,
62
- showMain = _ref.showMain,
63
- showError = _ref.showError,
64
- showException = _ref.showException;
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
- var element = storyFn();
64
+ element = storyFn();
67
65
 
68
66
  if (!element) {
69
67
  showError({
70
- title: "Expecting a Vue component from the story: \"".concat(name, "\" of \"").concat(title, "\"."),
71
- description: (0, _tsDedent.default)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n Did you forget to return the Vue component from the story?\n Use \"() => ({ template: '<my-comp></my-comp>' })\" or \"() => ({ components: MyComp, template: '<my-comp></my-comp>' })\" when defining the story.\n "])))
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 (!root) {
80
- root = storybookApp.mount(domElement);
79
+ if (map.has(domElement)) {
80
+ map.get(domElement).unmount(domElement);
81
81
  }
82
+
83
+ storybookApp.mount(domElement);
82
84
  }
@@ -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, app, activeStoryComponent } from './preview';
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, storybookApp } from './render';
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 const app = storybookApp;
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, shallowRef } from 'vue';
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
- const element = storyFn();
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
- Did you forget to return the Vue component from the story?
48
- Use "() => ({ template: '<my-comp></my-comp>' })" or "() => ({ components: MyComp, template: '<my-comp></my-comp>' })" when defining the story.
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 (!root) {
58
- root = storybookApp.mount(domElement);
61
+ if (map.has(domElement)) {
62
+ map.get(domElement).unmount(domElement);
59
63
  }
64
+
65
+ storybookApp.mount(domElement);
60
66
  }
@@ -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
  };
@@ -1,2 +1,2 @@
1
- export { storiesOf, setAddon, addDecorator, addParameters, configure, getStorybook, forceReRender, raw, app, activeStoryComponent, } from './preview';
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 declare const app: ClientApi['app'];
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 activeStoryComponent: import("vue").Ref<import("vue").ComponentOptions<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions, any, any, any>> | import("vue").Ref<import("vue").FunctionalComponent<any, any>>;
6
- export declare const storybookApp: import("vue").App<Element>;
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.1",
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.1",
37
- "@storybook/core-client": "7.0.0-alpha.1",
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.1",
40
- "@storybook/store": "7.0.0-alpha.1",
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": "b90b85210f66da59656c2ef58b0910b156256bea"
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>;