@storybook/web-components 6.5.7 → 7.0.0-alpha.0

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 (110) hide show
  1. package/README.md +1 -71
  2. package/dist/cjs/config.js +51 -0
  3. package/dist/cjs/{client/customElements.js → customElements.js} +0 -0
  4. package/dist/cjs/{client/docs → docs}/config.js +0 -0
  5. package/dist/cjs/{client/docs → docs}/custom-elements.js +35 -35
  6. package/dist/cjs/{client/docs → docs}/prepareForInline.js +2 -2
  7. package/dist/cjs/{client/docs → docs}/sourceDecorator.js +2 -0
  8. package/dist/cjs/{client/index.js → index.js} +0 -0
  9. package/dist/cjs/{client/preview → preview}/config.js +1 -7
  10. package/dist/cjs/{client/preview → preview}/globals.js +0 -0
  11. package/dist/cjs/{client/preview → preview}/index.js +2 -2
  12. package/dist/cjs/{client/preview → preview}/render.js +0 -0
  13. package/dist/cjs/{client/preview → preview}/types-6-0.js +0 -0
  14. package/dist/cjs/{client/preview → preview}/types-7-0.js +0 -0
  15. package/dist/cjs/{client/preview → preview}/types.js +0 -0
  16. package/dist/esm/config.js +6 -0
  17. package/dist/{modern/client → esm}/customElements.js +0 -0
  18. package/dist/{modern/client → esm}/docs/config.js +0 -0
  19. package/dist/{modern/client → esm}/docs/custom-elements.js +29 -37
  20. package/dist/{modern/client → esm}/docs/prepareForInline.js +1 -0
  21. package/dist/esm/docs/sourceDecorator.js +45 -0
  22. package/dist/{modern/client → esm}/index.js +0 -0
  23. package/dist/esm/preview/config.js +1 -0
  24. package/dist/{modern/client → esm}/preview/globals.js +0 -0
  25. package/dist/{modern/client → esm}/preview/index.js +1 -1
  26. package/dist/{modern/client → esm}/preview/render.js +0 -0
  27. package/dist/esm/{client/preview → preview}/types-6-0.js +0 -0
  28. package/dist/esm/{client/preview → preview}/types-7-0.js +0 -0
  29. package/dist/esm/{client/preview → preview}/types.js +0 -0
  30. package/dist/types/config.d.ts +17 -0
  31. package/dist/{ts3.9/client → types}/customElements.d.ts +0 -0
  32. package/dist/{ts3.9/client → types}/docs/config.d.ts +2 -2
  33. package/dist/{ts3.9/client → types}/docs/custom-elements.d.ts +0 -0
  34. package/dist/{ts3.9/client → types}/docs/prepareForInline.d.ts +0 -0
  35. package/dist/{ts3.9/client → types}/docs/sourceDecorator.d.ts +0 -0
  36. package/dist/{ts3.9/client → types}/index.d.ts +0 -0
  37. package/dist/types/preview/config.d.ts +1 -0
  38. package/dist/{ts3.9/client → types}/preview/globals.d.ts +0 -0
  39. package/dist/{ts3.9/client → types}/preview/index.d.ts +0 -0
  40. package/dist/{ts3.9/client → types}/preview/render.d.ts +0 -0
  41. package/dist/{ts3.9/client → types}/preview/types-6-0.d.ts +0 -0
  42. package/dist/{ts3.9/client → types}/preview/types-7-0.d.ts +0 -0
  43. package/dist/{ts3.9/client → types}/preview/types.d.ts +1 -1
  44. package/package.json +15 -37
  45. package/preview.js +1 -0
  46. package/bin/build.js +0 -4
  47. package/bin/index.js +0 -3
  48. package/dist/cjs/server/build.js +0 -9
  49. package/dist/cjs/server/framework-preset-web-components-docs.js +0 -17
  50. package/dist/cjs/server/framework-preset-web-components.js +0 -46
  51. package/dist/cjs/server/index.js +0 -9
  52. package/dist/cjs/server/options.js +0 -17
  53. package/dist/cjs/server/preset.js +0 -8
  54. package/dist/esm/client/customElements.js +0 -41
  55. package/dist/esm/client/docs/config.js +0 -18
  56. package/dist/esm/client/docs/custom-elements.js +0 -140
  57. package/dist/esm/client/docs/prepareForInline.js +0 -74
  58. package/dist/esm/client/docs/sourceDecorator.js +0 -52
  59. package/dist/esm/client/index.js +0 -24
  60. package/dist/esm/client/preview/config.js +0 -4
  61. package/dist/esm/client/preview/globals.js +0 -3
  62. package/dist/esm/client/preview/index.js +0 -27
  63. package/dist/esm/client/preview/render.js +0 -58
  64. package/dist/esm/server/build.js +0 -3
  65. package/dist/esm/server/framework-preset-web-components-docs.js +0 -6
  66. package/dist/esm/server/framework-preset-web-components.js +0 -34
  67. package/dist/esm/server/index.js +0 -3
  68. package/dist/esm/server/options.js +0 -8
  69. package/dist/esm/server/preset.js +0 -1
  70. package/dist/modern/client/docs/sourceDecorator.js +0 -49
  71. package/dist/modern/client/preview/config.js +0 -4
  72. package/dist/modern/client/preview/types-6-0.js +0 -1
  73. package/dist/modern/client/preview/types-7-0.js +0 -1
  74. package/dist/modern/client/preview/types.js +0 -1
  75. package/dist/modern/server/build.js +0 -3
  76. package/dist/modern/server/framework-preset-web-components-docs.js +0 -6
  77. package/dist/modern/server/framework-preset-web-components.js +0 -34
  78. package/dist/modern/server/index.js +0 -3
  79. package/dist/modern/server/options.js +0 -8
  80. package/dist/modern/server/preset.js +0 -1
  81. package/dist/ts3.4/client/customElements.d.ts +0 -8
  82. package/dist/ts3.4/client/docs/config.d.ts +0 -18
  83. package/dist/ts3.4/client/docs/custom-elements.d.ts +0 -36
  84. package/dist/ts3.4/client/docs/prepareForInline.d.ts +0 -4
  85. package/dist/ts3.4/client/docs/sourceDecorator.d.ts +0 -3
  86. package/dist/ts3.4/client/index.d.ts +0 -3
  87. package/dist/ts3.4/client/preview/config.d.ts +0 -4
  88. package/dist/ts3.4/client/preview/globals.d.ts +0 -1
  89. package/dist/ts3.4/client/preview/index.d.ts +0 -24
  90. package/dist/ts3.4/client/preview/render.d.ts +0 -3
  91. package/dist/ts3.4/client/preview/types-6-0.d.ts +0 -34
  92. package/dist/ts3.4/client/preview/types-7-0.d.ts +0 -9
  93. package/dist/ts3.4/client/preview/types.d.ts +0 -16
  94. package/dist/ts3.4/server/build.d.ts +0 -1
  95. package/dist/ts3.4/server/framework-preset-web-components-docs.d.ts +0 -2
  96. package/dist/ts3.4/server/framework-preset-web-components.d.ts +0 -4
  97. package/dist/ts3.4/server/index.d.ts +0 -1
  98. package/dist/ts3.4/server/options.d.ts +0 -3
  99. package/dist/ts3.4/server/preset.d.ts +0 -2
  100. package/dist/ts3.9/client/preview/config.d.ts +0 -4
  101. package/dist/ts3.9/server/build.d.ts +0 -1
  102. package/dist/ts3.9/server/framework-preset-web-components-docs.d.ts +0 -2
  103. package/dist/ts3.9/server/framework-preset-web-components.d.ts +0 -4
  104. package/dist/ts3.9/server/index.d.ts +0 -1
  105. package/dist/ts3.9/server/options.d.ts +0 -3
  106. package/dist/ts3.9/server/preset.d.ts +0 -2
  107. package/preset.js +0 -1
  108. package/standalone.js +0 -8
  109. package/types-6-0.d.ts +0 -1
  110. package/types-7-0.d.ts +0 -1
