dumi 1.1.47 → 2.0.0-alpha.1

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.
Files changed (70) hide show
  1. package/README.md +9 -167
  2. package/bin/dumi.js +3 -1
  3. package/dist/assetParsers/block.d.ts +17 -0
  4. package/dist/assetParsers/block.js +130 -0
  5. package/dist/cli.d.ts +1 -0
  6. package/dist/cli.js +30 -0
  7. package/dist/client/theme-api/DumiDemo.d.ts +10 -0
  8. package/dist/client/theme-api/DumiDemo.js +16 -0
  9. package/dist/client/theme-api/DumiDemoGrid.d.ts +6 -0
  10. package/dist/client/theme-api/DumiDemoGrid.js +14 -0
  11. package/dist/client/theme-api/context.d.ts +14 -0
  12. package/dist/client/theme-api/context.js +5 -0
  13. package/dist/client/theme-api/index.d.ts +5 -0
  14. package/dist/client/theme-api/index.js +5 -0
  15. package/dist/client/theme-api/types.d.ts +20 -0
  16. package/dist/client/theme-api/types.js +1 -0
  17. package/dist/client/tsconfig.json +10 -0
  18. package/dist/constants.d.ts +2 -0
  19. package/dist/constants.js +32 -0
  20. package/dist/features/compile.d.ts +3 -0
  21. package/dist/features/compile.js +57 -0
  22. package/dist/features/configPlugins/index.d.ts +3 -0
  23. package/dist/features/configPlugins/index.js +51 -0
  24. package/dist/features/configPlugins/schema.d.ts +4 -0
  25. package/dist/features/configPlugins/schema.js +36 -0
  26. package/dist/features/locales.d.ts +3 -0
  27. package/dist/features/locales.js +85 -0
  28. package/dist/features/routes.d.ts +3 -0
  29. package/dist/features/routes.js +122 -0
  30. package/dist/features/theme/index.d.ts +3 -0
  31. package/dist/features/theme/index.js +148 -0
  32. package/dist/features/theme/loader.d.ts +51 -0
  33. package/dist/features/theme/loader.js +58 -0
  34. package/dist/index.d.ts +2 -0
  35. package/dist/index.js +27 -0
  36. package/dist/loaders/demo/index.d.ts +6 -0
  37. package/dist/loaders/demo/index.js +35 -0
  38. package/dist/loaders/markdown/index.d.ts +12 -0
  39. package/dist/loaders/markdown/index.js +71 -0
  40. package/dist/loaders/markdown/transformer/index.d.ts +39 -0
  41. package/dist/loaders/markdown/transformer/index.js +51 -0
  42. package/dist/loaders/markdown/transformer/rehypeDemo.d.ts +6 -0
  43. package/dist/loaders/markdown/transformer/rehypeDemo.js +197 -0
  44. package/dist/loaders/markdown/transformer/rehypeIsolation.d.ts +3 -0
  45. package/dist/loaders/markdown/transformer/rehypeIsolation.js +60 -0
  46. package/dist/loaders/markdown/transformer/rehypeJsxify.d.ts +2 -0
  47. package/dist/loaders/markdown/transformer/rehypeJsxify.js +93 -0
  48. package/dist/loaders/markdown/transformer/rehypeRaw.d.ts +3 -0
  49. package/dist/loaders/markdown/transformer/rehypeRaw.js +58 -0
  50. package/dist/loaders/markdown/transformer/rehypeStrip.d.ts +3 -0
  51. package/dist/loaders/markdown/transformer/rehypeStrip.js +44 -0
  52. package/dist/preset.d.ts +5 -0
  53. package/dist/preset.js +42 -0
  54. package/dist/registerMethods.d.ts +3 -0
  55. package/dist/registerMethods.js +32 -0
  56. package/dist/techStacks/react.d.ts +6 -0
  57. package/dist/techStacks/react.js +79 -0
  58. package/dist/types.d.ts +61 -0
  59. package/dist/types.js +30 -0
  60. package/dist/utils.d.ts +4 -0
  61. package/dist/utils.js +32 -0
  62. package/package.json +105 -23
  63. package/theme-default/builtins/Previewer.d.ts +4 -0
  64. package/theme-default/builtins/Previewer.js +11 -0
  65. package/theme-default/locales/en-US.json +3 -0
  66. package/theme-default/locales/zh-CN.json +3 -0
  67. package/theme.d.ts +1 -2
  68. package/index.d.ts +0 -1
  69. package/index.js +0 -3
  70. package/lib/index.js +0 -32
