Created 10 detailed GitHub issues covering: - Project activation and management UI (#1-2) - Worker node coordination and visualization (#3-4) - Automated GitHub repository scanning (#5) - Intelligent model-to-issue matching (#6) - Multi-model task execution system (#7) - N8N workflow integration (#8) - Hive-Bzzz P2P bridge (#9) - Peer assistance protocol (#10) Each issue includes detailed specifications, acceptance criteria, technical implementation notes, and dependency mapping. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
4.1 KiB
Storybook Docs for Web Components
Installation
-
Be sure to check the installation section of the general addon-docs page before proceeding.
-
Be sure to have a custom-elements.json file.
-
Add to your
.storybook/preview.jsimport { setCustomElementsManifest } from '@storybook/web-components'; import customElements from '../custom-elements.json'; setCustomElementsManifest(customElements); -
Add to your story files
export default { title: 'Demo Card', component: 'your-component-name', // which is also found in the `custom-elements.json` };
Props tables
In order to get Props tables documentation for web-components you will need to have a custom-elements.json file.
You can hand write it or better generate it. Depending on the web components sugar you are choosing your mileage may vary.
Known analyzers that output custom-elements.json v1.0.0:
- @custom-elements-manifest/analyzer
- Supports Vanilla, LitElement, FASTElement, Stencil, Catalyst, Atomico
Known analyzers that output older versions of custom-elements.json:
- web-component-analyzer
- Supports LitElement, Polymer, Vanilla, (Stencil)
- stenciljs
- Supports Stencil (but does not have all metadata)
To generate this file with Stencil, add docs-vscode to outputTargets in stencil.config.ts:
{
type: 'docs-vscode',
file: 'custom-elements.json'
},
The file looks something like this:
{
"schemaVersion": "1.0.0",
"readme": "",
"modules": [
{
"kind": "javascript-module",
"path": "src/my-element.js",
"declarations": [
{
"kind": "class",
"description": "",
"name": "MyElement",
"members": [
{
"kind": "field",
"name": "disabled"
},
{
"kind": "method",
"name": "fire"
}
],
"events": [
{
"name": "disabled-changed",
"type": {
"text": "Event"
}
}
],
"superclass": {
"name": "HTMLElement"
},
"tagName": "my-element"
}
],
"exports": [
{
"kind": "custom-element-definition",
"name": "my-element",
"declaration": {
"name": "MyElement",
"module": "src/my-element.js"
}
}
]
}
]
}
For a full example see the web-components-kitchen-sink/custom-elements.json.
Stories not inline
Storybook Docs renders all web components stories inline by default.
However, you can render stories in an iframe, with a default height of 60px (configurable using the docs.story.iframeHeight story parameter), by using the docs.stories.inline parameter.
To do so for all stories, update .storybook/preview.js:
export const parameters = { docs: { story: { inline: false } } };
More resources
Want to learn more? Here are some more articles on Storybook Docs: