@storybook/web-components 11.0.0-alpha.1 → 11.0.0-alpha.2

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/index.js CHANGED
@@ -6,8 +6,8 @@ import {
6
6
  setCustomElements,
7
7
  setCustomElementsManifest,
8
8
  setProjectAnnotations
9
- } from "./_browser-chunks/chunk-FQI5YULV.js";
10
- import "./_browser-chunks/chunk-UN5GYDGC.js";
9
+ } from "./_browser-chunks/chunk-ZTODZABH.js";
10
+ import "./_browser-chunks/chunk-Z3YF52EY.js";
11
11
  import "./_browser-chunks/chunk-6ZSMINL7.js";
12
12
  import "./_browser-chunks/chunk-4BE7D4DS.js";
13
13
  export {
package/dist/preset.js CHANGED
@@ -1,26 +1,79 @@
1
- import CJS_COMPAT_NODE_URL_8pft5enqcao from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_8pft5enqcao from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_8pft5enqcao from "node:module";
1
+ import CJS_COMPAT_NODE_URL_rucz8cqr0ps from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_rucz8cqr0ps from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_rucz8cqr0ps from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_8pft5enqcao.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_8pft5enqcao.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_8pft5enqcao.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_rucz8cqr0ps.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_rucz8cqr0ps.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_rucz8cqr0ps.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
11
  // ------------------------------------------------------------
12
+ import {
13
+ DEFAULT_TYPE_PROPERTY
14
+ } from "./_node-chunks/chunk-36BPTBR5.js";
12
15
 
13
16
  // src/preset.ts
17
+ import { fileURLToPath as fileURLToPath2 } from "node:url";
18
+
19
+ // src/docgen/preset.ts
14
20
  import { fileURLToPath } from "node:url";
21
+
22
+ // src/docgen/component-docgen/config/resolve-manifest-paths.ts
23
+ import { findFilesUp } from "storybook/internal/common";
24
+ import { readFileSync } from "node:fs";
25
+ import { dirname, resolve } from "node:path";
26
+ var asPathArray = (value) => typeof value == "string" ? [value] : Array.isArray(value) && value.every((item) => typeof item == "string") ? value : [], readPackageCustomElements = (configDir) => {
27
+ let packageJsonPath = findFilesUp(["package.json"], configDir)[0];
28
+ if (!packageJsonPath)
29
+ return [];
30
+ let packageJson = JSON.parse(readFileSync(packageJsonPath, "utf8"));
31
+ return asPathArray(packageJson.customElements).map(
32
+ (path) => resolve(dirname(packageJsonPath), path)
33
+ );
34
+ }, resolveFrameworkManifestPaths = (configDir, frameworkOptions) => asPathArray(frameworkOptions.customElementsManifest).map((path) => resolve(configDir, path)), resolveManifestPaths = (configDir, frameworkOptions) => frameworkOptions.customElementsManifest === void 0 ? readPackageCustomElements(configDir) : resolveFrameworkManifestPaths(configDir, frameworkOptions);
35
+
36
+ // src/docgen/worker-specifier.ts
37
+ var DOCGEN_WORKER_SPECIFIER = "@storybook/web-components/internal/docgen-worker";
38
+
39
+ // src/docgen/preset.ts
40
+ var experimental_docgenProvider = async (existing = [], options) => {
41
+ if (!(await options.presets.apply("features", {}))?.experimentalDocgenServer)
42
+ return existing;
43
+ let frameworkOptions = await options.presets.apply(
44
+ "frameworkOptions"
45
+ ) ?? {}, descriptor = {
46
+ moduleSpecifier: fileURLToPath(import.meta.resolve(DOCGEN_WORKER_SPECIFIER)),
47
+ options: {
48
+ manifestPaths: resolveManifestPaths(options.configDir, frameworkOptions),
49
+ typeProperty: frameworkOptions.docgen?.typeProperty ?? DEFAULT_TYPE_PROPERTY
50
+ }
51
+ };
52
+ return [...existing, descriptor];
53
+ }, experimental_manifests = async (existingManifests = {}, options) => {
54
+ let features = await options.presets.apply("features", {});
55
+ return !features?.experimentalDocgenServer || !features?.componentsManifest ? existingManifests : {
56
+ ...existingManifests,
57
+ components: {
58
+ v: 0,
59
+ components: {},
60
+ meta: { docgen: "custom-elements-manifest", durationMs: 0 }
61
+ }
62
+ };
63
+ };
64
+
65
+ // src/preset.ts
15
66
  var previewAnnotations = async (input = [], options) => {
16
67
  let docsEnabled = Object.keys(await options.presets.apply("docs", {}, options)).length > 0;
17
68
  return [].concat(input).concat([
18
- fileURLToPath(import.meta.resolve("@storybook/web-components/entry-preview")),
19
- fileURLToPath(import.meta.resolve("@storybook/web-components/entry-preview-argtypes"))
69
+ fileURLToPath2(import.meta.resolve("@storybook/web-components/entry-preview")),
70
+ fileURLToPath2(import.meta.resolve("@storybook/web-components/entry-preview-argtypes"))
20
71
  ]).concat(
21
- docsEnabled ? [fileURLToPath(import.meta.resolve("@storybook/web-components/entry-preview-docs"))] : []
72
+ docsEnabled ? [fileURLToPath2(import.meta.resolve("@storybook/web-components/entry-preview-docs"))] : []
22
73
  );
23
74
  };
24
75
  export {
76
+ experimental_docgenProvider,
77
+ experimental_manifests,
25
78
  previewAnnotations
26
79
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/web-components",
3
- "version": "11.0.0-alpha.1",
3
+ "version": "11.0.0-alpha.2",
4
4
  "description": "Storybook Web Components renderer: Develop, document, and test UI components in isolation",
5
5
  "keywords": [
6
6
  "storybook",
@@ -35,6 +35,12 @@
35
35
  "./entry-preview": "./dist/entry-preview.js",
36
36
  "./entry-preview-argtypes": "./dist/entry-preview-argtypes.js",
37
37
  "./entry-preview-docs": "./dist/entry-preview-docs.js",
38
+ "./internal/docgen": {
39
+ "types": "./dist/docgen/index.d.ts",
40
+ "code": "./src/docgen/index.ts",
41
+ "default": "./dist/docgen/index.js"
42
+ },
43
+ "./internal/docgen-worker": "./dist/docgen/docgen-worker.js",
38
44
  "./package.json": "./package.json",
39
45
  "./preset": "./dist/preset.js"
40
46
  },
@@ -48,6 +54,7 @@
48
54
  ],
49
55
  "dependencies": {
50
56
  "@storybook/global": "^5.0.0",
57
+ "custom-elements-manifest": "^2.1.0",
51
58
  "tiny-invariant": "^1.3.1",
52
59
  "ts-dedent": "^2.0.0"
53
60
  },
@@ -56,6 +63,7 @@
56
63
  "@types/node": "^22.19.1",
57
64
  "@types/tmp": "^0.2.6",
58
65
  "cross-spawn": "^7.0.6",
66
+ "es-toolkit": "^1.43.0",
59
67
  "lit": "2.3.1",
60
68
  "tmp": "^0.2.3",
61
69
  "typescript": "^6.0.3",
@@ -63,7 +71,7 @@
63
71
  },
