storybook-addon-md 0.2.0 → 0.3.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # storybook-addon-md
2
2
 
3
+ ## 0.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 209fe53: Add opt-in documentation manifests with original Markdown, frontmatter summaries, and live updates for standalone and attached docs. Enable `manifests: true` to use [Storybook 10.6.0 manifests](https://storybook.js.org/docs/ai/manifests) and [@storybook/addon-mcp](https://storybook.js.org/docs/ai/mcp/overview) without a custom preset.
8
+
9
+ See the [setup guide](https://github.com/ruijdacd/storybook-addon-md#documentation-manifests-and-mcp) and [examples with and without MCP](https://github.com/ruijdacd/storybook-addon-md#examples-and-contributing).
10
+
11
+ ### Patch Changes
12
+
13
+ - a94853e: Use rem values for default Markdown styles so they scale with the root font size. Add `--sbmd-monospace-font-family` to customize inline code and code blocks, with Storybook’s monospace theme font as the default. See the [CSS variable reference](https://github.com/ruijdacd/storybook-addon-md/blob/main/STYLING.md).
14
+
3
15
  ## 0.2.0
4
16
 
5
17
  ### Minor Changes
package/README.md CHANGED
@@ -93,30 +93,63 @@ Without a title, `docs/Introduction.md` appears at `Documentation/docs/Introduct
93
93
 
94
94
  YAML frontmatter is optional. Use lowercase field names.
95
95
 
96
- | Field | Meaning |
97
- | ------------ | -------------------------------------------------- |
98
- | `title` | Sidebar location for standalone pages. |
99
- | `stories` | Relative story-file path or array of paths. |
100
- | `tags` | Array of labels rendered as chips below the title. |
101
- | `status` | A chip with its value preserved in `data-status`. |
102
- | Other fields | Preserved as metadata for custom presentation. |
96
+ | Field | Meaning |
97
+ | ------------- | --------------------------------------------------- |
98
+ | `title` | Sidebar location for standalone pages. |
99
+ | `stories` | Relative story-file path or array of paths. |
100
+ | `tags` | Array of labels rendered as chips below the title. |
101
+ | `description` | Optional string summary in documentation manifests. |
102
+ | `status` | A chip with its value preserved in `data-status`. |
103
+ | Other fields | Preserved as metadata for custom presentation. |
103
104
 
104
105
  Invalid frontmatter, missing or ambiguous story references, and missing local assets produce source-specific errors.
105
106
 
106
107
  ## Configuration
107
108
 
108
- | Option | Default | Purpose |
109
- | -------------- | ------------------------------ | ------------------------------------------------------------- |
110
- | `patterns` | Required | Markdown globs; prefix with `!` to exclude files. |
111
- | `root` | `..` | Project folder, resolved from the Storybook config directory. |
112
- | `generatedDir` | `storybook-markdown-generated` | Disposable output folder under the working directory. |
113
- | `stylesheet` | None | Custom stylesheet path. |
114
- | `presentation` | None | Module exporting `Layout` and/or `MarkdownRenderer`. |
109
+ | Option | Default | Purpose |
110
+ | -------------- | ------------------------------ | --------------------------------------------------------------- |
111
+ | `patterns` | Required | Markdown globs; prefix with `!` to exclude files. |
112
+ | `root` | `..` | Project folder, resolved from the Storybook config directory. |
113
+ | `generatedDir` | `storybook-markdown-generated` | Disposable output folder under the working directory. |
114
+ | `stylesheet` | None | Custom stylesheet path. |
115
+ | `manifests` | `false` | Include original Markdown in Storybook documentation manifests. |
116
+ | `presentation` | None | Module exporting `Layout` and/or `MarkdownRenderer`. |
115
117
 
116
118
  Globs and customization paths start from your project folder (the parent of `.storybook` by default). Keep the config and local files inside that folder. Restart Storybook after changing options.
117
119
 
118
120
  `generatedDir` must be a visible folder name using letters, digits, hyphens, or underscores. Hidden folders, nested paths, `node_modules`, and `storybook-static` are unsupported. Ignore the folder in Git; the addon manages its contents.
119
121
 
122
+ ## Documentation manifests and MCP
123
+
124
+ Manifest support is opt-in. Set `manifests: true` in this addon's options and enable Storybook's `features.componentsManifest`:
125
+
126
+ ```ts
127
+ const config: StorybookConfig = {
128
+ framework: '@storybook/react-vite',
129
+ features: { componentsManifest: true },
130
+ stories: ['../src/**/*.stories.@(ts|tsx|js|jsx)'],
131
+ addons: [
132
+ '@storybook/addon-docs',
133
+ '@storybook/addon-mcp',
134
+ {
135
+ name: 'storybook-addon-md',
136
+ options: {
137
+ patterns: ['src/**/*.md', 'docs/**/*.md'],
138
+ manifests: true,
139
+ },
140
+ },
141
+ ],
142
+ };
143
+ ```
144
+
145
+ For MCP access, install `@storybook/addon-mcp@10.6.0` and connect your MCP client to `http://localhost:6006/mcp`. Its Get Documentation tool is named `docs-show` in 10.6.0. Omit that addon if you only need JSON manifests. It is not a dependency of `storybook-addon-md`.
146
+
147
+ With Storybook and React Vite **10.6.0**, standalone Markdown appears in `/manifests/docs.json`, and attached Markdown appears in the component's `docs` in `/manifests/components.json`. Both development and static builds include the complete original source, including frontmatter. Development updates use the existing file watcher. Shared documents appear under each associated component; multiple documents on one page are joined in discovery order with two newlines. String `description` values supply optional summaries.
148
+
149
+ Keep this addon after `@storybook/addon-docs`. Consumers can remove custom manifest presets that supplied Markdown content after enabling this option. Unrelated MDX, Autodocs, and other manifest fields are preserved. Storybook's manifest tag filtering still applies.
150
+
151
+ This integration uses Storybook 10.6.0's experimental preset hook and inline (v0) manifests. Other Storybook versions and `features.experimentalDocgenServer` service-backed manifests are unsupported. Markdown links and assets remain as authored in manifest content. See [Storybook manifests](https://storybook.js.org/docs/ai/manifests) for the upstream feature.
152
+
120
153
  ## Styling
121
154
 
122
155
  Set `stylesheet: '.storybook/markdown.css'` to override the defaults:
@@ -141,15 +174,23 @@ See [Styling](STYLING.md) for all variables, status colors, theme switching, and
141
174
  - Set Storybook’s `parameters.options.storySort` for explicit sidebar ordering. See the [example preview](https://github.com/ruijdacd/storybook-addon-md/blob/main/example/.storybook/preview.ts).
142
175
  - The attached Docs entry name **Markdown** is reserved. Multiple development Storybooks sharing one config directory are unsupported.
143
176
 
144
- ## Example and contributing
177
+ ## Examples and contributing
145
178
 
146
- Run the included Storybook with **Nub 0.7.5** and **Node 24**:
179
+ Install dependencies with **Nub 0.7.5** and **Node 24.11+**:
147
180
 
148
181
  ```sh
149
182
  nub install
150
- nub run storybook
151
183
  ```
152
184
 
185
+ Choose either example. They share stories, Markdown, and styling, with separate Storybook configurations:
186
+
187
+ | Example | Configuration | Run | Build |
188
+ | ----------- | ------------------------------------- | ------------------------------ | ----------------------------- |
189
+ | Without MCP | [Default](example/.storybook/main.ts) | `nub run storybook` (6006) | `nub run build-storybook` |
190
+ | With MCP | [MCP](example/.storybook-mcp/main.ts) | `nub run storybook:mcp` (6007) | `nub run build-storybook:mcp` |
191
+
192
+ The MCP example enables `manifests: true` and `@storybook/addon-mcp`. Connect your MCP client to `http://localhost:6007/mcp`. Static builds write to `storybook-static/` and `storybook-static-mcp/`, respectively. MCP is a development dependency for the example only; normal addon usage does not require it.
193
+
153
194
  Browse **Guides → Introduction**, **Components → Button**, and **Components → Toggle** for standalone, attached, and shared docs with system light/dark styling.
154
195
 
155
196
  See [Contributing](CONTRIBUTING.md) for tests and releases, or [open an issue](https://github.com/ruijdacd/storybook-addon-md/issues).
package/STYLING.md CHANGED
@@ -4,105 +4,109 @@ Set these variables on `.storybook-addon-md-page` in the file configured by `sty
4
4
 
5
5
  ```css
6
6
  .storybook-addon-md-page {
7
- --sbmd-font-size: 16px;
8
- --sbmd-h2-size: 26px;
9
- --sbmd-paragraph-spacing: 20px;
10
- --sbmd-quote-border: 3px solid currentColor;
11
- --sbmd-quote-radius: 8px;
12
- --sbmd-table-cell-padding: 12px 16px;
13
- --sbmd-tag-radius: 6px;
7
+ --sbmd-font-size: 1rem;
8
+ --sbmd-monospace-font-family: 'JetBrains Mono', monospace;
9
+ --sbmd-h2-size: 1.625rem;
10
+ --sbmd-paragraph-spacing: 1.25rem;
11
+ --sbmd-quote-border: 0.1875rem solid currentColor;
12
+ --sbmd-quote-radius: 0.5rem;
13
+ --sbmd-table-cell-padding: 0.75rem 1rem;
14
+ --sbmd-tag-radius: 0.375rem;
14
15
  }
15
16
  ```
16
17
 
18
+ Default lengths use `rem`, preserving their original sizes at a 16px root font size and scaling with the document root font size. Set `--sbmd-monospace-font-family` to customize inline code and fenced code blocks; it defaults to Storybook’s monospace theme font.
19
+
17
20
  Variables accept normal CSS values for the property listed below, including `clamp()`, `calc()`, and references to your own theme variables. Border variables accept full border shorthands. Heading margins set space above the heading; title margin sets space below it. Paragraph spacing also applies to lists. Tag margin sets space below the chip list.
18
21
 
19
22
  Use your theme selector to override colors in dark mode. The [complete example](https://github.com/ruijdacd/storybook-addon-md/blob/main/example/.storybook/markdown.css) maps the addon variables to Tailwind v4 theme variables. Its `light-dark()` colors follow the system preference.
20
23
 
21
- | Variable | CSS property |
22
- | --------------------------------- | --------------------------- |
23
- | `--sbmd-background` | `background` |
24
- | `--sbmd-checkbox-color` | `accent-color` |
25
- | `--sbmd-checkbox-gap` | `margin-inline-end` |
26
- | `--sbmd-code-border` | `border` |
27
- | `--sbmd-code-padding` | `padding` |
28
- | `--sbmd-code-radius` | `border-radius` |
29
- | `--sbmd-color` | `color` |
30
- | `--sbmd-font-family` | `font-family` |
31
- | `--sbmd-font-size` | `font-size` |
32
- | `--sbmd-h1-size` | `font-size` |
33
- | `--sbmd-h2-border` | `border-bottom` |
34
- | `--sbmd-h2-letter-spacing` | `letter-spacing` |
35
- | `--sbmd-h2-margin` | `margin-top` |
36
- | `--sbmd-h2-padding` | `padding-bottom` |
37
- | `--sbmd-h2-size` | `font-size` |
38
- | `--sbmd-h3-letter-spacing` | `letter-spacing` |
39
- | `--sbmd-h3-margin` | `margin-top` |
40
- | `--sbmd-h3-size` | `font-size` |
41
- | `--sbmd-h4-size` | `font-size` |
42
- | `--sbmd-h5-size` | `font-size` |
43
- | `--sbmd-h6-size` | `font-size` |
44
- | `--sbmd-heading-color` | `color` |
45
- | `--sbmd-heading-font-family` | `font-family` |
46
- | `--sbmd-heading-line-height` | `line-height` |
47
- | `--sbmd-heading-weight` | `font-weight` |
48
- | `--sbmd-image-border` | `border` |
49
- | `--sbmd-image-margin` | `margin-block` |
50
- | `--sbmd-image-radius` | `border-radius` |
51
- | `--sbmd-inline-code-background` | `background` |
52
- | `--sbmd-inline-code-border` | `border` |
53
- | `--sbmd-inline-code-color` | `color` |
54
- | `--sbmd-inline-code-padding` | `padding` |
55
- | `--sbmd-inline-code-radius` | `border-radius` |
56
- | `--sbmd-inline-code-size` | `font-size` |
57
- | `--sbmd-line-height` | `line-height` |
58
- | `--sbmd-link-color` | `color` |
59
- | `--sbmd-link-decoration` | `text-decoration` |
60
- | `--sbmd-link-focus-offset` | `outline-offset` |
61
- | `--sbmd-link-focus-outline` | `outline` |
62
- | `--sbmd-link-hover-thickness` | `text-decoration-thickness` |
63
- | `--sbmd-link-radius` | `border-radius` |
64
- | `--sbmd-link-thickness` | `text-decoration-thickness` |
65
- | `--sbmd-link-underline-offset` | `text-underline-offset` |
66
- | `--sbmd-list-item-spacing` | `margin-top` |
67
- | `--sbmd-list-marker-color` | `color` |
68
- | `--sbmd-max-width` | `max-width` |
69
- | `--sbmd-page-border` | `border` |
70
- | `--sbmd-page-padding` | `padding` |
71
- | `--sbmd-page-radius` | `border-radius` |
72
- | `--sbmd-paragraph-spacing` | `margin-block` |
73
- | `--sbmd-quote-background` | `background` |
74
- | `--sbmd-quote-border` | `border-inline-start` |
75
- | `--sbmd-quote-margin` | `margin` |
76
- | `--sbmd-quote-padding` | `padding` |
77
- | `--sbmd-quote-radius` | `border-radius` |
78
- | `--sbmd-rule-color` | `background` |
79
- | `--sbmd-rule-height` | `height` |
80
- | `--sbmd-rule-margin` | `margin-block` |
81
- | `--sbmd-table-align` | `text-align` |
82
- | `--sbmd-table-background` | `background` |
83
- | `--sbmd-table-border` | `border` |
84
- | `--sbmd-table-cell-padding` | `padding` |
85
- | `--sbmd-table-heading-background` | `background` |
86
- | `--sbmd-table-heading-weight` | `font-weight` |
87
- | `--sbmd-table-margin` | `margin-block` |
88
- | `--sbmd-table-stripe-background` | `background` |
89
- | `--sbmd-tag-background` | `background` |
90
- | `--sbmd-tag-border` | `border` |
91
- | `--sbmd-tag-color` | `color` |
92
- | `--sbmd-tag-font-size` | `font-size` |
93
- | `--sbmd-tag-font-weight` | `font-weight` |
94
- | `--sbmd-tag-gap` | `gap` |
95
- | `--sbmd-tag-line-height` | `line-height` |
96
- | `--sbmd-tag-padding` | `padding` |
97
- | `--sbmd-tag-radius` | `border-radius` |
98
- | `--sbmd-title-letter-spacing` | `letter-spacing` |
99
- | `--sbmd-title-line-height` | `line-height` |
100
- | `--sbmd-title-margin` | `margin-bottom` |
101
- | `--sbmd-title-size` | `font-size` |
24
+ | Variable | CSS property |
25
+ | --------------------------------- | ----------------------------- |
26
+ | `--sbmd-background` | `background` |
27
+ | `--sbmd-checkbox-color` | `accent-color` |
28
+ | `--sbmd-checkbox-gap` | `margin-inline-end` |
29
+ | `--sbmd-code-border` | `border` |
30
+ | `--sbmd-code-padding` | `padding` |
31
+ | `--sbmd-code-radius` | `border-radius` |
32
+ | `--sbmd-color` | `color` |
33
+ | `--sbmd-font-family` | `font-family` |
34
+ | `--sbmd-font-size` | `font-size` |
35
+ | `--sbmd-h1-size` | `font-size` |
36
+ | `--sbmd-h2-border` | `border-bottom` |
37
+ | `--sbmd-h2-letter-spacing` | `letter-spacing` |
38
+ | `--sbmd-h2-margin` | `margin-top` |
39
+ | `--sbmd-h2-padding` | `padding-bottom` |
40
+ | `--sbmd-h2-size` | `font-size` |
41
+ | `--sbmd-h3-letter-spacing` | `letter-spacing` |
42
+ | `--sbmd-h3-margin` | `margin-top` |
43
+ | `--sbmd-h3-size` | `font-size` |
44
+ | `--sbmd-h4-size` | `font-size` |
45
+ | `--sbmd-h5-size` | `font-size` |
46
+ | `--sbmd-h6-size` | `font-size` |
47
+ | `--sbmd-heading-color` | `color` |
48
+ | `--sbmd-heading-font-family` | `font-family` |
49
+ | `--sbmd-heading-line-height` | `line-height` |
50
+ | `--sbmd-heading-weight` | `font-weight` |
51
+ | `--sbmd-image-border` | `border` |
52
+ | `--sbmd-image-margin` | `margin-block` |
53
+ | `--sbmd-image-radius` | `border-radius` |
54
+ | `--sbmd-inline-code-background` | `background` |
55
+ | `--sbmd-inline-code-border` | `border` |
56
+ | `--sbmd-inline-code-color` | `color` |
57
+ | `--sbmd-inline-code-padding` | `padding` |
58
+ | `--sbmd-inline-code-radius` | `border-radius` |
59
+ | `--sbmd-inline-code-size` | `font-size` |
60
+ | `--sbmd-line-height` | `line-height` |
61
+ | `--sbmd-link-color` | `color` |
62
+ | `--sbmd-link-decoration` | `text-decoration` |
63
+ | `--sbmd-link-focus-offset` | `outline-offset` |
64
+ | `--sbmd-link-focus-outline` | `outline` |
65
+ | `--sbmd-link-hover-thickness` | `text-decoration-thickness` |
66
+ | `--sbmd-link-radius` | `border-radius` |
67
+ | `--sbmd-link-thickness` | `text-decoration-thickness` |
68
+ | `--sbmd-link-underline-offset` | `text-underline-offset` |
69
+ | `--sbmd-list-item-spacing` | `margin-top` |
70
+ | `--sbmd-list-marker-color` | `color` |
71
+ | `--sbmd-monospace-font-family` | `font-family` (Markdown code) |
72
+ | `--sbmd-max-width` | `max-width` |
73
+ | `--sbmd-page-border` | `border` |
74
+ | `--sbmd-page-padding` | `padding` |
75
+ | `--sbmd-page-radius` | `border-radius` |
76
+ | `--sbmd-paragraph-spacing` | `margin-block` |
77
+ | `--sbmd-quote-background` | `background` |
78
+ | `--sbmd-quote-border` | `border-inline-start` |
79
+ | `--sbmd-quote-margin` | `margin` |
80
+ | `--sbmd-quote-padding` | `padding` |
81
+ | `--sbmd-quote-radius` | `border-radius` |
82
+ | `--sbmd-rule-color` | `background` |
83
+ | `--sbmd-rule-height` | `height` |
84
+ | `--sbmd-rule-margin` | `margin-block` |
85
+ | `--sbmd-table-align` | `text-align` |
86
+ | `--sbmd-table-background` | `background` |
87
+ | `--sbmd-table-border` | `border` |
88
+ | `--sbmd-table-cell-padding` | `padding` |
89
+ | `--sbmd-table-heading-background` | `background` |
90
+ | `--sbmd-table-heading-weight` | `font-weight` |
91
+ | `--sbmd-table-margin` | `margin-block` |
92
+ | `--sbmd-table-stripe-background` | `background` |
93
+ | `--sbmd-tag-background` | `background` |
94
+ | `--sbmd-tag-border` | `border` |
95
+ | `--sbmd-tag-color` | `color` |
96
+ | `--sbmd-tag-font-size` | `font-size` |
97
+ | `--sbmd-tag-font-weight` | `font-weight` |
98
+ | `--sbmd-tag-gap` | `gap` |
99
+ | `--sbmd-tag-line-height` | `line-height` |
100
+ | `--sbmd-tag-padding` | `padding` |
101
+ | `--sbmd-tag-radius` | `border-radius` |
102
+ | `--sbmd-title-letter-spacing` | `letter-spacing` |
103
+ | `--sbmd-title-line-height` | `line-height` |
104
+ | `--sbmd-title-margin` | `margin-bottom` |
105
+ | `--sbmd-title-size` | `font-size` |
102
106
 
103
107
  Status chips have `data-status` set to the original frontmatter value. Override `--sbmd-tag-*` on selectors such as `.storybook-addon-md-tag[data-status="stable" i]` to assign a status-specific appearance.
104
108
 
105
- These styles target Markdown content and its title/chips. Story canvases, props controls, and syntax highlighting still use Storybook’s theme. Custom renderers can use the shared styles when they produce matching HTML elements; custom layouts own any additional structure. Internal `--sbmd-native-*` variables carry Storybook theme values and are not customization hooks.
109
+ These styles target Markdown content and its title/chips. Story canvases, props controls, and syntax-highlighting colors still use Storybook’s theme. Custom renderers can use the shared styles when they produce matching HTML elements; custom layouts own any additional structure. Internal `--sbmd-native-*` variables carry Storybook theme values and are not customization hooks.
106
110
 
107
111
  ## Customization
108
112
 
@@ -114,11 +118,12 @@ Set `stylesheet: '.storybook/markdown.css'` in the addon options, then define yo
114
118
 
115
119
  ```css
116
120
  .storybook-addon-md-page {
117
- --sbmd-font-size: 16px;
121
+ --sbmd-font-size: 1rem;
122
+ --sbmd-monospace-font-family: 'JetBrains Mono', monospace;
118
123
  --sbmd-line-height: 1.8;
119
124
  --sbmd-heading-color: currentColor;
120
- --sbmd-tag-radius: 6px;
121
- --sbmd-tag-border: 1px solid currentColor;
125
+ --sbmd-tag-radius: 0.375rem;
126
+ --sbmd-tag-border: 0.0625rem solid currentColor;
122
127
  }
123
128
  ```
124
129
 
@@ -136,7 +141,7 @@ Status chips share the tag variables. Use `data-status` to map values to your th
136
141
  .storybook-addon-md-tag[data-status='stable' i] {
137
142
  --sbmd-tag-color: light-dark(#1a7f37, #3fb950);
138
143
  --sbmd-tag-background: light-dark(#dafbe1, #12261e);
139
- --sbmd-tag-border: 1px solid currentColor;
144
+ --sbmd-tag-border: 0.0625rem solid currentColor;
140
145
  }
141
146
  ```
142
147
 
package/dist/index.d.ts CHANGED
@@ -1,7 +1,10 @@
1
+ //#region src/index.d.ts
1
2
  export interface MarkdownOptions {
2
- generatedDir?: string;
3
- patterns: string[];
4
- stylesheet?: string;
5
- root?: string;
6
- presentation?: string;
3
+ manifests?: boolean;
4
+ generatedDir?: string;
5
+ patterns: string[];
6
+ stylesheet?: string;
7
+ root?: string;
8
+ presentation?: string;
7
9
  }
10
+ //#endregion
package/dist/preset.d.ts CHANGED
@@ -1,22 +1,56 @@
1
- import type { UserConfig } from 'vite';
2
- import type { MarkdownOptions } from './index.js';
3
- import type { ContentOptions } from './content.js';
1
+ import { MarkdownOptions } from "./index.js";
2
+ import { StorybookConfigRaw } from "storybook/internal/types";
3
+ import { UserConfig } from "vite";
4
+ //#region src/content.d.ts
5
+ interface ContentOptions extends MarkdownOptions {
6
+ root: string;
7
+ output: string;
8
+ }
9
+ interface Frontmatter extends Record<string, unknown> {
10
+ title?: string;
11
+ stories?: string | string[];
12
+ tags?: string[];
13
+ status?: string;
14
+ }
15
+ type DiscoveredDocument = Awaited<ReturnType<typeof discover>>[number];
16
+ declare function discover({ root, patterns, output }: ContentOptions): Promise<{
17
+ markdown: string;
18
+ assets: {
19
+ file: string;
20
+ suffix: string;
21
+ token: string;
22
+ }[];
23
+ file: string;
24
+ original: string;
25
+ source: string;
26
+ title: string;
27
+ metadata: Frontmatter;
28
+ stories: string[];
29
+ }[]>;
30
+ //#endregion
31
+ //#region src/preset.d.ts
4
32
  type PresetOptions = MarkdownOptions & {
5
- configDir: string;
33
+ configDir: string;
6
34
  };
7
35
  type StoryEntry = string | {
8
- directory: string;
9
- files?: string;
10
- titlePrefix?: string;
36
+ directory: string;
37
+ files?: string;
38
+ titlePrefix?: string;
11
39
  };
12
40
  export declare function stories(existing: StoryEntry[] | undefined, options: PresetOptions): Promise<StoryEntry[]>;
13
- export declare function watchDocumentation(config: ContentOptions, { onError, onUpdate, }?: {
14
- onError?: (error: Error) => void;
15
- onUpdate?: () => void;
41
+ export declare function watchDocumentation(config: ContentOptions, { onError, onUpdate }?: {
42
+ onError?: (error: Error) => void;
43
+ onUpdate?: (documents: DiscoveredDocument[]) => void;
16
44
  }): {
17
- ready: Promise<void>;
18
- close(): Promise<void>;
45
+ ready: Promise<void>;
46
+ close(): Promise<void>;
19
47
  };
20
48
  export declare function viteFinal(config: UserConfig, options: PresetOptions): Promise<UserConfig>;
21
49
  export declare function webpackFinal(): void;
22
- export {};
50
+ export declare const experimental_manifests: (manifests: NonNullable<StorybookConfigRaw["experimental_manifests"]> | undefined, options: Pick<PresetOptions, "configDir" | "manifests">) => Promise<({
51
+ components?: import("storybook/internal/types").ComponentsManifest;
52
+ } & Record<string, unknown>) | {
53
+ components?: import("storybook/internal/types").ComponentsManifest;
54
+ docs?: Record<string, unknown> | undefined;
55
+ }>;
56
+ //#endregion