@storybook/addon-docs 6.4.0-beta.2 → 6.4.0-beta.20

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.
Files changed (35) hide show
  1. package/dist/cjs/blocks/Story.js +30 -18
  2. package/dist/cjs/blocks/enhanceSource.js +2 -2
  3. package/dist/cjs/blocks/useStory.js +2 -2
  4. package/dist/cjs/frameworks/angular/prepareForInline.js +52 -53
  5. package/dist/cjs/frameworks/common/config.js +87 -3
  6. package/dist/cjs/frameworks/react/react-argtypes.stories.js +2 -2
  7. package/dist/cjs/frameworks/vue/extractArgTypes.js +106 -15
  8. package/dist/cjs/frameworks/web-components/custom-elements.js +63 -25
  9. package/dist/esm/blocks/Story.js +27 -19
  10. package/dist/esm/blocks/enhanceSource.js +7 -1
  11. package/dist/esm/blocks/useStory.js +2 -2
  12. package/dist/esm/frameworks/angular/prepareForInline.js +46 -50
  13. package/dist/esm/frameworks/common/config.js +60 -3
  14. package/dist/esm/frameworks/react/react-argtypes.stories.js +1 -1
  15. package/dist/esm/frameworks/vue/extractArgTypes.js +97 -14
  16. package/dist/esm/frameworks/web-components/custom-elements.js +60 -24
  17. package/dist/modern/blocks/Story.js +27 -21
  18. package/dist/modern/blocks/enhanceSource.js +7 -1
  19. package/dist/modern/blocks/useStory.js +8 -2
  20. package/dist/modern/frameworks/angular/prepareForInline.js +20 -15
  21. package/dist/modern/frameworks/common/config.js +2 -3
  22. package/dist/modern/frameworks/react/react-argtypes.stories.js +1 -1
  23. package/dist/modern/frameworks/vue/extractArgTypes.js +64 -4
  24. package/dist/modern/frameworks/web-components/custom-elements.js +55 -23
  25. package/dist/ts3.4/blocks/Story.d.ts +1 -1
  26. package/dist/ts3.4/frameworks/angular/config.d.ts +1 -1
  27. package/dist/ts3.4/frameworks/angular/prepareForInline.d.ts +1 -1
  28. package/dist/ts3.4/frameworks/common/config.d.ts +2 -2
  29. package/dist/ts3.4/frameworks/web-components/custom-elements.d.ts +4 -3
  30. package/dist/ts3.9/blocks/Story.d.ts +1 -1
  31. package/dist/ts3.9/frameworks/angular/config.d.ts +1 -1
  32. package/dist/ts3.9/frameworks/angular/prepareForInline.d.ts +1 -1
  33. package/dist/ts3.9/frameworks/common/config.d.ts +2 -2
  34. package/dist/ts3.9/frameworks/web-components/custom-elements.d.ts +4 -3
  35. package/package.json +29 -30
@@ -35,11 +35,15 @@ var _react = _interopRequireWildcard(require("react"));
35
35
 
36
36
  var _react2 = require("@mdx-js/react");
37
37
 
38
+ var _global = _interopRequireDefault(require("global"));
39
+
38
40
  var _components = require("@storybook/components");
39
41
 
40
42
  var _csf = require("@storybook/csf");
41
43
 
42
- var _global = _interopRequireDefault(require("global"));
44
+ var _addons = require("@storybook/addons");
45
+
46
+ var _coreEvents = _interopRequireDefault(require("@storybook/core-events"));
43
47
 
44
48
  var _types = require("./types");
45
49
 