package/README.md CHANGED
@@ -1,178 +1,20 @@
1
1
  # dumi
2
2
 
3
- [![codecov](https://codecov.io/gh/umijs/dumi/branch/master/graph/badge.svg)](https://codecov.io/gh/umijs/dumi) [![NPM version](https://img.shields.io/npm/v/dumi.svg?style=flat)](https://npmjs.org/package/dumi) [![GitHub Actions status](https://github.com/umijs/dumi/workflows/Node%20CI/badge.svg)](https://github.com/umijs/dumi) [![NPM downloads](https://img.shields.io/npm/dm/dumi.svg?style=flat)](https://npmjs.org/package/dumi) [![lerna](https://img.shields.io/badge/maintained%20with-lerna-cc00ff.svg)](https://lernajs.io/)
4
- [![issues-helper](https://img.shields.io/badge/using-issues--helper-orange)](https://github.com/actions-cool/issues-helper)
3
+ [![NPM version](https://img.shields.io/npm/v/dumi/next)](https://npmjs.org/package/dumi) [![NPM downloads](https://img.shields.io/npm/dm/dumi)](https://npmjs.org/package/dumi)
5
4
 
6
- ## Intro
5
+ The development version for dumi 2, if you are looking for dumi 1, please switch to the [1.x branch](https://github.com/umijs/dumi/tree/1.x).
7
6
 
8
- A Umi-based doc tool can assist you to develop libraries & write docs.
9
-
10
- ### Features
11
-
12
- - 📦 Out of the box, focus on component development and documentation
13
- - 📋 Rich Markdown extensions, more than just rendering component demo
14
- - 🏷 Automatically generate component API based on TypeScript type definition
15
- - 🎨 Easily customize the theme, and create your own Markdown components
16
- - 📱 Support mobile component library development, built-in mobile HD rendering solution
17
- - 📡 One-line command digitizes component assets and connects them with downstream productivity tools
18
-
19
- ## Usage & Guide
20
-
21
- To view more online examples and docs, please visit [dumi official site](https://d.umijs.org).
22
-
23
- ## Development
7
+ ## Install
24
8
 
25
9
  ```bash
26
- $ yarn
27
- $ yarn watch
28
- $ yarn dev
10
+ $ pnpm install
29
11
  ```
30
12
 
31
- ## Who are using dumi?
32
-
33
- <table>
34
-
35
- <tr>
36
- <td width="160" align="center">
37
- <a target="_blank" href="https://ahooks.js.org/">
38
- <img src="https://ahooks.js.org/logo.svg" />
39
- <br />
40
- <strong>ahooks</strong>
41
- </a>
42
- </td>
43
- <td width="160" align="center">
44
- <a target="_blank" href="https://alitajs.com/">
45
- <img src="https://user-images.githubusercontent.com/11746742/104428726-c2c90300-55bf-11eb-9b84-d52a86050b9a.png" width="42" />
46
- <br />
47
- <strong>alitajs</strong>
48
- </a>
49
- </td>
50
- <td width="160" align="center">
51
- <a target="_blank" href="https://boyuai.github.io/antd-country-phone-input/">
52
- <img src="https://staticcdn.boyuai.com/user-assets/6074/vF5on4266Geu54q8dM7mEU/Lark20200122-235918.svg" width="42" />
53
- <br />
54
- <strong>antd-cpi</strong>
55
- </a>
56
- </td>
57
- <td width="160" align="center">
58
- <a target="_blank" href="https://github.com/H5-Dooring/dooringx">
59
- <img src="https://img-blog.csdnimg.cn/img_convert/520863a38a93d960862f92c805bc97cc.png" />
60
- <br />
61
- <strong>Dooringx</strong>
62
- </a>
63
- </td>
64
- <td width="160" align="center">
65
- <a target="_blank" href="https://v2.formilyjs.org/">
66
- <img src="https://img.alicdn.com/imgextra/i2/O1CN01Kq3OHU1fph6LGqjIz_!!6000000004056-55-tps-1141-150.svg" />
67
- <br />
68
- <strong>Formily</strong>
69
- </a>
70
- </td>
71
- </tr>
72
- <tr>
73
- <td width="160" align="center">
74
- <a target="_blank" href="https://ggeditor.com">
75
- <img src="https://img.alicdn.com/tfs/TB1FFA1CFP7gK0jSZFjXXc5aXXa-214-200.png" width="42" />
76
- <br />
77
- <strong>GGEditor</strong>
78
- </a>
79
- </td>
80
- <td width="160" align="center">
81
- <a target="_blank" href="https://graphin.antv.vision/">
82
- <img src="https://gw.alipayobjects.com/zos/antfincdn/0b4HzOcEJY/Graphin.svg" width="42" />
83
- <br />
84
- <strong>Graphin</strong>
85
- </a>
86
- </td>
87
- <td width="160" align="center">
88
- <a target="_blank" href="https://actions-cool.github.io/issues-helper/">
89
- <img src="https://avatars1.githubusercontent.com/u/73879334?s=200&v=4" width="42" />
90
- <br />
91
- <strong>issues-helper</strong>
92
- </a>
93
- </td>
94
- <td width="160" align="center">
95
- <a target="_blank" href="https://lightproxy.org">
96
- <img src="https://user-images.githubusercontent.com/5436704/81533849-83e00f00-9399-11ea-943d-ac5fd4653906.png" width="42" />
97
- <br />
98
- <strong>LightProxy</strong>
99
- </a>
100
- </td>
101
- <td width="160" align="center">
102
- <a target="_blank" href="https://pinyin.js.org/">
103
- <img src="https://gw.alipayobjects.com/mdn/rms_f6322a/afts/img/A*bGz9QbNudekAAAAAAAAAAAAAARQnAQ" width="42" />
104
- <br />
105
- <strong>pīnyīn</strong>
106
- </a>
107
- </td>
108
- </tr>
109
- <tr>
110
- <td width="160" align="center">
111
- <a target="_blank" href="https://procomponents.ant.design/">
112
- <img src="https://gw.alipayobjects.com/zos/rmsportal/KDpgvguMpGfqaHPjicRK.svg" width="42" />
113
- <br />
114
- <strong>Pro Components</strong>
115
- </a>
116
- </td>
117
- <td width="160" align="center">
118
- <a target="_blank" href="https://qiankun.umijs.org/">
119
- <img src="https://gw.alipayobjects.com/zos/bmw-prod/8a74c1d3-16f3-4719-be63-15e467a68a24/km0cv8vn_w500_h500.png" width="42" />
120
- <br />
121
- <strong>qiankun</strong>
122
- </a>
123
- </td>
124
- <td width="160" align="center">
125
- <a target="_blank" href="https://github.com/react-component">
126
- <img src="https://avatars3.githubusercontent.com/u/9441414?s=200&v=4" width="42" />
127
- <br />
128
- <strong>react-component</strong>
129
- </a>
130
- </td>
131
- <td width="160" align="center">
132
- <a target="_blank" href="https://remaxjs.org">
133
- <img src="https://gw.alipayobjects.com/mdn/rms_b5fcc5/afts/img/A*1NHAQYduQiQAAAAAAAAAAABkARQnAQ" width="42" />
134
- <br />
135
- <strong>Remax</strong>
136
- </a>
137
- </td>
138
- <td width="160" align="center">
139
- <a target="_blank" href="https://umijs.org">
140
- <img src="https://gw.alipayobjects.com/zos/bmw-prod/598d14af-4f1c-497d-b579-5ac42cd4dd1f/k7bjua9c_w132_h130.png" width="42" />
141
- <br />
142
- <strong>UmiJS</strong>
143
- </a>
144
- </td>
145
- </tr>
146
- <tr>
147
- <td width="160" align="center">
148
- <a target="_blank" href="https://x-render.gitee.io/">
149
- <img src="https://img.alicdn.com/tfs/TB17UtINiLaK1RjSZFxXXamPFXa-606-643.png" width="42" />
150
- <br />
151
- <strong>XRender</strong>
152
- </a>
153
- </td>
154
- <td width="160" align="center">
155
- </td>
156
- <td width="160" align="center">
157
- </td>
158
- <td width="160" align="center">
159
- </td>
160
- <td width="160" align="center">
161
- </td>
162
- </tr>
163
- </table>
164
-
165
- ### README Badge
166
-
167
- Using dumi ? Add a README badge to show it off: [![dumi](https://img.shields.io/badge/docs%20by-dumi-blue)](https://github.com/umijs/dumi)
168
-
169
- ```
170
- [![dumi](https://img.shields.io/badge/docs%20by-dumi-blue)](https://github.com/umijs/dumi)
13
+ ```bash
14
+ $ npm run dev
15
+ $ npm run build
171
16
  ```
172
17
 
173
- ## Discuss group
18
+ ## LICENSE
174
19
 
175
- <div>
176
- <img data-type="dingtalk" src="https://gw.alipayobjects.com/zos/bmw-prod/ce3439e7-3bf9-4031-b823-6473439ec9e6/kxkiis4c_w1004_h1346.jpeg" width="300" />
177
- <img data-type="wechat" src="https://gw.alipayobjects.com/zos/bmw-prod/c18bc2a5-719a-48ca-b225-c79ef88bfb43/k7m10ymd_w1004_h1346.jpeg" width="300" />
178
- </div>
20
+ MIT
package/bin/dumi.js CHANGED
@@ -1,2 +1,4 @@
1
1
  #!/usr/bin/env node
2
- require('../lib/index')();
2
+
3
+ require('v8-compile-cache');
4
+ require('../dist/cli');
@@ -0,0 +1,17 @@
1
+ import type { ExampleBlockAsset } from 'dumi-assets-types';
2
+ export interface IParsedBlockAsset {
3
+ asset: ExampleBlockAsset;
4
+ sources: Record<string, string>;
5
+ frontmatter: ReturnType<typeof parseCodeFrontmatter>['frontmatter'];
6
+ }
7
+ declare function parseCodeFrontmatter(raw: string): {
8
+ code: string;
9
+ frontmatter: Record<string, any> | null;
10
+ };
11
+ declare function parseBlockAsset(opts: {
12
+ fileAbsPath: string;
13
+ id: string;
14
+ refAtomIds: string[];
15
+ entryPointCode?: string;
16
+ }): Promise<IParsedBlockAsset>;
17
+ export default parseBlockAsset;
@@ -0,0 +1,130 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+
22
+ // src/assetParsers/block.ts
23
+ var block_exports = {};
24
+ __export(block_exports, {
25
+ default: () => block_default
26
+ });
27
+ module.exports = __toCommonJS(block_exports);
28
+ var import_esbuild = require("@umijs/bundler-utils/compiled/esbuild");
29
+ var import_fs = __toESM(require("fs"));
30
+ var import_js_yaml = __toESM(require("js-yaml"));
31
+ var import_path = __toESM(require("path"));
32
+ var import_plugin_utils = require("umi/plugin-utils");
33
+ function parseCodeFrontmatter(raw) {
34
+ const [, comment = "", code = ""] = raw.replace(/^\n\s*/, "").match(/^(\/\*\*[^]*?\n\s*\*\/)?(?:\s|\n)*([^]+)?$/);
35
+ const yamlComment = comment.replace(/^\/|\/$/g, "").replace(/(^|\n)\s*\*+/g, "$1");
36
+ let frontmatter = null;
37
+ try {
38
+ frontmatter = import_js_yaml.default.load(yamlComment);
39
+ } catch {
40
+ }
41
+ return { code: frontmatter ? code : raw, frontmatter };
42
+ }
43
+ async function parseBlockAsset(opts) {
44
+ const asset = {
45
+ type: "BLOCK",
46
+ id: opts.id,
47
+ refAtomIds: opts.refAtomIds,
48
+ dependencies: {}
49
+ };
50
+ const result = {
51
+ asset,
52
+ sources: {},
53
+ frontmatter: {}
54
+ };
55
+ await (0, import_esbuild.build)({
56
+ write: false,
57
+ bundle: true,
58
+ logLevel: "silent",
59
+ format: "esm",
60
+ target: "esnext",
61
+ entryPoints: [import_path.default.basename(opts.fileAbsPath)],
62
+ absWorkingDir: import_path.default.dirname(opts.fileAbsPath),
63
+ plugins: [
64
+ {
65
+ name: "plugin-dumi-collect-deps",
66
+ setup: (builder) => {
67
+ builder.onResolve({ filter: /.*/ }, (args) => {
68
+ if (args.kind !== "entry-point" && !args.path.startsWith(".")) {
69
+ const pkgJsonPath = import_plugin_utils.pkgUp.pkgUpSync({
70
+ cwd: require.resolve(args.path, { paths: [args.resolveDir] })
71
+ });
72
+ if (pkgJsonPath) {
73
+ asset.dependencies[args.path] = {
74
+ type: "NPM",
75
+ value: require(pkgJsonPath).version
76
+ };
77
+ }
78
+ return { path: args.path, external: true };
79
+ }
80
+ return {
81
+ path: import_path.default.join(args.resolveDir, args.path),
82
+ pluginData: { kind: args.kind, resolveDir: args.resolveDir }
83
+ };
84
+ });
85
+ builder.onLoad({ filter: /.*/ }, (args) => {
86
+ const ext = import_path.default.extname(args.path);
87
+ const isModule = [".js", ".jsx", ".ts", ".tsx"].includes(ext);
88
+ const isPlainText = [
89
+ ".css",
90
+ ".less",
91
+ ".sass",
92
+ ".scss",
93
+ ".styl",
94
+ ".json"
95
+ ].includes(ext);
96
+ const isEntryPoint = args.pluginData.kind === "entry-point";
97
+ const filename = isEntryPoint ? `index${ext}` : (0, import_plugin_utils.winPath)(import_path.default.relative(import_path.default.dirname(opts.fileAbsPath), args.path));
98
+ if (isModule || isPlainText) {
99
+ asset.dependencies[filename] = {
100
+ type: "FILE",
101
+ value: opts.entryPointCode ?? import_fs.default.readFileSync(args.path, "utf-8")
102
+ };
103
+ if (isEntryPoint) {
104
+ const { code, frontmatter } = parseCodeFrontmatter(asset.dependencies[filename].value);
105
+ if (frontmatter) {
106
+ asset.dependencies[filename].value = code;
107
+ result.frontmatter = frontmatter;
108
+ ["description", "title", "snapshot", "keywords"].forEach((key) => {
109
+ asset[key] = frontmatter == null ? void 0 : frontmatter[key];
110
+ });
111
+ }
112
+ }
113
+ if (!isEntryPoint || !opts.entryPointCode) {
114
+ result.sources[filename] = args.path;
115
+ }
116
+ return {
117
+ contents: isModule ? asset.dependencies[filename].value : "",
118
+ loader: isModule ? ext.slice(1) : "text"
119
+ };
120
+ }
121
+ });
122
+ }
123
+ }
124
+ ]
125
+ });
126
+ return result;
127
+ }
128
+ var block_default = parseBlockAsset;
129
+ // Annotate the CommonJS export names for ESM import in node:
130
+ 0 && (module.exports = {});
package/dist/cli.d.ts ADDED
@@ -0,0 +1 @@
1
+ export {};
package/dist/cli.js ADDED
@@ -0,0 +1,30 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __copyProps = (to, from, except, desc) => {
8
+ if (from && typeof from === "object" || typeof from === "function") {
9
+ for (let key of __getOwnPropNames(from))
10
+ if (!__hasOwnProp.call(to, key) && key !== except)
11
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
+ }
13
+ return to;
14
+ };
15
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
16
+
17
+ // src/cli.ts
18
+ var import_umi = require("umi");
19
+ var import_plugin_utils = require("umi/plugin-utils");
20
+ (async () => {
21
+ try {
22
+ import_plugin_utils.logger.info(import_plugin_utils.chalk.cyan.bold(`dumi v${require("../package").version}`));
23
+ await (0, import_umi.run)({
24
+ presets: [require.resolve("./preset")]
25
+ });
26
+ } catch (e) {
27
+ console.error(e);
28
+ process.exit(1);
29
+ }
30
+ })();
@@ -0,0 +1,10 @@
1
+ import { type FC } from 'react';
2
+ import type { IPreviewerProps } from './types';
3
+ export interface IDumiDemoProps {
4
+ demo: {
5
+ id: string;
6
+ inline?: boolean;
7
+ };
8
+ previewerProps: Omit<IPreviewerProps, 'asset' | 'children'>;
9
+ }
10
+ export declare const DumiDemo: FC<IDumiDemoProps>;
@@ -0,0 +1,16 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ import Previewer from 'dumi/theme/builtins/Previewer';
4
+ import React, { createElement, useContext } from 'react';
5
+ import { Context } from "./context";
6
+ export var DumiDemo = function DumiDemo(props) {
7
+ var _useContext = useContext(Context),
8
+ demos = _useContext.demos;
9
+
10
+ var _demos$props$demo$id = demos[props.demo.id],
11
+ component = _demos$props$demo$id.component,
12
+ asset = _demos$props$demo$id.asset;
13
+ return /*#__PURE__*/React.createElement(Previewer, _extends({
14
+ asset: asset
15
+ }, props.previewerProps), /*#__PURE__*/createElement(component));
16
+ };
@@ -0,0 +1,6 @@
1
+ import { type FC } from 'react';
2
+ import { IDumiDemoProps } from './DumiDemo';
3
+ export interface IDumiDemoGridProps {
4
+ items: IDumiDemoProps[];
5
+ }
6
+ export declare const DumiDemoGrid: FC<IDumiDemoGridProps>;
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { DumiDemo } from "./DumiDemo";
3
+ export var DumiDemoGrid = function DumiDemoGrid(props) {
4
+ return /*#__PURE__*/React.createElement("div", {
5
+ style: {
6
+ display: 'grid',
7
+ gridTemplateColumns: 'repeat(2, 1fr)'
8
+ }
9
+ }, props.items.map(function (item) {
10
+ return /*#__PURE__*/React.createElement("section", {
11
+ key: item.demo.id
12
+ }, /*#__PURE__*/React.createElement(DumiDemo, item));
13
+ }));
14
+ };
@@ -0,0 +1,14 @@
1
+ import { type ComponentType } from 'react';
2
+ import type { IPreviewerProps } from './types';
3
+ export interface IThemeContext {
4
+ demos: Record<string, {
5
+ component: ComponentType;
6
+ asset: IPreviewerProps['asset'];
7
+ }>;
8
+ locales: {
9
+ id: string;
10
+ name: string;
11
+ base: string;
12
+ }[];
13
+ }
14
+ export declare const Context: import("react").Context<IThemeContext>;
@@ -0,0 +1,5 @@
1
+ import { createContext } from 'react';
2
+ export var Context = /*#__PURE__*/createContext({
3
+ demos: {},
4
+ locales: []
5
+ });
@@ -0,0 +1,5 @@
1
+ export { useIntl } from 'react-intl';
2
+ export * from './context';
3
+ export * from './DumiDemo';
4
+ export * from './DumiDemoGrid';
5
+ export * from './types';
@@ -0,0 +1,5 @@
1
+ export { useIntl } from 'react-intl';
2
+ export * from "./context";
3
+ export * from "./DumiDemo";
4
+ export * from "./DumiDemoGrid";
5
+ export * from "./types";
@@ -0,0 +1,20 @@
1
+ import type { ExampleBlockAsset } from 'dumi-assets-types';
2
+ import type { ReactNode } from 'react';
3
+ export interface IPreviewerProps {
4
+ /**
5
+ * title of current demo
6
+ */
7
+ title?: string;
8
+ /**
9
+ * description of current demo
10
+ */
11
+ description?: string;
12
+ /**
13
+ * asset metadata of current demo
14
+ */
15
+ asset: ExampleBlockAsset;
16
+ /**
17
+ * react node of current demo
18
+ */
19
+ children: ReactNode;
20
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ {
2
+ "extends": "../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "paths": {
5
+ "@/*": ["src/*"],
6
+ "dumi/theme": ["src/client/theme-api"],
7
+ "dumi/theme/*": ["src/client/theme-default/*"]
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,2 @@
1
+ export declare const LOCAL_THEME_DIR = ".dumi/theme";
2
+ export declare const THEME_PREFIX = "dumi-theme-";
@@ -0,0 +1,32 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/constants.ts
20
+ var constants_exports = {};
21
+ __export(constants_exports, {
22
+ LOCAL_THEME_DIR: () => LOCAL_THEME_DIR,
23
+ THEME_PREFIX: () => THEME_PREFIX
24
+ });
25
+ module.exports = __toCommonJS(constants_exports);
26
+ var LOCAL_THEME_DIR = ".dumi/theme";
27
+ var THEME_PREFIX = "dumi-theme-";
28
+ // Annotate the CommonJS export names for ESM import in node:
29
+ 0 && (module.exports = {
30
+ LOCAL_THEME_DIR,
31
+ THEME_PREFIX
32
+ });
@@ -0,0 +1,3 @@
1
+ import type { IApi } from "../types";
2
+ declare const _default: (api: IApi) => void;
3
+ export default _default;
@@ -0,0 +1,57 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+
22
+ // src/features/compile.ts
23
+ var compile_exports = {};
24
+ __export(compile_exports, {
25
+ default: () => compile_default
26
+ });
27
+ module.exports = __toCommonJS(compile_exports);
28
+ var import_react = __toESM(require("../techStacks/react"));
29
+ var compile_default = (api) => {
30
+ api.registerTechStack(() => new import_react.default());
31
+ api.chainWebpack(async (memo) => {
32
+ const loaderPath = require.resolve("../loaders/markdown");
33
+ const babelInUmi = memo.module.rule("src").use("babel-loader").entries();
34
+ const techStacks = await api.applyPlugins({
35
+ key: "registerTechStack",
36
+ type: api.ApplyPluginsType.add
37
+ });
38
+ memo.module.rule("dumi-md").type("javascript/auto").test(/\.md$/).oneOf("demo-index").resourceQuery(/meta\.demos/).use("demo-index-loader").loader(loaderPath).options({ techStacks, cwd: api.cwd, mode: "demos" }).end().end().oneOf("md").use("babel-loader").loader(babelInUmi.loader).options(babelInUmi.options).end().use("md-loader").loader(loaderPath).options({
39
+ techStacks,
40
+ cwd: api.cwd,
41
+ builtins: api.service.themeData.builtins
42
+ });
43
+ memo.module.rule("dumi-demo").type("javascript/auto").test(/\..+$/).enforce("pre").resourceQuery(/techStack/).use("demo-loader").loader(require.resolve("../loaders/demo")).options({ techStacks, cwd: api.cwd });
44
+ memo.module.rule("dumi-raw").resourceQuery(/raw/).use("raw-loader").loader(require.resolve("raw-loader"));
45
+ if (api.env === "development") {
46
+ memo.plugin("fastRefresh").tap(([params]) => [
47
+ {
48
+ ...params,
49
+ include: /\.([cm]js|[jt]sx?|flow|md)$/i
50
+ }
51
+ ]);
52
+ }
53
+ return memo;
54
+ });
55
+ };
56
+ // Annotate the CommonJS export names for ESM import in node:
57
+ 0 && (module.exports = {});
@@ -0,0 +1,3 @@
1
+ import type { IApi } from "../../types";
2
+ declare const _default: (api: IApi) => void;
3
+ export default _default;
@@ -0,0 +1,51 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/features/configPlugins/index.ts
20
+ var configPlugins_exports = {};
21
+ __export(configPlugins_exports, {
22
+ default: () => configPlugins_default
23
+ });
24
+ module.exports = __toCommonJS(configPlugins_exports);
25
+ var import_schema = require("./schema");
26
+ var configPlugins_default = (api) => {
27
+ const configDefaults = {
28
+ resolve: {
29
+ docDirs: ["docs"],
30
+ entityDirs: [{ type: "component", dir: "src" }]
31
+ }
32
+ };
33
+ const schemas = (0, import_schema.getSchemas)();
34
+ for (const key of Object.keys(schemas)) {
35
+ const config = {
36
+ schema: schemas[key] || ((joi) => joi.any())
37
+ };
38
+ if (key in configDefaults) {
39
+ config.default = configDefaults[key];
40
+ }
41
+ api.registerPlugins([
42
+ {
43
+ id: `virtual: config-${key}`,
44
+ key,
45
+ config
46
+ }
47
+ ]);
48
+ }
49
+ };
50
+ // Annotate the CommonJS export names for ESM import in node:
51
+ 0 && (module.exports = {});