64
72
  "peerDependencies": {
65
73
  "lit": "^2.0.0 || ^3.0.0",
66
- "storybook": "^11.0.0-alpha.1"
74
+ "storybook": "^11.0.0-alpha.2"
67
75
  },
68
76
  "publishConfig": {
69
77
  "access": "public"
@@ -34,12 +34,12 @@ export const Header = ({ user, onLogin, onLogout, onCreateAccount }) => html`
34
34
  onClick: onLogin,
35
35
  label: 'Log in',
36
36
  })}
37
- ${Button({
38
- primary: true,
39
- size: 'small',
40
- onClick: onCreateAccount,
41
- label: 'Sign up',
42
- })}`
37
+ ${Button({
38
+ primary: true,
39
+ size: 'small',
40
+ onClick: onCreateAccount,
41
+ label: 'Sign up',
42
+ })}`
43
43
  }
44
44
  </div>
45
45
  </div>
@@ -45,12 +45,12 @@ export const Header = ({ user, onLogin, onLogout, onCreateAccount }: HeaderProps
45
45
  onClick: onLogin,
46
46
  label: 'Log in',
47
47
  })}
48
- ${Button({
49
- primary: true,
50
- size: 'small',
51
- onClick: onCreateAccount,
52
- label: 'Sign up',
53
- })}`
48
+ ${Button({
49
+ primary: true,
50
+ size: 'small',
51
+ onClick: onCreateAccount,
52
+ label: 'Sign up',
53
+ })}`
54
54
  }
55
55
  </div>
56
56
  </div>
@@ -71,15 +71,15 @@ export class DemoWcCard extends LitElement {
71
71
  this.rows.length === 0
72
72
  ? html``
73
73
  : html`
74
- <dl>
75
- ${this.rows.map(
76
- (row) => html`
77
- <dt>${row.header}</dt>
78
- <dd>${row.value}</dd>
79
- `
80
- )}
81
- </dl>
82
- `
74
+ <dl>
75
+ ${this.rows.map(
76
+ (row) => html`
77
+ <dt>${row.header}</dt>
78
+ <dd>${row.value}</dd>
79
+ `
80
+ )}
81
+ </dl>
82
+ `
83
83
  }