@@ -78,7 +82,7 @@ var getStoryId = function getStoryId(props, context) {
78
82
 
79
83
  exports.getStoryId = getStoryId;
80
84
 
81
- var getStoryProps = function getStoryProps(_ref4, story, context) {
85
+ var getStoryProps = function getStoryProps(_ref4, story, context, onStoryFnCalled) {
82
86
  var height = _ref4.height,
83
87
  inline = _ref4.inline;
84
88
  var storyName = story.name,
@@ -103,9 +107,17 @@ var getStoryProps = function getStoryProps(_ref4, story, context) {
103
107
  }
104
108
 
105
109
  var boundStoryFn = function boundStoryFn() {
106
- return story.unboundStoryFn(Object.assign({}, context.getStoryContext(story), {
107
- loaded: {}
108
- }));
110
+ var storyResult = story.unboundStoryFn(Object.assign({}, context.getStoryContext(story), {
111
+ loaded: {},
112
+ abortSignal: undefined,
113
+ canvasElement: undefined
114
+ })); // We need to wait until the bound story function has actually been called before we
115
+ // consider the story rendered. Certain frameworks (i.e. angular) don't actually render
116
+ // the component in the very first react render cycle, and so we can't just wait until the
117
+ // `PureStory` component has been rendered to consider the underlying story "rendered".
118
+
119
+ onStoryFnCalled();
120
+ return storyResult;
109
121
  };
110
122
 
111
123
  return Object.assign({
@@ -116,7 +128,7 @@ var getStoryProps = function getStoryProps(_ref4, story, context) {
116
128
  }, storyIsInline && {
117
129
  parameters: parameters,
118
130
  storyFn: function storyFn() {
119
- return prepareForInline(boundStoryFn, story);
131
+ return prepareForInline(boundStoryFn, context.getStoryContext(story));
120
132
  }
121
133
  });
122
134
  };
@@ -127,17 +139,12 @@ var Story = function Story(props) {
127
139
  var _global$FEATURES;
128
140
 
129
141
  var context = (0, _react.useContext)(_DocsContext.DocsContext);
130
- var ref = (0, _react.useRef)();
131
- var story = (0, _useStory.useStory)(getStoryId(props, context), context); // Ensure we wait until this story is properly rendered in the docs context.
132
- // The purpose of this is to ensure that that the `DOCS_RENDERED` event isn't emitted
133
- // until all stories on the page have rendered.
134
142
 
135
- var storyId = context.id,
136
- registerRenderingStory = context.registerRenderingStory;
137
- var storyRendered = (0, _react.useMemo)(registerRenderingStory, [storyId]);
138
- (0, _react.useEffect)(function () {
139
- if (story) storyRendered();
140
- }, [story]);
143
+ var channel = _addons.addons.getChannel();
144
+
145
+ var ref = (0, _react.useRef)();
146
+ var storyId = getStoryId(props, context);
147
+ var story = (0, _useStory.useStory)(storyId, context);
141
148
  (0, _react.useEffect)(function () {
142
149
  var cleanup;
143
150
 
@@ -172,9 +179,14 @@ var Story = function Story(props) {
172
179
 
173
180
  if (!story) {
174
181
  return /*#__PURE__*/_react.default.createElement("div", null, "Loading...");
175
- }
182
+ } // If we are rendering a old-style inline Story via `PureStory` below, we want to emit
183
+ // the `STORY_RENDERED` event when it renders. The modern mode below calls out to
184
+ // `Preview.renderStoryToDom()` which itself emits the event.
185
+
176
186
 
177
- var storyProps = getStoryProps(props, story, context);
187
+ var storyProps = getStoryProps(props, story, context, function () {
188
+ return channel.emit(_coreEvents.default.STORY_RENDERED, storyId);
189
+ });
178
190
 
179
191
  if (!storyProps) {
180
192
  return null;
@@ -35,7 +35,7 @@ require("core-js/modules/es.regexp.exec.js");
35
35
 
36
36
  require("core-js/modules/es.string.split.js");
37
37
 
38
- var _clientApi = require("@storybook/client-api");
38
+ var _store = require("@storybook/store");
39
39
 
40
40
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
41
41
 
@@ -118,7 +118,7 @@ var enhanceSource = function enhanceSource(story) {
118
118
  var input = extract(id, storySource);
119
119
  var code = transformSource ? transformSource(input, story) : input;
120
120
  return {
121
- docs: (0, _clientApi.combineParameters)(docs, {
121
+ docs: (0, _store.combineParameters)(docs, {
122
122
  source: {
123
123
  code: code
124
124
  }
@@ -79,7 +79,7 @@ function useStories(storyIds, context) {
79
79
  case 2:
80
80
  story = _context.sent;
81
81
  setStories(function (current) {
82
- return Object.assign({}, current, _defineProperty({}, storyId, story));
82
+ return current[storyId] === story ? current : Object.assign({}, current, _defineProperty({}, storyId, story));
83
83
  });
84
84
 
85
85
  case 4:
@@ -94,7 +94,7 @@ function useStories(storyIds, context) {
94
94
  return _ref.apply(this, arguments);
95
95
  };
96
96
  }()));
97
- }, storyIds);
97
+ });
98
98
  return storyIds.map(function (storyId) {
99
99
  return storiesById[storyId];
100
100
  });
@@ -34,63 +34,62 @@ var limit = (0, _pLimit.default)(1);
34
34
 
35
35
  var prepareForInline = function prepareForInline(storyFn, _ref) {
36
36
  var id = _ref.id,
37
- parameters = _ref.parameters;
38
- return /*#__PURE__*/_react.default.createElement('div', {
39
- ref: function () {
40
- var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(node) {
41
- return regeneratorRuntime.wrap(function _callee2$(_context2) {
42
- while (1) {
43
- switch (_context2.prev = _context2.next) {
44
- case 0:
45
- if (node) {
46
- _context2.next = 2;
47
- break;
48
- }
49
-
50
- return _context2.abrupt("return", null);
51
-
52
- case 2:
53
- return _context2.abrupt("return", limit( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
54
- var renderer;
55
- return regeneratorRuntime.wrap(function _callee$(_context) {
56
- while (1) {
57
- switch (_context.prev = _context.next) {
58
- case 0:
59
- _context.next = 2;
60
- return _renderer.rendererFactory.getRendererInstance("".concat(id, "-").concat((0, _nanoid.nanoid)(10)), node);
61
-
62
- case 2:
63
- renderer = _context.sent;
64
- _context.next = 5;
65
- return renderer.render({
66
- forced: false,
67
- parameters: parameters,
68
- storyFnAngular: storyFn(),
69
- targetDOMNode: node
70
- });
71
-
72
- case 5:
73
- case "end":
74
- return _context.stop();
75
- }
37
+ parameters = _ref.parameters,
38
+ component = _ref.component;
39
+
40
+ var el = _react.default.useRef();
41
+
42
+ _react.default.useEffect(function () {
43
+ _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
44
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
45
+ while (1) {
46
+ switch (_context2.prev = _context2.next) {
47
+ case 0:
48
+ limit( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
49
+ var renderer;
50
+ return regeneratorRuntime.wrap(function _callee$(_context) {
51
+ while (1) {
52
+ switch (_context.prev = _context.next) {
53
+ case 0:
54
+ _context.next = 2;
55
+ return _renderer.rendererFactory.getRendererInstance("".concat(id, "-").concat((0, _nanoid.nanoid)(10)).toLowerCase(), el.current);
56
+
57
+ case 2:
58
+ renderer = _context.sent;
59
+
60
+ if (!renderer) {
61
+ _context.next = 6;
62
+ break;
63
+ }
64
+
65
+ _context.next = 6;
66
+ return renderer.render({
67
+ forced: false,
68
+ component: component,
69
+ parameters: parameters,
70
+ storyFnAngular: storyFn(),
71
+ targetDOMNode: el.current
72
+ });
73
+
74
+ case 6:
75
+ case "end":
76
+ return _context.stop();
76
77
  }
77
- }, _callee);
78
- }))));
78
+ }
79
+ }, _callee);
80
+ })));
79
81
 
80
- case 3:
81
- case "end":
82
- return _context2.stop();
83
- }
82
+ case 1:
83
+ case "end":
84
+ return _context2.stop();
84
85
  }
85
- }, _callee2);
86
- }));
87
-
88
- function ref(_x) {
89
- return _ref2.apply(this, arguments);
90
- }
86
+ }
87
+ }, _callee2);
88
+ }))();
89
+ });
91
90
 
