@anansi/storybook 0.1.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/README.md +42 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/preset.d.ts +8 -0
- package/dist/preset.d.ts.map +1 -0
- package/dist/preset.js +63 -0
- package/dist/preview.d.ts +3 -0
- package/dist/preview.d.ts.map +1 -0
- package/dist/preview.js +5 -0
- package/dist/types.d.ts +30 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/package.json +77 -0
- package/preset.js +1 -0
- package/preview.js +1 -0
- package/src/index.ts +1 -0
- package/src/preset.ts +94 -0
- package/src/preview.tsx +11 -0
- package/src/types.ts +47 -0
package/README.md
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Storybook for HTML
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Storybook for HTML is a UI development environment for your plain HTML snippets.
|
|
6
|
+
With it, you can visualize different states of your UI components and develop them interactively.
|
|
7
|
+
|
|
8
|
+

|
|
9
|
+
|
|
10
|
+
Storybook runs outside of your app.
|
|
11
|
+
So you can develop UI components in isolation without worrying about app specific dependencies and requirements.
|
|
12
|
+
|
|
13
|
+
## Getting Started
|
|
14
|
+
|
|
15
|
+
If you already have an existing Anansi project
|
|
16
|
+
|
|
17
|
+
```sh
|
|
18
|
+
cd my-app
|
|
19
|
+
anansi add storybook
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
For new projects
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npm install -g @anansi/cli
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Then generate your new project:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
anansi hatch my-app-name
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Typescript
|
|
35
|
+
|
|
36
|
+
`npx sb init` will select `.ts` starter stories if your `package.json` has typescript as a dependency. If starting a new project,
|
|
37
|
+
run `npm init` and `npm install typescript --save-dev` before initializing storybook to get the typescript starter stories.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
Storybook also comes with a lot of [addons](https://storybook.js.org/addons) and a great API to customize as you wish.
|
|
42
|
+
You can also build a [static version](https://storybook.js.org/docs/html/sharing/publish-storybook) of your Storybook and deploy it anywhere you want.
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './types.js';
|
|
2
|
+
export {};
|
|
3
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdHlwZXMuanMnO1xuIl0sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVk7QUFBQyJ9
|
package/dist/preset.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PresetProperty, Options } from '@storybook/types';
|
|
2
|
+
import type { StorybookConfig } from './types.js';
|
|
3
|
+
export declare const addons: PresetProperty<'addons', StorybookConfig>;
|
|
4
|
+
export declare const frameworkOptions: (_: never, options: Options) => Promise<StorybookConfig['framework']>;
|
|
5
|
+
export declare const core: PresetProperty<'core', StorybookConfig>;
|
|
6
|
+
export declare const previewAnnotations: StorybookConfig['previewAnnotations'];
|
|
7
|
+
export declare const webpackFinal: StorybookConfig['webpackFinal'];
|
|
8
|
+
//# sourceMappingURL=preset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../src/preset.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGhE,OAAO,KAAK,EAAoB,eAAe,EAAE,MAAM,YAAY,CAAC;AAKpE,eAAO,MAAM,MAAM,EAAE,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAM,CAAC;AAQpE,eAAO,MAAM,gBAAgB,MACxB,KAAK,WACC,OAAO,KACf,QAAQ,eAAe,CAAC,WAAW,CAAC,CAyBtC,CAAC;AAEF,eAAO,MAAM,IAAI,EAAE,cAAc,CAAC,MAAM,EAAE,eAAe,CAmBxD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,eAAe,CAAC,oBAAoB,CAExB,CAAC;AAM9C,eAAO,MAAM,YAAY,EAAE,eAAe,CAAC,cAAc,CAgBxD,CAAC"}
|
package/dist/preset.js
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
2
|
+
import { makeStorybookConfigGenerator } from '@anansi/webpack-config';
|
|
3
|
+
import { dirname, join } from 'path';
|
|
4
|
+
const wrapForPnP = input => dirname(require.resolve(join(input, 'package.json')));
|
|
5
|
+
export const addons = [];
|
|
6
|
+
const defaultFrameworkOptions = {
|
|
7
|
+
legacyRootApi: false,
|
|
8
|
+
fastRefresh: true,
|
|
9
|
+
strictMode: true
|
|
10
|
+
};
|
|
11
|
+
export const frameworkOptions = async (_, options) => {
|
|
12
|
+
const config = await options.presets.apply('framework');
|
|
13
|
+
if (typeof config === 'string') {
|
|
14
|
+
return {
|
|
15
|
+
name: config,
|
|
16
|
+
options: defaultFrameworkOptions
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
if (typeof config === 'undefined') {
|
|
20
|
+
return {
|
|
21
|
+
name: wrapForPnP('@anansi/storybook'),
|
|
22
|
+
options: defaultFrameworkOptions
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
name: config.name,
|
|
27
|
+
options: {
|
|
28
|
+
...defaultFrameworkOptions,
|
|
29
|
+
...config.options
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
export const core = async (config, options) => {
|
|
34
|
+
const framework = await options.presets.apply('framework');
|
|
35
|
+
return {
|
|
36
|
+
...config,
|
|
37
|
+
builder: {
|
|
38
|
+
name: wrapForPnP('@storybook/builder-webpack5'),
|
|
39
|
+
options: typeof framework === 'string' ? {} : framework.options.builder || {}
|
|
40
|
+
},
|
|
41
|
+
renderer: wrapForPnP('@storybook/react')
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
export const previewAnnotations = (entry = []) => [...entry, require.resolve('./preview')];
|
|
45
|
+
|
|
46
|
+
/*export const babel: StorybookConfig['babel'] = (config, options) => ({
|
|
47
|
+
presets: [['@anansi/babel-preset', { typing: 'typescript', loose: true }]],
|
|
48
|
+
});*/
|
|
49
|
+
|
|
50
|
+
export const webpackFinal = async (storybookConfig, options) => {
|
|
51
|
+
var _storybookConfig$reso;
|
|
52
|
+
storybookConfig.resolve = storybookConfig.resolve || {};
|
|
53
|
+
storybookConfig.resolve.alias = {
|
|
54
|
+
...((_storybookConfig$reso = storybookConfig.resolve) == null ? void 0 : _storybookConfig$reso.alias),
|
|
55
|
+
'@storybook/react': wrapForPnP('@storybook/react')
|
|
56
|
+
};
|
|
57
|
+
const projectConfig = require(join(options.configDir, '../webpack.config'));
|
|
58
|
+
return makeStorybookConfigGenerator(projectConfig)({
|
|
59
|
+
config: storybookConfig,
|
|
60
|
+
mode: process.env.NODE_ENV
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtYWtlU3Rvcnlib29rQ29uZmlnR2VuZXJhdG9yIiwiZGlybmFtZSIsImpvaW4iLCJ3cmFwRm9yUG5QIiwiaW5wdXQiLCJyZXF1aXJlIiwicmVzb2x2ZSIsImFkZG9ucyIsImRlZmF1bHRGcmFtZXdvcmtPcHRpb25zIiwibGVnYWN5Um9vdEFwaSIsImZhc3RSZWZyZXNoIiwic3RyaWN0TW9kZSIsImZyYW1ld29ya09wdGlvbnMiLCJfIiwib3B0aW9ucyIsImNvbmZpZyIsInByZXNldHMiLCJhcHBseSIsIm5hbWUiLCJjb3JlIiwiZnJhbWV3b3JrIiwiYnVpbGRlciIsInJlbmRlcmVyIiwicHJldmlld0Fubm90YXRpb25zIiwiZW50cnkiLCJ3ZWJwYWNrRmluYWwiLCJzdG9yeWJvb2tDb25maWciLCJfc3Rvcnlib29rQ29uZmlnJHJlc28iLCJhbGlhcyIsInByb2plY3RDb25maWciLCJjb25maWdEaXIiLCJtb2RlIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIl0sInNvdXJjZXMiOlsiLi4vc3JjL3ByZXNldC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzICovXG5pbXBvcnQgeyBtYWtlU3Rvcnlib29rQ29uZmlnR2VuZXJhdG9yIH0gZnJvbSAnQGFuYW5zaS93ZWJwYWNrLWNvbmZpZyc7XG5pbXBvcnQgdHlwZSB7IFByZXNldFByb3BlcnR5LCBPcHRpb25zIH0gZnJvbSAnQHN0b3J5Ym9vay90eXBlcyc7XG5pbXBvcnQgeyBkaXJuYW1lLCBqb2luIH0gZnJvbSAncGF0aCc7XG5cbmltcG9ydCB0eXBlIHsgRnJhbWV3b3JrT3B0aW9ucywgU3Rvcnlib29rQ29uZmlnIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmNvbnN0IHdyYXBGb3JQblAgPSAoaW5wdXQ6IHN0cmluZykgPT5cbiAgZGlybmFtZShyZXF1aXJlLnJlc29sdmUoam9pbihpbnB1dCwgJ3BhY2thZ2UuanNvbicpKSk7XG5cbmV4cG9ydCBjb25zdCBhZGRvbnM6IFByZXNldFByb3BlcnR5PCdhZGRvbnMnLCBTdG9yeWJvb2tDb25maWc+ID0gW107XG5cbmNvbnN0IGRlZmF1bHRGcmFtZXdvcmtPcHRpb25zOiBGcmFtZXdvcmtPcHRpb25zID0ge1xuICBsZWdhY3lSb290QXBpOiBmYWxzZSxcbiAgZmFzdFJlZnJlc2g6IHRydWUsXG4gIHN0cmljdE1vZGU6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgZnJhbWV3b3JrT3B0aW9ucyA9IGFzeW5jIChcbiAgXzogbmV2ZXIsXG4gIG9wdGlvbnM6IE9wdGlvbnMsXG4pOiBQcm9taXNlPFN0b3J5Ym9va0NvbmZpZ1snZnJhbWV3b3JrJ10+ID0+IHtcbiAgY29uc3QgY29uZmlnID0gYXdhaXQgb3B0aW9ucy5wcmVzZXRzLmFwcGx5PFN0b3J5Ym9va0NvbmZpZ1snZnJhbWV3b3JrJ10+KFxuICAgICdmcmFtZXdvcmsnLFxuICApO1xuXG4gIGlmICh0eXBlb2YgY29uZmlnID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiBjb25maWcsXG4gICAgICBvcHRpb25zOiBkZWZhdWx0RnJhbWV3b3JrT3B0aW9ucyxcbiAgICB9O1xuICB9XG4gIGlmICh0eXBlb2YgY29uZmlnID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiB7XG4gICAgICBuYW1lOiB3cmFwRm9yUG5QKCdAYW5hbnNpL3N0b3J5Ym9vaycpIGFzICdAYW5hbnNpL3N0b3J5Ym9vaycsXG4gICAgICBvcHRpb25zOiBkZWZhdWx0RnJhbWV3b3JrT3B0aW9ucyxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBjb25maWcubmFtZSxcbiAgICBvcHRpb25zOiB7XG4gICAgICAuLi5kZWZhdWx0RnJhbWV3b3JrT3B0aW9ucyxcbiAgICAgIC4uLmNvbmZpZy5vcHRpb25zLFxuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgY29yZTogUHJlc2V0UHJvcGVydHk8J2NvcmUnLCBTdG9yeWJvb2tDb25maWc+ID0gYXN5bmMgKFxuICBjb25maWcsXG4gIG9wdGlvbnMsXG4pID0+IHtcbiAgY29uc3QgZnJhbWV3b3JrID0gYXdhaXQgb3B0aW9ucy5wcmVzZXRzLmFwcGx5PFN0b3J5Ym9va0NvbmZpZ1snZnJhbWV3b3JrJ10+KFxuICAgICdmcmFtZXdvcmsnLFxuICApO1xuXG4gIHJldHVybiB7XG4gICAgLi4uY29uZmlnLFxuICAgIGJ1aWxkZXI6IHtcbiAgICAgIG5hbWU6IHdyYXBGb3JQblAoXG4gICAgICAgICdAc3Rvcnlib29rL2J1aWxkZXItd2VicGFjazUnLFxuICAgICAgKSBhcyAnQHN0b3J5Ym9vay9idWlsZGVyLXdlYnBhY2s1JyxcbiAgICAgIG9wdGlvbnM6XG4gICAgICAgIHR5cGVvZiBmcmFtZXdvcmsgPT09ICdzdHJpbmcnID8ge30gOiBmcmFtZXdvcmsub3B0aW9ucy5idWlsZGVyIHx8IHt9LFxuICAgIH0sXG4gICAgcmVuZGVyZXI6IHdyYXBGb3JQblAoJ0BzdG9yeWJvb2svcmVhY3QnKSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBwcmV2aWV3QW5ub3RhdGlvbnM6IFN0b3J5Ym9va0NvbmZpZ1sncHJldmlld0Fubm90YXRpb25zJ10gPSAoXG4gIGVudHJ5ID0gW10sXG4pID0+IFsuLi5lbnRyeSwgcmVxdWlyZS5yZXNvbHZlKCcuL3ByZXZpZXcnKV07XG5cbi8qZXhwb3J0IGNvbnN0IGJhYmVsOiBTdG9yeWJvb2tDb25maWdbJ2JhYmVsJ10gPSAoY29uZmlnLCBvcHRpb25zKSA9PiAoe1xuICBwcmVzZXRzOiBbWydAYW5hbnNpL2JhYmVsLXByZXNldCcsIHsgdHlwaW5nOiAndHlwZXNjcmlwdCcsIGxvb3NlOiB0cnVlIH1dXSxcbn0pOyovXG5cbmV4cG9ydCBjb25zdCB3ZWJwYWNrRmluYWw6IFN0b3J5Ym9va0NvbmZpZ1snd2VicGFja0ZpbmFsJ10gPSBhc3luYyAoXG4gIHN0b3J5Ym9va0NvbmZpZyxcbiAgb3B0aW9ucyxcbikgPT4ge1xuICBzdG9yeWJvb2tDb25maWcucmVzb2x2ZSA9IHN0b3J5Ym9va0NvbmZpZy5yZXNvbHZlIHx8IHt9O1xuXG4gIHN0b3J5Ym9va0NvbmZpZy5yZXNvbHZlLmFsaWFzID0ge1xuICAgIC4uLnN0b3J5Ym9va0NvbmZpZy5yZXNvbHZlPy5hbGlhcyxcbiAgICAnQHN0b3J5Ym9vay9yZWFjdCc6IHdyYXBGb3JQblAoJ0BzdG9yeWJvb2svcmVhY3QnKSxcbiAgfTtcblxuICBjb25zdCBwcm9qZWN0Q29uZmlnID0gcmVxdWlyZShqb2luKG9wdGlvbnMuY29uZmlnRGlyLCAnLi4vd2VicGFjay5jb25maWcnKSk7XG4gIHJldHVybiBtYWtlU3Rvcnlib29rQ29uZmlnR2VuZXJhdG9yKHByb2plY3RDb25maWcpKHtcbiAgICBjb25maWc6IHN0b3J5Ym9va0NvbmZpZyxcbiAgICBtb2RlOiBwcm9jZXNzLmVudi5OT0RFX0VOVixcbiAgfSk7XG59O1xuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLFNBQVNBLDRCQUE0QixRQUFRLHdCQUF3QjtBQUVyRSxTQUFTQyxPQUFPLEVBQUVDLElBQUksUUFBUSxNQUFNO0FBSXBDLE1BQU1DLFVBQVUsR0FBSUMsS0FBYSxJQUMvQkgsT0FBTyxDQUFDSSxPQUFPLENBQUNDLE9BQU8sQ0FBQ0osSUFBSSxDQUFDRSxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztBQUV2RCxPQUFPLE1BQU1HLE1BQWlELEdBQUcsRUFBRTtBQUVuRSxNQUFNQyx1QkFBeUMsR0FBRztFQUNoREMsYUFBYSxFQUFFLEtBQUs7RUFDcEJDLFdBQVcsRUFBRSxJQUFJO0VBQ2pCQyxVQUFVLEVBQUU7QUFDZCxDQUFDO0FBRUQsT0FBTyxNQUFNQyxnQkFBZ0IsR0FBRyxNQUFBQSxDQUM5QkMsQ0FBUSxFQUNSQyxPQUFnQixLQUMwQjtFQUMxQyxNQUFNQyxNQUFNLEdBQUcsTUFBTUQsT0FBTyxDQUFDRSxPQUFPLENBQUNDLEtBQUssQ0FDeEMsV0FBVyxDQUNaO0VBRUQsSUFBSSxPQUFPRixNQUFNLEtBQUssUUFBUSxFQUFFO0lBQzlCLE9BQU87TUFDTEcsSUFBSSxFQUFFSCxNQUFNO01BQ1pELE9BQU8sRUFBRU47SUFDWCxDQUFDO0VBQ0g7RUFDQSxJQUFJLE9BQU9PLE1BQU0sS0FBSyxXQUFXLEVBQUU7SUFDakMsT0FBTztNQUNMRyxJQUFJLEVBQUVmLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBd0I7TUFDNURXLE9BQU8sRUFBRU47SUFDWCxDQUFDO0VBQ0g7RUFFQSxPQUFPO0lBQ0xVLElBQUksRUFBRUgsTUFBTSxDQUFDRyxJQUFJO0lBQ2pCSixPQUFPLEVBQUU7TUFDUCxHQUFHTix1QkFBdUI7TUFDMUIsR0FBR08sTUFBTSxDQUFDRDtJQUNaO0VBQ0YsQ0FBQztBQUNILENBQUM7QUFFRCxPQUFPLE1BQU1LLElBQTZDLEdBQUcsTUFBQUEsQ0FDM0RKLE1BQU0sRUFDTkQsT0FBTyxLQUNKO0VBQ0gsTUFBTU0sU0FBUyxHQUFHLE1BQU1OLE9BQU8sQ0FBQ0UsT0FBTyxDQUFDQyxLQUFLLENBQzNDLFdBQVcsQ0FDWjtFQUVELE9BQU87SUFDTCxHQUFHRixNQUFNO0lBQ1RNLE9BQU8sRUFBRTtNQUNQSCxJQUFJLEVBQUVmLFVBQVUsQ0FDZCw2QkFBNkIsQ0FDRztNQUNsQ1csT0FBTyxFQUNMLE9BQU9NLFNBQVMsS0FBSyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEdBQUdBLFNBQVMsQ0FBQ04sT0FBTyxDQUFDTyxPQUFPLElBQUksQ0FBQztJQUN2RSxDQUFDO0lBQ0RDLFFBQVEsRUFBRW5CLFVBQVUsQ0FBQyxrQkFBa0I7RUFDekMsQ0FBQztBQUNILENBQUM7QUFFRCxPQUFPLE1BQU1vQixrQkFBeUQsR0FBR0EsQ0FDdkVDLEtBQUssR0FBRyxFQUFFLEtBQ1AsQ0FBQyxHQUFHQSxLQUFLLEVBQUVuQixPQUFPLENBQUNDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQzs7QUFFN0M7QUFDQTtBQUNBOztBQUVBLE9BQU8sTUFBTW1CLFlBQTZDLEdBQUcsTUFBQUEsQ0FDM0RDLGVBQWUsRUFDZlosT0FBTyxLQUNKO0VBQUEsSUFBQWEscUJBQUE7RUFDSEQsZUFBZSxDQUFDcEIsT0FBTyxHQUFHb0IsZUFBZSxDQUFDcEIsT0FBTyxJQUFJLENBQUMsQ0FBQztFQUV2RG9CLGVBQWUsQ0FBQ3BCLE9BQU8sQ0FBQ3NCLEtBQUssR0FBRztJQUM5QixLQUFBRCxxQkFBQSxHQUFHRCxlQUFlLENBQUNwQixPQUFPLHFCQUF2QnFCLHFCQUFBLENBQXlCQyxLQUFLO0lBQ2pDLGtCQUFrQixFQUFFekIsVUFBVSxDQUFDLGtCQUFrQjtFQUNuRCxDQUFDO0VBRUQsTUFBTTBCLGFBQWEsR0FBR3hCLE9BQU8sQ0FBQ0gsSUFBSSxDQUFDWSxPQUFPLENBQUNnQixTQUFTLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztFQUMzRSxPQUFPOUIsNEJBQTRCLENBQUM2QixhQUFhLENBQUMsQ0FBQztJQUNqRGQsTUFBTSxFQUFFVyxlQUFlO0lBQ3ZCSyxJQUFJLEVBQUVDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDQztFQUNwQixDQUFDLENBQUM7QUFDSixDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../src/preview.tsx"],"names":[],"mappings":";AAEA,eAAO,MAAM,UAAU,WACb,MAAM,EAAE,mBAOjB,CAAC"}
|
package/dist/preview.js
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import _jsx from "@babel/runtime/helpers/jsx";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { CacheProvider, AsyncBoundary } from '@rest-hooks/react';
|
|
4
|
+
export const decorators = [Story => /*#__PURE__*/_jsx(CacheProvider, {}, void 0, /*#__PURE__*/_jsx(AsyncBoundary, {}, void 0, /*#__PURE__*/_jsx(Story, {})))];
|
|
5
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDYWNoZVByb3ZpZGVyIiwiQXN5bmNCb3VuZGFyeSIsImRlY29yYXRvcnMiLCJTdG9yeSIsIl9qc3giXSwic291cmNlcyI6WyIuLi9zcmMvcHJldmlldy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2FjaGVQcm92aWRlciwgQXN5bmNCb3VuZGFyeSB9IGZyb20gJ0ByZXN0LWhvb2tzL3JlYWN0JztcblxuZXhwb3J0IGNvbnN0IGRlY29yYXRvcnMgPSBbXG4gIChTdG9yeTogUmVhY3QuRkMpID0+IChcbiAgICA8Q2FjaGVQcm92aWRlcj5cbiAgICAgIDxBc3luY0JvdW5kYXJ5PlxuICAgICAgICA8U3RvcnkgLz5cbiAgICAgIDwvQXN5bmNCb3VuZGFyeT5cbiAgICA8L0NhY2hlUHJvdmlkZXI+XG4gICksXG5dO1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBLFNBQVNBLGFBQWEsRUFBRUMsYUFBYSxRQUFRLG1CQUFtQjtBQUVoRSxPQUFPLE1BQU1DLFVBQVUsR0FBRyxDQUN2QkMsS0FBZSxpQkFDZEMsSUFBQSxDQUFDSixhQUFhLDJCQUNaSSxJQUFBLENBQUNILGFBQWEsMkJBQ1pHLElBQUEsQ0FBQ0QsS0FBSyxLQUFHLENBQ0ssQ0FFbkIsQ0FDRiJ9
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { StorybookConfigWebpack, BuilderOptions, TypescriptOptions as TypescriptOptionsBuilder } from '@storybook/builder-webpack5';
|
|
2
|
+
import type { ReactOptions, StorybookConfig as StorybookConfigBase, TypescriptOptions as TypescriptOptionsReact } from '@storybook/preset-react-webpack';
|
|
3
|
+
type FrameworkName = '@anansi/storybook';
|
|
4
|
+
type BuilderName = '@storybook/builder-webpack5';
|
|
5
|
+
export type FrameworkOptions = ReactOptions & {
|
|
6
|
+
builder?: BuilderOptions;
|
|
7
|
+
babelOptions?: {
|
|
8
|
+
typing?: 'typescript';
|
|
9
|
+
loose: boolean;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
type StorybookConfigFramework = {
|
|
13
|
+
framework: FrameworkName | {
|
|
14
|
+
name: FrameworkName;
|
|
15
|
+
options: FrameworkOptions;
|
|
16
|
+
};
|
|
17
|
+
core?: StorybookConfigBase['core'] & {
|
|
18
|
+
builder?: BuilderName | {
|
|
19
|
+
name: BuilderName;
|
|
20
|
+
options: BuilderOptions;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
typescript?: Partial<TypescriptOptionsBuilder & TypescriptOptionsReact> & StorybookConfigBase['typescript'];
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* The interface for Storybook configuration in `main.ts` files.
|
|
27
|
+
*/
|
|
28
|
+
export type StorybookConfig = Omit<StorybookConfigBase, keyof StorybookConfigWebpack | keyof StorybookConfigFramework> & StorybookConfigWebpack & StorybookConfigFramework;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,cAAc,EACd,iBAAiB,IAAI,wBAAwB,EAC9C,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,IAAI,mBAAmB,EACtC,iBAAiB,IAAI,sBAAsB,EAC5C,MAAM,iCAAiC,CAAC;AAEzC,KAAK,aAAa,GAAG,mBAAmB,CAAC;AACzC,KAAK,WAAW,GAAG,6BAA6B,CAAC;AAEjD,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG;IAC5C,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,YAAY,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;CAC1D,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,SAAS,EACL,aAAa,GACb;QACE,IAAI,EAAE,aAAa,CAAC;QACpB,OAAO,EAAE,gBAAgB,CAAC;KAC3B,CAAC;IACN,IAAI,CAAC,EAAE,mBAAmB,CAAC,MAAM,CAAC,GAAG;QACnC,OAAO,CAAC,EACJ,WAAW,GACX;YACE,IAAI,EAAE,WAAW,CAAC;YAClB,OAAO,EAAE,cAAc,CAAC;SACzB,CAAC;KACP,CAAC;IACF,UAAU,CAAC,EAAE,OAAO,CAAC,wBAAwB,GAAG,sBAAsB,CAAC,GACrE,mBAAmB,CAAC,YAAY,CAAC,CAAC;CACrC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,mBAAmB,EACnB,MAAM,sBAAsB,GAAG,MAAM,wBAAwB,CAC9D,GACC,sBAAsB,GACtB,wBAAwB,CAAC"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgU3Rvcnlib29rQ29uZmlnV2VicGFjayxcbiAgQnVpbGRlck9wdGlvbnMsXG4gIFR5cGVzY3JpcHRPcHRpb25zIGFzIFR5cGVzY3JpcHRPcHRpb25zQnVpbGRlcixcbn0gZnJvbSAnQHN0b3J5Ym9vay9idWlsZGVyLXdlYnBhY2s1JztcbmltcG9ydCB0eXBlIHtcbiAgUmVhY3RPcHRpb25zLFxuICBTdG9yeWJvb2tDb25maWcgYXMgU3Rvcnlib29rQ29uZmlnQmFzZSxcbiAgVHlwZXNjcmlwdE9wdGlvbnMgYXMgVHlwZXNjcmlwdE9wdGlvbnNSZWFjdCxcbn0gZnJvbSAnQHN0b3J5Ym9vay9wcmVzZXQtcmVhY3Qtd2VicGFjayc7XG5cbnR5cGUgRnJhbWV3b3JrTmFtZSA9ICdAYW5hbnNpL3N0b3J5Ym9vayc7XG50eXBlIEJ1aWxkZXJOYW1lID0gJ0BzdG9yeWJvb2svYnVpbGRlci13ZWJwYWNrNSc7XG5cbmV4cG9ydCB0eXBlIEZyYW1ld29ya09wdGlvbnMgPSBSZWFjdE9wdGlvbnMgJiB7XG4gIGJ1aWxkZXI/OiBCdWlsZGVyT3B0aW9ucztcbiAgYmFiZWxPcHRpb25zPzogeyB0eXBpbmc/OiAndHlwZXNjcmlwdCc7IGxvb3NlOiBib29sZWFuIH07XG59O1xuXG50eXBlIFN0b3J5Ym9va0NvbmZpZ0ZyYW1ld29yayA9IHtcbiAgZnJhbWV3b3JrOlxuICAgIHwgRnJhbWV3b3JrTmFtZVxuICAgIHwge1xuICAgICAgICBuYW1lOiBGcmFtZXdvcmtOYW1lO1xuICAgICAgICBvcHRpb25zOiBGcmFtZXdvcmtPcHRpb25zO1xuICAgICAgfTtcbiAgY29yZT86IFN0b3J5Ym9va0NvbmZpZ0Jhc2VbJ2NvcmUnXSAmIHtcbiAgICBidWlsZGVyPzpcbiAgICAgIHwgQnVpbGRlck5hbWVcbiAgICAgIHwge1xuICAgICAgICAgIG5hbWU6IEJ1aWxkZXJOYW1lO1xuICAgICAgICAgIG9wdGlvbnM6IEJ1aWxkZXJPcHRpb25zO1xuICAgICAgICB9O1xuICB9O1xuICB0eXBlc2NyaXB0PzogUGFydGlhbDxUeXBlc2NyaXB0T3B0aW9uc0J1aWxkZXIgJiBUeXBlc2NyaXB0T3B0aW9uc1JlYWN0PiAmXG4gICAgU3Rvcnlib29rQ29uZmlnQmFzZVsndHlwZXNjcmlwdCddO1xufTtcblxuLyoqXG4gKiBUaGUgaW50ZXJmYWNlIGZvciBTdG9yeWJvb2sgY29uZmlndXJhdGlvbiBpbiBgbWFpbi50c2AgZmlsZXMuXG4gKi9cbmV4cG9ydCB0eXBlIFN0b3J5Ym9va0NvbmZpZyA9IE9taXQ8XG4gIFN0b3J5Ym9va0NvbmZpZ0Jhc2UsXG4gIGtleW9mIFN0b3J5Ym9va0NvbmZpZ1dlYnBhY2sgfCBrZXlvZiBTdG9yeWJvb2tDb25maWdGcmFtZXdvcmtcbj4gJlxuICBTdG9yeWJvb2tDb25maWdXZWJwYWNrICZcbiAgU3Rvcnlib29rQ29uZmlnRnJhbWV3b3JrO1xuIl0sIm1hcHBpbmdzIjoiIn0=
|
package/package.json
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@anansi/storybook",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Storybook framework for anansi",
|
|
5
|
+
"homepage": "https://github.com/ntucker/anansi/tree/master/packages/storybook#readme",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+ssh://git@github.com:ntucker/anansi.git",
|
|
9
|
+
"directory": "packages/storybook"
|
|
10
|
+
},
|
|
11
|
+
"license": "Apache-2.0",
|
|
12
|
+
"author": {
|
|
13
|
+
"name": "Nathaniel Tucker",
|
|
14
|
+
"email": "me@ntucker.me",
|
|
15
|
+
"url": "https://ntucker.true.io"
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"src",
|
|
19
|
+
"dist",
|
|
20
|
+
"lib",
|
|
21
|
+
"preset.js",
|
|
22
|
+
"preview.js",
|
|
23
|
+
"LICENSE",
|
|
24
|
+
"README.md"
|
|
25
|
+
],
|
|
26
|
+
"sideEffects": false,
|
|
27
|
+
"publishConfig": {
|
|
28
|
+
"main": "dist/index.js",
|
|
29
|
+
"module": "dist/index.js",
|
|
30
|
+
"types": "dist/index.d.ts"
|
|
31
|
+
},
|
|
32
|
+
"main": "dist/index.js",
|
|
33
|
+
"types": "dist/index.d.ts",
|
|
34
|
+
"keywords": [
|
|
35
|
+
"storybook",
|
|
36
|
+
"react"
|
|
37
|
+
],
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@anansi/babel-preset": "workspace:*",
|
|
40
|
+
"@anansi/browserslist-config": "workspace:*",
|
|
41
|
+
"@babel/cli": "7.21.0",
|
|
42
|
+
"@babel/core": "7.21.3",
|
|
43
|
+
"jest": "29.5.0",
|
|
44
|
+
"rimraf": "4.4.0"
|
|
45
|
+
},
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"@babel/runtime": "^7.17.0",
|
|
48
|
+
"@storybook/builder-webpack5": "7.0.0-rc.3",
|
|
49
|
+
"@storybook/preset-react-webpack": "^7.0.0-rc.3",
|
|
50
|
+
"@storybook/react": "7.0.0-rc.3",
|
|
51
|
+
"@types/node": "^16.0.0"
|
|
52
|
+
},
|
|
53
|
+
"peerDependencies": {
|
|
54
|
+
"@anansi/babel-preset": "^3.0.0 || ^4.0.0",
|
|
55
|
+
"@anansi/webpack-config": "^13.0.0 || ^14.0.0",
|
|
56
|
+
"@types/react": "^17.0.40 || ^18.0.0-0",
|
|
57
|
+
"react": "^18.0.0-0"
|
|
58
|
+
},
|
|
59
|
+
"peerDependenciesMeta": {
|
|
60
|
+
"@types/react": {
|
|
61
|
+
"optional": true
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"engines": {
|
|
65
|
+
"node": ">=16"
|
|
66
|
+
},
|
|
67
|
+
"scripts": {
|
|
68
|
+
"pretest": "eslint --ext .ts,.tsx .",
|
|
69
|
+
"test": "jest",
|
|
70
|
+
"test:type": "tsc",
|
|
71
|
+
"dev": "yarn run build:lib -w",
|
|
72
|
+
"build": "yarn run build:lib",
|
|
73
|
+
"build:lib": "NODE_ENV=production BROWSERSLIST_ENV=node16 babel --root-mode upward src --out-dir dist --source-maps inline --extensions '.ts,.tsx,.js' --ignore '**/__tests__/**' --ignore '**/*.d.ts'",
|
|
74
|
+
"build:clean": "rimraf lib dist ts3.4 legacy dist *.tsbuildinfo",
|
|
75
|
+
"prepack": "yarn build"
|
|
76
|
+
}
|
|
77
|
+
}
|
package/preset.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('./dist/preset');
|
package/preview.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require('./dist/preview');
|
package/src/index.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './types.js';
|
package/src/preset.ts
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
2
|
+
import { makeStorybookConfigGenerator } from '@anansi/webpack-config';
|
|
3
|
+
import type { PresetProperty, Options } from '@storybook/types';
|
|
4
|
+
import { dirname, join } from 'path';
|
|
5
|
+
|
|
6
|
+
import type { FrameworkOptions, StorybookConfig } from './types.js';
|
|
7
|
+
|
|
8
|
+
const wrapForPnP = (input: string) =>
|
|
9
|
+
dirname(require.resolve(join(input, 'package.json')));
|
|
10
|
+
|
|
11
|
+
export const addons: PresetProperty<'addons', StorybookConfig> = [];
|
|
12
|
+
|
|
13
|
+
const defaultFrameworkOptions: FrameworkOptions = {
|
|
14
|
+
legacyRootApi: false,
|
|
15
|
+
fastRefresh: true,
|
|
16
|
+
strictMode: true,
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export const frameworkOptions = async (
|
|
20
|
+
_: never,
|
|
21
|
+
options: Options,
|
|
22
|
+
): Promise<StorybookConfig['framework']> => {
|
|
23
|
+
const config = await options.presets.apply<StorybookConfig['framework']>(
|
|
24
|
+
'framework',
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
if (typeof config === 'string') {
|
|
28
|
+
return {
|
|
29
|
+
name: config,
|
|
30
|
+
options: defaultFrameworkOptions,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
if (typeof config === 'undefined') {
|
|
34
|
+
return {
|
|
35
|
+
name: wrapForPnP('@anansi/storybook') as '@anansi/storybook',
|
|
36
|
+
options: defaultFrameworkOptions,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return {
|
|
41
|
+
name: config.name,
|
|
42
|
+
options: {
|
|
43
|
+
...defaultFrameworkOptions,
|
|
44
|
+
...config.options,
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export const core: PresetProperty<'core', StorybookConfig> = async (
|
|
50
|
+
config,
|
|
51
|
+
options,
|
|
52
|
+
) => {
|
|
53
|
+
const framework = await options.presets.apply<StorybookConfig['framework']>(
|
|
54
|
+
'framework',
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
return {
|
|
58
|
+
...config,
|
|
59
|
+
builder: {
|
|
60
|
+
name: wrapForPnP(
|
|
61
|
+
'@storybook/builder-webpack5',
|
|
62
|
+
) as '@storybook/builder-webpack5',
|
|
63
|
+
options:
|
|
64
|
+
typeof framework === 'string' ? {} : framework.options.builder || {},
|
|
65
|
+
},
|
|
66
|
+
renderer: wrapForPnP('@storybook/react'),
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
export const previewAnnotations: StorybookConfig['previewAnnotations'] = (
|
|
71
|
+
entry = [],
|
|
72
|
+
) => [...entry, require.resolve('./preview')];
|
|
73
|
+
|
|
74
|
+
/*export const babel: StorybookConfig['babel'] = (config, options) => ({
|
|
75
|
+
presets: [['@anansi/babel-preset', { typing: 'typescript', loose: true }]],
|
|
76
|
+
});*/
|
|
77
|
+
|
|
78
|
+
export const webpackFinal: StorybookConfig['webpackFinal'] = async (
|
|
79
|
+
storybookConfig,
|
|
80
|
+
options,
|
|
81
|
+
) => {
|
|
82
|
+
storybookConfig.resolve = storybookConfig.resolve || {};
|
|
83
|
+
|
|
84
|
+
storybookConfig.resolve.alias = {
|
|
85
|
+
...storybookConfig.resolve?.alias,
|
|
86
|
+
'@storybook/react': wrapForPnP('@storybook/react'),
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
const projectConfig = require(join(options.configDir, '../webpack.config'));
|
|
90
|
+
return makeStorybookConfigGenerator(projectConfig)({
|
|
91
|
+
config: storybookConfig,
|
|
92
|
+
mode: process.env.NODE_ENV,
|
|
93
|
+
});
|
|
94
|
+
};
|
package/src/preview.tsx
ADDED
package/src/types.ts
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
StorybookConfigWebpack,
|
|
3
|
+
BuilderOptions,
|
|
4
|
+
TypescriptOptions as TypescriptOptionsBuilder,
|
|
5
|
+
} from '@storybook/builder-webpack5';
|
|
6
|
+
import type {
|
|
7
|
+
ReactOptions,
|
|
8
|
+
StorybookConfig as StorybookConfigBase,
|
|
9
|
+
TypescriptOptions as TypescriptOptionsReact,
|
|
10
|
+
} from '@storybook/preset-react-webpack';
|
|
11
|
+
|
|
12
|
+
type FrameworkName = '@anansi/storybook';
|
|
13
|
+
type BuilderName = '@storybook/builder-webpack5';
|
|
14
|
+
|
|
15
|
+
export type FrameworkOptions = ReactOptions & {
|
|
16
|
+
builder?: BuilderOptions;
|
|
17
|
+
babelOptions?: { typing?: 'typescript'; loose: boolean };
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
type StorybookConfigFramework = {
|
|
21
|
+
framework:
|
|
22
|
+
| FrameworkName
|
|
23
|
+
| {
|
|
24
|
+
name: FrameworkName;
|
|
25
|
+
options: FrameworkOptions;
|
|
26
|
+
};
|
|
27
|
+
core?: StorybookConfigBase['core'] & {
|
|
28
|
+
builder?:
|
|
29
|
+
| BuilderName
|
|
30
|
+
| {
|
|
31
|
+
name: BuilderName;
|
|
32
|
+
options: BuilderOptions;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
typescript?: Partial<TypescriptOptionsBuilder & TypescriptOptionsReact> &
|
|
36
|
+
StorybookConfigBase['typescript'];
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* The interface for Storybook configuration in `main.ts` files.
|
|
41
|
+
*/
|
|
42
|
+
export type StorybookConfig = Omit<
|
|
43
|
+
StorybookConfigBase,
|
|
44
|
+
keyof StorybookConfigWebpack | keyof StorybookConfigFramework
|
|
45
|
+
> &
|
|
46
|
+
StorybookConfigWebpack &
|
|
47
|
+
StorybookConfigFramework;
|