package/README.md CHANGED
@@ -1,71 +1 @@
1
- # Storybook for web-components
2
-
3
- ---
4
-
5
- Storybook for web-components is a UI development environment for your plain web-component snippets.
6
- With it, you can visualize different states of your UI components and develop them interactively.
7
-
8
- ![Storybook Screenshot](https://github.com/storybookjs/storybook/blob/main/media/storybook-intro.gif)
9
-
10
- Storybook runs outside of your app.
11
- So you can develop UI components in isolation without worrying about app specific dependencies and requirements.
12
-
13
- ## Getting Started
14
-
15
- ```sh
16
- cd my-app
17
- npx sb init -t web_components
18
- ```
19
-
20
- For more information visit: [storybook.js.org](https://storybook.js.org)
21
-
22
- ---
23
-
24
- Storybook also comes with a lot of [addons](https://storybook.js.org/addons) and a great API to customize as you wish.
25
- You can also build a [static version](https://storybook.js.org/docs/web-components/sharing/publish-storybook) of your storybook and deploy it anywhere you want.
26
-
27
- # Hot Module Reloading (HMR)
28
-
29
- As web components register on a global registry which only accepts a certain name/class once it can lead to errors when using classical HMR. There are ideas on how to archive HMR with a static registry but there is no proven solution yet. Therefore the best approach for now is to do full page reloads. If you keep your stories to specific states of components (which we would recommend anyways) this usually means it is fast.
30
-
31
- # Setup es6/7 dependencies
32
-
33
- By default storybook only works with precompiled ES5 code but as most web components themselves and their libs are distributed as ES2017 you will need to manually mark those packages as "needs transpilation".
34
-
35
- For example if you have a library called `my-library` which is in ES2017 then you can add it like so
36
-
37
- ```js
38
- // .storybook/main.js
39
-
40
- module.exports = {
41
- webpackFinal: async (config) => {
42
- // find web-components rule for extra transpilation
43
- const webComponentsRule = config.module.rules.find(
44
- (rule) => rule.use && rule.use.options && rule.use.options.babelrc === false
45
- );
46
- // add your own `my-library`
47
- webComponentsRule.test.push(new RegExp(`node_modules(\\/|\\\\)my-library(.*)\\.js$`));
48
-
49
- return config;
50
- },
51
- };
52
- ```
53
-
54
- By default the following folders are included
55
-
56
- - `src/*.js`
57
- - `packages/*/src/*.js`
58
- - `node_modules/lit-html/*.js`
59
- - `node_modules/lit-element/*.js`
60
- - `node_modules/@open-wc/*.js`
61
- - `node_modules/@polymer/*.js`
62
- - `node_modules/@vaadin/*.js`
63
-
64
- As you can see the `src` folder is also included.
65
- The reason for that is as it has some extra configuration to allow for example `import.meta`.
66
- If you use a different folder you will need to make sure webpack/babel can handle it.
67
-
68
- # FAQ
69
-
70
- - While working on my component I get the error `Failed to execute 'define' on 'CustomElementRegistry': the name "..." has already been used with this registry`
71
- => please see <a href="#user-content-setup-page-reload-via-hmr">Setup page reload via HMR</a>
1
+ # Storybook web-components renderer
@@ -0,0 +1,51 @@
1
+ "use strict";
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
+ Object.defineProperty(exports, "__esModule", {
10
+ value: true
11
+ });
12
+ var _exportNames = {
13
+ parameters: true,
14
+ decorators: true,
15
+ argTypesEnhancers: true
16
+ };
17
+ Object.defineProperty(exports, "argTypesEnhancers", {
18
+ enumerable: true,
19
+ get: function get() {
20
+ return _config.argTypesEnhancers;
21
+ }
22
+ });
23
+ Object.defineProperty(exports, "decorators", {
24
+ enumerable: true,
25
+ get: function get() {
26
+ return _config.decorators;
27
+ }
28
+ });
29
+ exports.parameters = void 0;
30
+
31
+ require("core-js/modules/es.object.assign.js");
32
+
33
+ var _config = require("./docs/config");
34
+
35
+ var _config2 = require("./preview/config");
36
+
37
+ Object.keys(_config2).forEach(function (key) {
38
+ if (key === "default" || key === "__esModule") return;
39
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
40
+ if (key in exports && exports[key] === _config2[key]) return;
41
+ Object.defineProperty(exports, key, {
42
+ enumerable: true,
43
+ get: function get() {
44
+ return _config2[key];
45
+ }
46
+ });
47
+ });
48
+ var parameters = Object.assign({
49
+ framework: 'web-components'
50
+ }, _config.parameters);
51
+ exports.parameters = parameters;
File without changes
@@ -5,14 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.extractComponentDescription = exports.extractArgTypesFromElements = exports.extractArgTypes = void 0;
7
7
 
8
- require("core-js/modules/es.object.to-string.js");
9
-
10
- require("core-js/modules/es.array.filter.js");
11
-
12
8
  require("core-js/modules/es.function.name.js");
13
9
 
14
- require("core-js/modules/web.dom-collections.for-each.js");
15
-
16
10
  require("core-js/modules/es.symbol.js");
17
11
 
18
12
  require("core-js/modules/es.symbol.description.js");
@@ -21,6 +15,12 @@ require("core-js/modules/es.regexp.exec.js");
21
15
 
22
16
  require("core-js/modules/es.string.replace.js");
23
17
 
18
+ require("core-js/modules/es.object.to-string.js");
19
+
20
+ require("core-js/modules/es.array.filter.js");
21
+
22
+ require("core-js/modules/web.dom-collections.for-each.js");
23
+
24
24
  require("core-js/modules/es.array.find.js");
25
25
 
26
26
  require("core-js/modules/es.object.assign.js");
@@ -29,28 +29,6 @@ var _clientLogger = require("@storybook/client-logger");
29
29
 
30
30
  var _ = require("..");
31
31
 
32
- function mapData(data, category) {
33
- return data && data.filter(function (item) {
34
- return item && item.name;
35
- }).reduce(function (acc, item) {
36
- if (item.kind === 'method') return acc;
37
-
38
- switch (category) {
39
- case 'events':
40
- mapEvent(item).forEach(function (argType) {
41
- acc[argType.name] = argType;
42
- });
43
- break;
44
-
45
- default:
46
- acc[item.name] = mapItem(item, category);
47
- break;
48
- }
49
-
50
- return acc;
51
- }, {});
52
- }
53
-
54
32
  function mapItem(item, category) {
55
33
  var _item$type, _item$type2;
56
34
 
@@ -94,6 +72,28 @@ function mapEvent(item) {
94
72
  }, mapItem(item, 'events')];
95
73
  }
96
74
 
75
+ function mapData(data, category) {
76
+ return data && data.filter(function (item) {
77
+ return item && item.name;
78
+ }).reduce(function (acc, item) {
79
+ if (item.kind === 'method') return acc;
80
+
81
+ switch (category) {
82
+ case 'events':
83
+ mapEvent(item).forEach(function (argType) {
84
+ acc[argType.name] = argType;
85
+ });
86
+ break;
87
+
88
+ default:
89
+ acc[item.name] = mapItem(item, category);
90
+ break;
91
+ }
92
+
93
+ return acc;
94
+ }, {});
95
+ }
96
+
97
97
  var getMetaDataExperimental = function getMetaDataExperimental(tagName, customElements) {
98
98
  if (!(0, _.isValidComponent)(tagName) || !(0, _.isValidMetaData)(customElements)) {
99
99
  return null;
@@ -135,13 +135,6 @@ var getMetaDataV1 = function getMetaDataV1(tagName, customElements) {
135
135
  return metadata;
136
136
  };
137
137
 
138
- var extractArgTypesFromElements = function extractArgTypesFromElements(tagName, customElements) {
139
- var metaData = getMetaData(tagName, customElements);
140
- return metaData && Object.assign({}, mapData(metaData.attributes, 'attributes'), mapData(metaData.members, 'properties'), mapData(metaData.properties, 'properties'), mapData(metaData.events, 'events'), mapData(metaData.slots, 'slots'), mapData(metaData.cssProperties, 'css custom properties'), mapData(metaData.cssParts, 'css shadow parts'));
141
- };
142
-
143
- exports.extractArgTypesFromElements = extractArgTypesFromElements;
144
-
145
138
  var getMetaData = function getMetaData(tagName, manifest) {
146
139
  if ((manifest === null || manifest === void 0 ? void 0 : manifest.version) === 'experimental') {
147
140
  return getMetaDataExperimental(tagName, manifest);
@@ -150,6 +143,13 @@ var getMetaData = function getMetaData(tagName, manifest) {
150
143
  return getMetaDataV1(tagName, manifest);
151
144
  };
152
145
 
146
+ var extractArgTypesFromElements = function extractArgTypesFromElements(tagName, customElements) {
147
+ var metaData = getMetaData(tagName, customElements);
148
+ return metaData && Object.assign({}, mapData(metaData.attributes, 'attributes'), mapData(metaData.members, 'properties'), mapData(metaData.properties, 'properties'), mapData(metaData.events, 'events'), mapData(metaData.slots, 'slots'), mapData(metaData.cssProperties, 'css custom properties'), mapData(metaData.cssParts, 'css shadow parts'));
149
+ };
150
+
151
+ exports.extractArgTypesFromElements = extractArgTypesFromElements;
152
+
153
153
  var extractArgTypes = function extractArgTypes(tagName) {
154
154
  var cem = (0, _.getCustomElements)();
155
155
  return extractArgTypesFromElements(tagName, cem);
@@ -41,7 +41,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
41
41
 
42
42
  function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
43
43
 
44
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
44
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
45
45
 
46
46
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
47
47
 
@@ -51,7 +51,7 @@ function _assertThisInitialized(self) { if (self === void 0) { throw new Referen
51
51
 
52
52
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
53
53
 
54
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
54
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
55
55
 
56
56
  var prepareForInline = function prepareForInline(storyFn) {
57
57
  var Story = /*#__PURE__*/function (_React$Component) {
@@ -15,6 +15,8 @@ var _addons = require("@storybook/addons");
15
15
 
16
16
  var _docsTools = require("@storybook/docs-tools");
17
17
 
18
+ /* eslint-disable no-underscore-dangle */
19
+
18
20
  /* global window */
19
21
  // Taken from https://github.com/lit/lit/blob/main/packages/lit-html/src/test/test-utils/strip-markers.ts
20
22
  var LIT_EXPRESSION_COMMENTS = /<!--\?lit\$[0-9]+\$-->|<!--\??-->/g;
File without changes
@@ -3,7 +3,6 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.parameters = void 0;
7
6
  Object.defineProperty(exports, "renderToDOM", {
8
7
  enumerable: true,
9
8
  get: function get() {
@@ -11,9 +10,4 @@ Object.defineProperty(exports, "renderToDOM", {
11
10
  }
12
11
  });
13
12
 
14
- var _render = require("./render");
15
-
16
- var parameters = {
17
- framework: 'web-components'
18
- };
19
- exports.parameters = parameters;
13
+ var _render = require("./render");
File without changes
@@ -7,7 +7,7 @@ exports.storiesOf = exports.setAddon = exports.raw = exports.getStorybook = expo
7
7
 
8
8
  require("core-js/modules/es.array.concat.js");
9
9
 
10
- var _core = require("@storybook/core");
10
+ var _coreClient = require("@storybook/core-client");
11
11
 
12
12
  require("./globals");
13
13
 
@@ -15,7 +15,7 @@ var _render = require("./render");
15
15
 
16
16
  /* eslint-disable prefer-destructuring */
17
17
  var framework = 'web-components';
18
- var api = (0, _core.start)(_render.renderToDOM);
18
+ var api = (0, _coreClient.start)(_render.renderToDOM);
19
19
 
20
20
  var storiesOf = function storiesOf(kind, m) {
21
21
  return api.clientApi.storiesOf(kind, m).addParameters({
File without changes
File without changes
@@ -0,0 +1,6 @@
1
+ import { parameters as docsParams } from './docs/config';
2
+ export const parameters = Object.assign({
3
+ framework: 'web-components'
4
+ }, docsParams);
5
+ export { decorators, argTypesEnhancers } from './docs/config';
6
+ export * from './preview/config';
File without changes
File without changes
@@ -1,32 +1,9 @@
1
- import "core-js/modules/es.array.reduce.js";
2
1
  import { logger } from '@storybook/client-logger';
3
2
  import { getCustomElements, isValidComponent, isValidMetaData } from '..';
4
3
 
5
- function mapData(data, category) {
6
- return data && data.filter(item => item && item.name).reduce((acc, item) => {
7
- if (item.kind === 'method') return acc;
8
-
9
- switch (category) {
10
- case 'events':
11
- mapEvent(item).forEach(argType => {
12
- acc[argType.name] = argType;
13
- });
14
- break;
15
-
16
- default:
17
- acc[item.name] = mapItem(item, category);
18
- break;
19
- }
20
-
21
- return acc;
22
- }, {});
23
- }
24
-
25
4
  function mapItem(item, category) {
26
- var _item$type, _item$type2;
27
-
28
5
  const type = category === 'properties' ? {
29
- name: ((_item$type = item.type) === null || _item$type === void 0 ? void 0 : _item$type.text) || item.type
6
+ name: item.type?.text || item.type
30
7
  } : {
31
8
  name: 'void'
32
9
  };
@@ -38,7 +15,7 @@ function mapItem(item, category) {
38
15
  table: {
39
16
  category,
40
17
  type: {
41
- summary: ((_item$type2 = item.type) === null || _item$type2 === void 0 ? void 0 : _item$type2.text) || item.type
18
+ summary: item.type?.text || item.type
42
19
  },
43
20
  defaultValue: {
44
21
  summary: item.default !== undefined ? item.default : item.defaultValue
@@ -63,6 +40,26 @@ function mapEvent(item) {
63
40
  }, mapItem(item, 'events')];
64
41
  }
65
42
 
43
+ function mapData(data, category) {
44
+ return data && data.filter(item => item && item.name).reduce((acc, item) => {
45
+ if (item.kind === 'method') return acc;
46
+
47
+ switch (category) {
48
+ case 'events':
49
+ mapEvent(item).forEach(argType => {
50
+ acc[argType.name] = argType;
51
+ });
52
+ break;
53
+
54
+ default:
55
+ acc[item.name] = mapItem(item, category);
56
+ break;
57
+ }
58
+
59
+ return acc;
60
+ }, {});
61
+ }
62
+
66
63
  const getMetaDataExperimental = (tagName, customElements) => {
67
64
  if (!isValidComponent(tagName) || !isValidMetaData(customElements)) {
68
65
  return null;
@@ -78,17 +75,13 @@ const getMetaDataExperimental = (tagName, customElements) => {
78
75
  };
79
76
 
80
77
  const getMetaDataV1 = (tagName, customElements) => {
81
- var _customElements$modul;
82
-
83
78
  if (!isValidComponent(tagName) || !isValidMetaData(customElements)) {
84
79
  return null;
85
80
  }
86
81
 
87
82
  let metadata;
88
- customElements === null || customElements === void 0 ? void 0 : (_customElements$modul = customElements.modules) === null || _customElements$modul === void 0 ? void 0 : _customElements$modul.forEach(_module => {
89
- var _module$declarations;
90
-
91
- _module === null || _module === void 0 ? void 0 : (_module$declarations = _module.declarations) === null || _module$declarations === void 0 ? void 0 : _module$declarations.forEach(declaration => {
83
+ customElements?.modules?.forEach(_module => {
84
+ _module?.declarations?.forEach(declaration => {
92
85
  if (declaration.tagName === tagName) {
93
86
  metadata = declaration;
94
87
  }
@@ -102,19 +95,18 @@ const getMetaDataV1 = (tagName, customElements) => {
102
95
  return metadata;
103
96
  };
104
97
 
105
- export const extractArgTypesFromElements = (tagName, customElements) => {
106
- const metaData = getMetaData(tagName, customElements);
107
- return metaData && Object.assign({}, mapData(metaData.attributes, 'attributes'), mapData(metaData.members, 'properties'), mapData(metaData.properties, 'properties'), mapData(metaData.events, 'events'), mapData(metaData.slots, 'slots'), mapData(metaData.cssProperties, 'css custom properties'), mapData(metaData.cssParts, 'css shadow parts'));
108
- };
109
-
110
98
  const getMetaData = (tagName, manifest) => {
111
- if ((manifest === null || manifest === void 0 ? void 0 : manifest.version) === 'experimental') {
99
+ if (manifest?.version === 'experimental') {
112
100
  return getMetaDataExperimental(tagName, manifest);
113
101
  }
114
102
 
115
103
  return getMetaDataV1(tagName, manifest);
116
104
  };
117
105
 
106
+ export const extractArgTypesFromElements = (tagName, customElements) => {
107
+ const metaData = getMetaData(tagName, customElements);
108
+ return metaData && Object.assign({}, mapData(metaData.attributes, 'attributes'), mapData(metaData.members, 'properties'), mapData(metaData.properties, 'properties'), mapData(metaData.events, 'events'), mapData(metaData.slots, 'slots'), mapData(metaData.cssProperties, 'css custom properties'), mapData(metaData.cssParts, 'css shadow parts'));
109
+ };
118
110
  export const extractArgTypes = tagName => {
119
111
  const cem = getCustomElements();
120
112
  return extractArgTypesFromElements(tagName, cem);
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @typescript-eslint/ban-types */
1
2
  import React from 'react';
2
3
  import { render } from 'lit-html';
3
4
  export const prepareForInline = storyFn => {
@@ -0,0 +1,45 @@
1
+ /* eslint-disable no-underscore-dangle */
2
+
3
+ /* global window */
4
+ import { render } from 'lit-html';
5
+ import { addons, useEffect } from '@storybook/addons';
6
+ import { SNIPPET_RENDERED, SourceType } from '@storybook/docs-tools';
7
+ // Taken from https://github.com/lit/lit/blob/main/packages/lit-html/src/test/test-utils/strip-markers.ts
8
+ const LIT_EXPRESSION_COMMENTS = /<!--\?lit\$[0-9]+\$-->|<!--\??-->/g;
9
+
10
+ function skipSourceRender(context) {
11
+ const sourceParams = context?.parameters.docs?.source;
12
+ const isArgsStory = context?.parameters.__isArgsStory; // always render if the user forces it
13
+
14
+ if (sourceParams?.type === SourceType.DYNAMIC) {
15
+ return false;
16
+ } // never render if the user is forcing the block to render code, or
17
+ // if the user provides code, or if it's not an args story.
18
+
19
+
20
+ return !isArgsStory || sourceParams?.code || sourceParams?.type === SourceType.CODE;
21
+ }
22
+
23
+ function applyTransformSource(source, context) {
24
+ const {
25
+ transformSource
26
+ } = context.parameters.docs ?? {};
27
+ if (typeof transformSource !== 'function') return source;
28
+ return transformSource(source, context);
29
+ }
30
+
31
+ export function sourceDecorator(storyFn, context) {
32
+ const story = context?.parameters.docs?.source?.excludeDecorators ? context.originalStoryFn(context.args, context) : storyFn();
33
+ let source;
34
+ useEffect(() => {
35
+ if (source) addons.getChannel().emit(SNIPPET_RENDERED, context.id, source);
36
+ });
37
+
38
+ if (!skipSourceRender(context)) {
39
+ const container = window.document.createElement('div');
40
+ render(story, container);
41
+ source = applyTransformSource(container.innerHTML.replace(LIT_EXPRESSION_COMMENTS, ''), context);
42
+ }
43
+
44
+ return story;
45
+ }
File without changes
@@ -0,0 +1 @@
1
+ export { renderToDOM } from './render';
File without changes
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable prefer-destructuring */
2
- import { start } from '@storybook/core';
2
+ import { start } from '@storybook/core-client';
3
3
  import './globals';
4
4
  import { renderToDOM } from './render';
5
5
  const framework = 'web-components';
File without changes
File without changes
@@ -0,0 +1,17 @@
1
+ export declare const parameters: {
2
+ docs: {
3
+ extractArgTypes: (tagName: string) => {
4
+ [x: string]: import("lib/api/dist/types").ArgType;
5
+ };
6
+ extractComponentDescription: (tagName: string) => string;
7
+ inlineStories: boolean;
8
+ prepareForInline: (storyFn: import("@storybook/csf").PartialStoryFn<import(".").WebComponentsFramework, import("@storybook/csf").Args>) => import("react").CElement<{}, import("react").Component<{}, {}, any>>;
9
+ source: {
10
+ type: import("lib/docs-tools/dist/types").SourceType;
11
+ language: string;
12
+ };
13
+ };
14
+ framework: string;
15
+ };
16
+ export { decorators, argTypesEnhancers } from './docs/config';
17
+ export * from './preview/config';
File without changes
@@ -4,7 +4,7 @@ export declare const decorators: (typeof sourceDecorator)[];
4
4
  export declare const parameters: {
5
5
  docs: {
6
6
  extractArgTypes: (tagName: string) => {
7
- [x: string]: import("@storybook/api").ArgType;
7
+ [x: string]: import("lib/api/dist/types").ArgType;
8
8
  };
9
9
  extractComponentDescription: (tagName: string) => string;
10
10
  inlineStories: boolean;
@@ -15,4 +15,4 @@ export declare const parameters: {
15
15
  };
16
16
  };
17
17
  };
18
- export declare const argTypesEnhancers: (<TFramework extends import("@storybook/csf").AnyFramework>(context: import("@storybook/csf").StoryContextForEnhancers<TFramework, import("@storybook/csf").Args>) => import("@storybook/addons").Parameters | import("@storybook/csf").StrictArgTypes<import("@storybook/csf").Args>)[];
18
+ export declare const argTypesEnhancers: (<TFramework extends import("@storybook/csf").AnyFramework>(context: import("@storybook/csf").StoryContextForEnhancers<TFramework, import("@storybook/csf").Args>) => import("@storybook/csf").StrictArgTypes<import("@storybook/csf").Args> | import("lib/addons/dist/types").Parameters)[];
File without changes
@@ -0,0 +1 @@
1
+ export { renderToDOM } from './render';
File without changes
File without changes
@@ -1,5 +1,5 @@
1
1
  import type { TemplateResult, SVGTemplateResult } from 'lit-html';
2
- export type { RenderContext } from '@storybook/core';
2
+ export type { RenderContext } from '@storybook/core-client';
3
3
  export type { Args, ArgTypes, Parameters, StoryContext } from '@storybook/addons';
4
4
  export declare type StoryFnHtmlReturnType = string | Node | TemplateResult | SVGTemplateResult;
5
5
  export interface IStorybookStory {