84
84
  </div>
85
85
  <div class="footer">
@@ -1,62 +0,0 @@
1
- import {
2
- __export
3
- } from "./chunk-4BE7D4DS.js";
4
-
5
- // src/entry-preview.ts
6
- var entry_preview_exports = {};
7
- __export(entry_preview_exports, {
8
- parameters: () => parameters,
9
- render: () => render,
10
- renderToCanvas: () => renderToCanvas
11
- });
12
-
13
- // src/render.ts
14
- import { global } from "@storybook/global";
15
- import { render as litRender } from "lit";
16
- import { isTemplateResult } from "lit/directive-helpers.js";
17
- import { simulateDOMContentLoaded, simulatePageLoad } from "storybook/preview-api";
18
- import { dedent } from "ts-dedent";
19
- var { Node } = global, render = (args, context) => {
20
- let { id, component } = context;
21
- if (!component)
22
- throw new Error(
23
- `Unable to render story ${id} as the component annotation is missing from the default export`
24
- );
25
- let element = document.createElement(component);
26
- return Object.entries(args).forEach(([key, val]) => {
27
- element[key] = val;
28
- }), element;
29
- };
30
- function renderToCanvas({ storyFn, kind, name, showMain, showError, forceRemount }, canvasElement) {
31
- let element = storyFn();
32
- if (showMain(), isTemplateResult(element)) {
33
- (forceRemount || !canvasElement.querySelector('[id="root-inner"]')) && (canvasElement.innerHTML = '<div id="root-inner"></div>');
34
- let renderTo = canvasElement.querySelector('[id="root-inner"]');
35
- litRender(element, renderTo), simulatePageLoad(canvasElement);
36
- } else if (typeof element == "string")
37
- canvasElement.innerHTML = element, simulatePageLoad(canvasElement);
38
- else if (element instanceof Node) {
39
- if (canvasElement.firstChild === element && !forceRemount)
40
- return;
41
- canvasElement.innerHTML = "", canvasElement.appendChild(element), simulateDOMContentLoaded();
42
- } else
43
- showError({
44
- title: `Expecting an HTML snippet or DOM node from the story: "${name}" of "${kind}".`,
45
- description: dedent`
46
- Did you forget to return the HTML snippet from the story?
47
- Use "() => <your snippet or node>" or when defining the story.
48
- `
49
- });
50
- }
51
-
52
- // src/entry-preview.ts
53
- var parameters = {
54
- renderer: "web-components"
55
- };
56
-
57
- export {
58
- render,
59
- renderToCanvas,
60
- parameters,
61
- entry_preview_exports
62
- };