92
- return ref;
93
- }()
91
+ return /*#__PURE__*/_react.default.createElement('div', {
92
+ ref: el
94
93
  });
95
94
  };
96
95
 
@@ -1,19 +1,103 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
+
5
+ require("core-js/modules/es.weak-map.js");
6
+
7
+ require("core-js/modules/es.string.iterator.js");
8
+
9
+ require("core-js/modules/es.array.iterator.js");
10
+
11
+ require("core-js/modules/web.dom-collections.iterator.js");
12
+
13
+ require("core-js/modules/es.object.get-own-property-descriptor.js");
14
+
15
+ require("core-js/modules/es.symbol.js");
16
+
17
+ require("core-js/modules/es.symbol.description.js");
18
+
19
+ require("core-js/modules/es.symbol.iterator.js");
20
+
3
21
  Object.defineProperty(exports, "__esModule", {
4
22
  value: true
5
23
  });
6
24
  exports.argTypesEnhancers = exports.parameters = void 0;
7
25
 
8
- var _blocks = require("../../blocks");
26
+ require("regenerator-runtime/runtime.js");
27
+
28
+ require("core-js/modules/es.promise.js");
29
+
30
+ require("core-js/modules/es.object.to-string.js");
9
31
 
10
32
  var _enhanceArgTypes = require("./enhanceArgTypes");
