storybook-solidjs-vite 10.5.0 → 10.5.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/README.md +34 -45
- package/dist/{chunk-XA62EQZW.js → chunk-LWHXIEWO.js} +3 -3
- package/dist/chunk-LWHXIEWO.js.map +1 -0
- package/dist/{chunk-OHDHM5OZ.js → chunk-XCNVCO2S.js} +7 -6
- package/dist/chunk-XCNVCO2S.js.map +1 -0
- package/dist/framework/preset.js +9 -9
- package/dist/framework/preset.js.map +1 -1
- package/dist/index.js +5 -7
- package/dist/index.js.map +1 -1
- package/dist/renderer/docs.d.ts +4 -4
- package/dist/renderer/docs.js +1 -1
- package/dist/renderer/{solid.d.ts → solid-legacy.d.ts} +2 -1
- package/dist/renderer/{solid.js → solid-legacy.js} +13 -4
- package/dist/renderer/solid-legacy.js.map +1 -0
- package/dist/renderer/solid-next.d.ts +2 -1
- package/dist/renderer/solid-next.js +11 -2
- package/dist/renderer/solid-next.js.map +1 -1
- package/dist/renderer.js +4 -11
- package/dist/renderer.js.map +1 -1
- package/package.json +7 -15
- package/src/framework/preset.ts +8 -8
- package/src/index.ts +2 -3
- package/src/internal/solidVersion.ts +2 -2
- package/src/node.ts +1 -1
- package/src/preview/define-preview.ts +2 -13
- package/src/renderer/docs.ts +74 -9
- package/src/renderer/index.ts +4 -16
- package/src/renderer/{solid.ts → solid-legacy.ts} +13 -1
- package/src/renderer/solid-next.ts +12 -0
- package/dist/chunk-OHDHM5OZ.js.map +0 -1
- package/dist/chunk-UQOUKQDU.js +0 -24
- package/dist/chunk-UQOUKQDU.js.map +0 -1
- package/dist/chunk-XA62EQZW.js.map +0 -1
- package/dist/renderer/argtypes.d.ts +0 -14
- package/dist/renderer/argtypes.js +0 -4
- package/dist/renderer/argtypes.js.map +0 -1
- package/dist/renderer/solid.js.map +0 -1
- package/src/renderer/argtypes.ts +0 -85
- package/template/cli-v2/js/Button.jsx +0 -29
- package/template/cli-v2/js/Button.stories.js +0 -52
- package/template/cli-v2/js/Header.jsx +0 -54
- package/template/cli-v2/js/Header.stories.js +0 -32
- package/template/cli-v2/js/Page.jsx +0 -76
- package/template/cli-v2/js/Page.stories.js +0 -33
- package/template/cli-v2/ts/Button.stories.ts +0 -55
- package/template/cli-v2/ts/Button.tsx +0 -37
- package/template/cli-v2/ts/Header.stories.ts +0 -35
- package/template/cli-v2/ts/Header.tsx +0 -63
- package/template/cli-v2/ts/Page.stories.ts +0 -36
- package/template/cli-v2/ts/Page.tsx +0 -77
package/README.md
CHANGED
|
@@ -13,14 +13,14 @@
|
|
|
13
13
|
|
|
14
14
|
## ✨ Features
|
|
15
15
|
|
|
16
|
-
-
|
|
16
|
+
- SolidJS and SolidJS 2 support
|
|
17
17
|
- [Vite-powered builder](https://storybook.js.org/docs/builders/vite)
|
|
18
18
|
- [TypeScript-first setup](https://storybook.js.org/docs/configure/integration/typescript)
|
|
19
19
|
- Automatic props in [Controls and Docs](#docgen)
|
|
20
|
-
- [Autodocs code snippets](#autodocs-code-snippets) — static JSX **Show code** blocks from story source (
|
|
20
|
+
- [Autodocs code snippets](#autodocs-code-snippets) — static JSX **Show code** blocks from story source (enabled by default)
|
|
21
21
|
- [Components manifest](https://storybook.js.org/docs/ai/manifests) for AI agents ([debugger](#components-manifest-debugger))
|
|
22
22
|
- [Storybook MCP](https://storybook.js.org/docs/ai/mcp/overview) support ([setup](#storybook-mcp))
|
|
23
|
-
- [CSF Next](https://storybook.js.org/docs/api/csf/csf-next)
|
|
23
|
+
- [CSF Next](https://storybook.js.org/docs/api/csf/csf-next) support ([setup](#csf-next))
|
|
24
24
|
- [Integrated testing](https://storybook.js.org/docs/writing-tests) (Vitest, Playwright)
|
|
25
25
|
- [Compatible with Storybook addons](https://storybook.js.org/docs/addons)
|
|
26
26
|
|
|
@@ -37,49 +37,11 @@ Open the URL shown in the terminal.
|
|
|
37
37
|
|
|
38
38
|
## ⚙️ Configuration
|
|
39
39
|
|
|
40
|
-
Customize Vite and Storybook as usual. Add stories in `src/**/*.stories.{tsx,js}` and install addons
|
|
41
|
-
|
|
42
|
-
### Solid 1
|
|
43
|
-
|
|
44
|
-
Import from `storybook-solidjs-vite` in config, preview, and stories:
|
|
45
|
-
|
|
46
|
-
```ts
|
|
47
|
-
// .storybook/main.ts
|
|
48
|
-
import type { StorybookConfig } from 'storybook-solidjs-vite';
|
|
49
|
-
|
|
50
|
-
const config: StorybookConfig = {
|
|
51
|
-
framework: 'storybook-solidjs-vite',
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
export default config;
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
```ts
|
|
58
|
-
// .storybook/preview.tsx & stories
|
|
59
|
-
import type { Preview, Meta, StoryObj } from 'storybook-solidjs-vite';
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
### Solid 2
|
|
63
|
-
|
|
64
|
-
Use `storybook-solidjs-vite/next` in preview and stories:
|
|
65
|
-
|
|
66
|
-
```ts
|
|
67
|
-
import type { Preview, Meta, StoryObj } from 'storybook-solidjs-vite/next';
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
Imports without `/next` may still run, but TypeScript can complain.
|
|
71
|
-
|
|
72
|
-
In `main.ts`, either framework name works: `storybook-solidjs-vite` reads the major version from `solid-js`; `storybook-solidjs-vite/next` forces Solid 2.
|
|
73
|
-
|
|
74
|
-
```ts
|
|
75
|
-
framework: 'storybook-solidjs-vite' // Solid auto-detect
|
|
76
|
-
framework: 'storybook-solidjs-vite/next' // Solid 2 only
|
|
77
|
-
```
|
|
40
|
+
Customize Vite and Storybook as usual. Add stories in `src/**/*.stories.{tsx,js}` and install addons
|
|
41
|
+
as needed.
|
|
78
42
|
|
|
79
43
|
### CSF Next
|
|
80
44
|
|
|
81
|
-
[CSF Next](https://storybook.js.org/docs/api/csf/csf-next) works on Solid 1 and Solid 2.
|
|
82
|
-
|
|
83
45
|
```ts
|
|
84
46
|
// .storybook/main.ts
|
|
85
47
|
import { defineMain } from 'storybook-solidjs-vite';
|
|
@@ -93,8 +55,6 @@ export default defineMain({
|
|
|
93
55
|
// .storybook/preview.tsx
|
|
94
56
|
import addonDocs from '@storybook/addon-docs';
|
|
95
57
|
import { definePreview } from 'storybook-solidjs-vite';
|
|
96
|
-
// for Solid 2, use:
|
|
97
|
-
// import { definePreview } from 'storybook-solidjs-vite/next';
|
|
98
58
|
|
|
99
59
|
export default definePreview({
|
|
100
60
|
addons: [addonDocs()],
|
|
@@ -115,6 +75,35 @@ export const Primary = meta.story({
|
|
|
115
75
|
});
|
|
116
76
|
```
|
|
117
77
|
|
|
78
|
+
### CSF 3
|
|
79
|
+
|
|
80
|
+
```ts
|
|
81
|
+
// .storybook/main.ts
|
|
82
|
+
import type { StorybookConfig } from 'storybook-solidjs-vite';
|
|
83
|
+
|
|
84
|
+
export default {
|
|
85
|
+
framework: 'storybook-solidjs-vite',
|
|
86
|
+
} satisfies StorybookConfig;
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
```ts
|
|
90
|
+
// src/Button.stories.ts
|
|
91
|
+
import type { Meta, StoryObj } from 'storybook-solidjs-vite';
|
|
92
|
+
|
|
93
|
+
import { Button } from './Button';
|
|
94
|
+
|
|
95
|
+
const meta = {
|
|
96
|
+
component: Button,
|
|
97
|
+
} satisfies Meta<typeof Button>;
|
|
98
|
+
|
|
99
|
+
export default meta;
|
|
100
|
+
type Story = StoryObj<typeof meta>;
|
|
101
|
+
|
|
102
|
+
export const Primary: Story = {
|
|
103
|
+
args: { label: 'Button' },
|
|
104
|
+
};
|
|
105
|
+
```
|
|
106
|
+
|
|
118
107
|
### Docgen
|
|
119
108
|
|
|
120
109
|
Props for **Controls**, **Docs**, and the **components manifest** come from a TypeScript LanguageService extractor aligned with Storybook's `react-component-meta` format.
|
|
@@ -26,9 +26,9 @@ function resolveSolidVersion(framework, configDir) {
|
|
|
26
26
|
return detectInstalledSolidVersion(configDir);
|
|
27
27
|
}
|
|
28
28
|
function resolveSolidRendererEntry(solidVersion) {
|
|
29
|
-
return solidVersion === 2 ? "storybook-solidjs-vite/renderer/solid-next" : "storybook-solidjs-vite/renderer/solid";
|
|
29
|
+
return solidVersion === 2 ? "storybook-solidjs-vite/renderer/solid-next" : "storybook-solidjs-vite/renderer/solid-legacy";
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
export { resolveSolidRendererEntry, resolveSolidVersion };
|
|
33
|
-
//# sourceMappingURL=chunk-
|
|
34
|
-
//# sourceMappingURL=chunk-
|
|
33
|
+
//# sourceMappingURL=chunk-LWHXIEWO.js.map
|
|
34
|
+
//# sourceMappingURL=chunk-LWHXIEWO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internal/solidVersion.ts"],"names":[],"mappings":";;;;;;AASA,SAAS,iBAAiB,SAAA,EAA8C;AACpE,EAAA,OAAO,OAAO,SAAA,KAAc,QAAA,GAAW,SAAA,GAAY,SAAA,CAAU,IAAA;AACjE;AAEO,SAAS,4BAA4B,SAAA,EAAiC;AACzE,EAAA,MAAM,cAAA,GAAiB,aAAA,CAAc,IAAA,CAAK,SAAA,EAAW,cAAc,CAAC,CAAA;AAEpE,EAAA,IAAI,OAAA;AAEJ,EAAA,IAAI;AACA,IAAA,OAAA,GAAU,cAAA,CAAe,QAAQ,uBAAuB,CAAA;AAAA,EAC5D,CAAA,CAAA,MACM;AACF,IAAA,MAAM,IAAI,MAAM,8DAA8D,CAAA;AAAA,EAClF;AAEA,EAAA,MAAM,EAAE,SAAQ,GAAI,IAAA,CAAK,MAAM,YAAA,CAAa,OAAA,EAAS,MAAM,CAAC,CAAA;AAE5D,EAAA,OAAO,MAAA,CAAO,KAAA,CAAM,OAAA,IAAW,OAAO,CAAA;AAC1C;AAQO,SAAS,mBAAA,CACZ,WACA,SAAA,EACY;AACZ,EAAA,MAAM,IAAA,GAAO,iBAAiB,SAAS,CAAA;AAEvC,EAAA,IAAI,IAAA,CAAK,QAAA,CAAS,OAAO,CAAA,EAAG;AACxB,IAAA,OAAO,CAAA;AAAA,EACX;AAEA,EAAA,OAAO,4BAA4B,SAAS,CAAA;AAChD;AAEO,SAAS,0BAA0B,YAAA,EAAoC;AAC1E,EAAA,OAAO,YAAA,KAAiB,IAClB,4CAAA,GACA,8CAAA;AACV","file":"chunk-LWHXIEWO.js","sourcesContent":["import { readFileSync } from 'node:fs';\nimport { createRequire } from 'node:module';\nimport { join } from 'node:path';\nimport semver from 'semver';\n\nexport type SolidVersion = 1 | 2;\n\nexport type SolidRendererId = 'solid' | 'solid-next';\n\nfunction getFrameworkName(framework: string | { name: string }): string {\n return typeof framework === 'string' ? framework : framework.name;\n}\n\nexport function detectInstalledSolidVersion(configDir: string): SolidVersion {\n const projectRequire = createRequire(join(configDir, 'package.json'));\n\n let pkgPath: string;\n\n try {\n pkgPath = projectRequire.resolve('solid-js/package.json');\n }\n catch {\n throw new Error('Could not detect Solid version: `solid-js` is not installed.');\n }\n\n const { version } = JSON.parse(readFileSync(pkgPath, 'utf8')) as { version?: string };\n\n return semver.major(version ?? '1.9.0') as SolidVersion;\n}\n\n/**\n * Resolves the Solid major version for the Storybook renderer.\n *\n * - `storybook-solidjs-vite/next` → Solid 2\n * - `storybook-solidjs-vite` → detected from installed `solid-js`\n */\nexport function resolveSolidVersion(\n framework: string | { name: string },\n configDir: string\n): SolidVersion {\n const name = getFrameworkName(framework);\n\n if (name.endsWith('/next')) {\n return 2;\n }\n\n return detectInstalledSolidVersion(configDir);\n}\n\nexport function resolveSolidRendererEntry(solidVersion: SolidVersion): string {\n return solidVersion === 2\n ? 'storybook-solidjs-vite/renderer/solid-next'\n : 'storybook-solidjs-vite/renderer/solid-legacy';\n}\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { __export } from './chunk-PZ5AY32C.js';
|
|
2
2
|
import { extractComponentDescription, enhanceArgTypes, hasDocgen, extractComponentProps } from 'storybook/internal/docs-tools';
|
|
3
3
|
|
|
4
|
-
// src/renderer/
|
|
5
|
-
var
|
|
6
|
-
__export(
|
|
4
|
+
// src/renderer/docs.ts
|
|
5
|
+
var docs_exports = {};
|
|
6
|
+
__export(docs_exports, {
|
|
7
7
|
argTypesEnhancers: () => argTypesEnhancers,
|
|
8
8
|
parameters: () => parameters
|
|
9
9
|
});
|
|
@@ -58,12 +58,13 @@ var extractArgTypes = (component) => {
|
|
|
58
58
|
};
|
|
59
59
|
var parameters = {
|
|
60
60
|
docs: {
|
|
61
|
+
story: { inline: true },
|
|
61
62
|
extractArgTypes,
|
|
62
63
|
extractComponentDescription
|
|
63
64
|
}
|
|
64
65
|
};
|
|
65
66
|
var argTypesEnhancers = [enhanceArgTypes];
|
|
66
67
|
|
|
67
|
-
export { argTypesEnhancers,
|
|
68
|
-
//# sourceMappingURL=chunk-
|
|
69
|
-
//# sourceMappingURL=chunk-
|
|
68
|
+
export { argTypesEnhancers, docs_exports, parameters };
|
|
69
|
+
//# sourceMappingURL=chunk-XCNVCO2S.js.map
|
|
70
|
+
//# sourceMappingURL=chunk-XCNVCO2S.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/renderer/docs.ts"],"names":[],"mappings":";;;;AAAA,IAAA,YAAA,GAAA;AAAA,QAAA,CAAA,YAAA,EAAA;AAAA,EAAA,iBAAA,EAAA,MAAA,iBAAA;AAAA,EAAA,UAAA,EAAA,MAAA;AAAA,CAAA,CAAA;AAcA,SAAS,mBAAmB,GAAA,EAA+B;AACvD,EAAA,MAAM;AAAA,IACF,IAAA;AAAA,IACA,WAAA;AAAA,IACA,IAAA;AAAA,IACA,MAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,GACJ,GAAI,GAAA;AAEJ,EAAA,MAAM,MAAA,GAA0B;AAAA,IAC5B,IAAA;AAAA,IACA,IAAA,EAAM,EAAE,QAAA,EAAU,GAAG,MAAA,EAAO;AAAA,IAC5B,KAAA,EAAO;AAAA,MACH;AAAA;AACJ,GACJ;AAEA,EAAA,IAAI,eAAe,IAAA,EAAM;AACrB,IAAA,MAAA,CAAO,WAAA,GAAc,WAAA;AAAA,EACzB;AAEA,EAAA,IAAI,QAAQ,IAAA,EAAM;AACd,IAAA,MAAA,CAAO,MAAO,IAAA,GAAO,IAAA;AAAA,EACzB;AAEA,EAAA,IAAI,gBAAgB,IAAA,EAAM;AACtB,IAAA,MAAA,CAAO,MAAO,YAAA,GAAe,YAAA;AAAA,EACjC;AAEA,EAAA,OAAO,MAAA;AACX;AAGA,IAAM,eAAA,GAAqC,CAAC,SAAA,KAAqC;AAC7E,EAAA,IAAI,CAAC,SAAA,EAAW;AACZ,IAAA,OAAO,IAAA;AAAA,EACX;AAEA,EAAA,IAAI;AACA,IAAA,IAAI,kBAAA,GAAgC,SAAA;AAEpC,IAAA,IAAI,CAAC,SAAA,CAAU,SAAS,CAAA,IAAK,SAAA,CAAU,QAAQ,IAAA,EAAM;AACjD,MAAA,kBAAA,GAAqB,SAAA,CAAU,IAAA;AAAA,IACnC;AAEA,IAAA,MAAM,cAAA,GAAiB,qBAAA,CAAsB,kBAAA,EAAoB,OAAO,CAAA;AAExE,IAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,cAAc,CAAA,IAAK,cAAA,CAAe,WAAW,CAAA,EAAG;AAC/D,MAAA,OAAO,IAAA;AAAA,IACX;AAEA,IAAA,OAAO,eAAe,MAAA,CAAO,CAAC,GAAA,EAAqB,EAAE,SAAQ,KAAM;AAC/D,MAAA,GAAA,CAAI,OAAA,CAAQ,IAAI,CAAA,GAAI,kBAAA,CAAmB,OAAO,CAAA;AAE9C,MAAA,OAAO,GAAA;AAAA,IACX,CAAA,EAAG,EAAE,CAAA;AAAA,EACT,CAAA,CAAA,MACM;AACF,IAAA,OAAO,IAAA;AAAA,EACX;AACJ,CAAA;AAEO,IAAM,UAAA,GAAa;AAAA,EACtB,IAAA,EAAM;AAAA,IACF,KAAA,EAAO,EAAE,MAAA,EAAQ,IAAA,EAAK;AAAA,IACtB,eAAA;AAAA,IACA;AAAA;AAER;AAEO,IAAM,iBAAA,GAAuD,CAAC,eAAe","file":"chunk-XCNVCO2S.js","sourcesContent":["import {\n enhanceArgTypes,\n extractComponentDescription,\n extractComponentProps,\n hasDocgen,\n type ArgTypesExtractor,\n type Component,\n type PropDef,\n} from 'storybook/internal/docs-tools';\n\nimport type { ArgTypesEnhancer, StrictArgTypes, StrictInputType } from 'storybook/internal/types';\nimport type { SolidRenderer } from '../preview/public-api';\n\n/** Docgen, Controls, Autodocs, and doc-mode (`storybook dev --docs`) preview annotations. */\nfunction propDefToInputType(row: PropDef): StrictInputType {\n const {\n name,\n description,\n type,\n sbType,\n defaultValue,\n jsDocTags,\n required,\n } = row;\n\n const result: StrictInputType = {\n name,\n type: { required, ...sbType },\n table: {\n jsDocTags,\n },\n };\n\n if (description != null) {\n result.description = description;\n }\n\n if (type != null) {\n result.table!.type = type;\n }\n\n if (defaultValue != null) {\n result.table!.defaultValue = defaultValue;\n }\n\n return result;\n}\n\n/** Reads `__docgenInfo` injected at build time by solid-component-meta. */\nconst extractArgTypes: ArgTypesExtractor = (component): StrictArgTypes | null => {\n if (!component) {\n return null;\n }\n\n try {\n let processedComponent: Component = component;\n\n if (!hasDocgen(component) && component.type != null) {\n processedComponent = component.type;\n }\n\n const extractedProps = extractComponentProps(processedComponent, 'props');\n\n if (!Array.isArray(extractedProps) || extractedProps.length === 0) {\n return null;\n }\n\n return extractedProps.reduce((acc: StrictArgTypes, { propDef }) => {\n acc[propDef.name] = propDefToInputType(propDef);\n\n return acc;\n }, {});\n }\n catch {\n return null;\n }\n};\n\nexport const parameters = {\n docs: {\n story: { inline: true },\n extractArgTypes,\n extractComponentDescription,\n },\n};\n\nexport const argTypesEnhancers: ArgTypesEnhancer<SolidRenderer>[] = [enhanceArgTypes];\n"]}
|
package/dist/framework/preset.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { solidComponentDocToDocgenInfo } from '../chunk-LKTA6WTO.js';
|
|
2
|
-
import { resolveSolidVersion, resolveSolidRendererEntry } from '../chunk-
|
|
2
|
+
import { resolveSolidVersion, resolveSolidRendererEntry } from '../chunk-LWHXIEWO.js';
|
|
3
3
|
import { getOrCreateSolidComponentMetaManager } from '../chunk-TKOWB3JL.js';
|
|
4
4
|
import '../chunk-PZ5AY32C.js';
|
|
5
5
|
import { hasVitePlugins } from '@storybook/builder-vite';
|
|
@@ -50,7 +50,7 @@ ${injections}
|
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
// src/framework/preset.ts
|
|
53
|
-
var
|
|
53
|
+
var SOLID_LEGACY_RENDERER_IMPORT = "storybook-solidjs-vite/renderer/solid-legacy";
|
|
54
54
|
var SOLID_DEDUPE_PACKAGES = [
|
|
55
55
|
"solid-js",
|
|
56
56
|
"@solidjs/web",
|
|
@@ -76,16 +76,16 @@ var viteFinal = async (config, { presets, configDir }) => {
|
|
|
76
76
|
const framework = await presets.apply("framework");
|
|
77
77
|
const frameworkOptions = typeof framework === "string" ? {} : framework.options ?? {};
|
|
78
78
|
const solidVersion = resolveSolidVersion(framework, configDir);
|
|
79
|
-
const
|
|
80
|
-
import.meta.resolve(
|
|
79
|
+
const solidLegacyEntry = fileURLToPath(
|
|
80
|
+
import.meta.resolve(SOLID_LEGACY_RENDERER_IMPORT)
|
|
81
81
|
);
|
|
82
82
|
const solidRendererEntry = fileURLToPath(
|
|
83
83
|
import.meta.resolve(resolveSolidRendererEntry(solidVersion))
|
|
84
84
|
);
|
|
85
|
-
const aliasApplied =
|
|
85
|
+
const aliasApplied = solidLegacyEntry !== solidRendererEntry;
|
|
86
86
|
const rendererAlias = aliasApplied ? [
|
|
87
|
-
{ find:
|
|
88
|
-
{ find:
|
|
87
|
+
{ find: SOLID_LEGACY_RENDERER_IMPORT, replacement: solidRendererEntry },
|
|
88
|
+
{ find: solidLegacyEntry, replacement: solidRendererEntry }
|
|
89
89
|
] : [];
|
|
90
90
|
if (frameworkOptions.docgen !== false) {
|
|
91
91
|
plugins.push(
|
|
@@ -112,8 +112,8 @@ var viteFinal = async (config, { presets, configDir }) => {
|
|
|
112
112
|
alias: Array.isArray(config.resolve?.alias) ? [...config.resolve.alias, ...rendererAlias] : {
|
|
113
113
|
...config.resolve?.alias,
|
|
114
114
|
...aliasApplied ? {
|
|
115
|
-
[
|
|
116
|
-
[
|
|
115
|
+
[SOLID_LEGACY_RENDERER_IMPORT]: solidRendererEntry,
|
|
116
|
+
[solidLegacyEntry]: solidRendererEntry
|
|
117
117
|
} : {}
|
|
118
118
|
},
|
|
119
119
|
dedupe: mergeSolidDedupe(config.resolve?.dedupe)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/internal/componentManifest/solidComponentMetaPlugin.ts","../../src/framework/preset.ts"],"names":[],"mappings":"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","file":"preset.js","sourcesContent":["import { resolve } from 'node:path';\n\nimport { getOrCreateSolidComponentMetaManager } from './solidComponentMeta/SolidComponentMetaManager';\nimport { solidComponentDocToDocgenInfo } from './toDocgenInfo';\n\nimport type { Plugin } from 'vite';\n\nconst COMPONENT_FILE_PATTERN = /\\.(tsx|jsx)$/;\nconst STORIES_FILE_PATTERN = /\\.stories\\.(tsx|jsx|ts|js)$/;\n\nexport function solidComponentMetaPlugin(options?: { enabled?: boolean }): Plugin {\n const enabled = options?.enabled !== false;\n\n return {\n name: 'storybook:solid-component-meta',\n enforce: 'pre',\n\n configureServer() {\n void getOrCreateSolidComponentMetaManager(true);\n },\n\n async transform(code, id) {\n if (!enabled) {\n return null;\n }\n\n const filePath = resolve(id.split('?')[0] ?? id);\n\n if (!COMPONENT_FILE_PATTERN.test(filePath) || STORIES_FILE_PATTERN.test(filePath)) {\n return null;\n }\n\n const manager = await getOrCreateSolidComponentMetaManager(true);\n\n if (!manager) {\n return null;\n }\n\n const docs = manager.extractAllExportsFromFile(filePath);\n\n if (docs.length === 0) {\n return null;\n }\n\n const injections = docs\n .map((doc) => {\n const useDisplayName = doc.exportName === 'default'\n && doc.displayName\n && /^[$A-Z_][\\w$]*$/i.test(doc.displayName);\n const target = useDisplayName ? doc.displayName! : doc.exportName;\n const info = JSON.stringify(solidComponentDocToDocgenInfo(doc));\n\n return `${ target }.__docgenInfo = ${ info };`;\n })\n .join('\\n');\n\n if (!injections) {\n return null;\n }\n\n return {\n code: `${ code }\\n\\n${ injections }\\n`,\n map: null,\n };\n },\n };\n}\n","import { hasVitePlugins } from '@storybook/builder-vite';\n/**\n * A preset is a configuration that enables developers to quickly set up and\n * customize their environment with a specific set of features, functionalities, or integrations.\n *\n * @see https://storybook.js.org/docs/addons/writing-presets\n * @see https://storybook.js.org/docs/api/main-config/main-config\n */\nimport { fileURLToPath } from 'node:url';\nimport { mergeConfig } from 'vite';\n\nimport { solidComponentMetaPlugin } from '../internal/componentManifest/solidComponentMetaPlugin';\nimport {\n resolveSolidRendererEntry,\n resolveSolidVersion,\n} from '../internal/solidVersion';\n\nimport type { PresetProperty } from 'storybook/internal/types';\nimport type { FrameworkOptions, StorybookConfig } from './public-api';\n\nconst SOLID_RENDERER_IMPORT = 'storybook-solidjs-vite/renderer/solid';\n\n/** Force a single copy of Solid packages (renderer + app + linked deps). */\nconst SOLID_DEDUPE_PACKAGES = [\n 'solid-js',\n '@solidjs/web',\n '@solidjs/signals',\n '@solidjs/router',\n '@solidjs/meta',\n] as const;\n\nfunction mergeSolidDedupe(existing?: string | readonly string[]): string[] {\n const base = Array.isArray(existing) ? existing : [];\n\n return [...new Set([...base, ...SOLID_DEDUPE_PACKAGES])];\n}\n\n/**\n * Configures Storybook's internal features.\n *\n * @see https://storybook.js.org/docs/api/main-config/main-config-core\n */\nexport const core: PresetProperty<'core', StorybookConfig> = {\n builder: import.meta.resolve('@storybook/builder-vite'),\n renderer: import.meta.resolve('storybook-solidjs-vite/renderer'),\n};\n\n/**\n * Enable the components manifest debugger by default.\n *\n * @see https://storybook.js.org/docs/api/main-config/main-config-features#componentsmanifest\n */\nexport const features: PresetProperty<'features', StorybookConfig> = {\n componentsManifest: true,\n experimentalCodeExamples: true,\n};\n\n/**\n * Customize Storybook's Vite setup when using the Vite builder.\n *\n * @see https://storybook.js.org/docs/api/main-config/main-config-vite-final\n */\nexport const viteFinal: StorybookConfig['viteFinal'] = async(config, { presets, configDir }) => {\n const existPlugins = [...(config?.plugins ?? [])];\n const plugins = [];\n\n const framework = await presets.apply('framework');\n const frameworkOptions: FrameworkOptions = (typeof framework === 'string') ? {} : (framework.options ?? {});\n const solidVersion = resolveSolidVersion(framework, configDir);\n const solidEntry = fileURLToPath(\n import.meta.resolve('storybook-solidjs-vite/renderer/solid')\n );\n const solidRendererEntry = fileURLToPath(\n import.meta.resolve(resolveSolidRendererEntry(solidVersion))\n );\n const aliasApplied = solidEntry !== solidRendererEntry;\n const rendererAlias = aliasApplied\n ? [\n { find: SOLID_RENDERER_IMPORT, replacement: solidRendererEntry },\n { find: solidEntry, replacement: solidRendererEntry },\n ]\n : [];\n\n if (frameworkOptions.docgen !== false) {\n plugins.push(\n solidComponentMetaPlugin({ enabled: true })\n );\n }\n\n if (!(await hasVitePlugins(existPlugins, ['solid']))) {\n plugins.push(\n await import('vite-plugin-solid').then(module => module.default())\n );\n }\n\n const optimizeDeps = {\n ...config.optimizeDeps,\n exclude: [\n ...(config.optimizeDeps?.exclude ?? []),\n 'storybook-solidjs-vite',\n ],\n };\n\n return mergeConfig(config, {\n plugins,\n optimizeDeps,\n resolve: {\n ...config.resolve,\n alias: Array.isArray(config.resolve?.alias)\n ? [...config.resolve.alias, ...rendererAlias]\n : {\n ...config.resolve?.alias,\n ...(aliasApplied\n ? {\n [SOLID_RENDERER_IMPORT]: solidRendererEntry,\n [solidEntry]: solidRendererEntry,\n }\n : {}),\n },\n dedupe: mergeSolidDedupe(config.resolve?.dedupe),\n },\n });\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/internal/componentManifest/solidComponentMetaPlugin.ts","../../src/framework/preset.ts"],"names":[],"mappings":";;;;;;;;;AAOA,IAAM,sBAAA,GAAyB,cAAA;AAC/B,IAAM,oBAAA,GAAuB,6BAAA;AAEtB,SAAS,yBAAyB,OAAA,EAAyC;AAG9E,EAAA,OAAO;AAAA,IACH,IAAA,EAAM,gCAAA;AAAA,IACN,OAAA,EAAS,KAAA;AAAA,IAET,eAAA,GAAkB;AACd,MAAA,KAAK,qCAAqC,IAAI,CAAA;AAAA,IAClD,CAAA;AAAA,IAEA,MAAM,SAAA,CAAU,IAAA,EAAM,EAAA,EAAI;AAKtB,MAAA,MAAM,QAAA,GAAW,QAAQ,EAAA,CAAG,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,KAAK,EAAE,CAAA;AAE/C,MAAA,IAAI,CAAC,uBAAuB,IAAA,CAAK,QAAQ,KAAK,oBAAA,CAAqB,IAAA,CAAK,QAAQ,CAAA,EAAG;AAC/E,QAAA,OAAO,IAAA;AAAA,MACX;AAEA,MAAA,MAAM,OAAA,GAAU,MAAM,oCAAA,CAAqC,IAAI,CAAA;AAE/D,MAAA,IAAI,CAAC,OAAA,EAAS;AACV,QAAA,OAAO,IAAA;AAAA,MACX;AAEA,MAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,yBAAA,CAA0B,QAAQ,CAAA;AAEvD,MAAA,IAAI,IAAA,CAAK,WAAW,CAAA,EAAG;AACnB,QAAA,OAAO,IAAA;AAAA,MACX;AAEA,MAAA,MAAM,UAAA,GAAa,IAAA,CACd,GAAA,CAAI,CAAC,GAAA,KAAQ;AACV,QAAA,MAAM,cAAA,GAAiB,IAAI,UAAA,KAAe,SAAA,IACrC,IAAI,WAAA,IACJ,kBAAA,CAAmB,IAAA,CAAK,GAAA,CAAI,WAAW,CAAA;AAC5C,QAAA,MAAM,MAAA,GAAS,cAAA,GAAiB,GAAA,CAAI,WAAA,GAAe,GAAA,CAAI,UAAA;AACvD,QAAA,MAAM,IAAA,GAAO,IAAA,CAAK,SAAA,CAAU,6BAAA,CAA8B,GAAG,CAAC,CAAA;AAE9D,QAAA,OAAO,CAAA,EAAI,MAAO,CAAA,gBAAA,EAAoB,IAAK,CAAA,CAAA,CAAA;AAAA,MAC/C,CAAC,CAAA,CACA,IAAA,CAAK,IAAI,CAAA;AAEd,MAAA,IAAI,CAAC,UAAA,EAAY;AACb,QAAA,OAAO,IAAA;AAAA,MACX;AAEA,MAAA,OAAO;AAAA,QACH,IAAA,EAAM,GAAI,IAAK;;AAAA,EAAQ,UAAW;AAAA,CAAA;AAAA,QAClC,GAAA,EAAK;AAAA,OACT;AAAA,IACJ;AAAA,GACJ;AACJ;;;AC9CA,IAAM,4BAAA,GAA+B,8CAAA;AAGrC,IAAM,qBAAA,GAAwB;AAAA,EAC1B,UAAA;AAAA,EACA,cAAA;AAAA,EACA,kBAAA;AAAA,EACA,iBAAA;AAAA,EACA;AACJ,CAAA;AAEA,SAAS,iBAAiB,QAAA,EAAiD;AACvE,EAAA,MAAM,OAAO,KAAA,CAAM,OAAA,CAAQ,QAAQ,CAAA,GAAI,WAAW,EAAC;AAEnD,EAAA,OAAO,CAAC,mBAAG,IAAI,GAAA,CAAI,CAAC,GAAG,IAAA,EAAM,GAAG,qBAAqB,CAAC,CAAC,CAAA;AAC3D;AAOO,IAAM,IAAA,GAAgD;AAAA,EACzD,OAAA,EAAS,MAAA,CAAA,IAAA,CAAY,OAAA,CAAQ,yBAAyB,CAAA;AAAA,EACtD,QAAA,EAAU,MAAA,CAAA,IAAA,CAAY,OAAA,CAAQ,iCAAiC;AACnE;AAOO,IAAM,QAAA,GAAwD;AAAA,EACjE,kBAAA,EAAoB,IAAA;AAAA,EACpB,wBAAA,EAA0B;AAC9B;AAOO,IAAM,YAA0C,OAAM,MAAA,EAAQ,EAAE,OAAA,EAAS,WAAU,KAAM;AAC5F,EAAA,MAAM,eAAe,CAAC,GAAI,MAAA,EAAQ,OAAA,IAAW,EAAG,CAAA;AAChD,EAAA,MAAM,UAAU,EAAC;AAEjB,EAAA,MAAM,SAAA,GAAY,MAAM,OAAA,CAAQ,KAAA,CAAM,WAAW,CAAA;AACjD,EAAA,MAAM,gBAAA,GAAsC,OAAO,SAAA,KAAc,QAAA,GAAY,EAAC,GAAK,SAAA,CAAU,WAAW,EAAC;AACzG,EAAA,MAAM,YAAA,GAAe,mBAAA,CAAoB,SAAA,EAAW,SAAS,CAAA;AAC7D,EAAA,MAAM,gBAAA,GAAmB,aAAA;AAAA,IACrB,MAAA,CAAA,IAAA,CAAY,QAAQ,4BAA4B;AAAA,GACpD;AACA,EAAA,MAAM,kBAAA,GAAqB,aAAA;AAAA,IACvB,MAAA,CAAA,IAAA,CAAY,OAAA,CAAQ,yBAAA,CAA0B,YAAY,CAAC;AAAA,GAC/D;AACA,EAAA,MAAM,eAAe,gBAAA,KAAqB,kBAAA;AAC1C,EAAA,MAAM,gBAAgB,YAAA,GAChB;AAAA,IACE,EAAE,IAAA,EAAM,4BAAA,EAA8B,WAAA,EAAa,kBAAA,EAAmB;AAAA,IACtE,EAAE,IAAA,EAAM,gBAAA,EAAkB,WAAA,EAAa,kBAAA;AAAmB,MAE5D,EAAC;AAEP,EAAA,IAAI,gBAAA,CAAiB,WAAW,KAAA,EAAO;AACnC,IAAA,OAAA,CAAQ,IAAA;AAAA,MACJ,wBAAA,CAA0C;AAAA,KAC9C;AAAA,EACJ;AAEA,EAAA,IAAI,CAAE,MAAM,cAAA,CAAe,cAAc,CAAC,OAAO,CAAC,CAAA,EAAI;AAClD,IAAA,OAAA,CAAQ,IAAA;AAAA,MACJ,MAAM,OAAO,mBAAmB,CAAA,CAAE,KAAK,CAAA,MAAA,KAAU,MAAA,CAAO,SAAS;AAAA,KACrE;AAAA,EACJ;AAEA,EAAA,MAAM,YAAA,GAAe;AAAA,IACjB,GAAG,MAAA,CAAO,YAAA;AAAA,IACV,OAAA,EAAS;AAAA,MACL,GAAI,MAAA,CAAO,YAAA,EAAc,OAAA,IAAW,EAAC;AAAA,MACrC;AAAA;AACJ,GACJ;AAEA,EAAA,OAAO,YAAY,MAAA,EAAQ;AAAA,IACvB,OAAA;AAAA,IACA,YAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACL,GAAG,MAAA,CAAO,OAAA;AAAA,MACV,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,MAAA,CAAO,SAAS,KAAK,CAAA,GACpC,CAAC,GAAG,MAAA,CAAO,OAAA,CAAQ,KAAA,EAAO,GAAG,aAAa,CAAA,GAC1C;AAAA,QACE,GAAG,OAAO,OAAA,EAAS,KAAA;AAAA,QACnB,GAAI,YAAA,GACE;AAAA,UACE,CAAC,4BAA4B,GAAG,kBAAA;AAAA,UAChC,CAAC,gBAAgB,GAAG;AAAA,YAEtB;AAAC,OACX;AAAA,MACJ,MAAA,EAAQ,gBAAA,CAAiB,MAAA,CAAO,OAAA,EAAS,MAAM;AAAA;AACnD,GACH,CAAA;AACL","file":"preset.js","sourcesContent":["import { resolve } from 'node:path';\n\nimport { getOrCreateSolidComponentMetaManager } from './solidComponentMeta/SolidComponentMetaManager';\nimport { solidComponentDocToDocgenInfo } from './toDocgenInfo';\n\nimport type { Plugin } from 'vite';\n\nconst COMPONENT_FILE_PATTERN = /\\.(tsx|jsx)$/;\nconst STORIES_FILE_PATTERN = /\\.stories\\.(tsx|jsx|ts|js)$/;\n\nexport function solidComponentMetaPlugin(options?: { enabled?: boolean }): Plugin {\n const enabled = options?.enabled !== false;\n\n return {\n name: 'storybook:solid-component-meta',\n enforce: 'pre',\n\n configureServer() {\n void getOrCreateSolidComponentMetaManager(true);\n },\n\n async transform(code, id) {\n if (!enabled) {\n return null;\n }\n\n const filePath = resolve(id.split('?')[0] ?? id);\n\n if (!COMPONENT_FILE_PATTERN.test(filePath) || STORIES_FILE_PATTERN.test(filePath)) {\n return null;\n }\n\n const manager = await getOrCreateSolidComponentMetaManager(true);\n\n if (!manager) {\n return null;\n }\n\n const docs = manager.extractAllExportsFromFile(filePath);\n\n if (docs.length === 0) {\n return null;\n }\n\n const injections = docs\n .map((doc) => {\n const useDisplayName = doc.exportName === 'default'\n && doc.displayName\n && /^[$A-Z_][\\w$]*$/i.test(doc.displayName);\n const target = useDisplayName ? doc.displayName! : doc.exportName;\n const info = JSON.stringify(solidComponentDocToDocgenInfo(doc));\n\n return `${ target }.__docgenInfo = ${ info };`;\n })\n .join('\\n');\n\n if (!injections) {\n return null;\n }\n\n return {\n code: `${ code }\\n\\n${ injections }\\n`,\n map: null,\n };\n },\n };\n}\n","import { hasVitePlugins } from '@storybook/builder-vite';\n/**\n * A preset is a configuration that enables developers to quickly set up and\n * customize their environment with a specific set of features, functionalities, or integrations.\n *\n * @see https://storybook.js.org/docs/addons/writing-presets\n * @see https://storybook.js.org/docs/api/main-config/main-config\n */\nimport { fileURLToPath } from 'node:url';\nimport { mergeConfig } from 'vite';\n\nimport { solidComponentMetaPlugin } from '../internal/componentManifest/solidComponentMetaPlugin';\nimport {\n resolveSolidRendererEntry,\n resolveSolidVersion,\n} from '../internal/solidVersion';\n\nimport type { PresetProperty } from 'storybook/internal/types';\nimport type { FrameworkOptions, StorybookConfig } from './public-api';\n\nconst SOLID_LEGACY_RENDERER_IMPORT = 'storybook-solidjs-vite/renderer/solid-legacy';\n\n/** Force a single copy of Solid packages (renderer + app + linked deps). */\nconst SOLID_DEDUPE_PACKAGES = [\n 'solid-js',\n '@solidjs/web',\n '@solidjs/signals',\n '@solidjs/router',\n '@solidjs/meta',\n] as const;\n\nfunction mergeSolidDedupe(existing?: string | readonly string[]): string[] {\n const base = Array.isArray(existing) ? existing : [];\n\n return [...new Set([...base, ...SOLID_DEDUPE_PACKAGES])];\n}\n\n/**\n * Configures Storybook's internal features.\n *\n * @see https://storybook.js.org/docs/api/main-config/main-config-core\n */\nexport const core: PresetProperty<'core', StorybookConfig> = {\n builder: import.meta.resolve('@storybook/builder-vite'),\n renderer: import.meta.resolve('storybook-solidjs-vite/renderer'),\n};\n\n/**\n * Enable the components manifest debugger by default.\n *\n * @see https://storybook.js.org/docs/api/main-config/main-config-features#componentsmanifest\n */\nexport const features: PresetProperty<'features', StorybookConfig> = {\n componentsManifest: true,\n experimentalCodeExamples: true,\n};\n\n/**\n * Customize Storybook's Vite setup when using the Vite builder.\n *\n * @see https://storybook.js.org/docs/api/main-config/main-config-vite-final\n */\nexport const viteFinal: StorybookConfig['viteFinal'] = async(config, { presets, configDir }) => {\n const existPlugins = [...(config?.plugins ?? [])];\n const plugins = [];\n\n const framework = await presets.apply('framework');\n const frameworkOptions: FrameworkOptions = (typeof framework === 'string') ? {} : (framework.options ?? {});\n const solidVersion = resolveSolidVersion(framework, configDir);\n const solidLegacyEntry = fileURLToPath(\n import.meta.resolve(SOLID_LEGACY_RENDERER_IMPORT)\n );\n const solidRendererEntry = fileURLToPath(\n import.meta.resolve(resolveSolidRendererEntry(solidVersion))\n );\n const aliasApplied = solidLegacyEntry !== solidRendererEntry;\n const rendererAlias = aliasApplied\n ? [\n { find: SOLID_LEGACY_RENDERER_IMPORT, replacement: solidRendererEntry },\n { find: solidLegacyEntry, replacement: solidRendererEntry },\n ]\n : [];\n\n if (frameworkOptions.docgen !== false) {\n plugins.push(\n solidComponentMetaPlugin({ enabled: true })\n );\n }\n\n if (!(await hasVitePlugins(existPlugins, ['solid']))) {\n plugins.push(\n await import('vite-plugin-solid').then(module => module.default())\n );\n }\n\n const optimizeDeps = {\n ...config.optimizeDeps,\n exclude: [\n ...(config.optimizeDeps?.exclude ?? []),\n 'storybook-solidjs-vite',\n ],\n };\n\n return mergeConfig(config, {\n plugins,\n optimizeDeps,\n resolve: {\n ...config.resolve,\n alias: Array.isArray(config.resolve?.alias)\n ? [...config.resolve.alias, ...rendererAlias]\n : {\n ...config.resolve?.alias,\n ...(aliasApplied\n ? {\n [SOLID_LEGACY_RENDERER_IMPORT]: solidRendererEntry,\n [solidLegacyEntry]: solidRendererEntry,\n }\n : {}),\n },\n dedupe: mergeSolidDedupe(config.resolve?.dedupe),\n },\n });\n};\n"]}
|
package/dist/index.js
CHANGED
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
import { docs_exports } from './chunk-UQOUKQDU.js';
|
|
2
1
|
export { defineMain } from './chunk-NK66FCKE.js';
|
|
3
2
|
export { IS_SOLID_JSX_FLAG, createDecorator, createJSXDecorator } from './chunk-FRWD6B5X.js';
|
|
4
|
-
import {
|
|
3
|
+
import { docs_exports } from './chunk-XCNVCO2S.js';
|
|
5
4
|
import './chunk-PZ5AY32C.js';
|
|
6
|
-
import
|
|
5
|
+
import { previewAddon } from 'storybook-solidjs-vite/renderer/solid-legacy';
|
|
7
6
|
import { definePreview as definePreview$1 } from 'storybook/internal/csf';
|
|
8
7
|
|
|
9
|
-
function createSolidDefinePreview(
|
|
8
|
+
function createSolidDefinePreview(solidAnnotations) {
|
|
10
9
|
return ((input) => {
|
|
11
10
|
const { addons, ...projectAnnotations } = input;
|
|
12
11
|
const preview = definePreview$1({
|
|
13
12
|
...projectAnnotations,
|
|
14
13
|
addons: [
|
|
15
|
-
|
|
16
|
-
argtypes_exports,
|
|
14
|
+
solidAnnotations,
|
|
17
15
|
docs_exports,
|
|
18
16
|
...addons ?? []
|
|
19
17
|
]
|
|
@@ -34,7 +32,7 @@ function createSolidDefinePreview(solidAnnotations2) {
|
|
|
34
32
|
}
|
|
35
33
|
|
|
36
34
|
// src/index.ts
|
|
37
|
-
var definePreview = createSolidDefinePreview(
|
|
35
|
+
var definePreview = createSolidDefinePreview(previewAddon);
|
|
38
36
|
|
|
39
37
|
export { definePreview };
|
|
40
38
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/preview/define-preview.ts","../src/index.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../src/preview/define-preview.ts","../src/index.ts"],"names":["definePreviewBase"],"mappings":";;;;;;;AAwGO,SAAS,yBACZ,gBAAA,EACkB;AAClB,EAAA,QAAQ,CACJ,KAAA,KACC;AACD,IAAA,MAAM,EAAE,MAAA,EAAQ,GAAG,kBAAA,EAAmB,GAAI,KAAA;AAE1C,IAAA,MAAM,UAAUA,eAAA,CAAkB;AAAA,MAC9B,GAAG,kBAAA;AAAA,MACH,MAAA,EAAQ;AAAA,QACJ,gBAAA;AAAA,QACA,YAAA;AAAA,QACA,GAAI,UAAU;AAAC;AACnB,KACH,CAAA;AAED,IAAA,MAAM,UAAA,GAAa,OAAA,CAAQ,IAAA,CAAK,IAAA,CAAK,OAAO,CAAA;AAE5C,IAAA,OAAA,CAAQ,IAAA,GAAO,CAAC,MAAA,KAAW;AACvB,MAAA,MAAM,IAAA,GAAO,WAAW,MAAM,CAAA;AAC9B,MAAA,MAAM,WAAA,GAAc,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA;AAExC,MAAA,IAAA,CAAK,KAAA,GAAQ,CAAC,OAAA,KAAiB;AAC3B,QAAA,MAAM,KAAA,GAAQ,YAAY,OAAO,CAAA;AAGjC,QAAA,KAAA,CAAM,SAAA,GAAY,MAAM,SAAA,EAAU;AAElC,QAAA,OAAO,KAAA;AAAA,MACX,CAAA;AAEA,MAAA,OAAO,IAAA;AAAA,IACX,CAAA;AAEA,IAAA,OAAO,OAAA;AAAA,EACX,CAAA;AACJ;;;ACtIO,IAAM,aAAA,GAAoC,yBAAyB,YAAY","file":"index.js","sourcesContent":["import { definePreview as definePreviewBase } from 'storybook/internal/csf';\n\nimport * as solidDocsAnnotations from '../renderer/docs';\n\nimport type { AddonTypes, InferTypes, Meta, Preview, PreviewAddon, Story } from 'storybook/internal/csf';\nimport type {\n Args,\n ArgsStoryFn,\n ComponentAnnotations,\n DecoratorFunction,\n ProjectAnnotations,\n Renderer,\n StoryAnnotations,\n} from 'storybook/internal/types';\nimport type { OmitIndexSignature, SetOptional, Simplify, UnionToIntersection } from 'type-fest';\nimport type { AddMocks, EmptyMetaArgs, SolidComponent, SolidTypes } from './public-api';\n\n/** Extracts and unions all args types from an array of decorators. */\ntype DecoratorsArgs<TRenderer extends Renderer, Decorators> = UnionToIntersection<\n Decorators extends DecoratorFunction<TRenderer, infer TArgs> ? TArgs : unknown\n>;\n\ntype InferArgs<TArgs, T, Decorators> = Simplify<\n TArgs & Simplify<OmitIndexSignature<DecoratorsArgs<SolidTypes & T, Decorators>>>\n>;\n\ntype InferSolidTypes<T, TArgs, Decorators> = SolidTypes & T & {\n args: Simplify<InferArgs<TArgs, T, Decorators>>;\n};\n\nexport type DefinePreviewInput<Addons extends PreviewAddon<never>[] = []> = {\n addons?: Addons;\n} & ProjectAnnotations<SolidTypes & InferTypes<Addons>>;\n\n/** @ts-expect-error We cannot implement the meta faithfully here, but that is okay. */\nexport interface SolidPreview<T extends AddonTypes> extends Preview<SolidTypes & T> {\n type: <R>() => SolidPreview<T & R>;\n\n meta: <\n TArgs extends Args,\n Decorators extends DecoratorFunction<SolidTypes & T, any>,\n TMetaArgs extends Partial<TArgs & T['args']>\n >(\n meta: {\n render?: ArgsStoryFn<SolidTypes & T, TArgs & T['args']>;\n component?: SolidComponent<TArgs>;\n decorators?: Decorators | Decorators[];\n args?: TMetaArgs;\n } & Omit<\n ComponentAnnotations<SolidTypes & T, TArgs>,\n 'decorators' | 'component' | 'args' | 'render'\n >\n ) => SolidMeta<\n InferSolidTypes<T, TArgs, Decorators>,\n Omit<ComponentAnnotations<InferSolidTypes<T, TArgs, Decorators>>, 'args'> & {\n args: Partial<TArgs> extends TMetaArgs ? EmptyMetaArgs : TMetaArgs;\n }\n >;\n}\n\nexport interface SolidMeta<T extends SolidTypes, MetaInput extends ComponentAnnotations<T>>\n /** @ts-expect-error SolidMeta requires two type parameters, but Meta's constraints differ */\n extends Meta<T, MetaInput> {\n story: (<\n TInput extends\n | (() => SolidTypes['storyResult'])\n | (StoryAnnotations<T, T['args']> & {\n render: () => SolidTypes['storyResult'];\n })\n >(\n story: TInput\n ) => SolidStory<T, TInput extends () => SolidTypes['storyResult'] ? { render: TInput } : TInput>) & (<\n TInput extends Simplify<\n StoryAnnotations<\n T,\n AddMocks<T['args'], MetaInput['args']>,\n SetOptional<T['args'], keyof T['args'] & keyof MetaInput['args']>\n >\n >\n >(\n story: TInput\n /** @ts-expect-error hard */\n ) => SolidStory<T, TInput>) & ((\n ..._args: Partial<T['args']> extends SetOptional<\n T['args'],\n keyof T['args'] & keyof MetaInput['args']\n >\n ? []\n : [never]\n ) => SolidStory<T, EmptyMetaArgs>);\n}\n\nexport interface SolidStory<T extends SolidTypes, TInput extends StoryAnnotations<T, T['args']>>\n extends Story<T, TInput> {\n Component: SolidComponent<Partial<T['args']>>;\n}\n\n/** Stable `definePreview` type for Solid 1 and Solid 2. */\nexport type SolidDefinePreview = <\n Addons extends PreviewAddon<never>[] = []\n>(\n input: DefinePreviewInput<Addons>\n) => SolidPreview<SolidTypes & InferTypes<Addons>>;\n\nexport function createSolidDefinePreview(\n solidAnnotations: PreviewAddon<never>\n): SolidDefinePreview {\n return (<Addons extends PreviewAddon<never>[] = []>(\n input: DefinePreviewInput<Addons>\n ) => {\n const { addons, ...projectAnnotations } = input;\n\n const preview = definePreviewBase({\n ...projectAnnotations,\n addons: [\n solidAnnotations,\n solidDocsAnnotations,\n ...(addons ?? []),\n ],\n });\n\n const defineMeta = preview.meta.bind(preview);\n\n preview.meta = (_input) => {\n const meta = defineMeta(_input);\n const defineStory = meta.story.bind(meta);\n\n meta.story = (__input: any) => {\n const story = defineStory(__input);\n\n // @ts-ignore this is a private property used only here\n story.Component = story.__compose();\n\n return story;\n };\n\n return meta;\n };\n\n return preview;\n }) as unknown as SolidDefinePreview;\n}\n","import { previewAddon } from 'storybook-solidjs-vite/renderer/solid-legacy';\n\nimport { createSolidDefinePreview, type SolidDefinePreview } from './preview/define-preview';\n\nexport * from './framework/public-api';\nexport * from './preview/public-api';\n\nexport const definePreview: SolidDefinePreview = createSolidDefinePreview(previewAddon);\n"]}
|
package/dist/renderer/docs.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { extractComponentDescription } from 'storybook/internal/docs-tools';
|
|
1
|
+
import { ArgTypesExtractor, extractComponentDescription } from 'storybook/internal/docs-tools';
|
|
2
2
|
import { ArgTypesEnhancer } from 'storybook/internal/types';
|
|
3
|
-
import {
|
|
3
|
+
import { S as SolidRenderer } from '../public-api-DVMx11qI.js';
|
|
4
4
|
import 'solid-js';
|
|
5
5
|
|
|
6
6
|
declare const parameters: {
|
|
@@ -8,10 +8,10 @@ declare const parameters: {
|
|
|
8
8
|
story: {
|
|
9
9
|
inline: boolean;
|
|
10
10
|
};
|
|
11
|
+
extractArgTypes: ArgTypesExtractor;
|
|
11
12
|
extractComponentDescription: typeof extractComponentDescription;
|
|
12
13
|
};
|
|
13
14
|
};
|
|
14
|
-
declare const decorators: Decorator[];
|
|
15
15
|
declare const argTypesEnhancers: ArgTypesEnhancer<SolidRenderer>[];
|
|
16
16
|
|
|
17
|
-
export { argTypesEnhancers,
|
|
17
|
+
export { argTypesEnhancers, parameters };
|
package/dist/renderer/docs.js
CHANGED
|
@@ -11,5 +11,6 @@ declare const applyDecorators: (storyFn: storybook_internal_csf.LegacyStoryFn<So
|
|
|
11
11
|
declare const mount: (context: StoryContext<storybook_internal_csf.Args>) => (ui: StoryFnReturnType) => Promise<storybook_internal_csf.Canvas>;
|
|
12
12
|
declare const render: storybook_internal_csf.ArgsStoryFn<SolidRenderer>;
|
|
13
13
|
declare const renderToCanvas: (renderContext: RenderContext, canvasElement: SolidRenderer["canvasElement"]) => Promise<() => void>;
|
|
14
|
+
declare const previewAddon: storybook_internal_csf.PreviewAddon<storybook_internal_csf.AddonTypes>;
|
|
14
15
|
|
|
15
|
-
export { applyDecorators, mount, parameters, render, renderToCanvas };
|
|
16
|
+
export { applyDecorators, mount, parameters, previewAddon, render, renderToCanvas };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createStoryState, createApplyDecorators, createMount, createDefaultRender, createRenderToCanvas } from '../chunk-SWPHHVAM.js';
|
|
1
|
+
import { createStoryState, createApplyDecorators, createMount, createDefaultRender, createRenderToCanvas, beforeAll } from '../chunk-SWPHHVAM.js';
|
|
2
2
|
export { beforeAll } from '../chunk-SWPHHVAM.js';
|
|
3
3
|
import '../chunk-FRWD6B5X.js';
|
|
4
4
|
import '../chunk-PZ5AY32C.js';
|
|
@@ -6,6 +6,7 @@ import { global } from '@storybook/global';
|
|
|
6
6
|
import { createComponent, onMount, onCleanup, ErrorBoundary } from 'solid-js';
|
|
7
7
|
import { createStore as createStore$1, reconcile } from 'solid-js/store';
|
|
8
8
|
import { render as render$1 } from 'solid-js/web';
|
|
9
|
+
import { definePreviewAddon } from 'storybook/internal/csf';
|
|
9
10
|
|
|
10
11
|
var SOLID_RENDERER_ID = "solid";
|
|
11
12
|
if (global.window) {
|
|
@@ -55,7 +56,15 @@ var renderToCanvas = createRenderToCanvas({
|
|
|
55
56
|
return App;
|
|
56
57
|
}
|
|
57
58
|
});
|
|
59
|
+
var previewAddon = definePreviewAddon({
|
|
60
|
+
applyDecorators,
|
|
61
|
+
beforeAll,
|
|
62
|
+
mount,
|
|
63
|
+
parameters,
|
|
64
|
+
render,
|
|
65
|
+
renderToCanvas
|
|
66
|
+
});
|
|
58
67
|
|
|
59
|
-
export { applyDecorators, mount, parameters, render, renderToCanvas };
|
|
60
|
-
//# sourceMappingURL=solid.js.map
|
|
61
|
-
//# sourceMappingURL=solid.js.map
|
|
68
|
+
export { applyDecorators, mount, parameters, previewAddon, render, renderToCanvas };
|
|
69
|
+
//# sourceMappingURL=solid-legacy.js.map
|
|
70
|
+
//# sourceMappingURL=solid-legacy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/renderer/solid-legacy.ts"],"names":["solidCreateStore","solidRender"],"mappings":";;;;;;;;;;AAsBA,IAAM,iBAAA,GAAoB,OAAA;AAE1B,IAAI,OAAO,MAAA,EAAQ;AACf,EAAA,MAAA,CAAO,OAAO,aAAA,GAAgB,iBAAA;AAClC;AAEA,IAAM,UAAA,GAAa;AAAA,EACf,QAAA,EAAU;AACd;AAEA,IAAM,WAAA,GAAc,CAAmB,OAAA,KAAe;AAClD,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIA,cAAoB,OAAO,CAAA;AAErD,EAAA,MAAM,QAAA,GAAW,CAAC,MAAA,KAA2B;AACzC,IAAA,QAAA,CAAS,SAAA,CAAU,MAAA,CAAO,KAAK,CAAC,CAAC,CAAA;AAAA,EACrC,CAAA;AAEA,EAAA,OAAO,CAAC,OAAO,QAAQ,CAAA;AAC3B,CAAA;AAEA,IAAM,UAAA,GAAa,iBAAiB,WAAW,CAAA;AAE/C,IAAM,OAAA,GAAgC;AAAA,EAClC,UAAA;AAAA,EACA,eAAA;AAAA,EACA,MAAA,EAAQC;AACZ,CAAA;AAEA,IAAM,eAAA,GAAkB,qBAAA,CAAsB,EAAE,UAAA,EAAY;AAC5D,IAAM,KAAA,GAAQ,YAAY,OAAO;AACjC,IAAM,MAAA,GAAS,mBAAA,CAAoB,OAAA,CAAQ,eAAe;AAC1D,IAAM,iBAAiB,oBAAA,CAAqB;AAAA,EACxC,GAAG,OAAA;AAAA,EACH,cAAA,EAAgB,CAAC,EAAE,KAAA,EAAO,cAAc,QAAA,EAAU,aAAA,EAAe,SAAQ,KAAM;AAC3E,IAAA,MAAM,MAAsB,MAAM;AAC9B,MAAA,OAAA,CAAQ,MAAM;AACV,QAAA,QAAA,EAAS;AACT,QAAA,UAAA,CAAW,WAAA,CAAY,SAAS,IAAI,CAAA;AAAA,MACxC,CAAC,CAAA;AAED,MAAA,SAAA,CAAU,MAAM;AACZ,QAAA,UAAA,CAAW,WAAA,CAAY,SAAS,KAAK,CAAA;AAAA,MACzC,CAAC,CAAA;AAGD,MAAA,IAAI,YAAA,EAAc,UAAA,GAAa,mBAAmB,CAAA,EAAG;AACjD,QAAA,OAAO,eAAA,CAAgB,MAAM,KAAA,EAAM,EAAG,EAAE,CAAA;AAAA,MAC5C;AAEA,MAAA,OAAO,gBAAgB,aAAA,EAAe;AAAA,QAClC,QAAA,EAAU,CAAC,GAAA,KAAe;AACtB,UAAA,aAAA,CAAc,GAAG,CAAA;AAEjB,UAAA,OAAO,GAAA;AAAA,QACX,CAAA;AAAA,QACA,UAAU,eAAA,CAAgB,MAAM,KAAA,EAAM,EAAG,EAAE;AAAA,OAC9C,CAAA;AAAA,IACL,CAAA;AAEA,IAAA,OAAO,GAAA;AAAA,EACX;AACJ,CAAC;AAED,IAAM,eAAe,kBAAA,CAAmB;AAAA,EACpC,eAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA;AACJ,CAA4C","file":"solid-legacy.js","sourcesContent":["import { global } from '@storybook/global';\nimport {\n createComponent,\n ErrorBoundary,\n onCleanup,\n onMount,\n} from 'solid-js';\nimport { reconcile, createStore as solidCreateStore } from 'solid-js/store';\nimport { render as solidRender } from 'solid-js/web';\nimport { definePreviewAddon } from 'storybook/internal/csf';\n\nimport { createApplyDecorators } from './shared/apply-decorators';\nimport { beforeAll } from './shared/before-all';\nimport { createDefaultRender } from './shared/default-render';\nimport { createMount } from './shared/mount';\nimport { createRenderToCanvas } from './shared/render-to-canvas';\nimport { createStoryState } from './shared/story-store';\n\nimport type { ProjectAnnotations, Renderer } from 'storybook/internal/types';\nimport type { SolidComponent } from '../preview/public-api';\nimport type { SolidRendererRuntime } from './shared/render-to-canvas';\n\nconst SOLID_RENDERER_ID = 'solid' as const;\n\nif (global.window) {\n global.window.STORYBOOK_ENV = SOLID_RENDERER_ID;\n}\n\nconst parameters = {\n renderer: SOLID_RENDERER_ID,\n};\n\nconst createStore = <T extends object>(initial: T) => {\n const [state, setStore] = solidCreateStore<T>(initial);\n\n const setState = (update: (prev: T) => T) => {\n setStore(reconcile(update(state)));\n };\n\n return [state, setState] as const;\n};\n\nconst storyStore = createStoryState(createStore);\n\nconst runtime: SolidRendererRuntime = {\n storyStore,\n createComponent,\n render: solidRender,\n};\n\nconst applyDecorators = createApplyDecorators({ storyStore });\nconst mount = createMount(runtime);\nconst render = createDefaultRender(runtime.createComponent);\nconst renderToCanvas = createRenderToCanvas({\n ...runtime,\n createStoryApp: ({ Story, storyContext, showMain, showException, storyId }) => {\n const App: SolidComponent = () => {\n onMount(() => {\n showMain();\n storyStore.setRendered(storyId, true);\n });\n\n onCleanup(() => {\n storyStore.setRendered(storyId, false);\n });\n\n\n if (storyContext?.parameters?.['__isPortableStory']) {\n return createComponent(() => Story(), {});\n }\n\n return createComponent(ErrorBoundary, {\n fallback: (err: Error) => {\n showException(err);\n\n return err as any;\n },\n children: createComponent(() => Story(), {}),\n });\n };\n\n return App;\n },\n});\n\nconst previewAddon = definePreviewAddon({\n applyDecorators,\n beforeAll,\n mount,\n parameters,\n render,\n renderToCanvas,\n} as unknown as ProjectAnnotations<Renderer>);\n\nexport {\n applyDecorators,\n beforeAll,\n mount,\n parameters,\n previewAddon,\n render,\n renderToCanvas\n};\n"]}
|
|
@@ -11,5 +11,6 @@ declare const applyDecorators: (storyFn: storybook_internal_csf.LegacyStoryFn<So
|
|
|
11
11
|
declare const mount: (context: StoryContext<storybook_internal_csf.Args>) => (ui: StoryFnReturnType) => Promise<storybook_internal_csf.Canvas>;
|
|
12
12
|
declare const render: storybook_internal_csf.ArgsStoryFn<SolidRenderer>;
|
|
13
13
|
declare const renderToCanvas: (renderContext: RenderContext, canvasElement: SolidRenderer["canvasElement"]) => Promise<() => void>;
|
|
14
|
+
declare const previewAddon: storybook_internal_csf.PreviewAddon<storybook_internal_csf.AddonTypes>;
|
|
14
15
|
|
|
15
|
-
export { applyDecorators, mount, parameters, render, renderToCanvas };
|
|
16
|
+
export { applyDecorators, mount, parameters, previewAddon, render, renderToCanvas };
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { createStoryState, createApplyDecorators, createMount, createDefaultRender, createRenderToCanvas } from '../chunk-SWPHHVAM.js';
|
|
1
|
+
import { createStoryState, createApplyDecorators, createMount, createDefaultRender, createRenderToCanvas, beforeAll } from '../chunk-SWPHHVAM.js';
|
|
2
2
|
export { beforeAll } from '../chunk-SWPHHVAM.js';
|
|
3
3
|
import '../chunk-FRWD6B5X.js';
|
|
4
4
|
import '../chunk-PZ5AY32C.js';
|
|
5
5
|
import { render as render$1 } from '@solidjs/web';
|
|
6
6
|
import { global } from '@storybook/global';
|
|
7
7
|
import { createStore, createComponent, onSettled, Errored, createMemo } from 'solid-js';
|
|
8
|
+
import { definePreviewAddon } from 'storybook/internal/csf';
|
|
8
9
|
|
|
9
10
|
var SOLID_RENDERER_ID = "solid-next";
|
|
10
11
|
if (global.window) {
|
|
@@ -57,7 +58,15 @@ var renderToCanvas = createRenderToCanvas({
|
|
|
57
58
|
});
|
|
58
59
|
}
|
|
59
60
|
});
|
|
61
|
+
var previewAddon = definePreviewAddon({
|
|
62
|
+
applyDecorators,
|
|
63
|
+
beforeAll,
|
|
64
|
+
mount,
|
|
65
|
+
parameters,
|
|
66
|
+
render,
|
|
67
|
+
renderToCanvas
|
|
68
|
+
});
|
|
60
69
|
|
|
61
|
-
export { applyDecorators, mount, parameters, render, renderToCanvas };
|
|
70
|
+
export { applyDecorators, mount, parameters, previewAddon, render, renderToCanvas };
|
|
62
71
|
//# sourceMappingURL=solid-next.js.map
|
|
63
72
|
//# sourceMappingURL=solid-next.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/renderer/solid-next.ts"],"names":["solidRender"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/renderer/solid-next.ts"],"names":["solidRender"],"mappings":";;;;;;;;;AAsBA,IAAM,iBAAA,GAAoB,YAAA;AAE1B,IAAI,OAAO,MAAA,EAAQ;AACf,EAAA,MAAA,CAAO,OAAO,aAAA,GAAgB,iBAAA;AAClC;AAEA,IAAM,UAAA,GAAa;AAAA,EACf,QAAA,EAAU;AACd;AAEA,SAAS,WAAW,KAAA,EAAiD;AACjE,EAAA,OAAO,WAAW,KAAK,CAAA;AAC3B;AAEA,IAAM,UAAA,GAAa,gBAAA,CAAiB,CAAC,OAAA,KAAiB;AAClD,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,YAAY,OAAO,CAAA;AAE7C,EAAA,MAAM,QAAA,GAAW,CAAC,MAAA,KAA+B;AAC7C,IAAA,QAAA,CAAS,MAAM,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,EAChC,CAAA;AAEA,EAAA,OAAO,CAAC,OAAO,QAAQ,CAAA;AAC3B,CAAC,CAAA;AAED,IAAM,OAAA,GAAgC;AAAA,EAClC,UAAA;AAAA,EACA,MAAA,EAAQA,QAAA;AAAA,EACR;AACJ,CAAA;AAEA,IAAM,eAAA,GAAkB,qBAAA,CAAsB,EAAE,UAAA,EAAY;AAC5D,IAAM,KAAA,GAAQ,YAAY,OAAO;AACjC,IAAM,MAAA,GAAS,mBAAA,CAAoB,OAAA,CAAQ,eAAe;AAC1D,IAAM,iBAAiB,oBAAA,CAAqB;AAAA,EACxC,GAAG,OAAA;AAAA,EACH,cAAA,EAAgB,CAAC,EAAE,KAAA,EAAO,cAAc,QAAA,EAAU,aAAA,EAAe,SAAQ,KAAM;AAC3E,IAAA,MAAM,WAAA,GAAc,MAAM,eAAA,CAAgB,MAAM,WAAW,KAAK,CAAA,EAAG,EAAE,CAAA;AAErE,IAAA,QAAQ,MAAM;AACV,MAAA,SAAA,CAAU,MAAM;AACZ,QAAA,QAAA,EAAS;AACT,QAAA,UAAA,CAAW,WAAA,CAAY,SAAS,IAAI,CAAA;AAEpC,QAAA,OAAO,MAAM;AACT,UAAA,UAAA,CAAW,WAAA,CAAY,SAAS,KAAK,CAAA;AAAA,QACzC,CAAA;AAAA,MACJ,CAAC,CAAA;AAGD,MAAA,IAAI,YAAA,EAAc,UAAA,GAAa,mBAAmB,CAAA,EAAG;AACjD,QAAA,OAAO,WAAA,EAAY;AAAA,MACvB;AAEA,MAAA,OAAO,gBAAgB,OAAA,EAAS;AAAA,QAC5B,QAAA,EAAU,CAAC,GAAA,EAAoB,MAAA,KAAuB;AAClD,UAAA,MAAM,QAAQ,GAAA,EAAI;AAElB,UAAA,aAAA,CAAc,KAAK,CAAA;AAEnB,UAAA,OAAO,KAAA;AAAA,QACX,CAAA;AAAA,QACA,UAAU,WAAA;AAAY,OACzB,CAAA;AAAA,IACL,CAAA;AAAA,EACJ;AACJ,CAAC;AAED,IAAM,eAAe,kBAAA,CAAmB;AAAA,EACpC,eAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA;AACJ,CAA4C","file":"solid-next.js","sourcesContent":["import { render as solidRender } from '@solidjs/web';\nimport { global } from '@storybook/global';\nimport {\n createComponent,\n createMemo,\n createStore,\n Errored,\n onSettled,\n} from 'solid-js-next';\nimport { definePreviewAddon } from 'storybook/internal/csf';\n\nimport { createApplyDecorators } from './shared/apply-decorators';\nimport { beforeAll } from './shared/before-all';\nimport { createDefaultRender } from './shared/default-render';\nimport { createMount } from './shared/mount';\nimport { createRenderToCanvas } from './shared/render-to-canvas';\nimport { createStoryState } from './shared/story-store';\n\nimport type { ProjectAnnotations, Renderer } from 'storybook/internal/types';\nimport type { SolidComponent, SolidRenderer } from '../preview/public-api';\nimport type { SolidRendererRuntime, StoryThunk } from './shared/render-to-canvas';\n\nconst SOLID_RENDERER_ID = 'solid-next' as const;\n\nif (global.window) {\n global.window.STORYBOOK_ENV = SOLID_RENDERER_ID;\n}\n\nconst parameters = {\n renderer: SOLID_RENDERER_ID,\n};\n\nfunction trackStory(story: StoryThunk): SolidRenderer['storyResult'] {\n return createMemo(story) as unknown as SolidRenderer['storyResult'];\n}\n\nconst storyStore = createStoryState((initial: any) => {\n const [state, setStore] = createStore(initial);\n\n const setState = (update: (prev: any) => any) => {\n setStore(() => update(state));\n };\n\n return [state, setState];\n});\n\nconst runtime: SolidRendererRuntime = {\n storyStore,\n render: solidRender,\n createComponent: createComponent as SolidRendererRuntime['createComponent'],\n};\n\nconst applyDecorators = createApplyDecorators({ storyStore });\nconst mount = createMount(runtime);\nconst render = createDefaultRender(runtime.createComponent);\nconst renderToCanvas = createRenderToCanvas({\n ...runtime,\n createStoryApp: ({ Story, storyContext, showMain, showException, storyId }) => {\n const renderStory = () => createComponent(() => trackStory(Story), {});\n\n return (() => {\n onSettled(() => {\n showMain();\n storyStore.setRendered(storyId, true);\n\n return () => {\n storyStore.setRendered(storyId, false);\n };\n });\n\n\n if (storyContext?.parameters?.['__isPortableStory']) {\n return renderStory();\n }\n\n return createComponent(Errored, {\n fallback: (err: () => unknown, _reset: () => void) => {\n const error = err() as Error;\n\n showException(error);\n\n return error as any;\n },\n children: renderStory(),\n });\n }) as SolidComponent;\n },\n});\n\nconst previewAddon = definePreviewAddon({\n applyDecorators,\n beforeAll,\n mount,\n parameters,\n render,\n renderToCanvas,\n} as unknown as ProjectAnnotations<Renderer>);\n\nexport {\n applyDecorators,\n beforeAll,\n mount,\n parameters,\n previewAddon,\n render,\n renderToCanvas,\n};\n"]}
|
package/dist/renderer.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { resolveSolidRendererEntry, resolveSolidVersion } from './chunk-
|
|
1
|
+
import { resolveSolidRendererEntry, resolveSolidVersion } from './chunk-LWHXIEWO.js';
|
|
2
2
|
import { getOrCreateSolidComponentMetaManager, DOCGEN_ENGINE, MANIFEST_DOCGEN_ENGINE } from './chunk-TKOWB3JL.js';
|
|
3
3
|
import './chunk-PZ5AY32C.js';
|
|
4
4
|
import { fileURLToPath } from 'url';
|
|
@@ -924,21 +924,14 @@ async function getArgTypesData(_input, options) {
|
|
|
924
924
|
|
|
925
925
|
// src/renderer/index.ts
|
|
926
926
|
var previewAnnotations = async (input = [], options) => {
|
|
927
|
-
const docsConfig = await options.presets.apply("docs", {}, options);
|
|
928
|
-
const docsEnabled = Object.keys(docsConfig).length > 0;
|
|
929
|
-
const result = [];
|
|
930
927
|
const framework = await options.presets.apply("framework");
|
|
931
928
|
const entryPreview = resolveSolidRendererEntry(
|
|
932
929
|
resolveSolidVersion(framework, options.configDir)
|
|
933
930
|
);
|
|
934
|
-
return
|
|
931
|
+
return input.concat([
|
|
935
932
|
fileURLToPath(import.meta.resolve(entryPreview)),
|
|
936
|
-
fileURLToPath(import.meta.resolve("storybook-solidjs-vite/renderer/
|
|
937
|
-
])
|
|
938
|
-
docsEnabled ? [
|
|
939
|
-
fileURLToPath(import.meta.resolve("storybook-solidjs-vite/renderer/docs"))
|
|
940
|
-
] : []
|
|
941
|
-
);
|
|
933
|
+
fileURLToPath(import.meta.resolve("storybook-solidjs-vite/renderer/docs"))
|
|
934
|
+
]);
|
|
942
935
|
};
|
|
943
936
|
|
|
944
937
|
export { enrichCsf as experimental_enrichCsf, generateComponentManifests as experimental_manifests, getArgTypesData as internal_getArgTypesData, previewAnnotations };
|