@storybook/angular-vite 0.0.0-canary-test
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 +5 -0
- package/build-schema.json +192 -0
- package/builders.json +14 -0
- package/dist/_browser-chunks/chunk-4WZEHS2U.js +47 -0
- package/dist/_browser-chunks/chunk-6U6AH4EH.js +723 -0
- package/dist/_browser-chunks/chunk-CIJX6X7B.js +246 -0
- package/dist/_browser-chunks/chunk-TARB3NLN.js +93 -0
- package/dist/_node-chunks/chunk-R2RNJVE7.js +90 -0
- package/dist/builders/build-storybook/index.js +123 -0
- package/dist/builders/start-storybook/index.js +155 -0
- package/dist/client/config.js +16 -0
- package/dist/client/docs/config.js +9 -0
- package/dist/client/index.js +19 -0
- package/dist/client/preview-prod.js +3 -0
- package/dist/index.d.ts +1343 -0
- package/dist/index.js +20 -0
- package/dist/node/index.d.ts +31 -0
- package/dist/node/index.js +19 -0
- package/dist/preset.js +235 -0
- package/package.json +116 -0
- package/preset.js +1 -0
- package/start-schema.json +227 -0
- package/template/cli/button.component.ts +50 -0
- package/template/cli/button.stories.ts +49 -0
- package/template/cli/header.component.ts +78 -0
- package/template/cli/header.stories.ts +33 -0
- package/template/cli/page.component.ts +84 -0
- package/template/cli/page.stories.ts +32 -0
- package/template/cli/user.ts +3 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__definePreview,
|
|
3
|
+
applicationConfig,
|
|
4
|
+
argsToTemplate,
|
|
5
|
+
componentWrapperDecorator,
|
|
6
|
+
moduleMetadata,
|
|
7
|
+
setProjectAnnotations
|
|
8
|
+
} from "./_browser-chunks/chunk-TARB3NLN.js";
|
|
9
|
+
import "./_browser-chunks/chunk-CIJX6X7B.js";
|
|
10
|
+
import "./_browser-chunks/chunk-4WZEHS2U.js";
|
|
11
|
+
import "./_browser-chunks/chunk-6U6AH4EH.js";
|
|
12
|
+
export {
|
|
13
|
+
__definePreview,
|
|
14
|
+
applicationConfig,
|
|
15
|
+
argsToTemplate,
|
|
16
|
+
componentWrapperDecorator,
|
|
17
|
+
__definePreview as definePreview,
|
|
18
|
+
moduleMetadata,
|
|
19
|
+
setProjectAnnotations
|
|
20
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { StorybookConfig as StorybookConfig$1, CompatibleString } from 'storybook/internal/types';
|
|
2
|
+
import { StorybookConfigVite, BuilderOptions } from '@storybook/builder-vite';
|
|
3
|
+
|
|
4
|
+
type FrameworkName = CompatibleString<'@storybook/angular-vite'>;
|
|
5
|
+
type BuilderName = CompatibleString<'@storybook/builder-vite'>;
|
|
6
|
+
type FrameworkOptions = {
|
|
7
|
+
builder?: BuilderOptions;
|
|
8
|
+
jit?: boolean;
|
|
9
|
+
liveReload?: boolean;
|
|
10
|
+
inlineStylesExtension?: string;
|
|
11
|
+
tsconfig?: string;
|
|
12
|
+
zoneless?: boolean;
|
|
13
|
+
};
|
|
14
|
+
type StorybookConfigFramework = {
|
|
15
|
+
framework: FrameworkName | {
|
|
16
|
+
name: FrameworkName;
|
|
17
|
+
options: FrameworkOptions;
|
|
18
|
+
};
|
|
19
|
+
core?: StorybookConfig$1['core'] & {
|
|
20
|
+
builder?: BuilderName | {
|
|
21
|
+
name: BuilderName;
|
|
22
|
+
options: BuilderOptions;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
/** The interface for Storybook configuration in `main.ts` files. */
|
|
27
|
+
type StorybookConfig = Omit<StorybookConfig$1, keyof StorybookConfigVite | keyof StorybookConfigFramework> & StorybookConfigVite & StorybookConfigFramework;
|
|
28
|
+
|
|
29
|
+
declare function defineMain(config: StorybookConfig): StorybookConfig;
|
|
30
|
+
|
|
31
|
+
export { type StorybookConfig, defineMain };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import CJS_COMPAT_NODE_URL_w331jboqnti from 'node:url';
|
|
2
|
+
import CJS_COMPAT_NODE_PATH_w331jboqnti from 'node:path';
|
|
3
|
+
import CJS_COMPAT_NODE_MODULE_w331jboqnti from "node:module";
|
|
4
|
+
|
|
5
|
+
var __filename = CJS_COMPAT_NODE_URL_w331jboqnti.fileURLToPath(import.meta.url);
|
|
6
|
+
var __dirname = CJS_COMPAT_NODE_PATH_w331jboqnti.dirname(__filename);
|
|
7
|
+
var require = CJS_COMPAT_NODE_MODULE_w331jboqnti.createRequire(import.meta.url);
|
|
8
|
+
|
|
9
|
+
// ------------------------------------------------------------
|
|
10
|
+
// end of CJS compatibility banner, injected by Storybook's esbuild configuration
|
|
11
|
+
// ------------------------------------------------------------
|
|
12
|
+
|
|
13
|
+
// src/node/index.ts
|
|
14
|
+
function defineMain(config) {
|
|
15
|
+
return config;
|
|
16
|
+
}
|
|
17
|
+
export {
|
|
18
|
+
defineMain
|
|
19
|
+
};
|
package/dist/preset.js
ADDED
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import CJS_COMPAT_NODE_URL_w331jboqnti from 'node:url';
|
|
2
|
+
import CJS_COMPAT_NODE_PATH_w331jboqnti from 'node:path';
|
|
3
|
+
import CJS_COMPAT_NODE_MODULE_w331jboqnti from "node:module";
|
|
4
|
+
|
|
5
|
+
var __filename = CJS_COMPAT_NODE_URL_w331jboqnti.fileURLToPath(import.meta.url);
|
|
6
|
+
var __dirname = CJS_COMPAT_NODE_PATH_w331jboqnti.dirname(__filename);
|
|
7
|
+
var require = CJS_COMPAT_NODE_MODULE_w331jboqnti.createRequire(import.meta.url);
|
|
8
|
+
|
|
9
|
+
// ------------------------------------------------------------
|
|
10
|
+
// end of CJS compatibility banner, injected by Storybook's esbuild configuration
|
|
11
|
+
// ------------------------------------------------------------
|
|
12
|
+
|
|
13
|
+
// src/preset.ts
|
|
14
|
+
import { findConfigFile } from "storybook/internal/common";
|
|
15
|
+
import {
|
|
16
|
+
babelParser,
|
|
17
|
+
extractMockCalls,
|
|
18
|
+
findMockRedirect,
|
|
19
|
+
getAutomockCode,
|
|
20
|
+
getRealPath
|
|
21
|
+
} from "storybook/internal/mocking-utils";
|
|
22
|
+
import { readFileSync } from "node:fs";
|
|
23
|
+
import { resolve } from "node:path";
|
|
24
|
+
import { fileURLToPath } from "node:url";
|
|
25
|
+
var addons = [], previewAnnotations = async (entries = [], options) => {
|
|
26
|
+
let config = fileURLToPath(import.meta.resolve("@storybook/angular-vite/client/config")), annotations = [...entries, config];
|
|
27
|
+
if (options.enableProdMode) {
|
|
28
|
+
let previewProdPath = fileURLToPath(
|
|
29
|
+
import.meta.resolve("@storybook/angular-vite/client/preview-prod")
|
|
30
|
+
);
|
|
31
|
+
annotations.unshift(previewProdPath);
|
|
32
|
+
}
|
|
33
|
+
let docsConfig = await options.presets.apply("docs", {}, options);
|
|
34
|
+
if (Object.keys(docsConfig).length > 0) {
|
|
35
|
+
let docsConfigPath = fileURLToPath(
|
|
36
|
+
import.meta.resolve("@storybook/angular-vite/client/docs/config")
|
|
37
|
+
);
|
|
38
|
+
annotations.push(docsConfigPath);
|
|
39
|
+
}
|
|
40
|
+
return annotations;
|
|
41
|
+
}, core = async (config, options) => {
|
|
42
|
+
let framework = await options.presets.apply("framework");
|
|
43
|
+
return {
|
|
44
|
+
...config,
|
|
45
|
+
builder: {
|
|
46
|
+
name: import.meta.resolve("@storybook/builder-vite"),
|
|
47
|
+
options: typeof framework == "string" ? {} : framework.options.builder || {}
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
function resolveZoneless(frameworkOptions, angularBuilderOptions) {
|
|
52
|
+
return frameworkOptions?.zoneless ?? angularBuilderOptions?.zoneless ?? !0;
|
|
53
|
+
}
|
|
54
|
+
var viteFinal = async (config, options) => {
|
|
55
|
+
config.plugins = (config.plugins ?? []).flat().filter((plugin) => !plugin.name.includes("analogjs")).map((plugin) => plugin?.name === "plugin-csf" && plugin.enforce === "pre" ? { ...plugin, enforce: void 0 } : plugin);
|
|
56
|
+
let { mergeConfig, normalizePath } = await import("vite"), { default: angular } = await import("@analogjs/vite-plugin-angular"), framework = await options.presets.apply("framework"), zoneless = resolveZoneless(framework.options, options?.angularBuilderOptions), angularPlugins = angular({
|
|
57
|
+
jit: typeof framework.options?.jit < "u" ? framework.options?.jit : !0,
|
|
58
|
+
liveReload: typeof framework.options?.liveReload < "u" ? framework.options?.liveReload : !1,
|
|
59
|
+
tsconfig: typeof framework.options?.tsconfig < "u" ? framework.options?.tsconfig : options?.tsConfig ?? "./.storybook/tsconfig.json",
|
|
60
|
+
inlineStylesExtension: typeof framework.options?.inlineStylesExtension < "u" ? framework.options?.inlineStylesExtension : "css"
|
|
61
|
+
}), pluginsToInject = (Array.isArray(angularPlugins) ? angularPlugins : [angularPlugins]).filter(Boolean).map((plugin) => plugin?.name === "@analogjs/vite-plugin-angular" && !plugin.enforce ? { ...plugin, enforce: "pre" } : plugin);
|
|
62
|
+
return mergeConfig(config, {
|
|
63
|
+
// Add dependencies to pre-optimization
|
|
64
|
+
optimizeDeps: {
|
|
65
|
+
include: [
|
|
66
|
+
"@storybook/angular-vite/client",
|
|
67
|
+
"@storybook/angular-vite",
|
|
68
|
+
"@angular/compiler",
|
|
69
|
+
"@angular/platform-browser",
|
|
70
|
+
"@angular/platform-browser/animations",
|
|
71
|
+
"@angular/common/http",
|
|
72
|
+
"tslib",
|
|
73
|
+
...zoneless ? [] : ["zone.js"]
|
|
74
|
+
]
|
|
75
|
+
},
|
|
76
|
+
build: {
|
|
77
|
+
rolldownOptions: {
|
|
78
|
+
output: {
|
|
79
|
+
// Preserve original class/function names through the production
|
|
80
|
+
// bundle. Compodoc-derived argTypes are looked up by class name at
|
|
81
|
+
// runtime (`findComponentByName(component.name, …)`), and the
|
|
82
|
+
// angular-vite `cleanArgsDecorator` strips any arg whose argType
|
|
83
|
+
// lacks an `action` or `control` flag. If the bundler renames
|
|
84
|
+
// `ButtonComponent` → `f` the lookup fails, no Output argTypes
|
|
85
|
+
// are emitted, and `onClick`/other handlers get stripped from args
|
|
86
|
+
// before the renderer sees them — manifesting as missing action
|
|
87
|
+
// bindings and unbound @Input() values (e.g. core-argmapping).
|
|
88
|
+
// Rolldown's oxc minifier renames by default, so the production
|
|
89
|
+
// bundle needs this explicit opt-in.
|
|
90
|
+
keepNames: !0,
|
|
91
|
+
// Rolldown's lazy-init wrapper splits @angular/platform-browser and
|
|
92
|
+
// @angular/common/http into separate chunks. The platform-browser
|
|
93
|
+
// chunk extends a class imported from the http xhr chunk but the
|
|
94
|
+
// generated wrapper never invokes the dependent init thunk, leaving
|
|
95
|
+
// the imported class undefined at evaluation time. Merging them keeps
|
|
96
|
+
// the inheritance contiguous in a single chunk.
|
|
97
|
+
manualChunks(id) {
|
|
98
|
+
if (id.includes("@angular/platform-browser") || id.includes("@angular/common"))
|
|
99
|
+
return "angular-platform";
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
plugins: [
|
|
105
|
+
...pluginsToInject,
|
|
106
|
+
angularViteRedirectReapplyPlugin(options),
|
|
107
|
+
angularOptionsPlugin(options, { normalizePath, zoneless }),
|
|
108
|
+
storybookOxcPlugin()
|
|
109
|
+
],
|
|
110
|
+
define: {
|
|
111
|
+
STORYBOOK_ANGULAR_OPTIONS: JSON.stringify({
|
|
112
|
+
zoneless: !!zoneless
|
|
113
|
+
})
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
};
|
|
117
|
+
function angularOptionsPlugin(options, { normalizePath, zoneless }) {
|
|
118
|
+
let resolvedConfig;
|
|
119
|
+
return {
|
|
120
|
+
name: "storybook-angular-vite-options-plugin",
|
|
121
|
+
config(userConfig) {
|
|
122
|
+
resolvedConfig = userConfig;
|
|
123
|
+
let loadPaths = options?.angularBuilderOptions?.stylePreprocessorOptions?.loadPaths, sassOptions = options?.angularBuilderOptions?.stylePreprocessorOptions?.sass;
|
|
124
|
+
if (Array.isArray(loadPaths)) {
|
|
125
|
+
let workspaceRoot = options.angularBuilderContext?.workspaceRoot ?? userConfig?.root ?? process.cwd();
|
|
126
|
+
return {
|
|
127
|
+
css: {
|
|
128
|
+
preprocessorOptions: {
|
|
129
|
+
scss: {
|
|
130
|
+
...sassOptions,
|
|
131
|
+
loadPaths: loadPaths.map((loadPath) => `${resolve(workspaceRoot, loadPath)}`)
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
async transform(code, id) {
|
|
139
|
+
if (normalizePath(id).endsWith(normalizePath(`${options.configDir}/preview.ts`))) {
|
|
140
|
+
let imports = [], styles = options?.angularBuilderOptions?.styles;
|
|
141
|
+
Array.isArray(styles) && styles.forEach((style) => {
|
|
142
|
+
imports.push(style);
|
|
143
|
+
}), zoneless || imports.push("zone.js");
|
|
144
|
+
let projectRoot = resolvedConfig?.root ?? process.cwd();
|
|
145
|
+
return {
|
|
146
|
+
code: `
|
|
147
|
+
${imports.map((extraImport) => extraImport.startsWith(".") || extraImport.startsWith("src") ? `import '${normalizePath(resolve(projectRoot, extraImport))}';` : `import '${extraImport}';`).join(`
|
|
148
|
+
`)}
|
|
149
|
+
${code}
|
|
150
|
+
`
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
function angularViteRedirectReapplyPlugin(options) {
|
|
157
|
+
let viteConfig = {}, redirects = [], automocks = [];
|
|
158
|
+
return {
|
|
159
|
+
name: "storybook-angular-vite-redirect-reapply",
|
|
160
|
+
configResolved(c) {
|
|
161
|
+
viteConfig = c;
|
|
162
|
+
},
|
|
163
|
+
buildStart() {
|
|
164
|
+
if (!options?.configDir)
|
|
165
|
+
return;
|
|
166
|
+
let previewConfigPath = findConfigFile("preview", options.configDir);
|
|
167
|
+
if (previewConfigPath)
|
|
168
|
+
try {
|
|
169
|
+
let calls = extractMockCalls(
|
|
170
|
+
{ previewConfigPath, configDir: options.configDir },
|
|
171
|
+
babelParser,
|
|
172
|
+
viteConfig.root ?? process.cwd(),
|
|
173
|
+
findMockRedirect
|
|
174
|
+
);
|
|
175
|
+
redirects = calls.filter(
|
|
176
|
+
(call) => !!call.redirectPath
|
|
177
|
+
).map((call) => ({
|
|
178
|
+
absolutePath: call.absolutePath,
|
|
179
|
+
redirectPath: call.redirectPath
|
|
180
|
+
})), automocks = calls.filter((call) => !call.redirectPath && !!call.absolutePath).map((call) => ({ absolutePath: call.absolutePath, spy: !!call.spy }));
|
|
181
|
+
} catch {
|
|
182
|
+
redirects = [], automocks = [];
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
async transform(code, id) {
|
|
186
|
+
if (redirects.length === 0 && automocks.length === 0)
|
|
187
|
+
return null;
|
|
188
|
+
let preserveSymlinks = !!viteConfig.resolve?.preserveSymlinks, idNorm = getRealPath(id, preserveSymlinks);
|
|
189
|
+
for (let r of redirects)
|
|
190
|
+
if (getRealPath(r.absolutePath, preserveSymlinks) === idNorm)
|
|
191
|
+
return this.addWatchFile(r.redirectPath), {
|
|
192
|
+
code: readFileSync(r.redirectPath, "utf-8"),
|
|
193
|
+
map: { mappings: "" }
|
|
194
|
+
};
|
|
195
|
+
for (let a of automocks)
|
|
196
|
+
if (getRealPath(a.absolutePath, preserveSymlinks) === idNorm) {
|
|
197
|
+
if (code.includes("__vitest_current_es_module__"))
|
|
198
|
+
return null;
|
|
199
|
+
try {
|
|
200
|
+
let automocked = getAutomockCode(code, a.spy, babelParser);
|
|
201
|
+
return {
|
|
202
|
+
code: automocked.toString(),
|
|
203
|
+
map: automocked.generateMap()
|
|
204
|
+
};
|
|
205
|
+
} catch {
|
|
206
|
+
return null;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return null;
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
function storybookOxcPlugin() {
|
|
214
|
+
return {
|
|
215
|
+
name: "storybook-angular-vite-oxc-config",
|
|
216
|
+
config() {
|
|
217
|
+
return {
|
|
218
|
+
oxc: {
|
|
219
|
+
jsx: { runtime: "automatic" }
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
var typescript = async (config) => ({
|
|
226
|
+
...config,
|
|
227
|
+
skipCompiler: !0
|
|
228
|
+
});
|
|
229
|
+
export {
|
|
230
|
+
addons,
|
|
231
|
+
core,
|
|
232
|
+
previewAnnotations,
|
|
233
|
+
typescript,
|
|
234
|
+
viteFinal
|
|
235
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@storybook/angular-vite",
|
|
3
|
+
"version": "0.0.0-canary-test",
|
|
4
|
+
"description": "Storybook for Angular: Develop, document, and test UI components in isolation",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"storybook",
|
|
7
|
+
"storybook-framework",
|
|
8
|
+
"angular",
|
|
9
|
+
"component",
|
|
10
|
+
"components"
|
|
11
|
+
],
|
|
12
|
+
"homepage": "https://github.com/storybookjs/storybook/tree/next/code/frameworks/angular-vite",
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/storybookjs/storybook/issues"
|
|
15
|
+
},
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "https://github.com/storybookjs/storybook.git",
|
|
19
|
+
"directory": "code/frameworks/angular-vite"
|
|
20
|
+
},
|
|
21
|
+
"funding": {
|
|
22
|
+
"type": "opencollective",
|
|
23
|
+
"url": "https://opencollective.com/storybook"
|
|
24
|
+
},
|
|
25
|
+
"license": "MIT",
|
|
26
|
+
"type": "module",
|
|
27
|
+
"exports": {
|
|
28
|
+
".": {
|
|
29
|
+
"types": "./dist/index.d.ts",
|
|
30
|
+
"code": "./src/index.ts",
|
|
31
|
+
"default": "./dist/index.js"
|
|
32
|
+
},
|
|
33
|
+
"./builders/build-storybook": "./dist/builders/build-storybook/index.js",
|
|
34
|
+
"./builders/start-storybook": "./dist/builders/start-storybook/index.js",
|
|
35
|
+
"./client": "./dist/client/index.js",
|
|
36
|
+
"./client/config": "./dist/client/config.js",
|
|
37
|
+
"./client/docs/config": "./dist/client/docs/config.js",
|
|
38
|
+
"./client/preview-prod": "./dist/client/preview-prod.js",
|
|
39
|
+
"./node": {
|
|
40
|
+
"types": "./dist/node/index.d.ts",
|
|
41
|
+
"code": "./src/node/index.ts",
|
|
42
|
+
"default": "./dist/node/index.js"
|
|
43
|
+
},
|
|
44
|
+
"./package.json": "./package.json",
|
|
45
|
+
"./preset": "./dist/preset.js"
|
|
46
|
+
},
|
|
47
|
+
"files": [
|
|
48
|
+
"builders.json",
|
|
49
|
+
"build-schema.json",
|
|
50
|
+
"start-schema.json",
|
|
51
|
+
"dist/**/*",
|
|
52
|
+
"template/cli/**/*",
|
|
53
|
+
"README.md",
|
|
54
|
+
"*.js",
|
|
55
|
+
"*.mjs",
|
|
56
|
+
"*.d.ts",
|
|
57
|
+
"!src/**/*"
|
|
58
|
+
],
|
|
59
|
+
"dependencies": {
|
|
60
|
+
"@storybook/builder-vite": "workspace:*",
|
|
61
|
+
"@storybook/global": "^5.0.0",
|
|
62
|
+
"telejson": "8.0.0",
|
|
63
|
+
"ts-dedent": "^2.0.0",
|
|
64
|
+
"vite": ">=8.0.0"
|
|
65
|
+
},
|
|
66
|
+
"devDependencies": {
|
|
67
|
+
"@analogjs/vite-plugin-angular": "^2.5.2",
|
|
68
|
+
"@angular-devkit/architect": "^0.2102.12",
|
|
69
|
+
"@angular-devkit/build-angular": "^21.2.12",
|
|
70
|
+
"@angular-devkit/core": "^21.2.12",
|
|
71
|
+
"@angular/animations": "^21.2.14",
|
|
72
|
+
"@angular/common": "^21.2.14",
|
|
73
|
+
"@angular/compiler": "^21.2.14",
|
|
74
|
+
"@angular/compiler-cli": "^21.2.14",
|
|
75
|
+
"@angular/core": "^21.2.14",
|
|
76
|
+
"@angular/forms": "^21.2.14",
|
|
77
|
+
"@angular/platform-browser": "^21.2.14",
|
|
78
|
+
"@angular/platform-browser-dynamic": "^21.2.14",
|
|
79
|
+
"@types/node": "^22.19.1",
|
|
80
|
+
"empathic": "^2.0.0",
|
|
81
|
+
"rimraf": "^6.0.1",
|
|
82
|
+
"typescript": "^5.9.3",
|
|
83
|
+
"zone.js": "^0.16.2"
|
|
84
|
+
},
|
|
85
|
+
"peerDependencies": {
|
|
86
|
+
"@analogjs/vite-plugin-angular": ">=2.0.0",
|
|
87
|
+
"@angular-devkit/architect": ">=0.2100.0 < 0.2200.0",
|
|
88
|
+
"@angular-devkit/core": ">=21.0.0 < 22.0.0",
|
|
89
|
+
"@angular/animations": ">=21.0.0 < 22.0.0",
|
|
90
|
+
"@angular/build": ">=21.0.0 < 22.0.0",
|
|
91
|
+
"@angular/cli": ">=21.0.0 < 22.0.0",
|
|
92
|
+
"@angular/common": ">=21.0.0 < 22.0.0",
|
|
93
|
+
"@angular/compiler": ">=21.0.0 < 22.0.0",
|
|
94
|
+
"@angular/compiler-cli": ">=21.0.0 < 22.0.0",
|
|
95
|
+
"@angular/core": ">=21.0.0 < 22.0.0",
|
|
96
|
+
"@angular/platform-browser": ">=21.0.0 < 22.0.0",
|
|
97
|
+
"@angular/platform-browser-dynamic": ">=21.0.0 < 22.0.0",
|
|
98
|
+
"rxjs": "^7.4.0",
|
|
99
|
+
"storybook": "workspace:^",
|
|
100
|
+
"typescript": "^5.9.0",
|
|
101
|
+
"vite": ">=8.0.0",
|
|
102
|
+
"zone.js": ">=0.16.0"
|
|
103
|
+
},
|
|
104
|
+
"peerDependenciesMeta": {
|
|
105
|
+
"@angular/cli": {
|
|
106
|
+
"optional": true
|
|
107
|
+
},
|
|
108
|
+
"zone.js": {
|
|
109
|
+
"optional": true
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"publishConfig": {
|
|
113
|
+
"access": "public"
|
|
114
|
+
},
|
|
115
|
+
"builders": "builders.json"
|
|
116
|
+
}
|
package/preset.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './dist/preset.js';
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"title": "Start Storybook",
|
|
4
|
+
"description": "Serve up storybook in development mode.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"browserTarget": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "Build target to be served in project-name:builder:config format. Should generally target on the builder: '@angular-devkit/build-angular:browser'. Useful for Storybook to use options (styles, assets, ...).",
|
|
10
|
+
"pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$"
|
|
11
|
+
},
|
|
12
|
+
"tsConfig": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "The full path for the TypeScript configuration file, relative to the current workspace."
|
|
15
|
+
},
|
|
16
|
+
"preserveSymlinks": {
|
|
17
|
+
"type": "boolean",
|
|
18
|
+
"description": "Do not use the real path when resolving modules. If true, symlinks are resolved to their real path, if false, symlinks are resolved to their symlinked path.",
|
|
19
|
+
"default": false
|
|
20
|
+
},
|
|
21
|
+
"port": {
|
|
22
|
+
"type": "number",
|
|
23
|
+
"description": "Port to listen on.",
|
|
24
|
+
"default": 9009
|
|
25
|
+
},
|
|
26
|
+
"host": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"description": "Host to listen on.",
|
|
29
|
+
"default": "localhost"
|
|
30
|
+
},
|
|
31
|
+
"configDir": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"description": "Directory where to load Storybook configurations from.",
|
|
34
|
+
"default": ".storybook"
|
|
35
|
+
},
|
|
36
|
+
"https": {
|
|
37
|
+
"type": "boolean",
|
|
38
|
+
"description": "Serve Storybook over HTTPS. Note: You must provide your own certificate information.",
|
|
39
|
+
"default": false
|
|
40
|
+
},
|
|
41
|
+
"sslCa": {
|
|
42
|
+
"type": "string",
|
|
43
|
+
"description": "Provide an SSL certificate authority. (Optional with --https, required if using a self-signed certificate)."
|
|
44
|
+
},
|
|
45
|
+
"sslCert": {
|
|
46
|
+
"type": "string",
|
|
47
|
+
"description": "Provide an SSL certificate. (Required with --https)."
|
|
48
|
+
},
|
|
49
|
+
"sslKey": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"description": "SSL key to use for serving HTTPS."
|
|
52
|
+
},
|
|
53
|
+
"smokeTest": {
|
|
54
|
+
"type": "boolean",
|
|
55
|
+
"description": "Exit after successful start.",
|
|
56
|
+
"default": false
|
|
57
|
+
},
|
|
58
|
+
"ci": {
|
|
59
|
+
"type": "boolean",
|
|
60
|
+
"description": "CI mode (skip interactive prompts, don't open browser).",
|
|
61
|
+
"default": false
|
|
62
|
+
},
|
|
63
|
+
"open": {
|
|
64
|
+
"type": "boolean",
|
|
65
|
+
"description": "Whether to open Storybook automatically in the browser.",
|
|
66
|
+
"default": true
|
|
67
|
+
},
|
|
68
|
+
"quiet": {
|
|
69
|
+
"type": "boolean",
|
|
70
|
+
"description": "Suppress verbose build output.",
|
|
71
|
+
"default": false
|
|
72
|
+
},
|
|
73
|
+
"enableProdMode": {
|
|
74
|
+
"type": "boolean",
|
|
75
|
+
"description": "Disable Angular's development mode, which turns off assertions and other checks within the framework.",
|
|
76
|
+
"default": false
|
|
77
|
+
},
|
|
78
|
+
"docs": {
|
|
79
|
+
"type": "boolean",
|
|
80
|
+
"description": "Starts Storybook in documentation mode. Learn more about it : https://storybook.js.org/docs/writing-docs/build-documentation#preview-storybooks-documentation.",
|
|
81
|
+
"default": false
|
|
82
|
+
},
|
|
83
|
+
"compodoc": {
|
|
84
|
+
"type": "boolean",
|
|
85
|
+
"description": "Execute compodoc before.",
|
|
86
|
+
"default": true
|
|
87
|
+
},
|
|
88
|
+
"compodocArgs": {
|
|
89
|
+
"type": "array",
|
|
90
|
+
"description": "Compodoc options : https://compodoc.app/guides/options.html. Options `-p` with tsconfig path and `-d` with workspace root is always given.",
|
|
91
|
+
"default": ["-e", "json"],
|
|
92
|
+
"items": {
|
|
93
|
+
"type": "string"
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"styles": {
|
|
97
|
+
"type": "array",
|
|
98
|
+
"description": "Global styles to be included in the build.",
|
|
99
|
+
"items": {
|
|
100
|
+
"$ref": "#/definitions/styleElement"
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"stylePreprocessorOptions": {
|
|
104
|
+
"description": "Options to pass to style preprocessors.",
|
|
105
|
+
"type": "object",
|
|
106
|
+
"properties": {
|
|
107
|
+
"includePaths": {
|
|
108
|
+
"description": "Paths to include. Paths will be resolved to workspace root.",
|
|
109
|
+
"type": "array",
|
|
110
|
+
"items": {
|
|
111
|
+
"type": "string"
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
"additionalProperties": false
|
|
116
|
+
},
|
|
117
|
+
"assets": {
|
|
118
|
+
"type": "array",
|
|
119
|
+
"description": "List of static application assets.",
|
|
120
|
+
"default": [],
|
|
121
|
+
"items": {
|
|
122
|
+
"$ref": "#/definitions/assetPattern"
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
"initialPath": {
|
|
126
|
+
"type": "string",
|
|
127
|
+
"description": "URL path to be appended when visiting Storybook for the first time"
|
|
128
|
+
},
|
|
129
|
+
"statsJson": {
|
|
130
|
+
"type": ["boolean", "string"],
|
|
131
|
+
"description": "Write stats JSON to disk",
|
|
132
|
+
"default": false
|
|
133
|
+
},
|
|
134
|
+
"previewUrl": {
|
|
135
|
+
"type": "string",
|
|
136
|
+
"description": "Disables the default storybook preview and lets you use your own"
|
|
137
|
+
},
|
|
138
|
+
"loglevel": {
|
|
139
|
+
"type": "string",
|
|
140
|
+
"description": "Controls level of logging during build. Can be one of: [trace, debug, info (default), warn, error, silent].",
|
|
141
|
+
"pattern": "(trace|debug|info|warn|error|silent)"
|
|
142
|
+
},
|
|
143
|
+
"logfile": {
|
|
144
|
+
"type": "string",
|
|
145
|
+
"description": "If provided, the log output will be written to the specified file path."
|
|
146
|
+
},
|
|
147
|
+
"sourceMap": {
|
|
148
|
+
"type": ["boolean", "object"],
|
|
149
|
+
"description": "Configure sourcemaps. See: https://angular.io/guide/workspace-config#source-map-configuration",
|
|
150
|
+
"default": false
|
|
151
|
+
},
|
|
152
|
+
"experimentalZoneless": {
|
|
153
|
+
"type": "boolean",
|
|
154
|
+
"description": "Experimental: Use zoneless change detection."
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
"additionalProperties": false,
|
|
158
|
+
"definitions": {
|
|
159
|
+
"assetPattern": {
|
|
160
|
+
"oneOf": [
|
|
161
|
+
{
|
|
162
|
+
"type": "object",
|
|
163
|
+
"properties": {
|
|
164
|
+
"followSymlinks": {
|
|
165
|
+
"type": "boolean",
|
|
166
|
+
"default": false,
|
|
167
|
+
"description": "Allow glob patterns to follow symlink directories. This allows subdirectories of the symlink to be searched."
|
|
168
|
+
},
|
|
169
|
+
"glob": {
|
|
170
|
+
"type": "string",
|
|
171
|
+
"description": "The pattern to match."
|
|
172
|
+
},
|
|
173
|
+
"input": {
|
|
174
|
+
"type": "string",
|
|
175
|
+
"description": "The input directory path in which to apply 'glob'. Defaults to the project root."
|
|
176
|
+
},
|
|
177
|
+
"ignore": {
|
|
178
|
+
"description": "An array of globs to ignore.",
|
|
179
|
+
"type": "array",
|
|
180
|
+
"items": {
|
|
181
|
+
"type": "string"
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
"output": {
|
|
185
|
+
"type": "string",
|
|
186
|
+
"description": "Absolute path within the output."
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
"additionalProperties": false,
|
|
190
|
+
"required": ["glob", "input", "output"]
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"type": "string"
|
|
194
|
+
}
|
|
195
|
+
]
|
|
196
|
+
},
|
|
197
|
+
"styleElement": {
|
|
198
|
+
"oneOf": [
|
|
199
|
+
{
|
|
200
|
+
"type": "object",
|
|
201
|
+
"properties": {
|
|
202
|
+
"input": {
|
|
203
|
+
"type": "string",
|
|
204
|
+
"description": "The file to include."
|
|
205
|
+
},
|
|
206
|
+
"bundleName": {
|
|
207
|
+
"type": "string",
|
|
208
|
+
"pattern": "^[\\w\\-.]*$",
|
|
209
|
+
"description": "The bundle name for this extra entry point."
|
|
210
|
+
},
|
|
211
|
+
"inject": {
|
|
212
|
+
"type": "boolean",
|
|
213
|
+
"description": "If the bundle will be referenced in the HTML file.",
|
|
214
|
+
"default": true
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
"additionalProperties": false,
|
|
218
|
+
"required": ["input"]
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"type": "string",
|
|
222
|
+
"description": "The file to include."
|
|
223
|
+
}
|
|
224
|
+
]
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|