11
33
 
34
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
35
+
36
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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 asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
39
+
40
+ function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
41
+
12
42
  var parameters = {
13
43
  docs: {
14
44
  inlineStories: false,
15
- container: _blocks.DocsContainer,
16
- page: _blocks.DocsPage,
45
+ getContainer: function () {
46
+ var _getContainer = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
47
+ return regeneratorRuntime.wrap(function _callee$(_context) {
48
+ while (1) {
49
+ switch (_context.prev = _context.next) {
50
+ case 0:
51
+ _context.next = 2;
52
+ return Promise.resolve().then(function () {
53
+ return _interopRequireWildcard(require('../../blocks'));
54
+ });
55
+
56
+ case 2:
57
+ return _context.abrupt("return", _context.sent.DocsContainer);
58
+
59
+ case 3:
60
+ case "end":
61
+ return _context.stop();
62
+ }
63
+ }
64
+ }, _callee);
65
+ }));
66
+
67
+ function getContainer() {
68
+ return _getContainer.apply(this, arguments);
69
+ }
70
+
71
+ return getContainer;
72
+ }(),
73
+ getPage: function () {
74
+ var _getPage = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
75
+ return regeneratorRuntime.wrap(function _callee2$(_context2) {
76
+ while (1) {
77
+ switch (_context2.prev = _context2.next) {
78
+ case 0:
79
+ _context2.next = 2;
80
+ return Promise.resolve().then(function () {
81
+ return _interopRequireWildcard(require('../../blocks'));
82
+ });
83
+
84
+ case 2:
85
+ return _context2.abrupt("return", _context2.sent.DocsPage);
86
+
87
+ case 3:
88
+ case "end":
89
+ return _context2.stop();
90
+ }
91
+ }
92
+ }, _callee2);
93
+ }));
94
+
95
+ function getPage() {
96
+ return _getPage.apply(this, arguments);
97
+ }
98
+
99
+ return getPage;
100
+ }(),
17
101
  iframeHeight: 100
18
102
  }
19
103
  };
@@ -40,7 +40,7 @@ var _react2 = require("@storybook/react");
40
40
 
41
41
  var _components = require("@storybook/components");
42
42
 
43
- var _clientApi = require("@storybook/client-api");
43
+ var _store = require("@storybook/store");
44
44
 
45
45
  var _extractArgTypes = require("./extractArgTypes");
46
46
 
@@ -67,7 +67,7 @@ var argsTableProps = function argsTableProps(component) {
67
67
  var parameters = {
68
68
  __isArgsStory: true
69
69
  };
70
- var rows = (0, _clientApi.inferControls)({
70
+ var rows = (0, _store.inferControls)({
71
71
  argTypes: argTypes,
72
72
  parameters: parameters
73
73
  });
@@ -1,25 +1,103 @@
1
1
  "use strict";
2
2
 
3
+ require("core-js/modules/es.symbol.iterator.js");
4
+
5
+ require("core-js/modules/es.string.iterator.js");
6
+
7
+ require("core-js/modules/es.array.slice.js");
8
+
9
+ require("core-js/modules/es.array.from.js");
10
+
3
11
  Object.defineProperty(exports, "__esModule", {
4
12
  value: true
5
13
  });
6
14
  exports.extractArgTypes = void 0;
7
15
 
8
- require("core-js/modules/web.dom-collections.for-each.js");
16
+ require("core-js/modules/es.object.to-string.js");
17
+
18
+ require("core-js/modules/es.array.iterator.js");
19
+
20
+ require("core-js/modules/web.dom-collections.iterator.js");
9
21
 
10
22
  require("core-js/modules/es.function.name.js");
11
23
 
12
- require("core-js/modules/es.symbol.js");
24
+ require("core-js/modules/es.array.join.js");
13
25
 
14
- require("core-js/modules/es.symbol.description.js");
26
+ require("core-js/modules/es.array.concat.js");
15
27
 
16
28
  require("core-js/modules/es.object.assign.js");
17
29
 
30
+ require("core-js/modules/web.dom-collections.for-each.js");
31
+
32
+ require("core-js/modules/es.symbol.js");
33
+
34
+ require("core-js/modules/es.symbol.description.js");
35
+
18
36
  var _docgen = require("../../lib/docgen");
19
37
 
20
38
  var _convert = require("../../lib/convert");
21
39
 
40
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
41
+
42
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
43
+
44
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
45
+
46
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
47
+
48
+ function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
49
+
50
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
51
+
22
52
  var SECTIONS = ['props', 'events', 'slots'];
53
+ /**
54
+ * Check if "@values" tag is defined within docgenInfo.
55
+ * If true, then propDef is mutated.
56
+ */
57
+
58
+ function isEnum(propDef, docgenInfo) {
59
+ // cast as any, since "values" doesn't exist in DocgenInfo type
60
+ var _ref = docgenInfo,
61
+ type = _ref.type,
62
+ values = _ref.values;
63
+ var matched = Array.isArray(values) && values.length && type.name !== 'enum';
64
+ if (!matched) return false;
65
+ var enumString = values.join(', ');
66
+ var summary = propDef.type.summary;
67
+ summary = summary ? "".concat(summary, ": ").concat(enumString) : enumString;
68
+ Object.assign(propDef.type, Object.assign({}, propDef.type, {
69
+ name: 'enum',
70
+ value: values,
71
+ summary: summary
72
+ }));
73
+ return propDef;
74
+ }
75
+ /**
76
+ * @returns {Array} result
77
+ * @returns {PropDef} result.def - propDef
78
+ * @returns {boolean} result.isChanged - flag whether propDef is mutated or not.
79
+ * this is needed to prevent sbType from performing convert(docgenInfo).
80
+ */
81
+
82
+
83
+ function verifyPropDef(propDef, docgenInfo) {
84
+ var def = propDef;
85
+ var isChanged = false; // another callback can be added here.
86
+ // callback is mutually exclusive from each other.
87
+
88
+ var callbacks = [isEnum];
89
+
90
+ for (var i = 0, len = callbacks.length; i < len; i += 1) {
91
+ var matched = callbacks[i](propDef, docgenInfo);
92
+
93
+ if (matched) {
94
+ def = matched;
95
+ isChanged = true;
96
+ }
97
+ }
98
+
99
+ return [def, isChanged];
100
+ }
23
101
 
24
102
  var extractArgTypes = function extractArgTypes(component) {
25
103
  if (!(0, _docgen.hasDocgen)(component)) {
@@ -29,18 +107,31 @@ var extractArgTypes = function extractArgTypes(component) {
29
107
  var results = {};
30
108
  SECTIONS.forEach(function (section) {
31
109
  var props = (0, _docgen.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, _convert.convert)(docgenInfo) : {
42
- name: 'void'
43
- };
110
+ props.forEach(function (_ref2) {
111
+ var propDef = _ref2.propDef,
112
+ docgenInfo = _ref2.docgenInfo,
113
+ jsDocTags = _ref2.jsDocTags;
114
+
115
+ var _verifyPropDef = verifyPropDef(propDef, docgenInfo),
116
+ _verifyPropDef2 = _slicedToArray(_verifyPropDef, 2),
117
+ result = _verifyPropDef2[0],
118
+ isPropDefChanged = _verifyPropDef2[1];
119
+
120
+ var name = result.name,
121
+ type = result.type,
122
+ description = result.description,
123
+ defaultSummary = result.defaultValue,
124
+ required = result.required;
125
+ var sbType;
126
+
127
+ if (isPropDefChanged) {
128
+ sbType = type;
129
+ } else {
130
+ sbType = section === 'props' ? (0, _convert.convert)(docgenInfo) : {
131
+ name: 'void'
132
+ };
133
+ }
134
+
44
135
  results[name] = {
45
136
  name: name,
46
137
  description: description,
@@ -9,13 +9,17 @@ require("core-js/modules/es.array.filter.js");
9
9
 
10
10
  require("core-js/modules/es.function.name.js");
11
11
 
12
+ require("core-js/modules/web.dom-collections.for-each.js");
13
+
12
14
  require("core-js/modules/es.symbol.js");
13
15
 
14
16
  require("core-js/modules/es.symbol.description.js");
15
17
 
16
- require("core-js/modules/es.array.find.js");
18
+ require("core-js/modules/es.string.replace.js");
17
19
 
18
- require("core-js/modules/web.dom-collections.for-each.js");
20
+ require("core-js/modules/es.regexp.exec.js");
21
+
22
+ require("core-js/modules/es.array.find.js");
19
23
 
20
24
  require("core-js/modules/es.object.assign.js");
21
25
 
@@ -25,35 +29,69 @@ var _clientLogger = require("@storybook/client-logger");
25
29
 
26
30
  function mapData(data, category) {
27
31
  return data && data.filter(function (item) {
28
- return !!item;
32
+ return item && item.name;
29
33
  }).reduce(function (acc, item) {
30
- var _item$type, _item$type2;
31
-
32
34
  if (item.kind === 'method') return acc;
33
- var type = category === 'properties' ? {
34
- name: ((_item$type = item.type) === null || _item$type === void 0 ? void 0 : _item$type.text) || item.type
35
- } : {
36
- name: 'void'
37
- };
38
- acc[item.name] = {
39
- name: item.name,
40
- required: false,
41
- description: item.description,
42
- type: type,
43
- table: {
44
- category: category,
45
- type: {
46
- summary: ((_item$type2 = item.type) === null || _item$type2 === void 0 ? void 0 : _item$type2.text) || item.type
47
- },
48
- defaultValue: {
49
- summary: item.default !== undefined ? item.default : item.defaultValue
50
- }
51
- }
52
- };
35
+
36
+ switch (category) {
37
+ case 'events':
38
+ mapEvent(item).forEach(function (argType) {
39
+ acc[argType.name] = argType;
40
+ });
41
+ break;
42
+
43
+ default:
44
+ acc[item.name] = mapItem(item, category);
45
+ break;
46
+ }
47
+
53
48
  return acc;
54
49
  }, {});
55
50
  }
56
51
 
52
+ function mapItem(item, category) {
53
+ var _item$type, _item$type2;
54
+
55
+ var type = category === 'properties' ? {
56
+ name: ((_item$type = item.type) === null || _item$type === void 0 ? void 0 : _item$type.text) || item.type
57
+ } : {
58
+ name: 'void'
59
+ };
60
+ return {
61
+ name: item.name,
62
+ required: false,
63
+ description: item.description,
64
+ type: type,
65
+ table: {
66
+ category: category,
67
+ type: {
68
+ summary: ((_item$type2 = item.type) === null || _item$type2 === void 0 ? void 0 : _item$type2.text) || item.type
69
+ },
70
+ defaultValue: {
71
+ summary: item.default !== undefined ? item.default : item.defaultValue
72
+ }
73
+ }
74
+ };
75
+ }
76
+
77
+ function mapEvent(item) {
78
+ var name = item.name.replace(/(-|_|:|\.|\s)+(.)?/g, function (_match, _separator, chr) {
79
+ return chr ? chr.toUpperCase() : '';
80
+ }).replace(/^([A-Z])/, function (match) {
81
+ return match.toLowerCase();
82
+ });
83
+ name = "on".concat(name.charAt(0).toUpperCase() + name.substr(1));
84
+ return [{
85
+ name: name,
86
+ action: {
87
+ name: item.name
88
+ },
89
+ table: {
90
+ disable: true
91
+ }
92
+ }, mapItem(item, 'events')];
93
+ }
94
+
57
95
  var getMetaDataExperimental = function getMetaDataExperimental(tagName, customElements) {
58
96
  if (!(0, _webComponents.isValidComponent)(tagName) || !(0, _webComponents.isValidMetaData)(customElements)) {
59
97
  return null;